jam-heatmap { ; ; jam 211230 init: float eqratio = float eq1number = float eq2number = 0.0 float tempindex = 0.0 ; stores intermediate #index calculation final: eq1number = real(#z) eq2number = imag(#z) eqratio = eq1number/eq2number if eqratio <= 1 ; Barnley equation 1 was used more frequently tempindex = eqratio * 199 else ; Barsley equation 2 was most frequent; map to 2nd half of gradient eqratio = 1/eqratio tempindex = -199 * eqratio + 399 endif ; eqratio #index = tempindex/400 default: title = "Heat Map" heading text = "This coloring can be used in conjunction with the 'Heat Map' parameter \ in the 'Orbit Trap Barnsley' and 'Function Barnsley' formulas in folder \ jam3.ufm to ascertain how often Barnsley equation 1 is chosen vs. Barnsley \ equation 2. The ratio of uses of equation 1 to equation 2 (eq1/eq2) is \ mapped to the color gradient, so exclusive use of equation 2 is mapped to \ gradient position 0, while exclusive use of equation 1 is mapped to gradient \ position 399." endheading } jam-WavyCircleTrap { ; jam version 011225 init: ; Change and scale variables to facilitate variation, if selected complex trapcenter = @customcenter float rad = @radius, float radstep = 0.05 * @radstp float spread = @colorspread, float spreadstep = 0.05 * @spreadstp float thresh = @threshold, float threshstep = 0.05 * @spreadstp float centerstep = 0.05 * @centerstp float ringstep = 0.05 * @ringstp, float rwidth = @ringwidth bool trapped = FALSE bool vary = TRUE float sign = 0.0 float innerradius = thresh - @ringwidth if @whattotrap > 11 innerradius = thresh + @ringwidth ; innerradius is really an outerradius if we are exceeding limits endif ; @whattotrap ; For turbulence computation option float turbulamount = @turbamount, float _coloradjust = 0.0, float _color = 0.0 complex zlast = (0,0), complex tlast = (1,0), float turbstep = @turbstp complex zold = (0,0), complex zveryold = (0,0), complex zscratch = (0,0) complex zold2 = (0,0) float rfbcomp = 1-@rfblend, float ifbcomp = 1-@ifblend float rbbcomp = 1-@rbblend, float ibbcomp = 1-@ibblend float trapbcomp = 1-@trapblend, float initbcomp = 1-@initblend if @towatch == 0 int watch = #maxiter else int watch = @skippediters + @towatch endif ; towatch float twopi = 2.0 * #pi int iter = 0, int count = 0 int itrapped = int itrapped2 = int itrapped3 = int itrapped4 = 0 float test = 0.0, float trapped1 = float trapped2 = float trapped3 = float trapped4 = 1e9 float zangle = 0.0, float zatrapped = float zatrapped2 = float zatrapped3 = float zatrapped4 = 0.0 float cangle = 0.0, float catrapped = float catrapped2 = float catrapped3 = float catrapped4 = 0.0 complex ztrapped = complex ztrapped2 = complex ztrapped3 = complex ztrapped4 = (0,0) complex ztemp = complex zttrapped = complex zttrapped2 = complex zttrapped3 = complex zttrapped4 = (0,0) complex tempc = complex ctrapped = complex ctrapped2 = complex ctrapped3 = complex ctrapped4 = (0,0) float tempx = 0.0, float tempy = 0.0, float temp = 0.0, float temp2 = 0.0 complex zinput = (0,0) ; If we're trapping something big, initialize small if (( @whattotrap == 1 ) || ( @whattotrap == 5 ) || ( @whattotrap == 6 ) \ || ( @whattotrap == 7 )) trapped1 = trapped2 = trapped3 = trapped4 = -1e9 elseif @whattotrap > 14 trapped2 = -1e9 ; used to store the max when looking for min-max, min+max, etc. endif ; trapmode loop: iter = iter + 1 if ( iter > @skippediters ) && ( iter <= watch ) ; finished skipping --- start testing for trap ; Initialize front end real, front end imag, if desired temp2 = @rfscale * real(#z) if ( @realfront == 0 ) tempx = temp2 elseif ( @realfront == 1 ) tempx = 1/temp2 elseif ( @realfront == 2 ) tempx = temp2 * temp2 elseif ( @realfront == 3 ) tempx = 1 / ( temp2 * temp2 ) elseif ( @realfront == 4 ) tempx = log(temp2) elseif ( @realfront == 5 ) tempx = exp( temp2) elseif ( @realfront == 6 ) tempx = temp2^temp2 elseif ( @realfront == 7 ) tempx = sin( temp2 ) elseif ( @realfront == 8 ) tempx = cos( temp2 ) elseif ( @realfront == 9 ) tempx = tan( temp2 ) elseif ( @realfront == 10 ) tempx = asin( temp2 ) elseif ( @realfront == 11 ) tempx = acos( temp2 ) elseif ( @realfront == 12 ) tempx = atan( temp2 ) elseif ( @realfront == 13 ) tempx = sinh( temp2 ) elseif ( @realfront == 14 ) tempx = cosh( temp2 ) elseif ( @realfront == 15 ) tempx = tanh( temp2 ) elseif ( @realfront == 16 ) tempx = asinh( temp2 ) elseif ( @realfront == 17 ) tempx = acosh( temp2 ) elseif ( @realfront == 18 ) tempx = atanh( temp2 ) elseif ( @realfront == 19 ) tempx = log( 1/temp2 ) elseif ( @realfront == 20 ) tempx = log( log( temp2 )) elseif ( @realfront == 21 ) tempx = exp( -temp2 ) elseif ( @realfront == 22 ) tempx = exp( 1/temp2 ) elseif ( @realfront == 23 ) tempx = temp2^(-temp2) elseif ( @realfront == 24 ) tempx = sin( temp2 ) tempx = tempx * tempx elseif ( @realfront == 25 ) tempx = cos( temp2 ) tempx = tempx * tempx elseif ( @realfront == 26 ) tempx = tan( temp2 ) tempx = tempx * tempx elseif ( @realfront == 27 ) tempx = cotan( temp2 ) elseif ( @realfront == 28 ) tempx = 1/cos( temp2 ) elseif ( @realfront == 29 ) tempx = 1/sin( temp2 ) elseif ( @realfront == 30 ) tempx = cotan( temp2 ) tempx = tempx * tempx elseif ( @realfront == 31 ) tempx = 1/cos( temp2 ) tempx = tempx * tempx elseif ( @realfront == 32 ) tempx = 1/sin( temp2 ) tempx = tempx * tempx elseif ( @realfront == 33 ) tempx = temp2^(temp2) tempx = temp2^tempx elseif ( @realfront == 34 ) tempx = temp2^(temp2) tempx = 1/( temp2^tempx ) elseif ( @realfront == 35 ) tempx = log(-temp2) elseif ( @realfront == 36 ) tempx = 1/log( temp2 ) elseif ( @realfront == 37 ) tempx = temp2 * log( temp2 ) elseif ( @realfront == 38 ) tempx = sin( temp2 ) / temp2 elseif ( @realfront == 39 ) tempx = cos( temp2 ) / temp2 elseif ( @realfront == 40 ) tempx = sin( temp2 ) * cos( temp2 ) elseif ( @realfront == 41 ) tempx = sin( temp2^2 ) elseif ( @realfront == 42 ) tempx = exp( -1/temp2 ) elseif ( @realfront == 43 ) tempx = temp2 * exp( temp2 ) elseif ( @realfront == 44 ) tempx = temp2 * exp( -temp2 ) elseif ( @realfront == 45 ) tempx = temp2 * exp( 1/temp2 ) elseif ( @realfront == 46 ) tempx = temp2 * exp( -1/temp2 ) elseif ( @realfront == 47 ) tempx = temp2 * temp2 * temp2 elseif ( @realfront == 48 ) tempx = 1 / ( temp2 * temp2 * temp2 ) elseif ( @realfront == 49 ) tempx = atan( 1 / temp2 ) elseif ( @realfront == 50 ) tempx = acos( 1 / temp2 ) elseif ( @realfront == 51 ) tempx = asin( 1 / temp2 ) elseif ( @realfront == 52 ) tempx = tan( temp2 ) / temp2 elseif ( @realfront == 53 ) tempx = cotan( temp2 ) / temp2 elseif ( @realfront == 54 ) tempx = 1 / ( temp2 * cos( temp2 )) elseif ( @realfront == 55 ) tempx = 1 / ( temp2 * sin( temp2 )) elseif ( @realfront == 56 ) tempx = temp2 * sin( temp2 ) elseif ( @realfront == 57 ) tempx = temp2 * cos( temp2 ) elseif ( @realfront == 58 ) tempx = temp2 * tan( temp2 ) elseif ( @realfront == 59 ) tempx = temp2 * cotan( temp2 ) elseif ( @realfront == 60 ) tempx = temp2/cos( temp2 ) elseif ( @realfront == 61 ) tempx = temp2/sin( temp2 ) elseif ( @realfront == 62 ) tempx = sin( 1/temp2 ) elseif ( @realfront == 63 ) tempx = cos( 1/temp2 ) elseif ( @realfront == 64 ) tempx = tan( 1/temp2 ) elseif ( @realfront == 65 ) tempx = cotan( 1/temp2 ) elseif ( @realfront == 66 ) tempx = 1/cos( 1/temp2 ) elseif ( @realfront == 67 ) tempx = 1/sin( 1/temp2 ) elseif ( @realfront == 68 ) tempx = cotanh( temp2 ) elseif ( @realfront == 69 ) tempx = 1/cosh( temp2 ) elseif ( @realfront == 70 ) tempx = 1/sinh( temp2 ) elseif ( @realfront == 71 ) tempx = atanh( 1/temp2 ) elseif ( @realfront == 72 ) tempx = acosh( 1/temp2 ) elseif ( @realfront == 73 ) tempx = asinh( 1/temp2 ) elseif @realfront == 74 tempx = temp2^@rfpower elseif @realfront == 75 tempx = sinh(temp2) tempx = tempx * tempx elseif @realfront == 76 tempx = cosh( temp2 ) tempx = tempx * tempx elseif @realfront == 77 tempx = tanh(temp2) tempx = tempx * tempx elseif @realfront == 78 tempx = cotanh( temp2 ) tempx = tempx * tempx elseif @realfront == 79 tempx = 1/cosh(temp2) tempx = tempx * tempx elseif @realfront == 80 tempx = 1 / sinh( temp2 ) tempx = tempx * tempx elseif @realfront == 81 tempx = sinh(1/temp2) elseif @realfront == 82 tempx = cosh(1/temp2) elseif @realfront == 83 tempx = tanh(1/temp2) elseif @realfront == 84 tempx = cotanh(1/temp2) elseif @realfront == 85 tempx = 1/cosh(1/temp2) elseif @realfront == 86 tempx = 1/sinh(1/temp2) elseif @realfront == 87 tempx = sin( temp2 ) * tan(temp2) elseif @realfront == 88 tempx = sinh(temp2) * tanh(temp2) elseif @realfront == 89 tempx = sinh(temp2) * cosh(temp2) elseif @realfront == 90 tempx = sinh(temp2), temp = cosh(temp2) tempx = tempx*tempx*temp*temp elseif @realfront == 91 tempx = sin(temp2), temp = cos(temp2) tempx = tempx*tempx*temp*temp elseif @realfront == 92 tempx = 1/temp2 tempx = sin(tempx)*cos(tempx) elseif @realfront == 93 tempx = sin( 1/temp2 ) tempx = tempx*tempx elseif @realfront == 94 tempx = sin(temp2) * cos(1/temp2) elseif @realfront == 95 tempx = sin(temp2) * sin(1/temp2) elseif @realfront == 96 tempx = log(temp2) tempx = tempx*tempx elseif @realfront == 97 tempx = sin(temp2) * sin(2*temp2) elseif @realfront == 98 tempx = exp(2*temp2) elseif @realfront == 99 tempx = exp(-2*temp2) elseif @realfront == 100 tempx = 1/temp2 tempx = sinh(tempx)*cosh(tempx) elseif @realfront == 101 tempx = sinh( 1/temp2 ) tempx = tempx*tempx elseif @realfront == 102 tempx = sinh(temp2) * cosh(1/temp2) elseif @realfront == 103 tempx = sinh(temp2) * sinh(1/temp2) elseif @realfront == 104 tempx = sin(temp2) * sinh(temp2) elseif @realfront == 105 tempx = sin(temp2) * cosh(temp2) elseif @realfront == 106 tempx = sin(temp2), temp = sinh(temp2) tempx = tempx*tempx*temp*temp elseif @realfront == 107 tempx = sin(temp2)*exp(temp2) elseif @realfront == 108 tempx = cos(temp2)*exp(temp2) elseif @realfront == 109 tempx = sinh(temp2)*exp(temp2) elseif @realfront == 110 tempx = cosh(temp2)*exp(temp2) elseif @realfront == 111 tempx = sin(temp2)*log(temp2) elseif @realfront == 112 tempx = cos(temp2)*log(temp2) elseif @realfront == 113 tempx = sinh(temp2)*log(temp2) else ; @realfront == 114 tempx = cosh(temp2)*log(temp2) endif ; realfront if @rfperturb tempx = @rfblend * tempx + rfbcomp * real(#z) endif ; @rfperturb temp2 = @ifscale * imag(#z) if ( @imagfront == 0 ) tempy = temp2 elseif ( @imagfront == 1 ) tempy = 1/temp2 elseif ( @imagfront == 2 ) tempy = temp2 * temp2 elseif ( @imagfront == 3 ) tempy = 1 / ( temp2 * temp2 ) elseif ( @imagfront == 4 ) tempy = log(temp2) elseif ( @imagfront == 5 ) tempy = exp( temp2) elseif ( @imagfront == 6 ) tempy = temp2^temp2 elseif ( @imagfront == 7 ) tempy = sin( temp2 ) elseif ( @imagfront == 8 ) tempy = cos( temp2 ) elseif ( @imagfront == 9 ) tempy = tan( temp2 ) elseif ( @imagfront == 10 ) tempy = asin( temp2 ) elseif ( @imagfront == 11 ) tempy = acos( temp2 ) elseif ( @imagfront == 12 ) tempy = atan( temp2 ) elseif ( @imagfront == 13 ) tempy = sinh( temp2 ) elseif ( @imagfront == 14 ) tempy = cosh( temp2 ) elseif ( @imagfront == 15 ) tempy = tanh( temp2 ) elseif ( @imagfront == 16 ) tempy = asinh( temp2 ) elseif ( @imagfront == 17 ) tempy = acosh( temp2 ) elseif ( @imagfront == 18 ) tempy = atanh( temp2 ) elseif ( @imagfront == 19 ) tempy = log( 1/temp2 ) elseif ( @imagfront == 20 ) tempy = log( log( temp2 )) elseif ( @imagfront == 21 ) tempy = exp( -temp2 ) elseif ( @imagfront == 22 ) tempy = exp( 1/temp2 ) elseif ( @imagfront == 23 ) tempy = temp2^(-temp2) elseif ( @imagfront == 24 ) tempy = sin( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 25 ) tempy = cos( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 26 ) tempy = tan( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 27 ) tempy = cotan( temp2 ) elseif ( @imagfront == 28 ) tempy = 1/cos( temp2 ) elseif ( @imagfront == 29 ) tempy = 1/sin( temp2 ) elseif ( @imagfront == 30 ) tempy = cotan( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 31 ) tempy = 1/cos( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 32 ) tempy = 1/sin( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 33 ) tempy = temp2^(temp2) tempy = temp2^tempy elseif ( @imagfront == 34 ) tempy = temp2^(temp2) tempy = 1/( temp2^tempy ) elseif ( @imagfront == 35 ) tempy = log(-temp2) elseif ( @imagfront == 36 ) tempy = 1/log( temp2 ) elseif ( @imagfront == 37 ) tempy = temp2 * log( temp2 ) elseif ( @imagfront == 38 ) tempy = sin( temp2 ) / temp2 elseif ( @imagfront == 39 ) tempy = cos( temp2 ) / temp2 elseif ( @imagfront == 40 ) tempy = sin( temp2 ) * cos( temp2 ) elseif ( @imagfront == 41 ) tempy = sin( temp2^2 ) elseif ( @imagfront == 42 ) tempy = exp( -1/temp2 ) elseif ( @imagfront == 43 ) tempy = temp2 * exp( temp2 ) elseif ( @imagfront == 44 ) tempy = temp2 * exp( -temp2 ) elseif ( @imagfront == 45 ) tempy = temp2 * exp( 1/temp2 ) elseif ( @imagfront == 46 ) tempy = temp2 * exp( -1/temp2 ) elseif ( @imagfront == 47 ) tempy = temp2 * temp2 * temp2 elseif ( @imagfront == 48 ) tempy = 1 / ( temp2 * temp2 * temp2 ) elseif ( @imagfront == 49 ) tempy = atan( 1 / temp2 ) elseif ( @imagfront == 50 ) tempy = acos( 1 / temp2 ) elseif ( @imagfront == 51 ) tempy = asin( 1 / temp2 ) elseif ( @imagfront == 52 ) tempy = tan( temp2 ) / temp2 elseif ( @imagfront == 53 ) tempy = cotan( temp2 ) / temp2 elseif ( @imagfront == 54 ) tempy = 1 / ( temp2 * cos( temp2 )) elseif ( @imagfront == 55 ) tempy = 1 / ( temp2 * sin( temp2 )) elseif ( @imagfront == 56 ) tempy = temp2 * sin( temp2 ) elseif ( @imagfront == 57 ) tempy = temp2 * cos( temp2 ) elseif ( @imagfront == 58 ) tempy = temp2 * tan( temp2 ) elseif ( @imagfront == 59 ) tempy = temp2 * cotan( temp2 ) elseif ( @imagfront == 60 ) tempy = temp2/cos( temp2 ) elseif ( @imagfront == 61 ) tempy = temp2/sin( temp2 ) elseif ( @imagfront == 62 ) tempy = sin( 1/temp2 ) elseif ( @imagfront == 63 ) tempy = cos( 1/temp2 ) elseif ( @imagfront == 64 ) tempy = tan( 1/temp2 ) elseif ( @imagfront == 65 ) tempy = cotan( 1/temp2 ) elseif ( @imagfront == 66 ) tempy = 1/cos( 1/temp2 ) elseif ( @imagfront == 67 ) tempy = 1/sin( 1/temp2 ) elseif ( @imagfront == 68 ) tempy = cotanh( temp2 ) elseif ( @imagfront == 69 ) tempy = 1/cosh( temp2 ) elseif ( @imagfront == 70 ) tempy = 1/sinh( temp2 ) elseif ( @imagfront == 71 ) tempy = atanh( 1/temp2 ) elseif ( @imagfront == 72 ) tempy = acosh( 1/temp2 ) elseif ( @imagfront == 73 ) tempy = asinh( 1/temp2 ) elseif @imagfront == 74 tempy = temp2^@ifpower elseif @imagfront == 75 tempy = sinh(temp2) tempy = tempy * tempy elseif @imagfront == 76 tempy = cosh( temp2 ) tempy = tempy * tempy elseif @imagfront == 77 tempy = tanh(temp2) tempy = tempy * tempy elseif @imagfront == 78 tempy = cotanh( temp2 ) tempy = tempy * tempy elseif @imagfront == 79 tempy = 1/cosh(temp2) tempy = tempy * tempy elseif @imagfront == 80 tempy = 1 / sinh( temp2 ) tempy = tempy * tempy elseif @imagfront == 81 tempy = sinh(1/temp2) elseif @imagfront == 82 tempy = cosh(1/temp2) elseif @imagfront == 83 tempy = tanh(1/temp2) elseif @imagfront == 84 tempy = cotanh(1/temp2) elseif @imagfront == 85 tempy = 1/cosh(1/temp2) elseif @imagfront == 86 tempy = 1/sinh(1/temp2) elseif @imagfront == 87 tempy = sin( temp2 ) * tan(temp2) elseif @imagfront == 88 tempy = sinh(temp2) * tanh(temp2) elseif @imagfront == 89 tempy = sinh(temp2) * cosh(temp2) elseif @imagfront == 90 tempy = sinh(temp2), temp = cosh(temp2) tempy = tempy*tempy*temp*temp elseif @imagfront == 91 tempy = sin(temp2), temp = cos(temp2) tempy = tempy*tempy*temp*temp elseif @imagfront == 92 tempy = 1/temp2 tempy = sin(tempy)*cos(tempy) elseif @imagfront == 93 tempy = sin( 1/temp2 ) tempy = tempy*tempy elseif @imagfront == 94 tempy = sin(temp2) * cos(1/temp2) elseif @imagfront == 95 tempy = sin(temp2) * sin(1/temp2) elseif @imagfront == 96 tempy = log(temp2) tempy = tempy*tempy elseif @imagfront == 97 tempy = sin(temp2) * sin(2*temp2) elseif @imagfront == 98 tempy = exp(2*temp2) elseif @imagfront == 99 tempy = exp(-2*temp2) elseif @imagfront == 100 tempy = 1/temp2 tempy = sinh(tempy)*cosh(tempy) elseif @imagfront == 101 tempy = sinh( 1/temp2 ) tempy = tempy*tempy elseif @imagfront == 102 tempy = sinh(temp2) * cosh(1/temp2) elseif @imagfront == 103 tempy = sinh(temp2) * sinh(1/temp2) elseif @imagfront == 104 tempy = sin(temp2) * sinh(temp2) elseif @imagfront == 105 tempy = sin(temp2) * cosh(temp2) elseif @imagfront == 106 tempy = sin(temp2), temp = sinh(temp2) tempy = tempy*tempy*temp*temp elseif @imagfront == 107 tempy = sin(temp2)*exp(temp2) elseif @imagfront == 108 tempy = cos(temp2)*exp(temp2) elseif @imagfront == 109 tempy = sinh(temp2)*exp(temp2) elseif @imagfront == 110 tempy = cosh(temp2)*exp(temp2) elseif @imagfront == 111 tempy = sin(temp2)*log(temp2) elseif @imagfront == 112 tempy = cos(temp2)*log(temp2) elseif @imagfront == 113 tempy = sinh(temp2)*log(temp2) else ; @imagfront == 114 tempy = cosh(temp2)*log(temp2) endif ; imagfront if @ifperturb tempy = @ifblend * tempy + ifbcomp * imag(#z) endif ; @ifperturb zold = tempx + flip(tempy) ; Initialize z, if desired zold = @ziscale * zold if ( @initialization == 0 ) zinput = zold elseif ( @initialization == 1 ) zinput = 1/zold elseif ( @initialization == 2 ) zinput = zold * zold elseif ( @initialization == 3 ) zinput = 1 / ( zold * zold ) elseif ( @initialization == 4 ) zinput = log(zold) elseif ( @initialization == 5 ) zinput = exp( zold) elseif ( @initialization == 6 ) zinput = zold^zold elseif ( @initialization == 7 ) zinput = sin( zold ) elseif ( @initialization == 8 ) zinput = cos( zold ) elseif ( @initialization == 9 ) zinput = tan( zold ) elseif ( @initialization == 10 ) zinput = asin( zold ) elseif ( @initialization == 11 ) zinput = acos( zold ) elseif ( @initialization == 12 ) zinput = atan( zold ) elseif ( @initialization == 13 ) zinput = sinh( zold ) elseif ( @initialization == 14 ) zinput = cosh( zold ) elseif ( @initialization == 15 ) zinput = tanh( zold ) elseif ( @initialization == 16 ) zinput = asinh( zold ) elseif ( @initialization == 17 ) zinput = acosh( zold ) elseif ( @initialization == 18 ) zinput = atanh( zold ) elseif ( @initialization == 19 ) zinput = log( 1/zold ) elseif ( @initialization == 20 ) zinput = log( log( zold )) elseif ( @initialization == 21 ) zinput = exp( -zold ) elseif ( @initialization == 22 ) zinput = exp( 1/zold ) elseif ( @initialization == 23 ) zinput = zold^(-zold) elseif ( @initialization == 24 ) zinput = sin( zold ) zinput = zinput * zinput elseif ( @initialization == 25 ) zinput = cos( zold ) zinput = zinput * zinput elseif ( @initialization == 26 ) zinput = tan( zold ) zinput = zinput * zinput elseif ( @initialization == 27 ) zinput = cotan( zold ) elseif ( @initialization == 28 ) zinput = 1/cos( zold ) elseif ( @initialization == 29 ) zinput = 1/sin( zold ) elseif ( @initialization == 30 ) zinput = cotan( zold ) zinput = zinput * zinput elseif ( @initialization == 31 ) zinput = 1/cos( zold ) zinput = zinput * zinput elseif ( @initialization == 32 ) zinput = 1/sin( zold ) zinput = zinput * zinput elseif ( @initialization == 33 ) zinput = zold^(zold) zinput = zold^zinput elseif ( @initialization == 34 ) zinput = zold^(zold) zinput = 1/( zold^zinput ) elseif ( @initialization == 35 ) zinput = log(-zold) elseif ( @initialization == 36 ) zinput = 1/log( zold ) elseif ( @initialization == 37 ) zinput = zold * log( zold ) elseif ( @initialization == 38 ) zinput = sin( zold ) / zold elseif ( @initialization == 39 ) zinput = cos( zold ) / zold elseif ( @initialization == 40 ) zinput = sin( zold ) * cos( zold ) elseif ( @initialization == 41 ) zinput = sin( zold^2 ) elseif ( @initialization == 42 ) zinput = exp( -1/zold ) elseif ( @initialization == 43 ) zinput = zold * exp( zold ) elseif ( @initialization == 44 ) zinput = zold * exp( -zold ) elseif ( @initialization == 45 ) zinput = zold * exp( 1/zold ) elseif ( @initialization == 46 ) zinput = zold * exp( -1/zold ) elseif ( @initialization == 47 ) zinput = zold * zold * zold elseif ( @initialization == 48 ) zinput = 1 / ( zold * zold * zold ) elseif ( @initialization == 49 ) zinput = atan( 1 / zold ) elseif ( @initialization == 50 ) zinput = acos( 1 / zold ) elseif ( @initialization == 51 ) zinput = asin( 1 / zold ) elseif ( @initialization == 52 ) zinput = tan( zold ) / zold elseif ( @initialization == 53 ) zinput = cotan( zold ) / zold elseif ( @initialization == 54 ) zinput = 1 / ( zold * cos( zold )) elseif ( @initialization == 55 ) zinput = 1 / ( zold * sin( zold )) elseif ( @initialization == 56 ) zinput = zold * sin( zold ) elseif ( @initialization == 57 ) zinput = zold * cos( zold ) elseif ( @initialization == 58 ) zinput = zold * tan( zold ) elseif ( @initialization == 59 ) zinput = zold * cotan( zold ) elseif ( @initialization == 60 ) zinput = zold/cos( zold ) elseif ( @initialization == 61 ) zinput = zold/sin( zold ) elseif ( @initialization == 62 ) zinput = sin( 1/zold ) elseif ( @initialization == 63 ) zinput = cos( 1/zold ) elseif ( @initialization == 64 ) zinput = tan( 1/zold ) elseif ( @initialization == 65 ) zinput = cotan( 1/zold ) elseif ( @initialization == 66 ) zinput = 1/cos( 1/zold ) elseif ( @initialization == 67 ) zinput = 1/sin( 1/zold ) elseif ( @initialization == 68 ) zinput = cotanh( zold ) elseif ( @initialization == 69 ) zinput = 1/cosh( zold ) elseif ( @initialization == 70 ) zinput = 1/sinh( zold ) elseif ( @initialization == 71 ) zinput = atanh( 1/zold ) elseif ( @initialization == 72 ) zinput = acosh( 1/zold ) elseif ( @initialization == 73 ) zinput = asinh( 1/zold ) elseif @initialization == 74 zinput = zold^@zpower elseif @initialization == 75 zinput = sinh(zold) zinput = zinput * zinput elseif @initialization == 76 zinput = cosh( zold ) zinput = zinput * zinput elseif @initialization == 77 zinput = tanh(zold) zinput = zinput * zinput elseif @initialization == 78 zinput = cotanh( zold ) zinput = zinput * zinput elseif @initialization == 79 zinput = 1/cosh(zold) zinput = zinput * zinput elseif @initialization == 80 zinput = 1 / sinh( zold ) zinput = zinput * zinput elseif @initialization == 81 zinput = sinh(1/zold) elseif @initialization == 82 zinput = cosh(1/zold) elseif @initialization == 83 zinput = tanh(1/zold) elseif @initialization == 84 zinput = cotanh(1/zold) elseif @initialization == 85 zinput = 1/cosh(1/zold) elseif @initialization == 86 zinput = 1/sinh(1/zold) elseif @initialization == 87 zinput = sin( zold ) * tan(zold) elseif @initialization == 88 zinput = sinh(zold) * tanh(zold) elseif @initialization == 89 zinput = sinh(zold) * cosh(zold) elseif @initialization == 90 zinput = sinh(zold), zscratch = cosh(zold) zinput = zinput*zinput*zscratch*zscratch elseif @initialization == 91 zinput = sin(zold), zscratch = cos(zold) zinput = zinput*zinput*zscratch*zscratch elseif @initialization == 92 zinput = 1/zold zinput = sin(zinput)*cos(zinput) elseif @initialization == 93 zinput = sin( 1/zold ) zinput = zinput*zinput elseif @initialization == 94 zinput = sin(zold) * cos(1/zold) elseif @initialization == 95 zinput = sin(zold) * sin(1/zold) elseif @initialization == 96 zinput = log(zold) zinput = zinput*zinput elseif @initialization == 97 zinput = sin(zold) * sin(2*zold) elseif @initialization == 98 zinput = exp(2*zold) elseif @initialization == 99 zinput = exp(-2*zold) elseif @initialization == 100 zinput = 1/zold zinput = sinh(zinput)*cosh(zinput) elseif @initialization == 101 zinput = sinh( 1/zold ) zinput = zinput*zinput elseif @initialization == 102 zinput = sinh(zold) * cosh(1/zold) elseif @initialization == 103 zinput = sinh(zold) * sinh(1/zold) elseif @initialization == 104 zinput = sin(zold) * sinh(zold) elseif @initialization == 105 zinput = sin(zold) * cosh(zold) elseif @initialization == 106 zinput = sin(zold), zscratch = sinh(zold) zinput = zinput*zinput*zscratch*zscratch elseif @initialization == 107 zinput = sin(zold)*exp(zold) elseif @initialization == 108 zinput = cos(zold)*exp(zold) elseif @initialization == 109 zinput = sinh(zold)*exp(zold) elseif @initialization == 110 zinput = cosh(zold)*exp(zold) elseif @initialization == 111 zinput = sin(zold)*log(zold) elseif @initialization == 112 zinput = cos(zold)*log(zold) elseif @initialization == 113 zinput = sinh(zold)*log(zold) else ; @initialization == 114 zinput = cosh(zold)*log(zold) endif ; initialization if @initperturb zinput = @initblend * zinput + initbcomp * zold endif ; @ifperturb if @trapvariant != 0 if @swaporder if @trapvariant == 1 ; flip zinput = flip(zinput) elseif @trapvariant == 2 ; conjugate zinput = conj(zinput) elseif @trapvariant == 3 ; flip conjugate zinput = flip(conj(zinput)) elseif @trapvariant == 4 ; negate zinput = -zinput elseif @trapvariant == 5 ; negate flip zinput = -flip(zinput) elseif @trapvariant == 6 ; negate conjugate zinput = -conj(zinput) elseif @trapvariant == 7 ; negate flip conj = conj flip zinput = -flip(conj(zinput)) endif ; trapvariant2 endif ; swaporder endif ; trapvariant1 if @operator != 0 if @operator == 1 ; multiplication zinput = zinput * @operatee elseif @operator == 2 ; addition zinput = zinput + @operatee elseif @operator == 3 ; subtraction zinput = zinput - @operatee elseif @operator == 4 ; division zinput = zinput / @operatee elseif @operator == 5 ; exponentiation zinput = zinput ^ @operatee elseif @operator == 6 ; subtraction2 zinput = @operatee - zinput elseif @operator == 7 ; division2 zinput = @operatee / zinput elseif @operator == 8 ; exponential2 zinput = @operatee ^ zinput elseif @operator == 9 ; logarithm zinput = log(zinput) / log(@operatee) elseif @operator == 10 ; logarithm2 zinput = log(@operatee) / log(zinput) endif ; operator2 endif ; operator1 if @trapvariant != 0 if !@swaporder if @trapvariant == 1 ; flip zinput = flip(zinput) elseif @trapvariant == 2 ; conjugate zinput = conj(zinput) elseif @trapvariant == 3 ; flip conjugate zinput = flip(conj(zinput)) elseif @trapvariant == 4 ; negate zinput = -zinput elseif @trapvariant == 5 ; negate flip zinput = -flip(zinput) elseif @trapvariant == 6 ; negate conjugate zinput = -conj(zinput) elseif @trapvariant == 7 ; negate flip conj = conj flip zinput = -flip(conj(zinput)) endif ; trapvariant2 endif ; swaporder endif ; trapvariant1 ; Normalize pixel to circle center ztemp = zinput - trapcenter if @history if @histype == 0 zold2 = ztemp - zold2, ztemp = zold2 elseif @histype == 1 zscratch = ztemp, ztemp = ztemp - zold2, zold2 = zscratch elseif @histype == 2 zscratch = ztemp, ztemp = ztemp - zveryold, zveryold = zold2, zold2 = zscratch endif ; histype endif ; history ; Save value for later turbulence zlast = ztemp ; Find coordinates and angle of point on circle closest to #z (zinput) zangle = atan2( ztemp ) if ( zangle < 0 ) zangle = zangle + twopi ; 0 <= zangle <= twopi endif ; zangle if @sprangle temp = zangle*@sprangfactor else temp = zangle endif ; @sprangle _color = rad + 0.1 * @waveamp * sin( @wavefreq * temp ) tempx = _color * cos( temp ), tempy = _color * sin( temp ) tempc = tempx + flip( tempy ) zold = tempc ; Now transmute the trapped point of the trapping curve if desired tempc = @tiscale * tempc if @transmogrify != 0 if ( @transmogrify == 1 ) tempc = 1/tempc elseif ( @transmogrify == 2 ) tempc = tempc * tempc elseif ( @transmogrify == 3 ) tempc = 1 / ( tempc * tempc ) elseif ( @transmogrify == 4 ) tempc = log(tempc) elseif ( @transmogrify == 5 ) tempc = exp( tempc) elseif ( @transmogrify == 6 ) tempc = tempc^tempc elseif ( @transmogrify == 7 ) tempc = sin( tempc ) elseif ( @transmogrify == 8 ) tempc = cos( tempc ) elseif ( @transmogrify == 9 ) tempc = tan( tempc ) elseif ( @transmogrify == 10 ) tempc = asin( tempc ) elseif ( @transmogrify == 11 ) tempc = acos( tempc ) elseif ( @transmogrify == 12 ) tempc = atan( tempc ) elseif ( @transmogrify == 13 ) tempc = sinh( tempc ) elseif ( @transmogrify == 14 ) tempc = cosh( tempc ) elseif ( @transmogrify == 15 ) tempc = tanh( tempc ) elseif ( @transmogrify == 16 ) tempc = asinh( tempc ) elseif ( @transmogrify == 17 ) tempc = acosh( tempc ) elseif ( @transmogrify == 18 ) tempc = atanh( tempc ) elseif ( @transmogrify == 19 ) tempc = log( 1/tempc ) elseif ( @transmogrify == 20 ) tempc = log( log( tempc )) elseif ( @transmogrify == 21 ) tempc = exp( -tempc ) elseif ( @transmogrify == 22 ) tempc = exp( 1/tempc ) elseif ( @transmogrify == 23 ) tempc = tempc^(-tempc) elseif ( @transmogrify == 24 ) tempc = sin( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 25 ) tempc = cos( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 26 ) tempc = tan( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 27 ) tempc = cotan( tempc ) elseif ( @transmogrify == 28 ) tempc = 1/cos( tempc ) elseif ( @transmogrify == 29 ) tempc = 1/sin( tempc ) elseif ( @transmogrify == 30 ) tempc = cotan( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 31 ) tempc = 1/cos( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 32 ) tempc = 1/sin( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 33 ) tempc = tempc^(tempc) tempc = tempc^tempc elseif ( @transmogrify == 34 ) tempc = tempc^(tempc) tempc = 1/( tempc^tempc ) elseif ( @transmogrify == 35 ) tempc = log(-tempc) elseif ( @transmogrify == 36 ) tempc = 1/log( tempc ) elseif ( @transmogrify == 37 ) tempc = tempc * log( tempc ) elseif ( @transmogrify == 38 ) tempc = sin( tempc ) / tempc elseif ( @transmogrify == 39 ) tempc = cos( tempc ) / tempc elseif ( @transmogrify == 40 ) tempc = sin( tempc ) * cos( tempc ) elseif ( @transmogrify == 41 ) tempc = sin( tempc^2 ) elseif ( @transmogrify == 42 ) tempc = exp( -1/tempc ) elseif ( @transmogrify == 43 ) tempc = tempc * exp( tempc ) elseif ( @transmogrify == 44 ) tempc = tempc * exp( -tempc ) elseif ( @transmogrify == 45 ) tempc = tempc * exp( 1/tempc ) elseif ( @transmogrify == 46 ) tempc = tempc * exp( -1/tempc ) elseif ( @transmogrify == 47 ) tempc = tempc * tempc * tempc elseif ( @transmogrify == 48 ) tempc = 1 / ( tempc * tempc * tempc ) elseif ( @transmogrify == 49 ) tempc = atan( 1 / tempc ) elseif ( @transmogrify == 50 ) tempc = acos( 1 / tempc ) elseif ( @transmogrify == 51 ) tempc = asin( 1 / tempc ) elseif ( @transmogrify == 52 ) tempc = tan( tempc ) / tempc elseif ( @transmogrify == 53 ) tempc = cotan( tempc ) / tempc elseif ( @transmogrify == 54 ) tempc = 1 / ( tempc * cos( tempc )) elseif ( @transmogrify == 55 ) tempc = 1 / ( tempc * sin( tempc )) elseif ( @transmogrify == 56 ) tempc = tempc * sin( tempc ) elseif ( @transmogrify == 57 ) tempc = tempc * cos( tempc ) elseif ( @transmogrify == 58 ) tempc = tempc * tan( tempc ) elseif ( @transmogrify == 59 ) tempc = tempc * cotan( tempc ) elseif ( @transmogrify == 60 ) tempc = tempc/cos( tempc ) elseif ( @transmogrify == 61 ) tempc = tempc/sin( tempc ) elseif ( @transmogrify == 62 ) tempc = sin( 1/tempc ) elseif ( @transmogrify == 63 ) tempc = cos( 1/tempc ) elseif ( @transmogrify == 64 ) tempc = tan( 1/tempc ) elseif ( @transmogrify == 65 ) tempc = cotan( 1/tempc ) elseif ( @transmogrify == 66 ) tempc = 1/cos( 1/tempc ) elseif ( @transmogrify == 67 ) tempc = 1/sin( 1/tempc ) elseif ( @transmogrify == 68 ) tempc = cotanh( tempc ) elseif ( @transmogrify == 69 ) tempc = 1/cosh( tempc ) elseif ( @transmogrify == 70 ) tempc = 1/sinh( tempc ) elseif ( @transmogrify == 71 ) tempc = atanh( 1/tempc ) elseif ( @transmogrify == 72 ) tempc = acosh( 1/tempc ) elseif ( @transmogrify == 73 ) tempc = asinh( 1/tempc ) elseif @transmogrify == 74 tempc = tempc^@tpower elseif @transmogrify == 75 tempc = sinh(tempc) tempc = tempc * tempc elseif @transmogrify == 76 tempc = cosh( tempc ) tempc = tempc * tempc elseif @transmogrify == 77 tempc = tanh(tempc) tempc = tempc * tempc elseif @transmogrify == 78 tempc = cotanh( tempc ) tempc = tempc * tempc elseif @transmogrify == 79 tempc = 1/cosh(tempc) tempc = tempc * tempc elseif @transmogrify == 80 tempc = 1 / sinh( tempc ) tempc = tempc * tempc elseif @transmogrify == 81 tempc = sinh(1/tempc) elseif @transmogrify == 82 tempc = cosh(1/tempc) elseif @transmogrify == 83 tempc = tanh(1/tempc) elseif @transmogrify == 84 tempc = cotanh(1/tempc) elseif @transmogrify == 85 tempc = 1/cosh(1/tempc) elseif @transmogrify == 86 tempc = 1/sinh(1/tempc) elseif @transmogrify == 87 tempc = sin( tempc ) * tan(tempc) elseif @transmogrify == 88 tempc = sinh(tempc) * tanh(tempc) elseif @transmogrify == 89 tempc = sinh(tempc) * cosh(tempc) elseif @transmogrify == 90 zscratch = cosh(tempc) tempc = sinh(tempc) tempc = tempc*tempc*zscratch*zscratch elseif @transmogrify == 91 zscratch = cosh(tempc) tempc = sin(tempc) tempc = tempc*tempc*zscratch*zscratch elseif @transmogrify == 92 tempc = 1/tempc tempc = sin(tempc)*cos(tempc) elseif @transmogrify == 93 tempc = sin( 1/tempc ) tempc = tempc*tempc elseif @transmogrify == 94 tempc = sin(tempc) * cos(1/tempc) elseif @transmogrify == 95 tempc = sin(tempc) * sin(1/tempc) elseif @transmogrify == 96 tempc = log(tempc) tempc = tempc*tempc elseif @transmogrify == 97 tempc = sin(tempc) * sin(2*tempc) elseif @transmogrify == 98 tempc = exp(2*tempc) elseif @transmogrify == 99 tempc = exp(-2*tempc) elseif @transmogrify == 100 tempc = 1/tempc tempc = sinh(tempc)*cosh(tempc) elseif @transmogrify == 101 tempc = sinh( 1/tempc ) tempc = tempc*tempc elseif @transmogrify == 102 tempc = sinh(tempc) * cosh(1/tempc) elseif @transmogrify == 103 tempc = sinh(tempc) * sinh(1/tempc) elseif @transmogrify == 104 tempc = sin(tempc) * sinh(tempc) elseif @transmogrify == 105 tempc = sin(tempc) * cosh(tempc) elseif @transmogrify == 106 zscratch = cosh(tempc) tempc = sin(tempc) tempc = tempc*tempc*zscratch*zscratch elseif @transmogrify == 107 tempc = sin(tempc)*exp(tempc) elseif @transmogrify == 108 tempc = cos(tempc)*exp(tempc) elseif @transmogrify == 109 tempc = sinh(tempc)*exp(tempc) elseif @transmogrify == 110 tempc = cosh(tempc)*exp(tempc) elseif @transmogrify == 111 tempc = sin(tempc)*log(tempc) elseif @transmogrify == 112 tempc = cos(tempc)*log(tempc) elseif @transmogrify == 113 tempc = sinh(tempc)*log(tempc) else ; @transmogrify == 114 tempc = cosh(tempc)*log(tempc) endif ; transmogrify2 endif ; transmogrify1 if @trapperturb tempc = @trapblend * tempc + trapbcomp * zold endif ; @trapperturb ; Initialize back end real, back end imag, if desired temp2 = @rbscale * real(tempc) if ( @realback == 0 ) tempx = temp2 elseif ( @realback == 1 ) tempx = 1/temp2 elseif ( @realback == 2 ) tempx = temp2 * temp2 elseif ( @realback == 3 ) tempx = 1 / ( temp2 * temp2 ) elseif ( @realback == 4 ) tempx = log(temp2) elseif ( @realback == 5 ) tempx = exp( temp2) elseif ( @realback == 6 ) tempx = temp2^temp2 elseif ( @realback == 7 ) tempx = sin( temp2 ) elseif ( @realback == 8 ) tempx = cos( temp2 ) elseif ( @realback == 9 ) tempx = tan( temp2 ) elseif ( @realback == 10 ) tempx = asin( temp2 ) elseif ( @realback == 11 ) tempx = acos( temp2 ) elseif ( @realback == 12 ) tempx = atan( temp2 ) elseif ( @realback == 13 ) tempx = sinh( temp2 ) elseif ( @realback == 14 ) tempx = cosh( temp2 ) elseif ( @realback == 15 ) tempx = tanh( temp2 ) elseif ( @realback == 16 ) tempx = asinh( temp2 ) elseif ( @realback == 17 ) tempx = acosh( temp2 ) elseif ( @realback == 18 ) tempx = atanh( temp2 ) elseif ( @realback == 19 ) tempx = log( 1/temp2 ) elseif ( @realback == 20 ) tempx = log( log( temp2 )) elseif ( @realback == 21 ) tempx = exp( -temp2 ) elseif ( @realback == 22 ) tempx = exp( 1/temp2 ) elseif ( @realback == 23 ) tempx = temp2^(-temp2) elseif ( @realback == 24 ) tempx = sin( temp2 ) tempx = tempx * tempx elseif ( @realback == 25 ) tempx = cos( temp2 ) tempx = tempx * tempx elseif ( @realback == 26 ) tempx = tan( temp2 ) tempx = tempx * tempx elseif ( @realback == 27 ) tempx = cotan( temp2 ) elseif ( @realback == 28 ) tempx = 1/cos( temp2 ) elseif ( @realback == 29 ) tempx = 1/sin( temp2 ) elseif ( @realback == 30 ) tempx = cotan( temp2 ) tempx = tempx * tempx elseif ( @realback == 31 ) tempx = 1/cos( temp2 ) tempx = tempx * tempx elseif ( @realback == 32 ) tempx = 1/sin( temp2 ) tempx = tempx * tempx elseif ( @realback == 33 ) tempx = temp2^(temp2) tempx = temp2^tempx elseif ( @realback == 34 ) tempx = temp2^(temp2) tempx = 1/( temp2^tempx ) elseif ( @realback == 35 ) tempx = log(-temp2) elseif ( @realback == 36 ) tempx = 1/log( temp2 ) elseif ( @realback == 37 ) tempx = temp2 * log( temp2 ) elseif ( @realback == 38 ) tempx = sin( temp2 ) / temp2 elseif ( @realback == 39 ) tempx = cos( temp2 ) / temp2 elseif ( @realback == 40 ) tempx = sin( temp2 ) * cos( temp2 ) elseif ( @realback == 41 ) tempx = sin( temp2^2 ) elseif ( @realback == 42 ) tempx = exp( -1/temp2 ) elseif ( @realback == 43 ) tempx = temp2 * exp( temp2 ) elseif ( @realback == 44 ) tempx = temp2 * exp( -temp2 ) elseif ( @realback == 45 ) tempx = temp2 * exp( 1/temp2 ) elseif ( @realback == 46 ) tempx = temp2 * exp( -1/temp2 ) elseif ( @realback == 47 ) tempx = temp2 * temp2 * temp2 elseif ( @realback == 48 ) tempx = 1 / ( temp2 * temp2 * temp2 ) elseif ( @realback == 49 ) tempx = atan( 1 / temp2 ) elseif ( @realback == 50 ) tempx = acos( 1 / temp2 ) elseif ( @realback == 51 ) tempx = asin( 1 / temp2 ) elseif ( @realback == 52 ) tempx = tan( temp2 ) / temp2 elseif ( @realback == 53 ) tempx = cotan( temp2 ) / temp2 elseif ( @realback == 54 ) tempx = 1 / ( temp2 * cos( temp2 )) elseif ( @realback == 55 ) tempx = 1 / ( temp2 * sin( temp2 )) elseif ( @realback == 56 ) tempx = temp2 * sin( temp2 ) elseif ( @realback == 57 ) tempx = temp2 * cos( temp2 ) elseif ( @realback == 58 ) tempx = temp2 * tan( temp2 ) elseif ( @realback == 59 ) tempx = temp2 * cotan( temp2 ) elseif ( @realback == 60 ) tempx = temp2/cos( temp2 ) elseif ( @realback == 61 ) tempx = temp2/sin( temp2 ) elseif ( @realback == 62 ) tempx = sin( 1/temp2 ) elseif ( @realback == 63 ) tempx = cos( 1/temp2 ) elseif ( @realback == 64 ) tempx = tan( 1/temp2 ) elseif ( @realback == 65 ) tempx = cotan( 1/temp2 ) elseif ( @realback == 66 ) tempx = 1/cos( 1/temp2 ) elseif ( @realback == 67 ) tempx = 1/sin( 1/temp2 ) elseif ( @realback == 68 ) tempx = cotanh( temp2 ) elseif ( @realback == 69 ) tempx = 1/cosh( temp2 ) elseif ( @realback == 70 ) tempx = 1/sinh( temp2 ) elseif ( @realback == 71 ) tempx = atanh( 1/temp2 ) elseif ( @realback == 72 ) tempx = acosh( 1/temp2 ) elseif ( @realback == 73 ) tempx = asinh( 1/temp2 ) elseif @realback == 74 tempx = temp2^@rbpower elseif @realback == 75 tempx = sinh(temp2) tempx = tempx * tempx elseif @realback == 76 tempx = cosh( temp2 ) tempx = tempx * tempx elseif @realback == 77 tempx = tanh(temp2) tempx = tempx * tempx elseif @realback == 78 tempx = cotanh( temp2 ) tempx = tempx * tempx elseif @realback == 79 tempx = 1/cosh(temp2) tempx = tempx * tempx elseif @realback == 80 tempx = 1 / sinh( temp2 ) tempx = tempx * tempx elseif @realback == 81 tempx = sinh(1/temp2) elseif @realback == 82 tempx = cosh(1/temp2) elseif @realback == 83 tempx = tanh(1/temp2) elseif @realback == 84 tempx = cotanh(1/temp2) elseif @realback == 85 tempx = 1/cosh(1/temp2) elseif @realback == 86 tempx = 1/sinh(1/temp2) elseif @realback == 87 tempx = sin( temp2 ) * tan(temp2) elseif @realback == 88 tempx = sinh(temp2) * tanh(temp2) elseif @realback == 89 tempx = sinh(temp2) * cosh(temp2) elseif @realback == 90 tempx = sinh(temp2), temp = cosh(temp2) tempx = tempx*tempx*temp*temp elseif @realback == 91 tempx = sin(temp2), temp = cos(temp2) tempx = tempx*tempx*temp*temp elseif @realback == 92 tempx = 1/temp2 tempx = sin(tempx)*cos(tempx) elseif @realback == 93 tempx = sin( 1/temp2 ) tempx = tempx*tempx elseif @realback == 94 tempx = sin(temp2) * cos(1/temp2) elseif @realback == 95 tempx = sin(temp2) * sin(1/temp2) elseif @realback == 96 tempx = log(temp2) tempx = tempx*tempx elseif @realback == 97 tempx = sin(temp2) * sin(2*temp2) elseif @realback == 98 tempx = exp(2*temp2) elseif @realback == 99 tempx = exp(-2*temp2) elseif @realback == 100 tempx = 1/temp2 tempx = sinh(tempx)*cosh(tempx) elseif @realback == 101 tempx = sinh( 1/temp2 ) tempx = tempx*tempx elseif @realback == 102 tempx = sinh(temp2) * cosh(1/temp2) elseif @realback == 103 tempx = sinh(temp2) * sinh(1/temp2) elseif @realback == 104 tempx = sin(temp2) * sinh(temp2) elseif @realback == 105 tempx = sin(temp2) * cosh(temp2) elseif @realback == 106 tempx = sin(temp2), temp = sinh(temp2) tempx = tempx*tempx*temp*temp elseif @realback == 107 tempx = sin(temp2)*exp(temp2) elseif @realback == 108 tempx = cos(temp2)*exp(temp2) elseif @realback == 109 tempx = sinh(temp2)*exp(temp2) elseif @realback == 110 tempx = cosh(temp2)*exp(temp2) elseif @realback == 111 tempx = sin(temp2)*log(temp2) elseif @realback == 112 tempx = cos(temp2)*log(temp2) elseif @realback == 113 tempx = sinh(temp2)*log(temp2) else ; @realback == 114 tempx = cosh(temp2)*log(temp2) endif ; realback if @rbperturb tempx = @rbblend * tempx + rbbcomp * real(tempc) endif ; @rbperturb temp2 = @ibscale * imag(tempc) if ( @imagback == 0 ) tempy = temp2 elseif ( @imagback == 1 ) tempy = 1/temp2 elseif ( @imagback == 2 ) tempy = temp2 * temp2 elseif ( @imagback == 3 ) tempy = 1 / ( temp2 * temp2 ) elseif ( @imagback == 4 ) tempy = log(temp2) elseif ( @imagback == 5 ) tempy = exp( temp2) elseif ( @imagback == 6 ) tempy = temp2^temp2 elseif ( @imagback == 7 ) tempy = sin( temp2 ) elseif ( @imagback == 8 ) tempy = cos( temp2 ) elseif ( @imagback == 9 ) tempy = tan( temp2 ) elseif ( @imagback == 10 ) tempy = asin( temp2 ) elseif ( @imagback == 11 ) tempy = acos( temp2 ) elseif ( @imagback == 12 ) tempy = atan( temp2 ) elseif ( @imagback == 13 ) tempy = sinh( temp2 ) elseif ( @imagback == 14 ) tempy = cosh( temp2 ) elseif ( @imagback == 15 ) tempy = tanh( temp2 ) elseif ( @imagback == 16 ) tempy = asinh( temp2 ) elseif ( @imagback == 17 ) tempy = acosh( temp2 ) elseif ( @imagback == 18 ) tempy = atanh( temp2 ) elseif ( @imagback == 19 ) tempy = log( 1/temp2 ) elseif ( @imagback == 20 ) tempy = log( log( temp2 )) elseif ( @imagback == 21 ) tempy = exp( -temp2 ) elseif ( @imagback == 22 ) tempy = exp( 1/temp2 ) elseif ( @imagback == 23 ) tempy = temp2^(-temp2) elseif ( @imagback == 24 ) tempy = sin( temp2 ) tempy = tempy * tempy elseif ( @imagback == 25 ) tempy = cos( temp2 ) tempy = tempy * tempy elseif ( @imagback == 26 ) tempy = tan( temp2 ) tempy = tempy * tempy elseif ( @imagback == 27 ) tempy = cotan( temp2 ) elseif ( @imagback == 28 ) tempy = 1/cos( temp2 ) elseif ( @imagback == 29 ) tempy = 1/sin( temp2 ) elseif ( @imagback == 30 ) tempy = cotan( temp2 ) tempy = tempy * tempy elseif ( @imagback == 31 ) tempy = 1/cos( temp2 ) tempy = tempy * tempy elseif ( @imagback == 32 ) tempy = 1/sin( temp2 ) tempy = tempy * tempy elseif ( @imagback == 33 ) tempy = temp2^(temp2) tempy = temp2^tempy elseif ( @imagback == 34 ) tempy = temp2^(temp2) tempy = 1/( temp2^tempy ) elseif ( @imagback == 35 ) tempy = log(-temp2) elseif ( @imagback == 36 ) tempy = 1/log( temp2 ) elseif ( @imagback == 37 ) tempy = temp2 * log( temp2 ) elseif ( @imagback == 38 ) tempy = sin( temp2 ) / temp2 elseif ( @imagback == 39 ) tempy = cos( temp2 ) / temp2 elseif ( @imagback == 40 ) tempy = sin( temp2 ) * cos( temp2 ) elseif ( @imagback == 41 ) tempy = sin( temp2^2 ) elseif ( @imagback == 42 ) tempy = exp( -1/temp2 ) elseif ( @imagback == 43 ) tempy = temp2 * exp( temp2 ) elseif ( @imagback == 44 ) tempy = temp2 * exp( -temp2 ) elseif ( @imagback == 45 ) tempy = temp2 * exp( 1/temp2 ) elseif ( @imagback == 46 ) tempy = temp2 * exp( -1/temp2 ) elseif ( @imagback == 47 ) tempy = temp2 * temp2 * temp2 elseif ( @imagback == 48 ) tempy = 1 / ( temp2 * temp2 * temp2 ) elseif ( @imagback == 49 ) tempy = atan( 1 / temp2 ) elseif ( @imagback == 50 ) tempy = acos( 1 / temp2 ) elseif ( @imagback == 51 ) tempy = asin( 1 / temp2 ) elseif ( @imagback == 52 ) tempy = tan( temp2 ) / temp2 elseif ( @imagback == 53 ) tempy = cotan( temp2 ) / temp2 elseif ( @imagback == 54 ) tempy = 1 / ( temp2 * cos( temp2 )) elseif ( @imagback == 55 ) tempy = 1 / ( temp2 * sin( temp2 )) elseif ( @imagback == 56 ) tempy = temp2 * sin( temp2 ) elseif ( @imagback == 57 ) tempy = temp2 * cos( temp2 ) elseif ( @imagback == 58 ) tempy = temp2 * tan( temp2 ) elseif ( @imagback == 59 ) tempy = temp2 * cotan( temp2 ) elseif ( @imagback == 60 ) tempy = temp2/cos( temp2 ) elseif ( @imagback == 61 ) tempy = temp2/sin( temp2 ) elseif ( @imagback == 62 ) tempy = sin( 1/temp2 ) elseif ( @imagback == 63 ) tempy = cos( 1/temp2 ) elseif ( @imagback == 64 ) tempy = tan( 1/temp2 ) elseif ( @imagback == 65 ) tempy = cotan( 1/temp2 ) elseif ( @imagback == 66 ) tempy = 1/cos( 1/temp2 ) elseif ( @imagback == 67 ) tempy = 1/sin( 1/temp2 ) elseif ( @imagback == 68 ) tempy = cotanh( temp2 ) elseif ( @imagback == 69 ) tempy = 1/cosh( temp2 ) elseif ( @imagback == 70 ) tempy = 1/sinh( temp2 ) elseif ( @imagback == 71 ) tempy = atanh( 1/temp2 ) elseif ( @imagback == 72 ) tempy = acosh( 1/temp2 ) elseif ( @imagback == 73 ) tempy = asinh( 1/temp2 ) elseif @imagback == 74 tempy = temp2^@ibpower elseif @imagback == 75 tempy = sinh(temp2) tempy = tempy * tempy elseif @imagback == 76 tempy = cosh( temp2 ) tempy = tempy * tempy elseif @imagback == 77 tempy = tanh(temp2) tempy = tempy * tempy elseif @imagback == 78 tempy = cotanh( temp2 ) tempy = tempy * tempy elseif @imagback == 79 tempy = 1/cosh(temp2) tempy = tempy * tempy elseif @imagback == 80 tempy = 1 / sinh( temp2 ) tempy = tempy * tempy elseif @imagback == 81 tempy = sinh(1/temp2) elseif @imagback == 82 tempy = cosh(1/temp2) elseif @imagback == 83 tempy = tanh(1/temp2) elseif @imagback == 84 tempy = cotanh(1/temp2) elseif @imagback == 85 tempy = 1/cosh(1/temp2) elseif @imagback == 86 tempy = 1/sinh(1/temp2) elseif @imagback == 87 tempy = sin( temp2 ) * tan(temp2) elseif @imagback == 88 tempy = sinh(temp2) * tanh(temp2) elseif @imagback == 89 tempy = sinh(temp2) * cosh(temp2) elseif @imagback == 90 tempy = sinh(temp2), temp = cosh(temp2) tempy = tempy*tempy*temp*temp elseif @imagback == 91 tempy = sin(temp2), temp = cos(temp2) tempy = tempy*tempy*temp*temp elseif @imagback == 92 tempy = 1/temp2 tempy = sin(tempy)*cos(tempy) elseif @imagback == 93 tempy = sin( 1/temp2 ) tempy = tempy*tempy elseif @imagback == 94 tempy = sin(temp2) * cos(1/temp2) elseif @imagback == 95 tempy = sin(temp2) * sin(1/temp2) elseif @imagback == 96 tempy = log(temp2) tempy = tempy*tempy elseif @imagback == 97 tempy = sin(temp2) * sin(2*temp2) elseif @imagback == 98 tempy = exp(2*temp2) elseif @imagback == 99 tempy = exp(-2*temp2) elseif @imagback == 100 tempy = 1/temp2 tempy = sinh(tempy)*cosh(tempy) elseif @imagback == 101 tempy = sinh( 1/temp2 ) tempy = tempy*tempy elseif @imagback == 102 tempy = sinh(temp2) * cosh(1/temp2) elseif @imagback == 103 tempy = sinh(temp2) * sinh(1/temp2) elseif @imagback == 104 tempy = sin(temp2) * sinh(temp2) elseif @imagback == 105 tempy = sin(temp2) * cosh(temp2) elseif @imagback == 106 tempy = sin(temp2), temp = sinh(temp2) tempy = tempy*tempy*temp*temp elseif @imagback == 107 tempy = sin(temp2)*exp(temp2) elseif @imagback == 108 tempy = cos(temp2)*exp(temp2) elseif @imagback == 109 tempy = sinh(temp2)*exp(temp2) elseif @imagback == 110 tempy = cosh(temp2)*exp(temp2) elseif @imagback == 111 tempy = sin(temp2)*log(temp2) elseif @imagback == 112 tempy = cos(temp2)*log(temp2) elseif @imagback == 113 tempy = sinh(temp2)*log(temp2) else ; @imagback == 114 tempy = cosh(temp2)*log(temp2) endif ; imagback if @ibperturb tempy = @ibblend * tempy + ibbcomp * imag(tempc) endif ; @ibperturb tempc = tempx + flip(tempy) ; To find angle of point on circle, we will translate point back to its original home cangle = atan2( tempc + trapcenter ) if ( cangle < 0 ) cangle = cangle + twopi endif ; cangle if @twavy if @twavmode == 0 ; radial mode temp = cabs( tempc ) temp = temp + @twavamp * temp * sin( @twavfreq * cangle ) ; vary radius tempc = temp * exp( flip( cangle )) ; compute new tempc else ; tangential mode tempx = cabs( tempc ) temp = cangle + @twavamp * cangle * sin( @twavfreq * tempx ) ; vary azimuth tempc = tempx * exp( flip( temp )) ; compute new tempc cangle = temp endif ; @twavmode endif ; @twavy if @pointmode ; compare subsequent values to first trap point on trap graph if itrapped != 0 ; some point must have already been trapped tempc = ctrapped endif; itrapped endif ; @pointmode ; Save value for later turbulence tlast = tempc if @swapflavor zscratch = ztemp else zscratch = #z endif ; swapflavor if ( @trapmode == 0 ) ; distance test = cabs( ztemp - tempc ) elseif ( @trapmode == 1 ) ; angle test = zangle elseif ( @trapmode == 2 ) ; trap angle test = cangle elseif ( @trapmode == 3 ) ; difference angle test = abs( zangle - cangle ) elseif ( @trapmode == 4 ) ; magnitude test = cabs( ztemp + trapcenter ) elseif ( @trapmode == 5 ) ; trap magnitude test = cabs( tempc + trapcenter ) elseif ( @trapmode == 6 ) ; real test = abs( real( ztemp )) elseif ( @trapmode == 7 ) ; imaginary test = abs( imag( ztemp )) elseif ( @trapmode == 8 ) ; trap real test = abs( real( tempc )) elseif ( @trapmode == 9 ) ; trap imaginary test = abs( imag( tempc )) elseif ( @trapmode == 10 ) ; sum test = cabs( zscratch + tempc ) elseif ( @trapmode == 11 ) ; difference test = cabs( zscratch - tempc) elseif ( @trapmode == 12 ) ; product test = cabs( zscratch * tempc ) elseif ( @trapmode == 13 ) ; quotient 1 test = cabs( zscratch / tempc ) elseif ( @trapmode == 14 ) ; quotient 2 test = cabs( tempc / zscratch ) elseif ( @trapmode == 15 ) ; power 1 test = cabs( zscratch ^ tempc ) elseif ( @trapmode == 16 ) ; power 2 test = cabs( tempc ^ zscratch ) elseif ( @trapmode == 17 ) ; arithmetic mean test = cabs( (zscratch + tempc)/2 ) elseif ( @trapmode == 18 ) ; geometric mean test = cabs( sqrt( zscratch * tempc )) elseif ( @trapmode == 19 ) ; angle 2 test = atan2( zscratch - tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 20 ) ; angle 3 test = atan2( zscratch + tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 21 ) ; angle 4 test = atan2( zscratch * tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 22 ) ; angle 5 test = atan2( zscratch / tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 23 ) ; angle 6 test = atan2( tempc / zscratch ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 24 ) ; angle 7 test = atan2( zscratch ^ tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 25 ) ; angle 8 test = atan2( tempc ^ zscratch ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 26 ) ; real 2 test = abs( real( zscratch - tempc )) elseif ( @trapmode == 27 ) ; real 3 test = abs( real( zscratch + tempc )) elseif ( @trapmode == 28 ) ; real 4 test = abs( real( zscratch * tempc )) elseif ( @trapmode == 29 ) ; real 5 test = abs( real( zscratch / tempc )) elseif ( @trapmode == 30 ) ; real 6 test = abs( real( tempc / zscratch )) elseif ( @trapmode == 31 ) ; real 7 test = abs( real( zscratch ^ tempc )) elseif ( @trapmode == 32 ) ; real 8 test = abs( real( tempc ^ zscratch )) elseif ( @trapmode == 33 ) ; imag 2 test = abs( imag( zscratch - tempc )) elseif ( @trapmode == 34 ) ; imag 3 test = abs( imag( zscratch + tempc )) elseif ( @trapmode == 35 ) ; imag 4 test = abs( imag( zscratch * tempc )) elseif ( @trapmode == 36 ) ; imag 5 test = abs( imag( zscratch / tempc )) elseif ( @trapmode == 37 ) ; imag 6 test = abs( imag( tempc / zscratch )) elseif ( @trapmode == 38 ) ; imag 7 test = abs( imag( zscratch ^ tempc )) elseif ( @trapmode == 39 ) ; imag 8 test = abs( imag( tempc ^ zscratch )) endif ; trapmode if ( @whattotrap == 0 ) ; minimum if ( test < trapped1 ) trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 1 ) ; maximum if ( test > trapped1 ) trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 2 ) ; 2nd minimum if ( test < trapped1 ) trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 3 ) ; 3rd minimum if ( test < trapped1 ) trapped3 = trapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, catrapped3 = catrapped2 ztrapped3 = ztrapped2, zttrapped3 = zttrapped2, ctrapped3 = ctrapped2 trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 4 ) ; 4th minimum if ( test < trapped1 ) trapped4 = trapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, catrapped4 = catrapped3 ztrapped4 = ztrapped3, zttrapped4 = zttrapped3, ctrapped4 = ctrapped3 trapped3 = trapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, catrapped3 = catrapped2 ztrapped3 = ztrapped2, zttrapped3 = zttrapped2, ctrapped3 = ctrapped2 trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 5 ) ; 2nd maximum if ( test > trapped1 ) trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 6 ) ; 3rd maximum if ( test > trapped1 ) trapped3 = trapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, catrapped3 = catrapped2 ztrapped3 = ztrapped2, zttrapped3 = zttrapped2, ctrapped3 = ctrapped2 trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 7 ) ; 4th maximum if ( test > trapped1 ) trapped4 = trapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, catrapped4 = catrapped3 ztrapped4 = ztrapped3, zttrapped4 = zttrapped3, ctrapped4 = ctrapped3 trapped3 = trapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, catrapped3 = catrapped2 ztrapped3 = ztrapped2, zttrapped3 = zttrapped2, ctrapped3 = ctrapped2 trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 8 ) ; 1st to dip below threshold value if ( itrapped == 0 ) ; nothing trapped yet if ( test < thresh ) if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc elseif test > innerradius trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc endif ; ringstyle endif ; ztest endif ; itrapped elseif ( @whattotrap == 9 ) ; last to dip below threshold --- just store them all if ( test < thresh ) if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE elseif test > innerradius trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; ringstyle endif ; ztest elseif ( @whattotrap == 10 ) ; count dips below threshold --- store the last if ( test < thresh ) count = count + 1 if !@ringstyle trapped1 = count * test, itrapped = count * iter zatrapped = count * zangle, catrapped = count * cangle ztrapped = count * #z, zttrapped = count * ztemp ctrapped = count * tempc, trapped = TRUE elseif test > innerradius trapped1 = count * test, itrapped = count * iter zatrapped = count * zangle, catrapped = count * cangle ztrapped = count * #z, zttrapped = count * ztemp ctrapped = count * tempc, trapped = TRUE endif ; ringstyle endif ; ztest elseif ( @whattotrap == 11 ) ; 2nd to dip below threshold value if ( test < thresh ) if ( itrapped == 0 ) ; nothing trapped yet, set flag for next time itrapped = -1, trapped = TRUE elseif itrapped == -1 ; must be the 2nd threshold value if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc elseif test > innerradius trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc endif ; ringstyle endif ; itrapped endif ; test elseif ( @whattotrap == 12 ) ; 1st to exceed threshold limit if ( itrapped == 0 ) ; nothing trapped yet if ( test > thresh ) if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc elseif test < innerradius ; really an outer radius for limits trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc endif ; ringstyle endif ; ztest endif ; itrapped elseif ( @whattotrap == 13 ) ; 2nd to exceed threshold limit if ( test > thresh ) if ( itrapped == 0 ) ; nothing trapped yet, set flag for next time itrapped = -1, trapped = TRUE elseif itrapped == -1 ; must be the 2nd threshold value if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc elseif test < innerradius ; really an outer radius trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc endif ; ringstyle endif ; itrapped endif ; test elseif ( @whattotrap == 14 ) ; last to exceed threshold --- just store them all if ( test > thresh ) if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE elseif test < innerradius ; really an outer radius for limits trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; ringstyle endif ; ztest elseif @whattotrap > 14 ; maximum/minimum combos; need to find & store both ; trapped2 will hold he max, trapped1 the min if test < trapped1 ; is it a new min? trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE elseif test > trapped2 ; is it a new max? trapped2 = test, itrapped2 = iter, zatrapped2 = zangle, catrapped2 = cangle ztrapped2 = #z, zttrapped2 = ztemp, ctrapped2 = tempc, trapped = TRUE endif ; test endif ; whattotrap if ( @varymode == 0 ) ; feedback only on iterations where something was trapped vary = trapped elseif ( @varymode == 1 ) ; feedback when nothing was trapped vary = !trapped else ; feedback on each iteration, if enabled for a given parameter vary = TRUE endif ; varymode trapped = FALSE ; reset flag for next iteration if vary ; test to see if any parameters should be varied float value = 0.0 if @oldstyle value = cabs(ctrapped) sign = real(ctrapped)/abs(real(ctrapped)) else value = cabs(ztemp) sign = real(ztemp)/abs(real(ztemp)) endif ; oldstyle if @varyradius rad = rad + radstep * rad * value * sign endif ; varyradius if @varycenter tempx = real(trapcenter) + centerstep * real(trapcenter) * value \ * sign tempy = imag(trapcenter) + centerstep * imag(trapcenter) * value \ * sign trapcenter = tempx + flip( tempy ) endif ; varycenter if @varythresh thresh = thresh + threshstep * thresh * value * sign if @ringstyle if @whattotrap < 12 innerradius = thresh - rwidth else innerradius = thresh + rwidth endif ; whattotrap endif ; ringstyle endif ; varythresh if @varyrwidth rwidth = rwidth + ringstep * rwidth * value * sign if @whattotrap < 12 innerradius = thresh - rwidth else innerradius = thresh + rwidth endif ; whattotrap endif ; varyrwidth if @varyspread spread = spread + spreadstep * spread * value * sign endif ; varyspread if @varyturb turbulamount = turbulamount + turbstep * turbulamount * value * sign endif ; varyturb endif ; vary endif ; iter final: if ( itrapped != 0 ) ; something has been trapped if (( @whattotrap == 2 ) || ( @whattotrap == 5 )) ; we need to swap some values ; so we will plot the right thing trapped1 = trapped2, itrapped = itrapped2, zatrapped = zatrapped2, catrapped = catrapped2 ztrapped = ztrapped2, zttrapped = zttrapped2, ctrapped = ctrapped2 elseif (( @whattotrap == 3 ) || ( @whattotrap == 6 )) trapped1 = trapped3, itrapped = itrapped3, zatrapped = zatrapped3, catrapped = catrapped3 ztrapped = ztrapped3, zttrapped = zttrapped3, ctrapped = ctrapped3 elseif (( @whattotrap == 4 ) || ( @whattotrap == 7 )) trapped1 = trapped4, itrapped = itrapped4, zatrapped = zatrapped4, catrapped = catrapped4 ztrapped = ztrapped4, zttrapped = zttrapped4, ctrapped = ctrapped4 elseif @whattotrap == 15 ; max-min trapped1 = trapped2-trapped1, itrapped = itrapped2-itrapped zatrapped = zatrapped2-zatrapped, catrapped = catrapped2-catrapped ztrapped = ztrapped2-ztrapped, zttrapped = zttrapped2-zttrapped ctrapped = ctrapped2-ctrapped elseif @whattotrap == 16 ; max+min trapped1 = trapped2+trapped1, itrapped = itrapped2+itrapped zatrapped = zatrapped2+zatrapped, catrapped = catrapped2+catrapped ztrapped = ztrapped2+ztrapped, zttrapped = zttrapped2+zttrapped ctrapped = ctrapped2+ctrapped elseif @whattotrap == 17 ; max*min trapped1 = trapped2*trapped1, itrapped = itrapped2*itrapped zatrapped = zatrapped2*zatrapped, catrapped = catrapped2*catrapped ztrapped = ztrapped2*ztrapped, zttrapped = zttrapped2*zttrapped ctrapped = ctrapped2*ctrapped elseif @whattotrap == 18 ; max/min trapped1 = trapped2/trapped1, itrapped = round(itrapped2/itrapped) zatrapped = zatrapped2/zatrapped, catrapped = catrapped2/catrapped ztrapped = ztrapped2/ztrapped, zttrapped = zttrapped2/zttrapped ctrapped = ctrapped2/ctrapped elseif @whattotrap == 19 ; max^min trapped1 = trapped2^trapped1, itrapped = round(itrapped2^itrapped) zatrapped = zatrapped2^zatrapped, catrapped = catrapped2^catrapped ztrapped = ztrapped2^ztrapped, zttrapped = zttrapped2^zttrapped ctrapped = ctrapped2^ctrapped elseif @whattotrap == 20 ; min-max trapped1 = trapped1-trapped2, itrapped = itrapped-itrapped2 zatrapped = zatrapped-zatrapped2, catrapped = catrapped-catrapped2 ztrapped = ztrapped-ztrapped2, zttrapped = zttrapped-zttrapped2 ctrapped = ctrapped-ctrapped2 elseif @whattotrap == 21 ; min/max trapped1 = trapped1/trapped2, itrapped = round(itrapped/itrapped2) zatrapped = zatrapped/zatrapped2, catrapped = catrapped/catrapped2 ztrapped = ztrapped/ztrapped2, zttrapped = zttrapped/zttrapped2 ctrapped = ctrapped/ctrapped2 elseif @whattotrap == 22 ; min^max trapped1 = trapped1^trapped2, itrapped = round(itrapped^itrapped2) zatrapped = zatrapped^zatrapped2, catrapped = catrapped^catrapped2 ztrapped = ztrapped^ztrapped2, zttrapped = zttrapped^zttrapped2 ctrapped = ctrapped^ctrapped2 elseif @whattotrap == 23 ; average: (max+min)/2 trapped1 = (trapped1+trapped2)/2, itrapped = trunc((itrapped+itrapped2)/2) zatrapped = (zatrapped+zatrapped2)/2, catrapped = (catrapped+catrapped2)/2 ztrapped = (ztrapped+ztrapped2)/2, zttrapped = (zttrapped+zttrapped2)/2 ctrapped = (ctrapped+ctrapped2)/2 endif ; whattotrap ; Figure amount of 'random' turbulence if @turb1 || @turb2 || @turb3 || @turb4 || @turb5 || @turb6 float ca1 = float ca2 = float ca3 = float ca4 = float ca5 = float ca6 = 0.0 zinput = tlast*zlast*#random temp = cabs(zinput) if round(719*temp) % 2 == 0 ; 'random' sign sign = 1 else sign = -1 endif ; round if @turb1 ; product1 ca1 = turbulamount * 0.1 * sign * ((real(tlast)*real(tlast))/|tlast|) \ * ((real(zlast)*real(zlast))/|zlast|) endif ; turb1 if @turb2 ; random ca2 = turbulamount * 0.1 * sign * real(#random) endif ; turb2 if @turb3 ; fBm --- adapted from formulas of dmj, mt, and others complex br = (0,1) ^ (@bangle / 90.0) complex br2 = (0,1) ^ (@banglestep / 90.0) complex bp = zlast * @bscale * br float bsum = 0.0 float bfreq = 1.0 int bi = @boctaves while (bi > 0) float bx0 = floor(real(bp)) % 256 float by0 = floor(imag(bp)) % 256 if bx0 < 0 bx0 = bx0 + 256 endif ; bx0 if by0 < 0 by0 = by0 + 256 endif ; by0 float bx1 = (bx0 + 1) % 256 float by1 = (by0 + 1) % 256 float rx0 = real(bp) - floor(real(bp)) float ry0 = imag(bp) - floor(imag(bp)) float rx1 = rx0 - 1 float ry1 = ry0 - 1 float b00 = (bx0^@bpower % 65536 + by0)^@bpower % 65536 float b10 = (bx1^@bpower % 65536 + by0)^@bpower % 65536 float b01 = (bx0^@bpower % 65536 + by1)^@bpower % 65536 float b11 = (bx1^@bpower % 65536 + by1)^@bpower % 65536 float g_b00_0 = (b00)^@bpower*0.25 % 512 - 256 float g_b10_0 = (b10)^@bpower*0.25 % 512 - 256 float g_b01_0 = (b01)^@bpower*0.25 % 512 - 256 float g_b11_0 = (b11)^@bpower*0.25 % 512 - 256 float g_b00_1 = (b00+1)^@bpower*0.25 % 512 - 256 float g_b10_1 = (b10+1)^@bpower*0.25 % 512 - 256 float g_b01_1 = (b01+1)^@bpower*0.25 % 512 - 256 float g_b11_1 = (b11+1)^@bpower*0.25 % 512 - 256 float bd = 0.0 bd = 1 / sqrt(sqr(g_b00_0) + sqr(g_b00_1)) g_b00_0 = g_b00_0 * bd g_b00_1 = g_b00_1 * bd bd = 1 / sqrt(sqr(g_b10_0) + sqr(g_b10_1)) g_b10_0 = g_b10_0 * bd g_b10_1 = g_b10_1 * bd bd = 1 / sqrt(sqr(g_b01_0) + sqr(g_b01_1)) g_b01_0 = g_b01_0 * bd g_b01_1 = g_b01_1 * bd bd = 1 / sqrt(sqr(g_b11_0) + sqr(g_b11_1)) g_b11_0 = g_b11_0 * bd g_b11_1 = g_b11_1 * bd float u1 = rx0 * g_b00_0 + ry0 * g_b00_1 float v1 = rx1 * g_b10_0 + ry0 * g_b10_1 float u2 = rx0 * g_b01_0 + ry1 * g_b01_1 float v2 = rx1 * g_b11_0 + ry1 * g_b11_1 float sx = sqr(rx0) * (3 - rx0*2) float sy = sqr(ry0) * (3 - ry0*2) float ba = u1 + sx*(v1-u1) float bb = u2 + sx*(v2-u2) bsum = bsum + (ba + sy*(bb-ba))* bfreq bfreq = bfreq * @bstep bp = bp * br2 / @bstep bi = bi - 1 endwhile ; bi ca3 = turbulamount * (bsum + 1) * 0.5 endif ; turb3 if @turb4 ; sin ca4 = turbulamount * 0.1 * sign * ((sin(817*real(zinput))+1)/2) endif ; turb4 if @turb5 ; log ca5 = turbulamount * 0.1 * sign * log(((temp-trunc(temp))*(#e-1))+1) endif ; turb5 if @turb6 ; vectors tempx = trunc(real(zinput)), tempy = trunc(imag(zinput)) float tempx1 = tempx + 1, float tempy1 = tempy + 1 complex t00 = tempx + flip(tempy), complex t10 = tempx1 + flip(tempy) complex t01 = tempx + flip(tempy1), complex t11 = tempx1 + flip(tempy1) tempx = trunc(real(zlast)), tempy = trunc(imag(zlast)) tempx1 = tempx + 1, tempy1 = tempy + 1 complex z00 = tempx + flip(tempy), complex z10 = tempx1 + flip(tempy) complex z01 = tempx + flip(tempy1), complex z11 = tempx1 + flip(tempy1) if real(tlast) >= 0 ; + if imag(tlast) >= 0 ; + if real(zlast) >= 0 ; + if imag(zlast) >= 0 ; + temp = cabs(z00-t00) else ; - temp = cabs(z00-t10) endif else ; - if imag(zlast) >= 0 ; + temp = cabs(z00-t01) else ; - temp = cabs(z00-t11) endif endif else ; - if real(zlast) >= 0 ; + if imag(zlast) >= 0 ; + temp = cabs(z01-t00) else ; - temp = cabs(z01-t10) endif else ; - if imag(zlast) >= 0 ; + temp = cabs(z01-t01) else ; - temp = cabs(z01-t11) endif endif endif else ; - if imag(tlast) >= 0 ; + if real(zlast) >= 0 ; + if imag(zlast) >= 0 ; + temp = cabs(z10-t00) else ; - temp = cabs(z10-t10) endif else ; - if imag(zlast) >= 0 ; + temp = cabs(z10-t01) else ; - temp = cabs(z10-t11) endif endif else ; - if real(zlast) >= 0 ; + if imag(zlast) >= 0 ; + temp = cabs(z11-t00) else ; - temp = cabs(z11-t10) endif else ; - if imag(zlast) >= 0 ; + temp = cabs(z11-t01) else ; - temp = cabs(z11-t11) endif endif endif endif ca6 = turbulamount * 0.1 * sign * temp/cabs(zlast-tlast) endif ; turb6 _coloradjust = ca1 + ca2 + ca3 + ca4 + ca5 + ca6 endif ; turb1 || turb2... if ( @colorby == 0 ) ; distance temp = cabs( zttrapped - ctrapped ) if @mask if temp < @maskthresh #solid = TRUE else _color = 3.0 * spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = 3.0 * spread * temp endif ; temp else _color = 3.0 * spread * temp endif ; @mask elseif ( @colorby == 1 ) ; iteration if @mask if itrapped < @maskthresh #solid = TRUE else _color = 0.3 * spread * itrapped endif ; temp elseif @revmask if itrapped > @maskthresh #solid = TRUE else _color = 0.3 * spread * itrapped endif ; temp else _color = 0.3 * spread * itrapped endif ; @mask elseif ( @colorby == 2 ) ; magnitude temp = cabs( ztrapped) if @mask if temp < @maskthresh #solid = TRUE else _color = 0.25 * spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = 0.25 * spread * temp endif ; temp else _color = 0.25 * spread * temp endif ; @mask elseif ( @colorby == 3 ) ; test if @mask if trapped1 < @maskthresh #solid = TRUE else _color = spread * trapped1 endif ; trapped1 elseif @revmask if trapped1 > @maskthresh #solid = TRUE else _color = spread * trapped1 endif ; trapped1 else _color = spread * trapped1 endif ; @mask elseif ( @colorby == 4 ) ; trap magnitude temp = cabs(ctrapped) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 5 ) ; angle temp = atan2( ztrapped ) if ( temp < 0 ) temp = temp + twopi endif ; temp if @mask if temp < @maskthresh #solid = TRUE else _color = ( spread * temp ) / twopi endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = ( spread * temp ) / twopi endif ; temp else _color = ( spread * temp ) / twopi endif ; @mask elseif ( @colorby == 6 ) ; trap angle if @mask if catrapped < @maskthresh #solid = TRUE else _color = ( spread * catrapped ) / twopi endif ; catrapped elseif @revmask if catrapped > @maskthresh #solid = TRUE else _color = ( spread * catrapped ) / twopi endif ; catrapped else _color = ( spread * catrapped ) / twopi endif ; @mask elseif ( @colorby == 7 ) ; modulated magnitude temp = cabs(zttrapped) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 8 ) ; modulated angle if @mask if zatrapped < @maskthresh #solid = TRUE else _color = ( spread * zatrapped ) / twopi endif ; zatrapped elseif @revmask if zatrapped > @maskthresh #solid = TRUE else _color = ( spread * zatrapped ) / twopi endif ; zatrapped else _color = ( spread * zatrapped ) / twopi endif ; @mask elseif ( @colorby == 9 ) ; real temp = abs( real( ztrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 10 ) ; trap real temp = abs( real( ctrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 11 ) ; modulated real temp = abs( real( zttrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 12 ) ; imaginary temp = abs( imag( ztrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 13 ) ; trap imaginary temp = abs( imag( ctrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 14 ) ; modulated imaginary temp = abs( imag( zttrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 15 ) ; raw distance (distance to #z, not ztemp) temp = cabs( ztrapped - ctrapped ) if @mask if temp < @maskthresh #solid = TRUE else _color = 3.0 * spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = 3.0 * spread * temp endif ; temp else _color = 3.0 * spread * temp endif ; @mask endif ; _colorby if @ranges == 1 _color = _color + _coloradjust else if !@hideranges _color = ((_color + _coloradjust) + (itrapped % @ranges) ) / @ranges else temp = itrapped % @ranges if temp != @showrange #solid = TRUE else _color = ((_color + _coloradjust) + temp ) / @ranges endif ; temp endif ; hideranges endif ; ranges if ( @colorwarp == 0 ) temp = _color elseif ( @colorwarp == 1 ) temp = 1/_color elseif ( @colorwarp == 2 ) temp = _color * _color elseif ( @colorwarp == 3 ) temp = 1 / ( _color * _color ) elseif ( @colorwarp == 4 ) temp = log(_color) elseif ( @colorwarp == 5 ) temp = exp( _color) elseif ( @colorwarp == 6 ) temp = _color^_color elseif ( @colorwarp == 7 ) temp = sin( _color ) elseif ( @colorwarp == 8 ) temp = cos( _color ) elseif ( @colorwarp == 9 ) temp = tan( _color ) elseif ( @colorwarp == 10 ) temp = asin( _color ) elseif ( @colorwarp == 11 ) temp = acos( _color ) elseif ( @colorwarp == 12 ) temp = atan( _color ) elseif ( @colorwarp == 13 ) temp = sinh( _color ) elseif ( @colorwarp == 14 ) temp = cosh( _color ) elseif ( @colorwarp == 15 ) temp = tanh( _color ) elseif ( @colorwarp == 16 ) temp = asinh( _color ) elseif ( @colorwarp == 17 ) temp = acosh( _color ) elseif ( @colorwarp == 18 ) temp = atanh( _color ) elseif ( @colorwarp == 19 ) temp = log( 1/_color ) elseif ( @colorwarp == 20 ) temp = log( log( _color )) elseif ( @colorwarp == 21 ) temp = exp( -_color ) elseif ( @colorwarp == 22 ) temp = exp( 1/_color ) elseif ( @colorwarp == 23 ) temp = _color^(-_color) elseif ( @colorwarp == 24 ) temp = sin( _color ) temp = temp * temp elseif ( @colorwarp == 25 ) temp = cos( _color ) temp = temp * temp elseif ( @colorwarp == 26 ) temp = tan( _color ) temp = temp * temp elseif ( @colorwarp == 27 ) temp = cotan( _color ) elseif ( @colorwarp == 28 ) temp = 1/cos( _color ) elseif ( @colorwarp == 29 ) temp = 1/sin( _color ) elseif ( @colorwarp == 30 ) temp = cotan( _color ) temp = temp * temp elseif ( @colorwarp == 31 ) temp = 1/cos( _color ) temp = temp * temp elseif ( @colorwarp == 32 ) temp = 1/sin( _color ) temp = temp * temp elseif ( @colorwarp == 33 ) temp = _color^(_color) temp = _color^temp elseif ( @colorwarp == 34 ) temp = _color^(_color) temp = 1/( _color^temp ) elseif ( @colorwarp == 35 ) temp = log(-_color) elseif ( @colorwarp == 36 ) temp = 1/log( _color ) elseif ( @colorwarp == 37 ) temp = _color * log( _color ) elseif ( @colorwarp == 38 ) temp = sin( _color ) / _color elseif ( @colorwarp == 39 ) temp = cos( _color ) / _color elseif ( @colorwarp == 40 ) temp = sin( _color ) * cos( _color ) elseif ( @colorwarp == 41 ) temp = sin( _color^2 ) elseif ( @colorwarp == 42 ) temp = exp( -1/_color ) elseif ( @colorwarp == 43 ) temp = _color * exp( _color ) elseif ( @colorwarp == 44 ) temp = _color * exp( -_color ) elseif ( @colorwarp == 45 ) temp = _color * exp( 1/_color ) elseif ( @colorwarp == 46 ) temp = _color * exp( -1/_color ) elseif ( @colorwarp == 47 ) temp = _color * _color * _color elseif ( @colorwarp == 48 ) temp = 1 / ( _color * _color * _color ) elseif ( @colorwarp == 49 ) temp = atan( 1 / _color ) elseif ( @colorwarp == 50 ) temp = acos( 1 / _color ) elseif ( @colorwarp == 51 ) temp = asin( 1 / _color ) elseif ( @colorwarp == 52 ) temp = tan( _color ) / _color elseif ( @colorwarp == 53 ) temp = cotan( _color ) / _color elseif ( @colorwarp == 54 ) temp = 1 / ( _color * cos( _color )) elseif ( @colorwarp == 55 ) temp = 1 / ( _color * sin( _color )) elseif ( @colorwarp == 56 ) temp = _color * sin( _color ) elseif ( @colorwarp == 57 ) temp = _color * cos( _color ) elseif ( @colorwarp == 58 ) temp = _color * tan( _color ) elseif ( @colorwarp == 59 ) temp = _color * cotan( _color ) elseif ( @colorwarp == 60 ) temp = _color/cos( _color ) elseif ( @colorwarp == 61 ) temp = _color/sin( _color ) elseif ( @colorwarp == 62 ) temp = sin( 1/_color ) elseif ( @colorwarp == 63 ) temp = cos( 1/_color ) elseif ( @colorwarp == 64 ) temp = tan( 1/_color ) elseif ( @colorwarp == 65 ) temp = cotan( 1/_color ) elseif ( @colorwarp == 66 ) temp = 1/cos( 1/_color ) elseif ( @colorwarp == 67 ) temp = 1/sin( 1/_color ) elseif ( @colorwarp == 68 ) temp = cotanh( _color ) elseif ( @colorwarp == 69 ) temp = 1/cosh( _color ) elseif ( @colorwarp == 70 ) temp = 1/sinh( _color ) elseif ( @colorwarp == 71 ) temp = atanh( 1/_color ) elseif ( @colorwarp == 72 ) temp = acosh( 1/_color ) elseif ( @colorwarp == 73 ) temp = asinh( 1/_color ) elseif @colorwarp == 74 temp = _color^@cpower elseif @colorwarp == 75 temp = sinh(_color) temp = temp * temp elseif @colorwarp == 76 temp = cosh( _color ) temp = temp * temp elseif @colorwarp == 77 temp = tanh(_color) temp = temp * temp elseif @colorwarp == 78 temp = cotanh( _color ) temp = temp * temp elseif @colorwarp == 79 temp = 1/cosh(_color) temp = temp * temp elseif @colorwarp == 80 temp = 1 / sinh( _color ) temp = temp * temp elseif @colorwarp == 81 temp = sinh(1/_color) elseif @colorwarp == 82 temp = cosh(1/_color) elseif @colorwarp == 83 temp = tanh(1/_color) elseif @colorwarp == 84 temp = cotanh(1/_color) elseif @colorwarp == 85 temp = 1/cosh(1/_color) elseif @colorwarp == 86 temp = 1/sinh(1/_color) elseif @colorwarp == 87 temp = sin( _color ) * tan(_color) elseif @colorwarp == 88 temp = sinh(_color) * tanh(_color) elseif @colorwarp == 89 temp = sinh(_color) * cosh(_color) elseif @colorwarp == 90 temp = sinh(_color), tempx = cosh(_color) temp = temp*temp*tempx*tempx elseif @colorwarp == 91 temp = sin(_color), tempx = cos(_color) temp = temp*temp*tempx*tempx elseif @colorwarp == 92 temp = 1/_color temp = sin(temp)*cos(temp) elseif @colorwarp == 93 temp = sin( 1/_color ) temp = temp*temp elseif @colorwarp == 94 temp = sin(_color) * cos(1/_color) elseif @colorwarp == 95 temp = sin(_color) * sin(1/_color) elseif @colorwarp == 96 temp = log(_color) temp = temp*temp elseif @colorwarp == 97 temp = sin(_color) * sin(2*_color) elseif @colorwarp == 98 temp = exp(2*_color) elseif @colorwarp == 99 temp = exp(-2*_color) elseif @colorwarp == 100 temp = 1/_color temp = sinh(temp)*cosh(temp) elseif @colorwarp == 101 temp = sinh( 1/_color ) temp = temp*temp elseif @colorwarp == 102 temp = sinh(_color) * cosh(1/_color) elseif @colorwarp == 103 temp = sinh(_color) * sinh(1/_color) elseif @colorwarp == 104 temp = sin(_color) * sinh(_color) elseif @colorwarp == 105 temp = sin(_color) * cosh(_color) elseif @colorwarp == 106 temp = sin(_color), tempx = sinh(_color) temp = temp*temp*tempx*tempx elseif @colorwarp == 107 temp = sin(_color)*exp(_color) elseif @colorwarp == 108 temp = cos(_color)*exp(_color) elseif @colorwarp == 109 temp = sinh(_color)*exp(_color) elseif @colorwarp == 110 temp = cosh(_color)*exp(_color) elseif @colorwarp == 111 temp = sin(_color)*log(_color) elseif @colorwarp == 112 temp = cos(_color)*log(_color) elseif @colorwarp == 113 temp = sinh(_color)*log(_color) else ; @colorwarp == 114 temp = cosh(_color)*log(_color) endif ; _colorwarp #index = abs(temp) else #solid = TRUE endif ; itrapped default: title = "Wavy Circle Trap" param whattotrap caption = "Trap What?" enum = "minimum" "maximum" "2nd minimum" "3rd minimum" "4th minimum" "2nd maximum" \ "3rd maximum" "4th maximum" "1st threshold" "last threshold" "threshold count" \ "2nd threshold" "1st limit" "2nd limit" "last limit" "max-min" "max+min" \ "max*min" "max/min" "max^min" "min-max" "min/max" "min^max" "min,max avg" default = 0 hint = "What type of value will be trapped?" endparam param threshold caption = "Threshold Value" default = 0.5 hint = "Upper bound (maximum value that will be trapped) if one of the \ 'Threshold' options is chosen for param 'Trap What'; \ also, lower bound (minimum trapped value) if 'Trap What' is set to \ a 'Limit' option. Increase value for limit traps" visible = (( @whattotrap > 7 ) && ( @whattotrap < 15 )) endparam param varythresh caption = "Vary Threshold?" default = FALSE hint = "If set, the value of the trap will modify the value of 'threshold' and 'limit' type traps \ each iteration; parameter 'ThreshFeedback' can be used to modulate the variation" visible = (( @whattotrap > 7 ) && ( @whattotrap < 15 )) endparam param threshstp caption = "ThreshFeedback" default = 1.0 hint = "If 'Vary Threshold' is set, this setting adjusts the amount of variation" visible = @varythresh endparam param ringstyle caption = "Enable Rings?" default = FALSE hint = "If 'Enable Rings' is active, AND if param 'Trap What' is set to a \ 'Threshold' or 'Limit' option, then 'Trap What' \ becomes a ring trap. \ 'Threshold Value' sets outer radius, 'Ring Width' sets inner radius" visible = (( @whattotrap > 7 ) && ( @whattotrap < 15 )) endparam param ringwidth caption = "Ring Width" default = 0.25 hint = "If 'Enable Rings' is TRUE and 'Trap What' is set to either a 'Threshold', \ or 'Limit' option, this parameter determines the width of the ring trap" visible = @ringstyle == TRUE endparam param varyrwidth caption = "Vary Ringwidth?" default = FALSE hint = "If set, the value of the trap will modify the ring width of 'threshold' \ and 'limit' ring-type traps each iteration; parameter 'RingFeedback' can be \ used to modulate the variation" visible = @ringstyle endparam param ringstp caption = "RingFeedback" default = 1.0 hint = "If 'Vary Ringwidth' is set, this setting adjusts the amount of variation" visible = @varyrwidth endparam param trapmode caption = "Trap Flavor" enum = "distance" "angle" "trap angle" "difference angle" "magnitude" "trap magnitude" \ "real" "imaginary" "trap real" "trap imaginary" "sum" "difference" "product" \ "quotient 1" "quotient 2" "power 1" "power 2" "arith. mean" "geom. mean" \ "angle 2" "angle 3" "angle 4" "angle 5" "angle 6" "angle 7" "angle 8" \ "real 2" "real 3" "real 4" "real 5" "real 6" "real 7" "real 8" \ "imag 2" "imag 3" "imag 4" "imag 5" "imag 6" "imag 7" "imag 8" default = 0 hint = "What quantity will be watched for possible trapping?" endparam param swapflavor caption = "New Flavor?" default = FALSE hint = "Try an alternately flavored trap test? Only affects flavor choices \ above 9 (sum, difference, etc)" visible = @trapmode > 9 endparam param radius caption = "Circle Radius" default = 0.5 hint = "Enter radius of circle used as trap" endparam param varyradius caption = "Vary Radius?" default = FALSE hint = "If set, the value of the trap will modify the circle radius each iteration; \ parameter 'RadiusFeedback' can be used to modulate the variation" endparam param radstp caption = "RadiusFeedback" default = 1.0 hint = "If 'Vary Radius' is set, this setting adjusts the amount of variation" visible = @varyradius endparam param customcenter caption = "Circle Center" default = (0, 0) hint = "Sets circle center" endparam param varycenter caption = "Vary Center?" default = FALSE hint = "If set, the value of the trap will modify the circle center each iteration; \ parameter 'CenterFeedback' can be used to modulate the variation" endparam param centerstp caption = "CenterFeedback" default = 1.0 hint = "If 'Vary Center' is set, this setting adjusts the amount of variation" visible = @varycenter endparam param wavefreq caption = "Wavyness" default = 10.0 hint = "Sets the frequency of the waves superposed on the circle" endparam param waveamp caption = "Wave Size" default = 1.0 hint = "Sets the size (amplitude) of the superposed waves" endparam param sprangle caption = "Spread Angle?" default = FALSE hint = "If enabled, the angular range is spread out or compressed, \ depending on the value of param 'AngleSpread Factor'" endparam param sprangfactor caption = "AngleSpread Factor" default = 3.0 hint = "If param 'Spread Angle?' is enabled, this is the stretching or \ compression multiplier of atan(z). 1.0 corresponds to no spreading. \ Inactive if 'Spread Angle?' is not enabled" visible = @sprangle == TRUE endparam param initialization caption = "Z Initialization" enum = "z" "1/z" "z^2" "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)" "z^power" \ "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 = "The fractal is initialized to this value at each iteration prior to \ being fed to the trap" endparam param zpower caption = "Z Power" default = (0,1) hint = "Z exponent if param 'Z Initialization' is set to 'z^power'" visible = @initialization == "z^power" endparam param ziscale caption = "Z Init Scale" default = 1.0 hint = "This param can be used to scale the overall iterate z \ before z initialization" endparam param initperturb caption = "Perturb Z Initialization?" default = FALSE hint = "If enabled, then 'Z Initialization' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'Z Init Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @initialization != "z" endparam param initblend caption = "Z Init Blend" default = 0.1 hint = "If 'Perturb Z Initialization' is enabled, then this sets the fraction \ of 'Z Initialization' that is mixed in with the original #z. \ Inactive if 'Perturb Z Initialization' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @initperturb endparam param transmogrify caption = "Trap Transmute" enum = "t" "1/t" "t^2" "1/t^2" "log(t)" "e^t" "t^t" "sin(t)" "cos(t)" \ "tan(t)" "asin(t)" "acos(t)" "atan(t)" "sinh(t)" "cosh(t)" "tanh(t)" \ "asinh(t)" "acosh(t)" "atanh(t)" "log(1/t)" "log(log(t))" "e^-t" \ "e^(1/t)" "t^-t" "sin(t)^2" "cos(t)^2" "tan(t)^2" "cot(t)" "sec(t)" \ "csc(t)" "cot(t)^2" "sec(t)^2" "csc(t)^2" "t^t^t" "1/t^t^t" "log(-t)" \ "1/log(t)" "tlog(t)" "sin(t)/t" "cos(t)/t" "sin(t)*cos(t)" "sin(t^2)" \ "e^(-1/t)" "te^t" "te^-t" "te^(1/t)" "te^(-1/t)" "t^3" "1/t^3" \ "acot(t)" "asec(t)" "acsc(t)" "tan(t)/t" "cot(t)/t" "sec(t)/t" \ "csc(t)/t" "tsin(t)" "tcos(t)" "ttan(t)" "tcot(t)" "tsec(t)" "tcsc(t)" \ "sin(1/t)" "cos(1/t)" "tan(1/t)" "cot(1/t)" "sec(1/t)" "csc(1/t)" \ "cotanh(t)" "sech(t)" "cosech(t)" "acoth(t)" "asech(t)" "acosech(t)" "t^power" \ "sinh(t)^2" "cosh(t)^2" "tanh(t)^2" "cotanh(t)^2" \ "sech(t)^2" "cosech(t)^2" "sinh(1/t)" "cosh(1/t)" "tanh(1/t)" \ "cotanh(1/t)" "sech(1/t)" "cosech(1/t)" "sin(t)tan(t)" "sinh(t)tanh(t)" \ "sinh(t)cosh(t)" "sinh(t)^2*cosh(t)^2" "sin(t)^2*cos(t)^2" \ "sin(1/t)*cos(1/t)" "sin(1/t)^2" "sin(t)cos(1/t)" "sin(t)sin(1/t)" \ "log(t)^2" "sin(t)sin(2t)" "e^2t" "e^-2t" "sinh(1/t)cosh(1/t)" \ "sinh(1/t)^2" "sinh(t)cosh(1/t)" "sinh(t)sinh(1/t)" "sin(t)sinh(t)" \ "sin(t)cosh(t)" "sin(t)^2*sinh(t)^2" "sin(t)e^t" "cos(t)e^t" \ "sinh(t)e^t" "cosh(t)e^t" "sin(t)log(t)" "cos(t)log(t)" "sinh(t)log(t)" \ "cosh(t)log(t)" default = 0 hint = "The point, t, on the circle closest to the z iterate can be transformed \ prior to testing for trapping; select 't' for no transmutation. \ Transmute does not work on the following trap flavors: \ 2 (angle), 5 (magnitude), 7 (real), and 8 (imag)" endparam param tpower caption = "Trap Power" default = (0,1) hint = "Trap point t exponent if param 'Trap Transmute' is set to 't^power'" visible = @transmogrify == "t^power" endparam param tiscale caption = "Trap Scale" default = 1.0 hint = "This param can be used to scale the overall trap point t \ before transmutation" endparam param trapperturb caption = "Perturb Trap Transmute?" default = FALSE hint = "If enabled, then 'Trap Transmute' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'Trap Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @transmogrify != "t" endparam param trapblend caption = "Trap Blend" default = 0.1 hint = "If 'Perturb Trap Transmute' is enabled, then this sets the fraction \ of 'Trap Transmute' that is mixed in with the original trap point, t. \ Inactive if 'Perturb Trap Transmute' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @trapperturb endparam param realfront caption = "FrontEndReal Warp" enum = "r" "1/r" "r^2" "1/r^2" "log(r)" "e^r" "r^r" "sin(r)" "cos(r)" \ "tan(r)" "asin(r)" "acos(r)" "atan(r)" "sinh(r)" "cosh(r)" "tanh(r)" \ "asinh(r)" "acosh(r)" "atanh(r)" "log(1/r)" "log(log(r))" "e^-r" \ "e^(1/r)" "r^-r" "sin(r)^2" "cos(r)^2" "tan(r)^2" "cot(r)" "sec(r)" \ "csc(r)" "cot(r)^2" "sec(r)^2" "csc(r)^2" "r^r^r" "1/r^r^r" "log(-r)" \ "1/log(r)" "rlog(r)" "sin(r)/r" "cos(r)/r" "sin(r)*cos(r)" "sin(r^2)" \ "e^(-1/r)" "re^r" "re^-r" "re^(1/r)" "re^(-1/r)" "r^3" "1/r^3" \ "acot(r)" "asec(r)" "acsc(r)" "tan(r)/r" "cot(r)/r" "sec(r)/r" \ "csc(r)/r" "rsin(r)" "rcos(r)" "rtan(r)" "rcot(r)" "rsec(r)" "rcsc(r)" \ "sin(1/r)" "cos(1/r)" "tan(1/r)" "cot(1/r)" "sec(1/r)" "csc(1/r)" \ "cotanh(r)" "sech(r)" "cosech(r)" "acoth(r)" "asech(r)" "acosech(r)" "r^power" \ "sinh(r)^2" "cosh(r)^2" "tanh(r)^2" "cotanh(r)^2" \ "sech(r)^2" "cosech(r)^2" "sinh(1/r)" "cosh(1/r)" "tanh(1/r)" \ "cotanh(1/r)" "sech(1/r)" "cosech(1/r)" "sin(r)tan(r)" "sinh(r)tanh(r)" \ "sinh(r)cosh(r)" "sinh(r)^2*cosh(r)^2" "sin(r)^2*cos(r)^2" \ "sin(1/r)*cos(1/r)" "sin(1/r)^2" "sin(r)cos(1/r)" "sin(r)sin(1/r)" \ "log(r)^2" "sin(r)sin(2r)" "e^2r" "e^-2r" "sinh(1/r)cosh(1/r)" \ "sinh(1/r)^2" "sinh(r)cosh(1/r)" "sinh(r)sinh(1/r)" "sin(r)sinh(r)" \ "sin(r)cosh(r)" "sin(r)^2*sinh(r)^2" "sin(r)e^r" "cos(r)e^r" \ "sinh(r)e^r" "cosh(r)e^r" "sin(r)log(r)" "cos(r)log(r)" "sinh(r)log(r)" \ "cosh(r)log(r)" default = 0 hint = "This function can warp the initial value of real(z) before input to \ the 'Z Initialization' function. For 'r^power' set param 'FrontEndReal \ Power'" endparam param rfpower caption = "FrontEndReal Power" default = 4.0 hint = "Real(z) exponent if param 'FrontEndReal Warp' is set to 'r^power'" visible = @realfront == "r^power" endparam param rfscale caption = "Real(z) Scale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ iterate z before warping or initialization" endparam param rfperturb caption = "Perturb FrontEndReal?" default = FALSE hint = "If enabled, then 'FrontEndReal Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'FrontEndReal Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @realfront != "r" endparam param rfblend caption = "FrontEndReal Blend" default = 0.1 hint = "If 'Perturb FrontEndReal' is enabled, then this sets the fraction \ of 'FrontEndReal Warp' that is mixed in with the original real(z). \ Inactive if 'Perturb FrontEndReal' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @rfperturb endparam param imagfront caption = "FrontEndImag Warp" enum = "i" "1/i" "i^2" "1/i^2" "log(i)" "e^i" "i^i" "sin(i)" "cos(i)" \ "tan(i)" "asin(i)" "acos(i)" "atan(i)" "sinh(i)" "cosh(i)" "tanh(i)" \ "asinh(i)" "acosh(i)" "atanh(i)" "log(1/i)" "log(log(i))" "e^-i" \ "e^(1/i)" "i^-i" "sin(i)^2" "cos(i)^2" "tan(i)^2" "cot(i)" "sec(i)" \ "csc(i)" "cot(i)^2" "sec(i)^2" "csc(i)^2" "i^i^i" "1/i^i^i" "log(-i)" \ "1/log(i)" "ilog(i)" "sin(i)/i" "cos(i)/i" "sin(i)*cos(i)" "sin(i^2)" \ "e^(-1/i)" "ie^i" "ie^-i" "ie^(1/i)" "ie^(-1/i)" "i^3" "1/i^3" \ "acot(i)" "asec(i)" "acsc(i)" "tan(i)/i" "cot(i)/i" "sec(i)/i" \ "csc(i)/i" "isin(i)" "icos(i)" "itan(i)" "icot(i)" "isec(i)" "icsc(i)" \ "sin(1/i)" "cos(1/i)" "tan(1/i)" "cot(1/i)" "sec(1/i)" "csc(1/i)" \ "cotanh(i)" "sech(i)" "cosech(i)" "acoth(i)" "asech(i)" "acosech(i)" "i^power" \ "sinh(i)^2" "cosh(i)^2" "tanh(i)^2" "cotanh(i)^2" \ "sech(i)^2" "cosech(i)^2" "sinh(1/i)" "cosh(1/i)" "tanh(1/i)" \ "cotanh(1/i)" "sech(1/i)" "cosech(1/i)" "sin(i)tan(i)" "sinh(i)tanh(i)" \ "sinh(i)cosh(i)" "sinh(i)^2*cosh(i)^2" "sin(i)^2*cos(i)^2" \ "sin(1/i)*cos(1/i)" "sin(1/i)^2" "sin(i)cos(1/i)" "sin(i)sin(1/i)" \ "log(i)^2" "sin(i)sin(2i)" "e^2i" "e^-2i" "sinh(1/i)cosh(1/i)" \ "sinh(1/i)^2" "sinh(i)cosh(1/i)" "sinh(i)sinh(1/i)" "sin(i)sinh(i)" \ "sin(i)cosh(i)" "sin(i)^2*sinh(i)^2" "sin(i)e^i" "cos(i)e^i" \ "sinh(i)e^i" "cosh(i)e^i" "sin(i)log(i)" "cos(i)log(i)" "sinh(i)log(i)" \ "cosh(i)log(i)" default = 0 hint = "This function can warp the initial value of imag(z) before input to \ the 'Z Initialization' function. For 'i^power' set param 'FrontEndImag \ Power'" endparam param ifpower caption = "FrontEndImag Power" default = 4.0 hint = "Imag(z) exponent if param 'FrontEndImag Warp' is set to 'i^power'" visible = @imagfront == "i^power" endparam param ifscale caption = "Imag(z) Scale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ iterate z before warping or initialization" endparam param ifperturb caption = "Perturb FrontEndImag?" default = FALSE hint = "If enabled, then 'FrontEndImag Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'FrontEndImag Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @imagfront != "i" endparam param ifblend caption = "FrontEndImag Blend" default = 0.1 hint = "If 'Perturb FrontEndImag' is enabled, then this sets the fraction \ of 'FrontEndImag Warp' that is mixed in with the original imag(z). \ Inactive if 'Perturb FrontEndImag' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @ifperturb endparam param realback caption = "BackEndReal Warp" enum = "r" "1/r" "r^2" "1/r^2" "log(r)" "e^r" "r^r" "sin(r)" "cos(r)" \ "tan(r)" "asin(r)" "acos(r)" "atan(r)" "sinh(r)" "cosh(r)" "tanh(r)" \ "asinh(r)" "acosh(r)" "atanh(r)" "log(1/r)" "log(log(r))" "e^-r" \ "e^(1/r)" "r^-r" "sin(r)^2" "cos(r)^2" "tan(r)^2" "cot(r)" "sec(r)" \ "csc(r)" "cot(r)^2" "sec(r)^2" "csc(r)^2" "r^r^r" "1/r^r^r" "log(-r)" \ "1/log(r)" "rlog(r)" "sin(r)/r" "cos(r)/r" "sin(r)*cos(r)" "sin(r^2)" \ "e^(-1/r)" "re^r" "re^-r" "re^(1/r)" "re^(-1/r)" "r^3" "1/r^3" \ "acot(r)" "asec(r)" "acsc(r)" "tan(r)/r" "cot(r)/r" "sec(r)/r" \ "csc(r)/r" "rsin(r)" "rcos(r)" "rtan(r)" "rcot(r)" "rsec(r)" "rcsc(r)" \ "sin(1/r)" "cos(1/r)" "tan(1/r)" "cot(1/r)" "sec(1/r)" "csc(1/r)" \ "cotanh(r)" "sech(r)" "cosech(r)" "acoth(r)" "asech(r)" "acosech(r)" "r^power" \ "sinh(r)^2" "cosh(r)^2" "tanh(r)^2" "cotanh(r)^2" \ "sech(r)^2" "cosech(r)^2" "sinh(1/r)" "cosh(1/r)" "tanh(1/r)" \ "cotanh(1/r)" "sech(1/r)" "cosech(1/r)" "sin(r)tan(r)" "sinh(r)tanh(r)" \ "sinh(r)cosh(r)" "sinh(r)^2*cosh(r)^2" "sin(r)^2*cos(r)^2" \ "sin(1/r)*cos(1/r)" "sin(1/r)^2" "sin(r)cos(1/r)" "sin(r)sin(1/r)" \ "log(r)^2" "sin(r)sin(2r)" "e^2r" "e^-2r" "sinh(1/r)cosh(1/r)" \ "sinh(1/r)^2" "sinh(r)cosh(1/r)" "sinh(r)sinh(1/r)" "sin(r)sinh(r)" \ "sin(r)cosh(r)" "sin(r)^2*sinh(r)^2" "sin(r)e^r" "cos(r)e^r" \ "sinh(r)e^r" "cosh(r)e^r" "sin(r)log(r)" "cos(r)log(r)" "sinh(r)log(r)" \ "cosh(r)log(r)" default = 0 hint = "This function can warp the final value of real(trap) before testing for \ trapping by the 'Trap What?' function. For 'r^power' set param 'BackEndReal \ Power'" endparam param rbpower caption = "BackEndReal Power" default = 4.0 hint = "Real(trap) exponent if param 'BackEndReal Warp' is set to 'r^power'" visible = @realback == "r^power" endparam param rbscale caption = "Real(t) Scale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ trap point t before warping (but after transmutation)" endparam param rbperturb caption = "Perturb BackEndReal?" default = FALSE hint = "If enabled, then 'BackEndReal Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'BackEndReal Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @realback != "r" endparam param rbblend caption = "BackEndReal Blend" default = 0.1 hint = "If 'Perturb BackEndReal' is enabled, then this sets the fraction \ of 'BackEndReal Warp' that is mixed in with the original real(trap). \ Inactive if 'Perturb BackEndReal' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @rbperturb endparam param imagback caption = "BackEndImag Warp" enum = "i" "1/i" "i^2" "1/i^2" "log(i)" "e^i" "i^i" "sin(i)" "cos(i)" \ "tan(i)" "asin(i)" "acos(i)" "atan(i)" "sinh(i)" "cosh(i)" "tanh(i)" \ "asinh(i)" "acosh(i)" "atanh(i)" "log(1/i)" "log(log(i))" "e^-i" \ "e^(1/i)" "i^-i" "sin(i)^2" "cos(i)^2" "tan(i)^2" "cot(i)" "sec(i)" \ "csc(i)" "cot(i)^2" "sec(i)^2" "csc(i)^2" "i^i^i" "1/i^i^i" "log(-i)" \ "1/log(i)" "ilog(i)" "sin(i)/i" "cos(i)/i" "sin(i)*cos(i)" "sin(i^2)" \ "e^(-1/i)" "ie^i" "ie^-i" "ie^(1/i)" "ie^(-1/i)" "i^3" "1/i^3" \ "acot(i)" "asec(i)" "acsc(i)" "tan(i)/i" "cot(i)/i" "sec(i)/i" \ "csc(i)/i" "isin(i)" "icos(i)" "itan(i)" "icot(i)" "isec(i)" "icsc(i)" \ "sin(1/i)" "cos(1/i)" "tan(1/i)" "cot(1/i)" "sec(1/i)" "csc(1/i)" \ "cotanh(i)" "sech(i)" "cosech(i)" "acoth(i)" "asech(i)" "acosech(i)" "i^power" \ "sinh(i)^2" "cosh(i)^2" "tanh(i)^2" "cotanh(i)^2" \ "sech(i)^2" "cosech(i)^2" "sinh(1/i)" "cosh(1/i)" "tanh(1/i)" \ "cotanh(1/i)" "sech(1/i)" "cosech(1/i)" "sin(i)tan(i)" "sinh(i)tanh(i)" \ "sinh(i)cosh(i)" "sinh(i)^2*cosh(i)^2" "sin(i)^2*cos(i)^2" \ "sin(1/i)*cos(1/i)" "sin(1/i)^2" "sin(i)cos(1/i)" "sin(i)sin(1/i)" \ "log(i)^2" "sin(i)sin(2i)" "e^2i" "e^-2i" "sinh(1/i)cosh(1/i)" \ "sinh(1/i)^2" "sinh(i)cosh(1/i)" "sinh(i)sinh(1/i)" "sin(i)sinh(i)" \ "sin(i)cosh(i)" "sin(i)^2*sinh(i)^2" "sin(i)e^i" "cos(i)e^i" \ "sinh(i)e^i" "cosh(i)e^i" "sin(i)log(i)" "cos(i)log(i)" "sinh(i)log(i)" \ "cosh(i)log(i)" default = 0 hint = "This function can warp the final value of imag(trap) before testing for \ trapping by the 'Trap What?' function. For 'i^power' set param 'BackEndImag \ Power'" endparam param ibpower caption = "BackEndImag Power" default = 4.0 hint = "Imag(trap) exponent if param 'BackEndImag Warp' is set to 'i^power'" visible = @imagback == "i^power" endparam param ibscale caption = "Imag(t) Scale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ trap point t before warping (but after transmutation)" endparam param ibperturb caption = "Perturb BackEndImag?" default = FALSE hint = "If enabled, then 'BackEndImag Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'BackEndImag Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @imagback != "i" endparam param ibblend caption = "BackEndImag Blend" default = 0.1 hint = "If 'Perturb BackEndImag' is enabled, then this sets the fraction \ of 'BackEndImag Warp' that is mixed in with the original imag(trap). \ Inactive if 'Perturb BackEndImag' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @ibperturb endparam param @colorby caption = "Color By?" enum = "distance" "iteration" "magnitude" "test" "trap magnitude" "angle" \ "trap angle" "mod magnitude" "mod angle" "real" "trap real" "mod real"\ "imag" "trap imag" "mod imag" "raw distance" default = 0 hint = "Criterion for computing color index" endparam param @colorspread caption = "Color Spread" default = 1.0 hint = "This value can increase or decrease the color index range; adjust \ if fractal coloring is too monotone" endparam param varyspread caption = "Vary Colorspread?" default = FALSE hint = "If set, the value of the trap will modify the color index spread each \ iteration; parameter 'SpreadFeedback' can be used to modulate the variation" endparam param spreadstp caption = "SpreadFeedback" default = 1.0 hint = "If 'Vary Colorspread' is set, this setting adjusts the amount of variation" visible = @varyspread endparam param ranges caption = "Color Ranges" default = 1 hint = "Different ranges of the color palette can be used, based on iteration" endparam param hideranges caption = "Mask Color Ranges?" default = FALSE hint = "If enabled, then param 'Show Which Range?' can be set to mask pixels \ other than those in the given range. Only valid if 'Color Ranges' > 1" visible = @ranges > 1 endparam param showrange caption = "Show Which Range?" default = 0 min = 0 hint = "If 'Mask Color Ranges?' is turned on, then pixels falling in this color \ range will be visible; others will be set to the solid color. Works best \ with param 'Trap What?' set to a threshold or limit option. 0 <= param < \ 'Color Ranges'" visible = @hideranges == TRUE endparam param @colorwarp caption = "Color Warp Factor" enum = "c" "1/c" "c^2" "1/c^2" "log(c)" "e^c" "c^c" "sin(c)" "cos(c)" \ "tan(c)" "asin(c)" "acos(c)" "atan(c)" "sinh(c)" "cosh(c)" "tanh(c)" \ "asinh(c)" "acosh(c)" "atanh(c)" "log(1/c)" "log(log(c))" "e^-c" \ "e^(1/c)" "c^-c" "sin(c)^2" "cos(c)^2" "tan(c)^2" "cot(c)" "sec(c)" \ "csc(c)" "cot(c)^2" "sec(c)^2" "csc(c)^2" "c^c^c" "1/c^c^c" "log(-c)" \ "1/log(c)" "clog(c)" "sin(c)/c" "cos(c)/c" "sin(c)*cos(c)" "sin(c^2)" \ "e^(-1/c)" "ce^c" "ce^-c" "ce^(1/c)" "ce^(-1/c)" "c^3" "1/c^3" \ "acot(c)" "asec(c)" "acsc(c)" "tan(c)/c" "cot(c)/c" "sec(c)/c" \ "csc(c)/c" "csin(c)" "ccos(c)" "ctan(c)" "ccot(c)" "csec(c)" "ccsc(c)" \ "sin(1/c)" "cos(1/c)" "tan(1/c)" "cot(1/c)" "sec(1/c)" "csc(1/c)" \ "cotanh(c)" "sech(c)" "cosech(c)" "acoth(c)" "asech(c)" "acosech(c)" "c^power" \ "sinh(c)^2" "cosh(c)^2" "tanh(c)^2" "cotanh(c)^2" \ "sech(c)^2" "cosech(c)^2" "sinh(1/c)" "cosh(1/c)" "tanh(1/c)" \ "cotanh(1/c)" "sech(1/c)" "cosech(1/c)" "sin(c)tan(c)" "sinh(c)tanh(c)" \ "sinh(c)cosh(c)" "sinh(c)^2*cosh(c)^2" "sin(c)^2*cos(c)^2" \ "sin(1/c)*cos(1/c)" "sin(1/c)^2" "sin(c)cos(1/c)" "sin(c)sin(1/c)" \ "log(c)^2" "sin(c)sin(2c)" "e^2c" "e^-2c" "sinh(1/c)cosh(1/c)" \ "sinh(1/c)^2" "sinh(c)cosh(1/c)" "sinh(c)sinh(1/c)" "sin(c)sinh(c)" \ "sin(c)cosh(c)" "sin(c)^2*sinh(c)^2" "sin(c)e^c" "cos(c)e^c" \ "sinh(c)e^c" "cosh(c)e^c" "sin(c)log(c)" "cos(c)log(c)" "sinh(c)log(c)" \ "cosh(c)log(c)" default = 0 hint = "The final color index can be warped by this function; default is \ 'c' (no change in color index)" endparam param cpower caption = "Color Power" default = 0.25 hint = "Color index exponent if param 'Color Warp Factor' is set to 'c^power'" visible = @colorwarp == "c^power" endparam param skippediters caption = "Iterations to Skip" default = 0 hint = "Values will not be watched for trapping until after this many \ fractal iterations" endparam param towatch caption = "Iterations to Watch" default = 0 min = 0 hint = "How many iterations should the orbit be monitored for potential trapping? \ '0' means watch all iterations" endparam param trapvariant caption = "Trap Variants" enum = "Normal" "Flip" "Conjugate" "FlipConjugate" "Negate" "Negate Flip" \ "Negate Conjugate" "Conjugate Flip" default = 0 hint = "Enables alternative coloring algorithms based on manipulation of \ real(z) and imag(z) before trapping" endparam param operator caption = "Enable Operator?" enum = "none" "multiply" "add" "subtract" "divide" "exponentiate" \ "subtraction2" "division2" "exponential2" "logarithm" "logarithm2" default = 0 hint = "If enabled, z is multiplied by (added to, etc) this constant on each iteration \ before testing; parameter 'Operator Constant' sets the constant \ value that is used in the operation" endparam param operatee caption = "Operation Constant" default = (-1, 1) hint = "If 'Enable Operator' is set, this is the constant used in the \ multiplication/addition/subtraction/division/exponentiation/logarithm" visible = @operator != "none" endparam param swaporder caption = "Swap Order?" default = FALSE hint = "Swaps order of 'Trap Variants' and 'Enable Operator'. Normally, \ the trap variation is executed AFTER the arithmetic operation; this \ param toggles the execution order" visible = (( @trapvariant != "normal" ) && ( @operator != "none" )) endparam param history caption = "Enable History?" default = FALSE hint = "If enabled, both the previous and current z are used to determine \ trapping; a curvature-based coloring variant" endparam param histype caption = "History Type" enum = "middle aged" "old" "very old" default = 0 hint = "Determines curvature algorithm" visible = @history == TRUE endparam param twavy caption = "Enable T Waviness?" default = FALSE hint = "Adds waves to the trap function. If enabled, params 'Waviness Mode', \ 'Waviness Amplitude', & 'Waviness Frequency' may be adjusted to vary \ wave character" endparam param twavmode caption = "T Wave Mode" enum = "radial" "tangential" default = 0 hint = "If 'Enable T Waviness' is on, this param sets the type of waves \ superposed on the trap function; inactive otherwise" visible = @twavy == TRUE endparam param twavamp caption = "T Wave Amplitude" default = 0.1 hint = "If 'Enable T Waviness' is on, this param sets the height of the waves \ superposed on the trap function; inactive otherwise" visible = @twavy == TRUE endparam param twavfreq caption = "T Wave Frequency" default = 10.0 hint = "If 'Enable T Waviness' is on, this param sets the density of waves \ superposed on the trap function; inactive otherwise" visible = @twavy == TRUE endparam param pointmode caption = "Enable Point Mode?" default = FALSE hint = "If set, trapping occurs normally until the first #z has been \ trapped using the usual criteria; subsequently, trapping is \ relative to this first trap point, rather than to the entire curve" endparam param turb1 caption = "Turbulence 1?" default = FALSE hint = "Adds distortion (Products) to coloring; amount of turbulence \ for all types is set by parameter 'Turbulence Amount'" endparam param turb2 caption = "Turbulence 2?" default = FALSE hint = "Adds distortion (Random) to coloring; amount of turbulence \ is set for all types by parameter 'Turbulence Amount'" endparam param turb3 caption = "Turbulence 3?" default = FALSE hint = "Adds fBm distortion to coloring; amount of turbulence \ for all types is set by parameter 'Turbulence Amount', while \ the six 'fBm' params ('fBm Scale', 'fBm Rotation', etc) are \ specific to 'Turbulence 3'" endparam param turb4 caption = "Turbulence 4?" default = FALSE hint = "Adds distortion (Sine) to coloring; amount of turbulence \ for all types is set by parameter 'Turbulence Amount'" endparam param turb5 caption = "Turbulence 5?" default = FALSE hint = "Adds distortion (Log) to coloring; amount of turbulence \ for all types is set by parameter 'Turbulence Amount'" endparam param turb6 caption = "Turbulence 6?" default = FALSE hint = "Adds distortion (Vectors) to coloring; amount of turbulence \ for all types is set by parameter 'Turbulence Amount'" endparam param turbamount caption = "Turbulence Amount" default = 1.0 hint = "Overall degree of texturizing, if any of the six 'Turbulence' \ parameters are enabled" visible = (@turb1 || @turb2 || @turb3 || @turb4 || @turb5 || @turb6) endparam param bscale caption = "fBm Scale" default = 1.0 hint = "The overall scale of 'Turbulence 3', the fBm turbulence option" visible = @turb3 endparam param bangle caption = "fBm Rotation" default = 0.0 hint = "Angular parameter for 'Turbulence 3', fBm noise" visible = @turb3 endparam param bstep caption = "fBm Stepsize" default = 0.5 hint = "'Turbulence 3' scale step size for fBm noise iterations" visible = @turb3 endparam param banglestep caption = "fBm Rotation Step" default = 37.0 hint = "The angle in degrees for noise function rotation after \ each fBm iteration; used if 'Turbulence 3' is enabled" visible = @turb3 endparam param boctaves caption = "fBm Octaves" default = 7 min = 1 hint = "The number of iterations of the 'Turbulence 3' fBm noise function" visible = @turb3 endparam param bpower caption = "fBm Exponent" default = 2.0 hint = "The exponent used if param 'Turbulence 3' is enabled \ for fBm randomization" visible = @turb3 endparam param varyturb caption = "Vary Turbulence?" default = FALSE hint = "If set, the value of the trap will modify the turbulence amount each \ iteration; parameter 'TurbulenceFeedback' can be used to modulate the variation" visible = (@turb1 || @turb2 || @turb3 || @turb4 || @turb5 || @turb6) endparam param turbstp caption = "TurbulenceFeedback" default = 1.0 hint = "If 'Vary Turbulence' is set, this setting adjusts the amount of variation" visible = @varyturb endparam param mask caption = "Masking?" default = FALSE hint = "If enabled, trapped values below the 'Masking Threshold' parameter \ will be colored the solid color" visible = !@revmask endparam param revmask caption = "Reverse Masking?" default = FALSE hint = "If enabled, trapped values greater than the 'Masking Threshold' \ parameter will be colored the solid color; inactive if normal \ 'Masking' is also enabled" visible = !@mask endparam param maskthresh caption = "Masking Threshold" default = 0.1 hint = "This param is the value used for solid color masking if either \ 'Masking?' or 'Reverse Masking?' are enabled. Depending on how param \ 'Color By' is set, the value may need large adjustment (.001-10 may \ be useful)" visible = (@mask || @revmask) endparam param varymode caption = "Feedback Mode" enum = "trapped" "not trapped" "always" default = 2 hint = "Variation style; variation of individual parameters must still \ be enabled. 'trapped' -- feedback occurs only on iterations where some \ value was trapped; 'not trapped' -- varies on iterations when nothing \ trapped; 'always' -- feedback on every iteation" visible = (@varyturb || @varyradius || @varythresh || @varyrwidth || @varycenter || @varyspread) endparam param oldstyle caption = "OldStyle Feedback?" default = FALSE hint = "Retained for compatibility with original version of this formula; \ enable if you need to render an early image utilizing this formula, \ or for a variant algorithm that generally produces less feedback variation" visible = (@varyturb || @varyradius || @varythresh || @varyrwidth || @varycenter || @varyspread) endparam } jam-hypocycloidGeneralized { ; jam version 020816 ; Oscillator trap based on a generalized hypocycloid, here defined by ; the parametric equations, ; x = c1 * [sin||cos](f1*t+k1) + c2 * [sin||cos](f2*t) + c3 * [sin||cos](f3*t) ; y = c4 * [sin||cos](f4*t+k1) + c5 * [sin||cos](f5*t) + c6 * [sin||cos](f6*t). init: float twopi = 2.0 * #pi ; Change and scale variables to facilitate variation, if selected float spread = @colorspread, float spreadstep = 0.05 * @spreadstp float thresh = @threshold, float threshstep = 0.05 * @threshstp float scale = 0.1 * @nscale, float scalestep = 0.05 * @scalestp float ringstep = 0.05 * @ringstp, float rwidth = @ringwidth float rotation = @rotate * #pi / 180, float rotationstep = 0.05 * @rotationstp if ( rotation < 0 ) rotation = rotation + twopi endif ; rotation complex center = @centr, float centerstep = @centerstp bool firsthyp = FALSE float pangle = atan2(#pixel) if pangle < 0 pangle = pangle + twopi endif ; pangle float sign = 0.0 bool trapped = FALSE bool vary = TRUE float innerradius = thresh - @ringwidth if ( @whattotrap > 11 ) innerradius = thresh + @ringwidth ; innerradius is really an outerradius if we are exceeding limits endif ; @whattotrap ; For turbulence computation option float turbulamount = @turbamount, float _coloradjust = 0.0, float _color = 0.0 complex zlast = (0,0), complex tlast = (1,0), float turbstep = @turbstp complex zold = (0,0), complex zveryold = (0,0), complex zscratch = (0,0) complex zold2 = (0,0) float rfbcomp = 1-@rfblend, float ifbcomp = 1-@ifblend float rbbcomp = 1-@rbblend, float ibbcomp = 1-@ibblend float trapbcomp = 1-@trapblend, float initbcomp = 1-@initblend if @towatch == 0 int watch = #maxiter else int watch = @skippediters + @towatch endif ; towatch int iter = 0, int count = 0 int itrapped = int itrapped2 = int itrapped3 = int itrapped4 = 0 float test = 0.0, float trapped1 = float trapped2 = float trapped3 = float trapped4 = 1e9 float zangle = 0.0, float zatrapped = float zatrapped2 = float zatrapped3 = float zatrapped4 = 0.0 float cangle = 0.0, float catrapped = float catrapped2 = float catrapped3 = float catrapped4 = 0.0 complex ztrapped = complex ztrapped2 = complex ztrapped3 = complex ztrapped4 = (0,0) complex ztemp = complex zttrapped = complex zttrapped2 = complex zttrapped3 = complex zttrapped4 = (0,0) complex tempc = complex ctrapped = complex ctrapped2 = complex ctrapped3 = complex ctrapped4 = (0,0) float tempx = 0.0, float tempy = 0.0, float temp = 0.0, float temp2 = 0.0 complex zinput = (0,0) ; If we're trapping something big, initialize small if (( @whattotrap == 1 ) || ( @whattotrap == 5 ) || ( @whattotrap == 6 ) \ || ( @whattotrap == 7 )) trapped1 = trapped2 = trapped3 = trapped4 = -1e9 elseif @whattotrap > 14 trapped2 = -1e9 ; used to store the max when looking for min-max, min+max, etc. endif ; trapmode loop: iter = iter + 1 if ( iter > @skippediters ) && ( iter <= watch ) ; finished skipping --- start testing for trap ; Initialize front end real, front end imag, if desired temp2 = @rfscale * real(#z) if ( @realfront == 0 ) tempx = temp2 elseif ( @realfront == 1 ) tempx = 1/temp2 elseif ( @realfront == 2 ) tempx = temp2 * temp2 elseif ( @realfront == 3 ) tempx = 1 / ( temp2 * temp2 ) elseif ( @realfront == 4 ) tempx = log(temp2) elseif ( @realfront == 5 ) tempx = exp( temp2) elseif ( @realfront == 6 ) tempx = temp2^temp2 elseif ( @realfront == 7 ) tempx = sin( temp2 ) elseif ( @realfront == 8 ) tempx = cos( temp2 ) elseif ( @realfront == 9 ) tempx = tan( temp2 ) elseif ( @realfront == 10 ) tempx = asin( temp2 ) elseif ( @realfront == 11 ) tempx = acos( temp2 ) elseif ( @realfront == 12 ) tempx = atan( temp2 ) elseif ( @realfront == 13 ) tempx = sinh( temp2 ) elseif ( @realfront == 14 ) tempx = cosh( temp2 ) elseif ( @realfront == 15 ) tempx = tanh( temp2 ) elseif ( @realfront == 16 ) tempx = asinh( temp2 ) elseif ( @realfront == 17 ) tempx = acosh( temp2 ) elseif ( @realfront == 18 ) tempx = atanh( temp2 ) elseif ( @realfront == 19 ) tempx = log( 1/temp2 ) elseif ( @realfront == 20 ) tempx = log( log( temp2 )) elseif ( @realfront == 21 ) tempx = exp( -temp2 ) elseif ( @realfront == 22 ) tempx = exp( 1/temp2 ) elseif ( @realfront == 23 ) tempx = temp2^(-temp2) elseif ( @realfront == 24 ) tempx = sin( temp2 ) tempx = tempx * tempx elseif ( @realfront == 25 ) tempx = cos( temp2 ) tempx = tempx * tempx elseif ( @realfront == 26 ) tempx = tan( temp2 ) tempx = tempx * tempx elseif ( @realfront == 27 ) tempx = cotan( temp2 ) elseif ( @realfront == 28 ) tempx = 1/cos( temp2 ) elseif ( @realfront == 29 ) tempx = 1/sin( temp2 ) elseif ( @realfront == 30 ) tempx = cotan( temp2 ) tempx = tempx * tempx elseif ( @realfront == 31 ) tempx = 1/cos( temp2 ) tempx = tempx * tempx elseif ( @realfront == 32 ) tempx = 1/sin( temp2 ) tempx = tempx * tempx elseif ( @realfront == 33 ) tempx = temp2^(temp2) tempx = temp2^tempx elseif ( @realfront == 34 ) tempx = temp2^(temp2) tempx = 1/( temp2^tempx ) elseif ( @realfront == 35 ) tempx = log(-temp2) elseif ( @realfront == 36 ) tempx = 1/log( temp2 ) elseif ( @realfront == 37 ) tempx = temp2 * log( temp2 ) elseif ( @realfront == 38 ) tempx = sin( temp2 ) / temp2 elseif ( @realfront == 39 ) tempx = cos( temp2 ) / temp2 elseif ( @realfront == 40 ) tempx = sin( temp2 ) * cos( temp2 ) elseif ( @realfront == 41 ) tempx = sin( temp2^2 ) elseif ( @realfront == 42 ) tempx = exp( -1/temp2 ) elseif ( @realfront == 43 ) tempx = temp2 * exp( temp2 ) elseif ( @realfront == 44 ) tempx = temp2 * exp( -temp2 ) elseif ( @realfront == 45 ) tempx = temp2 * exp( 1/temp2 ) elseif ( @realfront == 46 ) tempx = temp2 * exp( -1/temp2 ) elseif ( @realfront == 47 ) tempx = temp2 * temp2 * temp2 elseif ( @realfront == 48 ) tempx = 1 / ( temp2 * temp2 * temp2 ) elseif ( @realfront == 49 ) tempx = atan( 1 / temp2 ) elseif ( @realfront == 50 ) tempx = acos( 1 / temp2 ) elseif ( @realfront == 51 ) tempx = asin( 1 / temp2 ) elseif ( @realfront == 52 ) tempx = tan( temp2 ) / temp2 elseif ( @realfront == 53 ) tempx = cotan( temp2 ) / temp2 elseif ( @realfront == 54 ) tempx = 1 / ( temp2 * cos( temp2 )) elseif ( @realfront == 55 ) tempx = 1 / ( temp2 * sin( temp2 )) elseif ( @realfront == 56 ) tempx = temp2 * sin( temp2 ) elseif ( @realfront == 57 ) tempx = temp2 * cos( temp2 ) elseif ( @realfront == 58 ) tempx = temp2 * tan( temp2 ) elseif ( @realfront == 59 ) tempx = temp2 * cotan( temp2 ) elseif ( @realfront == 60 ) tempx = temp2/cos( temp2 ) elseif ( @realfront == 61 ) tempx = temp2/sin( temp2 ) elseif ( @realfront == 62 ) tempx = sin( 1/temp2 ) elseif ( @realfront == 63 ) tempx = cos( 1/temp2 ) elseif ( @realfront == 64 ) tempx = tan( 1/temp2 ) elseif ( @realfront == 65 ) tempx = cotan( 1/temp2 ) elseif ( @realfront == 66 ) tempx = 1/cos( 1/temp2 ) elseif ( @realfront == 67 ) tempx = 1/sin( 1/temp2 ) elseif ( @realfront == 68 ) tempx = cotanh( temp2 ) elseif ( @realfront == 69 ) tempx = 1/cosh( temp2 ) elseif ( @realfront == 70 ) tempx = 1/sinh( temp2 ) elseif ( @realfront == 71 ) tempx = atanh( 1/temp2 ) elseif ( @realfront == 72 ) tempx = acosh( 1/temp2 ) elseif ( @realfront == 73 ) tempx = asinh( 1/temp2 ) elseif @realfront == 74 tempx = temp2^@rfpower elseif @realfront == 75 tempx = sinh(temp2) tempx = tempx * tempx elseif @realfront == 76 tempx = cosh( temp2 ) tempx = tempx * tempx elseif @realfront == 77 tempx = tanh(temp2) tempx = tempx * tempx elseif @realfront == 78 tempx = cotanh( temp2 ) tempx = tempx * tempx elseif @realfront == 79 tempx = 1/cosh(temp2) tempx = tempx * tempx elseif @realfront == 80 tempx = 1 / sinh( temp2 ) tempx = tempx * tempx elseif @realfront == 81 tempx = sinh(1/temp2) elseif @realfront == 82 tempx = cosh(1/temp2) elseif @realfront == 83 tempx = tanh(1/temp2) elseif @realfront == 84 tempx = cotanh(1/temp2) elseif @realfront == 85 tempx = 1/cosh(1/temp2) elseif @realfront == 86 tempx = 1/sinh(1/temp2) elseif @realfront == 87 tempx = sin( temp2 ) * tan(temp2) elseif @realfront == 88 tempx = sinh(temp2) * tanh(temp2) elseif @realfront == 89 tempx = sinh(temp2) * cosh(temp2) elseif @realfront == 90 tempx = sinh(temp2), temp = cosh(temp2) tempx = tempx*tempx*temp*temp elseif @realfront == 91 tempx = sin(temp2), temp = cos(temp2) tempx = tempx*tempx*temp*temp elseif @realfront == 92 tempx = 1/temp2 tempx = sin(tempx)*cos(tempx) elseif @realfront == 93 tempx = sin( 1/temp2 ) tempx = tempx*tempx elseif @realfront == 94 tempx = sin(temp2) * cos(1/temp2) elseif @realfront == 95 tempx = sin(temp2) * sin(1/temp2) elseif @realfront == 96 tempx = log(temp2) tempx = tempx*tempx elseif @realfront == 97 tempx = sin(temp2) * sin(2*temp2) elseif @realfront == 98 tempx = exp(2*temp2) elseif @realfront == 99 tempx = exp(-2*temp2) elseif @realfront == 100 tempx = 1/temp2 tempx = sinh(tempx)*cosh(tempx) elseif @realfront == 101 tempx = sinh( 1/temp2 ) tempx = tempx*tempx elseif @realfront == 102 tempx = sinh(temp2) * cosh(1/temp2) elseif @realfront == 103 tempx = sinh(temp2) * sinh(1/temp2) elseif @realfront == 104 tempx = sin(temp2) * sinh(temp2) elseif @realfront == 105 tempx = sin(temp2) * cosh(temp2) elseif @realfront == 106 tempx = sin(temp2), temp = sinh(temp2) tempx = tempx*tempx*temp*temp elseif @realfront == 107 tempx = sin(temp2)*exp(temp2) elseif @realfront == 108 tempx = cos(temp2)*exp(temp2) elseif @realfront == 109 tempx = sinh(temp2)*exp(temp2) elseif @realfront == 110 tempx = cosh(temp2)*exp(temp2) elseif @realfront == 111 tempx = sin(temp2)*log(temp2) elseif @realfront == 112 tempx = cos(temp2)*log(temp2) elseif @realfront == 113 tempx = sinh(temp2)*log(temp2) else ; @realfront == 114 tempx = cosh(temp2)*log(temp2) endif ; realfront if @rfperturb tempx = @rfblend * tempx + rfbcomp * real(#z) endif ; @rfperturb temp2 = @ifscale * imag(#z) if ( @imagfront == 0 ) tempy = temp2 elseif ( @imagfront == 1 ) tempy = 1/temp2 elseif ( @imagfront == 2 ) tempy = temp2 * temp2 elseif ( @imagfront == 3 ) tempy = 1 / ( temp2 * temp2 ) elseif ( @imagfront == 4 ) tempy = log(temp2) elseif ( @imagfront == 5 ) tempy = exp( temp2) elseif ( @imagfront == 6 ) tempy = temp2^temp2 elseif ( @imagfront == 7 ) tempy = sin( temp2 ) elseif ( @imagfront == 8 ) tempy = cos( temp2 ) elseif ( @imagfront == 9 ) tempy = tan( temp2 ) elseif ( @imagfront == 10 ) tempy = asin( temp2 ) elseif ( @imagfront == 11 ) tempy = acos( temp2 ) elseif ( @imagfront == 12 ) tempy = atan( temp2 ) elseif ( @imagfront == 13 ) tempy = sinh( temp2 ) elseif ( @imagfront == 14 ) tempy = cosh( temp2 ) elseif ( @imagfront == 15 ) tempy = tanh( temp2 ) elseif ( @imagfront == 16 ) tempy = asinh( temp2 ) elseif ( @imagfront == 17 ) tempy = acosh( temp2 ) elseif ( @imagfront == 18 ) tempy = atanh( temp2 ) elseif ( @imagfront == 19 ) tempy = log( 1/temp2 ) elseif ( @imagfront == 20 ) tempy = log( log( temp2 )) elseif ( @imagfront == 21 ) tempy = exp( -temp2 ) elseif ( @imagfront == 22 ) tempy = exp( 1/temp2 ) elseif ( @imagfront == 23 ) tempy = temp2^(-temp2) elseif ( @imagfront == 24 ) tempy = sin( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 25 ) tempy = cos( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 26 ) tempy = tan( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 27 ) tempy = cotan( temp2 ) elseif ( @imagfront == 28 ) tempy = 1/cos( temp2 ) elseif ( @imagfront == 29 ) tempy = 1/sin( temp2 ) elseif ( @imagfront == 30 ) tempy = cotan( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 31 ) tempy = 1/cos( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 32 ) tempy = 1/sin( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 33 ) tempy = temp2^(temp2) tempy = temp2^tempy elseif ( @imagfront == 34 ) tempy = temp2^(temp2) tempy = 1/( temp2^tempy ) elseif ( @imagfront == 35 ) tempy = log(-temp2) elseif ( @imagfront == 36 ) tempy = 1/log( temp2 ) elseif ( @imagfront == 37 ) tempy = temp2 * log( temp2 ) elseif ( @imagfront == 38 ) tempy = sin( temp2 ) / temp2 elseif ( @imagfront == 39 ) tempy = cos( temp2 ) / temp2 elseif ( @imagfront == 40 ) tempy = sin( temp2 ) * cos( temp2 ) elseif ( @imagfront == 41 ) tempy = sin( temp2^2 ) elseif ( @imagfront == 42 ) tempy = exp( -1/temp2 ) elseif ( @imagfront == 43 ) tempy = temp2 * exp( temp2 ) elseif ( @imagfront == 44 ) tempy = temp2 * exp( -temp2 ) elseif ( @imagfront == 45 ) tempy = temp2 * exp( 1/temp2 ) elseif ( @imagfront == 46 ) tempy = temp2 * exp( -1/temp2 ) elseif ( @imagfront == 47 ) tempy = temp2 * temp2 * temp2 elseif ( @imagfront == 48 ) tempy = 1 / ( temp2 * temp2 * temp2 ) elseif ( @imagfront == 49 ) tempy = atan( 1 / temp2 ) elseif ( @imagfront == 50 ) tempy = acos( 1 / temp2 ) elseif ( @imagfront == 51 ) tempy = asin( 1 / temp2 ) elseif ( @imagfront == 52 ) tempy = tan( temp2 ) / temp2 elseif ( @imagfront == 53 ) tempy = cotan( temp2 ) / temp2 elseif ( @imagfront == 54 ) tempy = 1 / ( temp2 * cos( temp2 )) elseif ( @imagfront == 55 ) tempy = 1 / ( temp2 * sin( temp2 )) elseif ( @imagfront == 56 ) tempy = temp2 * sin( temp2 ) elseif ( @imagfront == 57 ) tempy = temp2 * cos( temp2 ) elseif ( @imagfront == 58 ) tempy = temp2 * tan( temp2 ) elseif ( @imagfront == 59 ) tempy = temp2 * cotan( temp2 ) elseif ( @imagfront == 60 ) tempy = temp2/cos( temp2 ) elseif ( @imagfront == 61 ) tempy = temp2/sin( temp2 ) elseif ( @imagfront == 62 ) tempy = sin( 1/temp2 ) elseif ( @imagfront == 63 ) tempy = cos( 1/temp2 ) elseif ( @imagfront == 64 ) tempy = tan( 1/temp2 ) elseif ( @imagfront == 65 ) tempy = cotan( 1/temp2 ) elseif ( @imagfront == 66 ) tempy = 1/cos( 1/temp2 ) elseif ( @imagfront == 67 ) tempy = 1/sin( 1/temp2 ) elseif ( @imagfront == 68 ) tempy = cotanh( temp2 ) elseif ( @imagfront == 69 ) tempy = 1/cosh( temp2 ) elseif ( @imagfront == 70 ) tempy = 1/sinh( temp2 ) elseif ( @imagfront == 71 ) tempy = atanh( 1/temp2 ) elseif ( @imagfront == 72 ) tempy = acosh( 1/temp2 ) elseif ( @imagfront == 73 ) tempy = asinh( 1/temp2 ) elseif @imagfront == 74 tempy = temp2^@ifpower elseif @imagfront == 75 tempy = sinh(temp2) tempy = tempy * tempy elseif @imagfront == 76 tempy = cosh( temp2 ) tempy = tempy * tempy elseif @imagfront == 77 tempy = tanh(temp2) tempy = tempy * tempy elseif @imagfront == 78 tempy = cotanh( temp2 ) tempy = tempy * tempy elseif @imagfront == 79 tempy = 1/cosh(temp2) tempy = tempy * tempy elseif @imagfront == 80 tempy = 1 / sinh( temp2 ) tempy = tempy * tempy elseif @imagfront == 81 tempy = sinh(1/temp2) elseif @imagfront == 82 tempy = cosh(1/temp2) elseif @imagfront == 83 tempy = tanh(1/temp2) elseif @imagfront == 84 tempy = cotanh(1/temp2) elseif @imagfront == 85 tempy = 1/cosh(1/temp2) elseif @imagfront == 86 tempy = 1/sinh(1/temp2) elseif @imagfront == 87 tempy = sin( temp2 ) * tan(temp2) elseif @imagfront == 88 tempy = sinh(temp2) * tanh(temp2) elseif @imagfront == 89 tempy = sinh(temp2) * cosh(temp2) elseif @imagfront == 90 tempy = sinh(temp2), temp = cosh(temp2) tempy = tempy*tempy*temp*temp elseif @imagfront == 91 tempy = sin(temp2), temp = cos(temp2) tempy = tempy*tempy*temp*temp elseif @imagfront == 92 tempy = 1/temp2 tempy = sin(tempy)*cos(tempy) elseif @imagfront == 93 tempy = sin( 1/temp2 ) tempy = tempy*tempy elseif @imagfront == 94 tempy = sin(temp2) * cos(1/temp2) elseif @imagfront == 95 tempy = sin(temp2) * sin(1/temp2) elseif @imagfront == 96 tempy = log(temp2) tempy = tempy*tempy elseif @imagfront == 97 tempy = sin(temp2) * sin(2*temp2) elseif @imagfront == 98 tempy = exp(2*temp2) elseif @imagfront == 99 tempy = exp(-2*temp2) elseif @imagfront == 100 tempy = 1/temp2 tempy = sinh(tempy)*cosh(tempy) elseif @imagfront == 101 tempy = sinh( 1/temp2 ) tempy = tempy*tempy elseif @imagfront == 102 tempy = sinh(temp2) * cosh(1/temp2) elseif @imagfront == 103 tempy = sinh(temp2) * sinh(1/temp2) elseif @imagfront == 104 tempy = sin(temp2) * sinh(temp2) elseif @imagfront == 105 tempy = sin(temp2) * cosh(temp2) elseif @imagfront == 106 tempy = sin(temp2), temp = sinh(temp2) tempy = tempy*tempy*temp*temp elseif @imagfront == 107 tempy = sin(temp2)*exp(temp2) elseif @imagfront == 108 tempy = cos(temp2)*exp(temp2) elseif @imagfront == 109 tempy = sinh(temp2)*exp(temp2) elseif @imagfront == 110 tempy = cosh(temp2)*exp(temp2) elseif @imagfront == 111 tempy = sin(temp2)*log(temp2) elseif @imagfront == 112 tempy = cos(temp2)*log(temp2) elseif @imagfront == 113 tempy = sinh(temp2)*log(temp2) else ; @imagfront == 114 tempy = cosh(temp2)*log(temp2) endif ; imagfront if @ifperturb tempy = @ifblend * tempy + ifbcomp * imag(#z) endif ; @ifperturb zold = tempx + flip(tempy) ; Initialize z, if desired zold = @ziscale * zold if ( @initialization == 0 ) zinput = zold elseif ( @initialization == 1 ) zinput = 1/zold elseif ( @initialization == 2 ) zinput = zold * zold elseif ( @initialization == 3 ) zinput = 1 / ( zold * zold ) elseif ( @initialization == 4 ) zinput = log(zold) elseif ( @initialization == 5 ) zinput = exp( zold) elseif ( @initialization == 6 ) zinput = zold^zold elseif ( @initialization == 7 ) zinput = sin( zold ) elseif ( @initialization == 8 ) zinput = cos( zold ) elseif ( @initialization == 9 ) zinput = tan( zold ) elseif ( @initialization == 10 ) zinput = asin( zold ) elseif ( @initialization == 11 ) zinput = acos( zold ) elseif ( @initialization == 12 ) zinput = atan( zold ) elseif ( @initialization == 13 ) zinput = sinh( zold ) elseif ( @initialization == 14 ) zinput = cosh( zold ) elseif ( @initialization == 15 ) zinput = tanh( zold ) elseif ( @initialization == 16 ) zinput = asinh( zold ) elseif ( @initialization == 17 ) zinput = acosh( zold ) elseif ( @initialization == 18 ) zinput = atanh( zold ) elseif ( @initialization == 19 ) zinput = log( 1/zold ) elseif ( @initialization == 20 ) zinput = log( log( zold )) elseif ( @initialization == 21 ) zinput = exp( -zold ) elseif ( @initialization == 22 ) zinput = exp( 1/zold ) elseif ( @initialization == 23 ) zinput = zold^(-zold) elseif ( @initialization == 24 ) zinput = sin( zold ) zinput = zinput * zinput elseif ( @initialization == 25 ) zinput = cos( zold ) zinput = zinput * zinput elseif ( @initialization == 26 ) zinput = tan( zold ) zinput = zinput * zinput elseif ( @initialization == 27 ) zinput = cotan( zold ) elseif ( @initialization == 28 ) zinput = 1/cos( zold ) elseif ( @initialization == 29 ) zinput = 1/sin( zold ) elseif ( @initialization == 30 ) zinput = cotan( zold ) zinput = zinput * zinput elseif ( @initialization == 31 ) zinput = 1/cos( zold ) zinput = zinput * zinput elseif ( @initialization == 32 ) zinput = 1/sin( zold ) zinput = zinput * zinput elseif ( @initialization == 33 ) zinput = zold^(zold) zinput = zold^zinput elseif ( @initialization == 34 ) zinput = zold^(zold) zinput = 1/( zold^zinput ) elseif ( @initialization == 35 ) zinput = log(-zold) elseif ( @initialization == 36 ) zinput = 1/log( zold ) elseif ( @initialization == 37 ) zinput = zold * log( zold ) elseif ( @initialization == 38 ) zinput = sin( zold ) / zold elseif ( @initialization == 39 ) zinput = cos( zold ) / zold elseif ( @initialization == 40 ) zinput = sin( zold ) * cos( zold ) elseif ( @initialization == 41 ) zinput = sin( zold^2 ) elseif ( @initialization == 42 ) zinput = exp( -1/zold ) elseif ( @initialization == 43 ) zinput = zold * exp( zold ) elseif ( @initialization == 44 ) zinput = zold * exp( -zold ) elseif ( @initialization == 45 ) zinput = zold * exp( 1/zold ) elseif ( @initialization == 46 ) zinput = zold * exp( -1/zold ) elseif ( @initialization == 47 ) zinput = zold * zold * zold elseif ( @initialization == 48 ) zinput = 1 / ( zold * zold * zold ) elseif ( @initialization == 49 ) zinput = atan( 1 / zold ) elseif ( @initialization == 50 ) zinput = acos( 1 / zold ) elseif ( @initialization == 51 ) zinput = asin( 1 / zold ) elseif ( @initialization == 52 ) zinput = tan( zold ) / zold elseif ( @initialization == 53 ) zinput = cotan( zold ) / zold elseif ( @initialization == 54 ) zinput = 1 / ( zold * cos( zold )) elseif ( @initialization == 55 ) zinput = 1 / ( zold * sin( zold )) elseif ( @initialization == 56 ) zinput = zold * sin( zold ) elseif ( @initialization == 57 ) zinput = zold * cos( zold ) elseif ( @initialization == 58 ) zinput = zold * tan( zold ) elseif ( @initialization == 59 ) zinput = zold * cotan( zold ) elseif ( @initialization == 60 ) zinput = zold/cos( zold ) elseif ( @initialization == 61 ) zinput = zold/sin( zold ) elseif ( @initialization == 62 ) zinput = sin( 1/zold ) elseif ( @initialization == 63 ) zinput = cos( 1/zold ) elseif ( @initialization == 64 ) zinput = tan( 1/zold ) elseif ( @initialization == 65 ) zinput = cotan( 1/zold ) elseif ( @initialization == 66 ) zinput = 1/cos( 1/zold ) elseif ( @initialization == 67 ) zinput = 1/sin( 1/zold ) elseif ( @initialization == 68 ) zinput = cotanh( zold ) elseif ( @initialization == 69 ) zinput = 1/cosh( zold ) elseif ( @initialization == 70 ) zinput = 1/sinh( zold ) elseif ( @initialization == 71 ) zinput = atanh( 1/zold ) elseif ( @initialization == 72 ) zinput = acosh( 1/zold ) elseif ( @initialization == 73 ) zinput = asinh( 1/zold ) elseif @initialization == 74 zinput = zold^@zpower elseif @initialization == 75 zinput = sinh(zold) zinput = zinput * zinput elseif @initialization == 76 zinput = cosh( zold ) zinput = zinput * zinput elseif @initialization == 77 zinput = tanh(zold) zinput = zinput * zinput elseif @initialization == 78 zinput = cotanh( zold ) zinput = zinput * zinput elseif @initialization == 79 zinput = 1/cosh(zold) zinput = zinput * zinput elseif @initialization == 80 zinput = 1 / sinh( zold ) zinput = zinput * zinput elseif @initialization == 81 zinput = sinh(1/zold) elseif @initialization == 82 zinput = cosh(1/zold) elseif @initialization == 83 zinput = tanh(1/zold) elseif @initialization == 84 zinput = cotanh(1/zold) elseif @initialization == 85 zinput = 1/cosh(1/zold) elseif @initialization == 86 zinput = 1/sinh(1/zold) elseif @initialization == 87 zinput = sin( zold ) * tan(zold) elseif @initialization == 88 zinput = sinh(zold) * tanh(zold) elseif @initialization == 89 zinput = sinh(zold) * cosh(zold) elseif @initialization == 90 zinput = sinh(zold), zscratch = cosh(zold) zinput = zinput*zinput*zscratch*zscratch elseif @initialization == 91 zinput = sin(zold), zscratch = cos(zold) zinput = zinput*zinput*zscratch*zscratch elseif @initialization == 92 zinput = 1/zold zinput = sin(zinput)*cos(zinput) elseif @initialization == 93 zinput = sin( 1/zold ) zinput = zinput*zinput elseif @initialization == 94 zinput = sin(zold) * cos(1/zold) elseif @initialization == 95 zinput = sin(zold) * sin(1/zold) elseif @initialization == 96 zinput = log(zold) zinput = zinput*zinput elseif @initialization == 97 zinput = sin(zold) * sin(2*zold) elseif @initialization == 98 zinput = exp(2*zold) elseif @initialization == 99 zinput = exp(-2*zold) elseif @initialization == 100 zinput = 1/zold zinput = sinh(zinput)*cosh(zinput) elseif @initialization == 101 zinput = sinh( 1/zold ) zinput = zinput*zinput elseif @initialization == 102 zinput = sinh(zold) * cosh(1/zold) elseif @initialization == 103 zinput = sinh(zold) * sinh(1/zold) elseif @initialization == 104 zinput = sin(zold) * sinh(zold) elseif @initialization == 105 zinput = sin(zold) * cosh(zold) elseif @initialization == 106 zinput = sin(zold), zscratch = sinh(zold) zinput = zinput*zinput*zscratch*zscratch elseif @initialization == 107 zinput = sin(zold)*exp(zold) elseif @initialization == 108 zinput = cos(zold)*exp(zold) elseif @initialization == 109 zinput = sinh(zold)*exp(zold) elseif @initialization == 110 zinput = cosh(zold)*exp(zold) elseif @initialization == 111 zinput = sin(zold)*log(zold) elseif @initialization == 112 zinput = cos(zold)*log(zold) elseif @initialization == 113 zinput = sinh(zold)*log(zold) else ; @initialization == 114 zinput = cosh(zold)*log(zold) endif ; initialization if @initperturb zinput = @initblend * zinput + initbcomp * zold endif ; @ifperturb if @trapvariant != 0 if @swaporder if @trapvariant == 1 ; flip zinput = flip(zinput) elseif @trapvariant == 2 ; conjugate zinput = conj(zinput) elseif @trapvariant == 3 ; flip conjugate zinput = flip(conj(zinput)) elseif @trapvariant == 4 ; negate zinput = -zinput elseif @trapvariant == 5 ; negate flip zinput = -flip(zinput) elseif @trapvariant == 6 ; negate conjugate zinput = -conj(zinput) elseif @trapvariant == 7 ; negate flip conj = conj flip zinput = -flip(conj(zinput)) endif ; trapvariant2 endif ; swaporder endif ; trapvariant1 if @operator != 0 if @operator == 1 ; multiplication zinput = zinput * @operatee elseif @operator == 2 ; addition zinput = zinput + @operatee elseif @operator == 3 ; subtraction zinput = zinput - @operatee elseif @operator == 4 ; division zinput = zinput / @operatee elseif @operator == 5 ; exponentiation zinput = zinput ^ @operatee elseif @operator == 6 ; subtraction2 zinput = @operatee - zinput elseif @operator == 7 ; division2 zinput = @operatee / zinput elseif @operator == 8 ; exponential2 zinput = @operatee ^ zinput elseif @operator == 9 ; logarithm zinput = log(zinput) / log(@operatee) elseif @operator == 10 ; logarithm2 zinput = log(@operatee) / log(zinput) endif ; operator2 endif ; operator1 if @trapvariant != 0 if !@swaporder if @trapvariant == 1 ; flip zinput = flip(zinput) elseif @trapvariant == 2 ; conjugate zinput = conj(zinput) elseif @trapvariant == 3 ; flip conjugate zinput = flip(conj(zinput)) elseif @trapvariant == 4 ; negate zinput = -zinput elseif @trapvariant == 5 ; negate flip zinput = -flip(zinput) elseif @trapvariant == 6 ; negate conjugate zinput = -conj(zinput) elseif @trapvariant == 7 ; negate flip conj = conj flip zinput = -flip(conj(zinput)) endif ; trapvariant2 endif ; swaporder endif ; trapvariant1 ; Find coordinates and angle of point on oscillator graph closest to #z (zinput) ; First, center z on the oscillator center ztemp = zinput - center ; Compute rotated #z ztemp = ztemp * exp( flip( -rotation)) if @history if @histype == 0 zold2 = ztemp - zold2, ztemp = zold2 elseif @histype == 1 zscratch = ztemp, ztemp = ztemp - zold2, zold2 = zscratch elseif @histype == 2 zscratch = ztemp, ztemp = ztemp - zveryold, zveryold = zold2, zold2 = zscratch endif ; histype endif ; history ; Save value for later turbulence zlast = ztemp ; Now find angle of 'rotated' #z zangle = atan2( ztemp ) if ( zangle < 0 ) zangle = zangle + twopi ; 0 <= zangle <= two pi endif ; zangle if @hypmode == 2 if !firsthyp firsthyp = TRUE pangle = zangle endif ; firsthyp endif ; @hypmode if @hypmode == 0 temp = zangle else ; (@hypmode == 1) || (@hypmode == 2) temp = pangle endif ; @hypmode if @sprangle temp = temp*@sprangfactor endif ; @sprangle ; Find point on oscillator graph (i.e., on origin-#z radial vector) if @funcx1 tempx = @ampx1*sin(@freqx1*temp+@xoffset) else tempx = @ampx1*cos(@freqx1*temp+@xoffset) endif ; @funcx1 if @funcx2 tempx = tempx + @ampx2*sin(@freqx2*temp) else tempx = tempx + @ampx2*cos(@freqx2*temp) endif ; @funcx2 if @funcx3 tempx = tempx + @ampx3*sin(@freqx3*temp) else tempx = tempx + @ampx3*cos(@freqx3*temp) endif ; @funcx3 if @funcy1 tempy = @ampy1*sin(@freqy1*temp+@yoffset) else tempy = @ampy1*cos(@freqy1*temp+@yoffset) endif ; @funcy1 if @funcy2 tempy = tempy + @ampy2*sin(@freqy2*temp) else tempy = tempy + @ampy2*cos(@freqy2*temp) endif ; @funcy2 if @funcy3 tempy = tempy + @ampy3*sin(@freqy3*temp) else tempy = tempy + @ampy3*cos(@freqy3*temp) endif ; @funcy3 tempc = scale * (tempx + flip( tempy )) if @polar if @mutantpolar tempc = abs(tempx) * exp( flip( tempy )) else tempc = (tempx/cos(temp)) * exp( flip( temp )) endif ; @mutantpolar endif ; @polar zold = tempc ; Now transmute the trapped point of the trapping curve if desired tempc = @tiscale * tempc if @transmogrify != 0 if ( @transmogrify == 1 ) tempc = 1/tempc elseif ( @transmogrify == 2 ) tempc = tempc * tempc elseif ( @transmogrify == 3 ) tempc = 1 / ( tempc * tempc ) elseif ( @transmogrify == 4 ) tempc = log(tempc) elseif ( @transmogrify == 5 ) tempc = exp( tempc) elseif ( @transmogrify == 6 ) tempc = tempc^tempc elseif ( @transmogrify == 7 ) tempc = sin( tempc ) elseif ( @transmogrify == 8 ) tempc = cos( tempc ) elseif ( @transmogrify == 9 ) tempc = tan( tempc ) elseif ( @transmogrify == 10 ) tempc = asin( tempc ) elseif ( @transmogrify == 11 ) tempc = acos( tempc ) elseif ( @transmogrify == 12 ) tempc = atan( tempc ) elseif ( @transmogrify == 13 ) tempc = sinh( tempc ) elseif ( @transmogrify == 14 ) tempc = cosh( tempc ) elseif ( @transmogrify == 15 ) tempc = tanh( tempc ) elseif ( @transmogrify == 16 ) tempc = asinh( tempc ) elseif ( @transmogrify == 17 ) tempc = acosh( tempc ) elseif ( @transmogrify == 18 ) tempc = atanh( tempc ) elseif ( @transmogrify == 19 ) tempc = log( 1/tempc ) elseif ( @transmogrify == 20 ) tempc = log( log( tempc )) elseif ( @transmogrify == 21 ) tempc = exp( -tempc ) elseif ( @transmogrify == 22 ) tempc = exp( 1/tempc ) elseif ( @transmogrify == 23 ) tempc = tempc^(-tempc) elseif ( @transmogrify == 24 ) tempc = sin( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 25 ) tempc = cos( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 26 ) tempc = tan( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 27 ) tempc = cotan( tempc ) elseif ( @transmogrify == 28 ) tempc = 1/cos( tempc ) elseif ( @transmogrify == 29 ) tempc = 1/sin( tempc ) elseif ( @transmogrify == 30 ) tempc = cotan( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 31 ) tempc = 1/cos( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 32 ) tempc = 1/sin( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 33 ) tempc = tempc^(tempc) tempc = tempc^tempc elseif ( @transmogrify == 34 ) tempc = tempc^(tempc) tempc = 1/( tempc^tempc ) elseif ( @transmogrify == 35 ) tempc = log(-tempc) elseif ( @transmogrify == 36 ) tempc = 1/log( tempc ) elseif ( @transmogrify == 37 ) tempc = tempc * log( tempc ) elseif ( @transmogrify == 38 ) tempc = sin( tempc ) / tempc elseif ( @transmogrify == 39 ) tempc = cos( tempc ) / tempc elseif ( @transmogrify == 40 ) tempc = sin( tempc ) * cos( tempc ) elseif ( @transmogrify == 41 ) tempc = sin( tempc^2 ) elseif ( @transmogrify == 42 ) tempc = exp( -1/tempc ) elseif ( @transmogrify == 43 ) tempc = tempc * exp( tempc ) elseif ( @transmogrify == 44 ) tempc = tempc * exp( -tempc ) elseif ( @transmogrify == 45 ) tempc = tempc * exp( 1/tempc ) elseif ( @transmogrify == 46 ) tempc = tempc * exp( -1/tempc ) elseif ( @transmogrify == 47 ) tempc = tempc * tempc * tempc elseif ( @transmogrify == 48 ) tempc = 1 / ( tempc * tempc * tempc ) elseif ( @transmogrify == 49 ) tempc = atan( 1 / tempc ) elseif ( @transmogrify == 50 ) tempc = acos( 1 / tempc ) elseif ( @transmogrify == 51 ) tempc = asin( 1 / tempc ) elseif ( @transmogrify == 52 ) tempc = tan( tempc ) / tempc elseif ( @transmogrify == 53 ) tempc = cotan( tempc ) / tempc elseif ( @transmogrify == 54 ) tempc = 1 / ( tempc * cos( tempc )) elseif ( @transmogrify == 55 ) tempc = 1 / ( tempc * sin( tempc )) elseif ( @transmogrify == 56 ) tempc = tempc * sin( tempc ) elseif ( @transmogrify == 57 ) tempc = tempc * cos( tempc ) elseif ( @transmogrify == 58 ) tempc = tempc * tan( tempc ) elseif ( @transmogrify == 59 ) tempc = tempc * cotan( tempc ) elseif ( @transmogrify == 60 ) tempc = tempc/cos( tempc ) elseif ( @transmogrify == 61 ) tempc = tempc/sin( tempc ) elseif ( @transmogrify == 62 ) tempc = sin( 1/tempc ) elseif ( @transmogrify == 63 ) tempc = cos( 1/tempc ) elseif ( @transmogrify == 64 ) tempc = tan( 1/tempc ) elseif ( @transmogrify == 65 ) tempc = cotan( 1/tempc ) elseif ( @transmogrify == 66 ) tempc = 1/cos( 1/tempc ) elseif ( @transmogrify == 67 ) tempc = 1/sin( 1/tempc ) elseif ( @transmogrify == 68 ) tempc = cotanh( tempc ) elseif ( @transmogrify == 69 ) tempc = 1/cosh( tempc ) elseif ( @transmogrify == 70 ) tempc = 1/sinh( tempc ) elseif ( @transmogrify == 71 ) tempc = atanh( 1/tempc ) elseif ( @transmogrify == 72 ) tempc = acosh( 1/tempc ) elseif ( @transmogrify == 73 ) tempc = asinh( 1/tempc ) elseif @transmogrify == 74 tempc = tempc^@tpower elseif @transmogrify == 75 tempc = sinh(tempc) tempc = tempc * tempc elseif @transmogrify == 76 tempc = cosh( tempc ) tempc = tempc * tempc elseif @transmogrify == 77 tempc = tanh(tempc) tempc = tempc * tempc elseif @transmogrify == 78 tempc = cotanh( tempc ) tempc = tempc * tempc elseif @transmogrify == 79 tempc = 1/cosh(tempc) tempc = tempc * tempc elseif @transmogrify == 80 tempc = 1 / sinh( tempc ) tempc = tempc * tempc elseif @transmogrify == 81 tempc = sinh(1/tempc) elseif @transmogrify == 82 tempc = cosh(1/tempc) elseif @transmogrify == 83 tempc = tanh(1/tempc) elseif @transmogrify == 84 tempc = cotanh(1/tempc) elseif @transmogrify == 85 tempc = 1/cosh(1/tempc) elseif @transmogrify == 86 tempc = 1/sinh(1/tempc) elseif @transmogrify == 87 tempc = sin( tempc ) * tan(tempc) elseif @transmogrify == 88 tempc = sinh(tempc) * tanh(tempc) elseif @transmogrify == 89 tempc = sinh(tempc) * cosh(tempc) elseif @transmogrify == 90 zscratch = cosh(tempc) tempc = sinh(tempc) tempc = tempc*tempc*zscratch*zscratch elseif @transmogrify == 91 zscratch = cosh(tempc) tempc = sin(tempc) tempc = tempc*tempc*zscratch*zscratch elseif @transmogrify == 92 tempc = 1/tempc tempc = sin(tempc)*cos(tempc) elseif @transmogrify == 93 tempc = sin( 1/tempc ) tempc = tempc*tempc elseif @transmogrify == 94 tempc = sin(tempc) * cos(1/tempc) elseif @transmogrify == 95 tempc = sin(tempc) * sin(1/tempc) elseif @transmogrify == 96 tempc = log(tempc) tempc = tempc*tempc elseif @transmogrify == 97 tempc = sin(tempc) * sin(2*tempc) elseif @transmogrify == 98 tempc = exp(2*tempc) elseif @transmogrify == 99 tempc = exp(-2*tempc) elseif @transmogrify == 100 tempc = 1/tempc tempc = sinh(tempc)*cosh(tempc) elseif @transmogrify == 101 tempc = sinh( 1/tempc ) tempc = tempc*tempc elseif @transmogrify == 102 tempc = sinh(tempc) * cosh(1/tempc) elseif @transmogrify == 103 tempc = sinh(tempc) * sinh(1/tempc) elseif @transmogrify == 104 tempc = sin(tempc) * sinh(tempc) elseif @transmogrify == 105 tempc = sin(tempc) * cosh(tempc) elseif @transmogrify == 106 zscratch = cosh(tempc) tempc = sin(tempc) tempc = tempc*tempc*zscratch*zscratch elseif @transmogrify == 107 tempc = sin(tempc)*exp(tempc) elseif @transmogrify == 108 tempc = cos(tempc)*exp(tempc) elseif @transmogrify == 109 tempc = sinh(tempc)*exp(tempc) elseif @transmogrify == 110 tempc = cosh(tempc)*exp(tempc) elseif @transmogrify == 111 tempc = sin(tempc)*log(tempc) elseif @transmogrify == 112 tempc = cos(tempc)*log(tempc) elseif @transmogrify == 113 tempc = sinh(tempc)*log(tempc) else ; @transmogrify == 114 tempc = cosh(tempc)*log(tempc) endif ; transmogrify2 endif ; transmogrify1 if @trapperturb tempc = @trapblend * tempc + trapbcomp * zold endif ; @trapperturb ; Initialize back end real, back end imag, if desired temp2 = @rbscale * real(tempc) if ( @realback == 0 ) tempx = temp2 elseif ( @realback == 1 ) tempx = 1/temp2 elseif ( @realback == 2 ) tempx = temp2 * temp2 elseif ( @realback == 3 ) tempx = 1 / ( temp2 * temp2 ) elseif ( @realback == 4 ) tempx = log(temp2) elseif ( @realback == 5 ) tempx = exp( temp2) elseif ( @realback == 6 ) tempx = temp2^temp2 elseif ( @realback == 7 ) tempx = sin( temp2 ) elseif ( @realback == 8 ) tempx = cos( temp2 ) elseif ( @realback == 9 ) tempx = tan( temp2 ) elseif ( @realback == 10 ) tempx = asin( temp2 ) elseif ( @realback == 11 ) tempx = acos( temp2 ) elseif ( @realback == 12 ) tempx = atan( temp2 ) elseif ( @realback == 13 ) tempx = sinh( temp2 ) elseif ( @realback == 14 ) tempx = cosh( temp2 ) elseif ( @realback == 15 ) tempx = tanh( temp2 ) elseif ( @realback == 16 ) tempx = asinh( temp2 ) elseif ( @realback == 17 ) tempx = acosh( temp2 ) elseif ( @realback == 18 ) tempx = atanh( temp2 ) elseif ( @realback == 19 ) tempx = log( 1/temp2 ) elseif ( @realback == 20 ) tempx = log( log( temp2 )) elseif ( @realback == 21 ) tempx = exp( -temp2 ) elseif ( @realback == 22 ) tempx = exp( 1/temp2 ) elseif ( @realback == 23 ) tempx = temp2^(-temp2) elseif ( @realback == 24 ) tempx = sin( temp2 ) tempx = tempx * tempx elseif ( @realback == 25 ) tempx = cos( temp2 ) tempx = tempx * tempx elseif ( @realback == 26 ) tempx = tan( temp2 ) tempx = tempx * tempx elseif ( @realback == 27 ) tempx = cotan( temp2 ) elseif ( @realback == 28 ) tempx = 1/cos( temp2 ) elseif ( @realback == 29 ) tempx = 1/sin( temp2 ) elseif ( @realback == 30 ) tempx = cotan( temp2 ) tempx = tempx * tempx elseif ( @realback == 31 ) tempx = 1/cos( temp2 ) tempx = tempx * tempx elseif ( @realback == 32 ) tempx = 1/sin( temp2 ) tempx = tempx * tempx elseif ( @realback == 33 ) tempx = temp2^(temp2) tempx = temp2^tempx elseif ( @realback == 34 ) tempx = temp2^(temp2) tempx = 1/( temp2^tempx ) elseif ( @realback == 35 ) tempx = log(-temp2) elseif ( @realback == 36 ) tempx = 1/log( temp2 ) elseif ( @realback == 37 ) tempx = temp2 * log( temp2 ) elseif ( @realback == 38 ) tempx = sin( temp2 ) / temp2 elseif ( @realback == 39 ) tempx = cos( temp2 ) / temp2 elseif ( @realback == 40 ) tempx = sin( temp2 ) * cos( temp2 ) elseif ( @realback == 41 ) tempx = sin( temp2^2 ) elseif ( @realback == 42 ) tempx = exp( -1/temp2 ) elseif ( @realback == 43 ) tempx = temp2 * exp( temp2 ) elseif ( @realback == 44 ) tempx = temp2 * exp( -temp2 ) elseif ( @realback == 45 ) tempx = temp2 * exp( 1/temp2 ) elseif ( @realback == 46 ) tempx = temp2 * exp( -1/temp2 ) elseif ( @realback == 47 ) tempx = temp2 * temp2 * temp2 elseif ( @realback == 48 ) tempx = 1 / ( temp2 * temp2 * temp2 ) elseif ( @realback == 49 ) tempx = atan( 1 / temp2 ) elseif ( @realback == 50 ) tempx = acos( 1 / temp2 ) elseif ( @realback == 51 ) tempx = asin( 1 / temp2 ) elseif ( @realback == 52 ) tempx = tan( temp2 ) / temp2 elseif ( @realback == 53 ) tempx = cotan( temp2 ) / temp2 elseif ( @realback == 54 ) tempx = 1 / ( temp2 * cos( temp2 )) elseif ( @realback == 55 ) tempx = 1 / ( temp2 * sin( temp2 )) elseif ( @realback == 56 ) tempx = temp2 * sin( temp2 ) elseif ( @realback == 57 ) tempx = temp2 * cos( temp2 ) elseif ( @realback == 58 ) tempx = temp2 * tan( temp2 ) elseif ( @realback == 59 ) tempx = temp2 * cotan( temp2 ) elseif ( @realback == 60 ) tempx = temp2/cos( temp2 ) elseif ( @realback == 61 ) tempx = temp2/sin( temp2 ) elseif ( @realback == 62 ) tempx = sin( 1/temp2 ) elseif ( @realback == 63 ) tempx = cos( 1/temp2 ) elseif ( @realback == 64 ) tempx = tan( 1/temp2 ) elseif ( @realback == 65 ) tempx = cotan( 1/temp2 ) elseif ( @realback == 66 ) tempx = 1/cos( 1/temp2 ) elseif ( @realback == 67 ) tempx = 1/sin( 1/temp2 ) elseif ( @realback == 68 ) tempx = cotanh( temp2 ) elseif ( @realback == 69 ) tempx = 1/cosh( temp2 ) elseif ( @realback == 70 ) tempx = 1/sinh( temp2 ) elseif ( @realback == 71 ) tempx = atanh( 1/temp2 ) elseif ( @realback == 72 ) tempx = acosh( 1/temp2 ) elseif ( @realback == 73 ) tempx = asinh( 1/temp2 ) elseif @realback == 74 tempx = temp2^@rbpower elseif @realback == 75 tempx = sinh(temp2) tempx = tempx * tempx elseif @realback == 76 tempx = cosh( temp2 ) tempx = tempx * tempx elseif @realback == 77 tempx = tanh(temp2) tempx = tempx * tempx elseif @realback == 78 tempx = cotanh( temp2 ) tempx = tempx * tempx elseif @realback == 79 tempx = 1/cosh(temp2) tempx = tempx * tempx elseif @realback == 80 tempx = 1 / sinh( temp2 ) tempx = tempx * tempx elseif @realback == 81 tempx = sinh(1/temp2) elseif @realback == 82 tempx = cosh(1/temp2) elseif @realback == 83 tempx = tanh(1/temp2) elseif @realback == 84 tempx = cotanh(1/temp2) elseif @realback == 85 tempx = 1/cosh(1/temp2) elseif @realback == 86 tempx = 1/sinh(1/temp2) elseif @realback == 87 tempx = sin( temp2 ) * tan(temp2) elseif @realback == 88 tempx = sinh(temp2) * tanh(temp2) elseif @realback == 89 tempx = sinh(temp2) * cosh(temp2) elseif @realback == 90 tempx = sinh(temp2), temp = cosh(temp2) tempx = tempx*tempx*temp*temp elseif @realback == 91 tempx = sin(temp2), temp = cos(temp2) tempx = tempx*tempx*temp*temp elseif @realback == 92 tempx = 1/temp2 tempx = sin(tempx)*cos(tempx) elseif @realback == 93 tempx = sin( 1/temp2 ) tempx = tempx*tempx elseif @realback == 94 tempx = sin(temp2) * cos(1/temp2) elseif @realback == 95 tempx = sin(temp2) * sin(1/temp2) elseif @realback == 96 tempx = log(temp2) tempx = tempx*tempx elseif @realback == 97 tempx = sin(temp2) * sin(2*temp2) elseif @realback == 98 tempx = exp(2*temp2) elseif @realback == 99 tempx = exp(-2*temp2) elseif @realback == 100 tempx = 1/temp2 tempx = sinh(tempx)*cosh(tempx) elseif @realback == 101 tempx = sinh( 1/temp2 ) tempx = tempx*tempx elseif @realback == 102 tempx = sinh(temp2) * cosh(1/temp2) elseif @realback == 103 tempx = sinh(temp2) * sinh(1/temp2) elseif @realback == 104 tempx = sin(temp2) * sinh(temp2) elseif @realback == 105 tempx = sin(temp2) * cosh(temp2) elseif @realback == 106 tempx = sin(temp2), temp = sinh(temp2) tempx = tempx*tempx*temp*temp elseif @realback == 107 tempx = sin(temp2)*exp(temp2) elseif @realback == 108 tempx = cos(temp2)*exp(temp2) elseif @realback == 109 tempx = sinh(temp2)*exp(temp2) elseif @realback == 110 tempx = cosh(temp2)*exp(temp2) elseif @realback == 111 tempx = sin(temp2)*log(temp2) elseif @realback == 112 tempx = cos(temp2)*log(temp2) elseif @realback == 113 tempx = sinh(temp2)*log(temp2) else ; @realback == 114 tempx = cosh(temp2)*log(temp2) endif ; realback if @rbperturb tempx = @rbblend * tempx + rbbcomp * real(tempc) endif ; @rbperturb temp2 = @ibscale * imag(tempc) if ( @imagback == 0 ) tempy = temp2 elseif ( @imagback == 1 ) tempy = 1/temp2 elseif ( @imagback == 2 ) tempy = temp2 * temp2 elseif ( @imagback == 3 ) tempy = 1 / ( temp2 * temp2 ) elseif ( @imagback == 4 ) tempy = log(temp2) elseif ( @imagback == 5 ) tempy = exp( temp2) elseif ( @imagback == 6 ) tempy = temp2^temp2 elseif ( @imagback == 7 ) tempy = sin( temp2 ) elseif ( @imagback == 8 ) tempy = cos( temp2 ) elseif ( @imagback == 9 ) tempy = tan( temp2 ) elseif ( @imagback == 10 ) tempy = asin( temp2 ) elseif ( @imagback == 11 ) tempy = acos( temp2 ) elseif ( @imagback == 12 ) tempy = atan( temp2 ) elseif ( @imagback == 13 ) tempy = sinh( temp2 ) elseif ( @imagback == 14 ) tempy = cosh( temp2 ) elseif ( @imagback == 15 ) tempy = tanh( temp2 ) elseif ( @imagback == 16 ) tempy = asinh( temp2 ) elseif ( @imagback == 17 ) tempy = acosh( temp2 ) elseif ( @imagback == 18 ) tempy = atanh( temp2 ) elseif ( @imagback == 19 ) tempy = log( 1/temp2 ) elseif ( @imagback == 20 ) tempy = log( log( temp2 )) elseif ( @imagback == 21 ) tempy = exp( -temp2 ) elseif ( @imagback == 22 ) tempy = exp( 1/temp2 ) elseif ( @imagback == 23 ) tempy = temp2^(-temp2) elseif ( @imagback == 24 ) tempy = sin( temp2 ) tempy = tempy * tempy elseif ( @imagback == 25 ) tempy = cos( temp2 ) tempy = tempy * tempy elseif ( @imagback == 26 ) tempy = tan( temp2 ) tempy = tempy * tempy elseif ( @imagback == 27 ) tempy = cotan( temp2 ) elseif ( @imagback == 28 ) tempy = 1/cos( temp2 ) elseif ( @imagback == 29 ) tempy = 1/sin( temp2 ) elseif ( @imagback == 30 ) tempy = cotan( temp2 ) tempy = tempy * tempy elseif ( @imagback == 31 ) tempy = 1/cos( temp2 ) tempy = tempy * tempy elseif ( @imagback == 32 ) tempy = 1/sin( temp2 ) tempy = tempy * tempy elseif ( @imagback == 33 ) tempy = temp2^(temp2) tempy = temp2^tempy elseif ( @imagback == 34 ) tempy = temp2^(temp2) tempy = 1/( temp2^tempy ) elseif ( @imagback == 35 ) tempy = log(-temp2) elseif ( @imagback == 36 ) tempy = 1/log( temp2 ) elseif ( @imagback == 37 ) tempy = temp2 * log( temp2 ) elseif ( @imagback == 38 ) tempy = sin( temp2 ) / temp2 elseif ( @imagback == 39 ) tempy = cos( temp2 ) / temp2 elseif ( @imagback == 40 ) tempy = sin( temp2 ) * cos( temp2 ) elseif ( @imagback == 41 ) tempy = sin( temp2^2 ) elseif ( @imagback == 42 ) tempy = exp( -1/temp2 ) elseif ( @imagback == 43 ) tempy = temp2 * exp( temp2 ) elseif ( @imagback == 44 ) tempy = temp2 * exp( -temp2 ) elseif ( @imagback == 45 ) tempy = temp2 * exp( 1/temp2 ) elseif ( @imagback == 46 ) tempy = temp2 * exp( -1/temp2 ) elseif ( @imagback == 47 ) tempy = temp2 * temp2 * temp2 elseif ( @imagback == 48 ) tempy = 1 / ( temp2 * temp2 * temp2 ) elseif ( @imagback == 49 ) tempy = atan( 1 / temp2 ) elseif ( @imagback == 50 ) tempy = acos( 1 / temp2 ) elseif ( @imagback == 51 ) tempy = asin( 1 / temp2 ) elseif ( @imagback == 52 ) tempy = tan( temp2 ) / temp2 elseif ( @imagback == 53 ) tempy = cotan( temp2 ) / temp2 elseif ( @imagback == 54 ) tempy = 1 / ( temp2 * cos( temp2 )) elseif ( @imagback == 55 ) tempy = 1 / ( temp2 * sin( temp2 )) elseif ( @imagback == 56 ) tempy = temp2 * sin( temp2 ) elseif ( @imagback == 57 ) tempy = temp2 * cos( temp2 ) elseif ( @imagback == 58 ) tempy = temp2 * tan( temp2 ) elseif ( @imagback == 59 ) tempy = temp2 * cotan( temp2 ) elseif ( @imagback == 60 ) tempy = temp2/cos( temp2 ) elseif ( @imagback == 61 ) tempy = temp2/sin( temp2 ) elseif ( @imagback == 62 ) tempy = sin( 1/temp2 ) elseif ( @imagback == 63 ) tempy = cos( 1/temp2 ) elseif ( @imagback == 64 ) tempy = tan( 1/temp2 ) elseif ( @imagback == 65 ) tempy = cotan( 1/temp2 ) elseif ( @imagback == 66 ) tempy = 1/cos( 1/temp2 ) elseif ( @imagback == 67 ) tempy = 1/sin( 1/temp2 ) elseif ( @imagback == 68 ) tempy = cotanh( temp2 ) elseif ( @imagback == 69 ) tempy = 1/cosh( temp2 ) elseif ( @imagback == 70 ) tempy = 1/sinh( temp2 ) elseif ( @imagback == 71 ) tempy = atanh( 1/temp2 ) elseif ( @imagback == 72 ) tempy = acosh( 1/temp2 ) elseif ( @imagback == 73 ) tempy = asinh( 1/temp2 ) elseif @imagback == 74 tempy = temp2^@ibpower elseif @imagback == 75 tempy = sinh(temp2) tempy = tempy * tempy elseif @imagback == 76 tempy = cosh( temp2 ) tempy = tempy * tempy elseif @imagback == 77 tempy = tanh(temp2) tempy = tempy * tempy elseif @imagback == 78 tempy = cotanh( temp2 ) tempy = tempy * tempy elseif @imagback == 79 tempy = 1/cosh(temp2) tempy = tempy * tempy elseif @imagback == 80 tempy = 1 / sinh( temp2 ) tempy = tempy * tempy elseif @imagback == 81 tempy = sinh(1/temp2) elseif @imagback == 82 tempy = cosh(1/temp2) elseif @imagback == 83 tempy = tanh(1/temp2) elseif @imagback == 84 tempy = cotanh(1/temp2) elseif @imagback == 85 tempy = 1/cosh(1/temp2) elseif @imagback == 86 tempy = 1/sinh(1/temp2) elseif @imagback == 87 tempy = sin( temp2 ) * tan(temp2) elseif @imagback == 88 tempy = sinh(temp2) * tanh(temp2) elseif @imagback == 89 tempy = sinh(temp2) * cosh(temp2) elseif @imagback == 90 tempy = sinh(temp2), temp = cosh(temp2) tempy = tempy*tempy*temp*temp elseif @imagback == 91 tempy = sin(temp2), temp = cos(temp2) tempy = tempy*tempy*temp*temp elseif @imagback == 92 tempy = 1/temp2 tempy = sin(tempy)*cos(tempy) elseif @imagback == 93 tempy = sin( 1/temp2 ) tempy = tempy*tempy elseif @imagback == 94 tempy = sin(temp2) * cos(1/temp2) elseif @imagback == 95 tempy = sin(temp2) * sin(1/temp2) elseif @imagback == 96 tempy = log(temp2) tempy = tempy*tempy elseif @imagback == 97 tempy = sin(temp2) * sin(2*temp2) elseif @imagback == 98 tempy = exp(2*temp2) elseif @imagback == 99 tempy = exp(-2*temp2) elseif @imagback == 100 tempy = 1/temp2 tempy = sinh(tempy)*cosh(tempy) elseif @imagback == 101 tempy = sinh( 1/temp2 ) tempy = tempy*tempy elseif @imagback == 102 tempy = sinh(temp2) * cosh(1/temp2) elseif @imagback == 103 tempy = sinh(temp2) * sinh(1/temp2) elseif @imagback == 104 tempy = sin(temp2) * sinh(temp2) elseif @imagback == 105 tempy = sin(temp2) * cosh(temp2) elseif @imagback == 106 tempy = sin(temp2), temp = sinh(temp2) tempy = tempy*tempy*temp*temp elseif @imagback == 107 tempy = sin(temp2)*exp(temp2) elseif @imagback == 108 tempy = cos(temp2)*exp(temp2) elseif @imagback == 109 tempy = sinh(temp2)*exp(temp2) elseif @imagback == 110 tempy = cosh(temp2)*exp(temp2) elseif @imagback == 111 tempy = sin(temp2)*log(temp2) elseif @imagback == 112 tempy = cos(temp2)*log(temp2) elseif @imagback == 113 tempy = sinh(temp2)*log(temp2) else ; @imagback == 114 tempy = cosh(temp2)*log(temp2) endif ; imagback if @ibperturb tempy = @ibblend * tempy + ibbcomp * imag(tempc) endif ; @ibperturb tempc = tempx + flip(tempy) cangle = atan2( tempc ) if ( cangle < 0 ) cangle = cangle + twopi endif ; cangle if @twavy if @twavmode == 0 ; radial mode temp = cabs( tempc ) temp = temp + @twavamp * temp * sin( @twavfreq * cangle ) ; vary radius tempc = temp * exp( flip( cangle )) ; compute new tempc else ; tangential mode tempx = cabs( tempc ) temp = cangle + @twavamp * cangle * sin( @twavfreq * tempx ) ; vary azimuth tempc = tempx * exp( flip( temp )) ; compute new tempc cangle = temp endif ; @twavmode endif ; @twavy if @pointmode ; compare subsequent values to first trap point on trap graph if itrapped != 0 ; some point must have already been trapped tempc = ctrapped endif; itrapped endif ; @pointmode ; Save value for later turbulence tlast = tempc if @swapflavor zscratch = ztemp else zscratch = #z endif ; swapflavor if ( @trapmode == 0 ) ; distance test = cabs( ztemp - tempc ) elseif ( @trapmode == 1 ) ; angle test = zangle elseif ( @trapmode == 2 ) ; trap angle test = cangle elseif ( @trapmode == 3 ) ; difference angle test = abs( zangle - cangle ) elseif ( @trapmode == 4 ) ; magnitude test = cabs( ztemp ) elseif ( @trapmode == 5 ) ; trap magnitude test = cabs( tempc ) elseif ( @trapmode == 6 ) ; real test = abs( real( ztemp )) elseif ( @trapmode == 7 ) ; imaginary test = abs( imag( ztemp )) elseif ( @trapmode == 8 ) ; trap real test = abs( real( tempc )) elseif ( @trapmode == 9 ) ; trap imaginary test = abs( imag( tempc )) elseif ( @trapmode == 10 ) ; sum test = cabs( zscratch + tempc ) elseif ( @trapmode == 11 ) ; difference test = cabs( zscratch - tempc) elseif ( @trapmode == 12 ) ; product test = cabs( zscratch * tempc ) elseif ( @trapmode == 13 ) ; quotient 1 test = cabs( zscratch / tempc ) elseif ( @trapmode == 14 ) ; quotient 2 test = cabs( tempc / zscratch ) elseif ( @trapmode == 15 ) ; power 1 test = cabs( zscratch ^ tempc ) elseif ( @trapmode == 16 ) ; power 2 test = cabs( tempc ^ zscratch ) elseif ( @trapmode == 17 ) ; arithmetic mean test = cabs( (zscratch + tempc)/2 ) elseif ( @trapmode == 18 ) ; geometric mean test = cabs( sqrt( zscratch * tempc )) elseif ( @trapmode == 19 ) ; angle 2 test = atan2( zscratch - tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 20 ) ; angle 3 test = atan2( zscratch + tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 21 ) ; angle 4 test = atan2( zscratch * tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 22 ) ; angle 5 test = atan2( zscratch / tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 23 ) ; angle 6 test = atan2( tempc / zscratch ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 24 ) ; angle 7 test = atan2( zscratch ^ tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 25 ) ; angle 8 test = atan2( tempc ^ zscratch ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 26 ) ; real 2 test = abs( real( zscratch - tempc )) elseif ( @trapmode == 27 ) ; real 3 test = abs( real( zscratch + tempc )) elseif ( @trapmode == 28 ) ; real 4 test = abs( real( zscratch * tempc )) elseif ( @trapmode == 29 ) ; real 5 test = abs( real( zscratch / tempc )) elseif ( @trapmode == 30 ) ; real 6 test = abs( real( tempc / zscratch )) elseif ( @trapmode == 31 ) ; real 7 test = abs( real( zscratch ^ tempc )) elseif ( @trapmode == 32 ) ; real 8 test = abs( real( tempc ^ zscratch )) elseif ( @trapmode == 33 ) ; imag 2 test = abs( imag( zscratch - tempc )) elseif ( @trapmode == 34 ) ; imag 3 test = abs( imag( zscratch + tempc )) elseif ( @trapmode == 35 ) ; imag 4 test = abs( imag( zscratch * tempc )) elseif ( @trapmode == 36 ) ; imag 5 test = abs( imag( zscratch / tempc )) elseif ( @trapmode == 37 ) ; imag 6 test = abs( imag( tempc / zscratch )) elseif ( @trapmode == 38 ) ; imag 7 test = abs( imag( zscratch ^ tempc )) elseif ( @trapmode == 39 ) ; imag 8 test = abs( imag( tempc ^ zscratch )) endif ; trapmode if ( @whattotrap == 0 ) ; minimum if ( test < trapped1 ) trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 1 ) ; maximum if ( test > trapped1 ) trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 2 ) ; 2nd minimum if ( test < trapped1 ) trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 3 ) ; 3rd minimum if ( test < trapped1 ) trapped3 = trapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, catrapped3 = catrapped2 ztrapped3 = ztrapped2, zttrapped3 = zttrapped2, ctrapped3 = ctrapped2 trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 4 ) ; 4th minimum if ( test < trapped1 ) trapped4 = trapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, catrapped4 = catrapped3 ztrapped4 = ztrapped3, zttrapped4 = zttrapped3, ctrapped4 = ctrapped3 trapped3 = trapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, catrapped3 = catrapped2 ztrapped3 = ztrapped2, zttrapped3 = zttrapped2, ctrapped3 = ctrapped2 trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 5 ) ; 2nd maximum if ( test > trapped1 ) trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 6 ) ; 3rd maximum if ( test > trapped1 ) trapped3 = trapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, catrapped3 = catrapped2 ztrapped3 = ztrapped2, zttrapped3 = zttrapped2, ctrapped3 = ctrapped2 trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 7 ) ; 4th maximum if ( test > trapped1 ) trapped4 = trapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, catrapped4 = catrapped3 ztrapped4 = ztrapped3, zttrapped4 = zttrapped3, ctrapped4 = ctrapped3 trapped3 = trapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, catrapped3 = catrapped2 ztrapped3 = ztrapped2, zttrapped3 = zttrapped2, ctrapped3 = ctrapped2 trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 8 ) ; 1st to dip below threshold value if ( itrapped == 0 ) ; nothing trapped yet if ( test < thresh ) if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc elseif test > innerradius trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc endif ; ringstyle endif ; ztest endif ; itrapped elseif ( @whattotrap == 9 ) ; last to dip below threshold --- just store them all if ( test < thresh ) if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE elseif test > innerradius trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; ringstyle endif ; ztest elseif ( @whattotrap == 10 ) ; count dips below threshold --- store the last if ( test < thresh ) count = count + 1 if !@ringstyle trapped1 = count * test, itrapped = count * iter zatrapped = count * zangle, catrapped = count * cangle ztrapped = count * #z, zttrapped = count * ztemp ctrapped = count * tempc, trapped = TRUE elseif test > innerradius trapped1 = count * test, itrapped = count * iter zatrapped = count * zangle, catrapped = count * cangle ztrapped = count * #z, zttrapped = count * ztemp ctrapped = count * tempc, trapped = TRUE endif ; ringstyle endif ; ztest elseif ( @whattotrap == 11 ) ; 2nd to dip below threshold value if ( test < thresh ) if ( itrapped == 0 ) ; nothing trapped yet, set flag for next time itrapped = -1, trapped = TRUE elseif itrapped == -1 ; must be the 2nd threshold value if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc elseif test > innerradius trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc endif ; ringstyle endif ; itrapped endif ; test elseif ( @whattotrap == 12 ) ; 1st to exceed threshold limit if ( itrapped == 0 ) ; nothing trapped yet if ( test > thresh ) if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc elseif test < innerradius ; really an outer radius for limits trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc endif ; ringstyle endif ; ztest endif ; itrapped elseif ( @whattotrap == 13 ) ; 2nd to exceed threshold limit if ( test > thresh ) if ( itrapped == 0 ) ; nothing trapped yet, set flag for next time itrapped = -1, trapped = TRUE elseif itrapped == -1 ; must be the 2nd threshold value if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc elseif test < innerradius ; really an outer radius trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc endif ; ringstyle endif ; itrapped endif ; test elseif ( @whattotrap == 14 ) ; last to exceed threshold --- just store them all if ( test > thresh ) if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE elseif test < innerradius ; really an outer radius for limits trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; ringstyle endif ; ztest elseif @whattotrap > 14 ; maximum/minimum combos; need to find & store both ; trapped2 will hold he max, trapped1 the min if test < trapped1 ; is it a new min? trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE elseif test > trapped2 ; is it a new max? trapped2 = test, itrapped2 = iter, zatrapped2 = zangle, catrapped2 = cangle ztrapped2 = #z, zttrapped2 = ztemp, ctrapped2 = tempc, trapped = TRUE endif ; test endif ; whattotrap if ( @varymode == 0 ) ; feedback only on iterations where something was trapped vary = trapped elseif ( @varymode == 1 ) ; feedback when nothing was trapped vary = !trapped else ; feedback on each iteration, if enabled for a given parameter vary = TRUE endif ; varymode trapped = FALSE ; reset flag for next iteration if vary ; vary chosen parameter if set float value = 0.0 if @oldstyle value = cabs(ctrapped) sign = real(ctrapped)/abs(real(ctrapped)) else value = cabs(ztemp) sign = real(ztemp)/abs(real(ztemp)) endif ; oldstyle if @varyrotation rotation = rotation + rotationstep * rotation * value * sign endif ; varyrotation if @varyscale scale = scale + scalestep * scale * value * sign endif ; varyscale if @varythresh thresh = thresh + threshstep * thresh * value * sign if @ringstyle if @whattotrap < 12 innerradius = thresh - rwidth else innerradius = thresh + rwidth endif ; whattotrap endif ; ringstyle endif ; varythresh if @varyrwidth rwidth = rwidth + ringstep * rwidth * value * sign if @whattotrap < 12 innerradius = thresh - rwidth else innerradius = thresh + rwidth endif ; whattotrap endif ; varyrwidth if @varyspread spread = spread + spreadstep * spread * value * sign endif ; varyspread if @varycenter tempx = real(center) + centerstep * real(center) * value * sign tempy = imag(center) + centerstep * imag(center) * value * sign center = tempx + flip( tempy ) endif ; varycenter if @varyturb turbulamount = turbulamount + turbstep * turbulamount * value * sign endif ; varyturb endif ; vary endif ; iter final: if ( itrapped != 0 ) ; something has been trapped if (( @whattotrap == 2 ) || ( @whattotrap == 5 )) ; we need to swap some values ; so we will plot the right thing trapped1 = trapped2, itrapped = itrapped2, zatrapped = zatrapped2, catrapped = catrapped2 ztrapped = ztrapped2, zttrapped = zttrapped2, ctrapped = ctrapped2 elseif (( @whattotrap == 3 ) || ( @whattotrap == 6 )) trapped1 = trapped3, itrapped = itrapped3, zatrapped = zatrapped3, catrapped = catrapped3 ztrapped = ztrapped3, zttrapped = zttrapped3, ctrapped = ctrapped3 elseif (( @whattotrap == 4 ) || ( @whattotrap == 7 )) trapped1 = trapped4, itrapped = itrapped4, zatrapped = zatrapped4, catrapped = catrapped4 ztrapped = ztrapped4, zttrapped = zttrapped4, ctrapped = ctrapped4 elseif @whattotrap == 15 ; max-min trapped1 = trapped2-trapped1, itrapped = itrapped2-itrapped zatrapped = zatrapped2-zatrapped, catrapped = catrapped2-catrapped ztrapped = ztrapped2-ztrapped, zttrapped = zttrapped2-zttrapped ctrapped = ctrapped2-ctrapped elseif @whattotrap == 16 ; max+min trapped1 = trapped2+trapped1, itrapped = itrapped2+itrapped zatrapped = zatrapped2+zatrapped, catrapped = catrapped2+catrapped ztrapped = ztrapped2+ztrapped, zttrapped = zttrapped2+zttrapped ctrapped = ctrapped2+ctrapped elseif @whattotrap == 17 ; max*min trapped1 = trapped2*trapped1, itrapped = itrapped2*itrapped zatrapped = zatrapped2*zatrapped, catrapped = catrapped2*catrapped ztrapped = ztrapped2*ztrapped, zttrapped = zttrapped2*zttrapped ctrapped = ctrapped2*ctrapped elseif @whattotrap == 18 ; max/min trapped1 = trapped2/trapped1, itrapped = round(itrapped2/itrapped) zatrapped = zatrapped2/zatrapped, catrapped = catrapped2/catrapped ztrapped = ztrapped2/ztrapped, zttrapped = zttrapped2/zttrapped ctrapped = ctrapped2/ctrapped elseif @whattotrap == 19 ; max^min trapped1 = trapped2^trapped1, itrapped = round(itrapped2^itrapped) zatrapped = zatrapped2^zatrapped, catrapped = catrapped2^catrapped ztrapped = ztrapped2^ztrapped, zttrapped = zttrapped2^zttrapped ctrapped = ctrapped2^ctrapped elseif @whattotrap == 20 ; min-max trapped1 = trapped1-trapped2, itrapped = itrapped-itrapped2 zatrapped = zatrapped-zatrapped2, catrapped = catrapped-catrapped2 ztrapped = ztrapped-ztrapped2, zttrapped = zttrapped-zttrapped2 ctrapped = ctrapped-ctrapped2 elseif @whattotrap == 21 ; min/max trapped1 = trapped1/trapped2, itrapped = round(itrapped/itrapped2) zatrapped = zatrapped/zatrapped2, catrapped = catrapped/catrapped2 ztrapped = ztrapped/ztrapped2, zttrapped = zttrapped/zttrapped2 ctrapped = ctrapped/ctrapped2 elseif @whattotrap == 22 ; min^max trapped1 = trapped1^trapped2, itrapped = round(itrapped^itrapped2) zatrapped = zatrapped^zatrapped2, catrapped = catrapped^catrapped2 ztrapped = ztrapped^ztrapped2, zttrapped = zttrapped^zttrapped2 ctrapped = ctrapped^ctrapped2 elseif @whattotrap == 23 ; average: (max+min)/2 trapped1 = (trapped1+trapped2)/2, itrapped = trunc((itrapped+itrapped2)/2) zatrapped = (zatrapped+zatrapped2)/2, catrapped = (catrapped+catrapped2)/2 ztrapped = (ztrapped+ztrapped2)/2, zttrapped = (zttrapped+zttrapped2)/2 ctrapped = (ctrapped+ctrapped2)/2 endif ; whattotrap ; Figure amount of 'random' turbulence if @turb1 || @turb2 || @turb3 || @turb4 || @turb5 || @turb6 float ca1 = float ca2 = float ca3 = float ca4 = float ca5 = float ca6 = 0.0 zinput = tlast*zlast*#random temp = cabs(zinput) if round(719*temp) % 2 == 0 ; 'random' sign sign = 1 else sign = -1 endif ; round if @turb1 ; product1 ca1 = turbulamount * 0.1 * sign * ((real(tlast)*real(tlast))/|tlast|) \ * ((real(zlast)*real(zlast))/|zlast|) endif ; turb1 if @turb2 ; random ca2 = turbulamount * 0.1 * sign * real(#random) endif ; turb2 if @turb3 ; fBm --- adapted from formulas of dmj, mt, and others complex br = (0,1) ^ (@bangle / 90.0) complex br2 = (0,1) ^ (@banglestep / 90.0) complex bp = zlast * @bscale * br float bsum = 0.0 float bfreq = 1.0 int bi = @boctaves while (bi > 0) float bx0 = floor(real(bp)) % 256 float by0 = floor(imag(bp)) % 256 if bx0 < 0 bx0 = bx0 + 256 endif ; bx0 if by0 < 0 by0 = by0 + 256 endif ; by0 float bx1 = (bx0 + 1) % 256 float by1 = (by0 + 1) % 256 float rx0 = real(bp) - floor(real(bp)) float ry0 = imag(bp) - floor(imag(bp)) float rx1 = rx0 - 1 float ry1 = ry0 - 1 float b00 = (bx0^@bpower % 65536 + by0)^@bpower % 65536 float b10 = (bx1^@bpower % 65536 + by0)^@bpower % 65536 float b01 = (bx0^@bpower % 65536 + by1)^@bpower % 65536 float b11 = (bx1^@bpower % 65536 + by1)^@bpower % 65536 float g_b00_0 = (b00)^@bpower*0.25 % 512 - 256 float g_b10_0 = (b10)^@bpower*0.25 % 512 - 256 float g_b01_0 = (b01)^@bpower*0.25 % 512 - 256 float g_b11_0 = (b11)^@bpower*0.25 % 512 - 256 float g_b00_1 = (b00+1)^@bpower*0.25 % 512 - 256 float g_b10_1 = (b10+1)^@bpower*0.25 % 512 - 256 float g_b01_1 = (b01+1)^@bpower*0.25 % 512 - 256 float g_b11_1 = (b11+1)^@bpower*0.25 % 512 - 256 float bd = 0.0 bd = 1 / sqrt(sqr(g_b00_0) + sqr(g_b00_1)) g_b00_0 = g_b00_0 * bd g_b00_1 = g_b00_1 * bd bd = 1 / sqrt(sqr(g_b10_0) + sqr(g_b10_1)) g_b10_0 = g_b10_0 * bd g_b10_1 = g_b10_1 * bd bd = 1 / sqrt(sqr(g_b01_0) + sqr(g_b01_1)) g_b01_0 = g_b01_0 * bd g_b01_1 = g_b01_1 * bd bd = 1 / sqrt(sqr(g_b11_0) + sqr(g_b11_1)) g_b11_0 = g_b11_0 * bd g_b11_1 = g_b11_1 * bd float u1 = rx0 * g_b00_0 + ry0 * g_b00_1 float v1 = rx1 * g_b10_0 + ry0 * g_b10_1 float u2 = rx0 * g_b01_0 + ry1 * g_b01_1 float v2 = rx1 * g_b11_0 + ry1 * g_b11_1 float sx = sqr(rx0) * (3 - rx0*2) float sy = sqr(ry0) * (3 - ry0*2) float ba = u1 + sx*(v1-u1) float bb = u2 + sx*(v2-u2) bsum = bsum + (ba + sy*(bb-ba))* bfreq bfreq = bfreq * @bstep bp = bp * br2 / @bstep bi = bi - 1 endwhile ; bi ca3 = turbulamount * (bsum + 1) * 0.5 endif ; turb3 if @turb4 ; sin ca4 = turbulamount * 0.1 * sign * ((sin(817*real(zinput))+1)/2) endif ; turb4 if @turb5 ; log ca5 = turbulamount * 0.1 * sign * log(((temp-trunc(temp))*(#e-1))+1) endif ; turb5 if @turb6 ; vectors tempx = trunc(real(zinput)), tempy = trunc(imag(zinput)) float tempx1 = tempx + 1, float tempy1 = tempy + 1 complex t00 = tempx + flip(tempy), complex t10 = tempx1 + flip(tempy) complex t01 = tempx + flip(tempy1), complex t11 = tempx1 + flip(tempy1) tempx = trunc(real(zlast)), tempy = trunc(imag(zlast)) tempx1 = tempx + 1, tempy1 = tempy + 1 complex z00 = tempx + flip(tempy), complex z10 = tempx1 + flip(tempy) complex z01 = tempx + flip(tempy1), complex z11 = tempx1 + flip(tempy1) if real(tlast) >= 0 ; + if imag(tlast) >= 0 ; + if real(zlast) >= 0 ; + if imag(zlast) >= 0 ; + temp = cabs(z00-t00) else ; - temp = cabs(z00-t10) endif else ; - if imag(zlast) >= 0 ; + temp = cabs(z00-t01) else ; - temp = cabs(z00-t11) endif endif else ; - if real(zlast) >= 0 ; + if imag(zlast) >= 0 ; + temp = cabs(z01-t00) else ; - temp = cabs(z01-t10) endif else ; - if imag(zlast) >= 0 ; + temp = cabs(z01-t01) else ; - temp = cabs(z01-t11) endif endif endif else ; - if imag(tlast) >= 0 ; + if real(zlast) >= 0 ; + if imag(zlast) >= 0 ; + temp = cabs(z10-t00) else ; - temp = cabs(z10-t10) endif else ; - if imag(zlast) >= 0 ; + temp = cabs(z10-t01) else ; - temp = cabs(z10-t11) endif endif else ; - if real(zlast) >= 0 ; + if imag(zlast) >= 0 ; + temp = cabs(z11-t00) else ; - temp = cabs(z11-t10) endif else ; - if imag(zlast) >= 0 ; + temp = cabs(z11-t01) else ; - temp = cabs(z11-t11) endif endif endif endif ca6 = turbulamount * 0.1 * sign * temp/cabs(zlast-tlast) endif ; turb6 _coloradjust = ca1 + ca2 + ca3 + ca4 + ca5 + ca6 endif ; turb1 || turb2... if ( @colorby == 0 ) ; distance temp = cabs( zttrapped - ctrapped ) if @mask if temp < @maskthresh #solid = TRUE else _color = 3.0 * spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = 3.0 * spread * temp endif ; temp else _color = 3.0 * spread * temp endif ; @mask elseif ( @colorby == 1 ) ; iteration if @mask if itrapped < @maskthresh #solid = TRUE else _color = 0.3 * spread * itrapped endif ; temp elseif @revmask if itrapped > @maskthresh #solid = TRUE else _color = 0.3 * spread * itrapped endif ; temp else _color = 0.3 * spread * itrapped endif ; @mask elseif ( @colorby == 2 ) ; magnitude temp = cabs( ztrapped) if @mask if temp < @maskthresh #solid = TRUE else _color = 0.25 * spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = 0.25 * spread * temp endif ; temp else _color = 0.25 * spread * temp endif ; @mask elseif ( @colorby == 3 ) ; test if @mask if trapped1 < @maskthresh #solid = TRUE else _color = spread * trapped1 endif ; trapped1 elseif @revmask if trapped1 > @maskthresh #solid = TRUE else _color = spread * trapped1 endif ; trapped1 else _color = spread * trapped1 endif ; @mask elseif ( @colorby == 4 ) ; trap magnitude temp = cabs(ctrapped) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 5 ) ; angle temp = atan2( ztrapped ) if ( temp < 0 ) temp = temp + twopi endif ; temp if @mask if temp < @maskthresh #solid = TRUE else _color = ( spread * temp ) / twopi endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = ( spread * temp ) / twopi endif ; temp else _color = ( spread * temp ) / twopi endif ; @mask elseif ( @colorby == 6 ) ; trap angle if @mask if catrapped < @maskthresh #solid = TRUE else _color = ( spread * catrapped ) / twopi endif ; catrapped elseif @revmask if catrapped > @maskthresh #solid = TRUE else _color = ( spread * catrapped ) / twopi endif ; catrapped else _color = ( spread * catrapped ) / twopi endif ; @mask elseif ( @colorby == 7 ) ; modulated magnitude temp = cabs(zttrapped) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 8 ) ; modulated angle if @mask if zatrapped < @maskthresh #solid = TRUE else _color = ( spread * zatrapped ) / twopi endif ; zatrapped elseif @revmask if zatrapped > @maskthresh #solid = TRUE else _color = ( spread * zatrapped ) / twopi endif ; zatrapped else _color = ( spread * zatrapped ) / twopi endif ; @mask elseif ( @colorby == 9 ) ; real temp = abs( real( ztrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 10 ) ; trap real temp = abs( real( ctrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 11 ) ; modulated real temp = abs( real( zttrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 12 ) ; imaginary temp = abs( imag( ztrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 13 ) ; trap imaginary temp = abs( imag( ctrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 14 ) ; modulated imaginary temp = abs( imag( zttrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 15 ) ; raw distance (distance to #z, not ztemp) temp = cabs( ztrapped - ctrapped ) if @mask if temp < @maskthresh #solid = TRUE else _color = 3.0 * spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = 3.0 * spread * temp endif ; temp else _color = 3.0 * spread * temp endif ; @mask endif ; _colorby if @ranges == 1 _color = _color + _coloradjust else if !@hideranges _color = ((_color + _coloradjust) + (itrapped % @ranges) ) / @ranges else temp = itrapped % @ranges if temp != @showrange #solid = TRUE else _color = ((_color + _coloradjust) + temp ) / @ranges endif ; temp endif ; hideranges endif ; ranges if ( @colorwarp == 0 ) temp = _color elseif ( @colorwarp == 1 ) temp = 1/_color elseif ( @colorwarp == 2 ) temp = _color * _color elseif ( @colorwarp == 3 ) temp = 1 / ( _color * _color ) elseif ( @colorwarp == 4 ) temp = log(_color) elseif ( @colorwarp == 5 ) temp = exp( _color) elseif ( @colorwarp == 6 ) temp = _color^_color elseif ( @colorwarp == 7 ) temp = sin( _color ) elseif ( @colorwarp == 8 ) temp = cos( _color ) elseif ( @colorwarp == 9 ) temp = tan( _color ) elseif ( @colorwarp == 10 ) temp = asin( _color ) elseif ( @colorwarp == 11 ) temp = acos( _color ) elseif ( @colorwarp == 12 ) temp = atan( _color ) elseif ( @colorwarp == 13 ) temp = sinh( _color ) elseif ( @colorwarp == 14 ) temp = cosh( _color ) elseif ( @colorwarp == 15 ) temp = tanh( _color ) elseif ( @colorwarp == 16 ) temp = asinh( _color ) elseif ( @colorwarp == 17 ) temp = acosh( _color ) elseif ( @colorwarp == 18 ) temp = atanh( _color ) elseif ( @colorwarp == 19 ) temp = log( 1/_color ) elseif ( @colorwarp == 20 ) temp = log( log( _color )) elseif ( @colorwarp == 21 ) temp = exp( -_color ) elseif ( @colorwarp == 22 ) temp = exp( 1/_color ) elseif ( @colorwarp == 23 ) temp = _color^(-_color) elseif ( @colorwarp == 24 ) temp = sin( _color ) temp = temp * temp elseif ( @colorwarp == 25 ) temp = cos( _color ) temp = temp * temp elseif ( @colorwarp == 26 ) temp = tan( _color ) temp = temp * temp elseif ( @colorwarp == 27 ) temp = cotan( _color ) elseif ( @colorwarp == 28 ) temp = 1/cos( _color ) elseif ( @colorwarp == 29 ) temp = 1/sin( _color ) elseif ( @colorwarp == 30 ) temp = cotan( _color ) temp = temp * temp elseif ( @colorwarp == 31 ) temp = 1/cos( _color ) temp = temp * temp elseif ( @colorwarp == 32 ) temp = 1/sin( _color ) temp = temp * temp elseif ( @colorwarp == 33 ) temp = _color^(_color) temp = _color^temp elseif ( @colorwarp == 34 ) temp = _color^(_color) temp = 1/( _color^temp ) elseif ( @colorwarp == 35 ) temp = log(-_color) elseif ( @colorwarp == 36 ) temp = 1/log( _color ) elseif ( @colorwarp == 37 ) temp = _color * log( _color ) elseif ( @colorwarp == 38 ) temp = sin( _color ) / _color elseif ( @colorwarp == 39 ) temp = cos( _color ) / _color elseif ( @colorwarp == 40 ) temp = sin( _color ) * cos( _color ) elseif ( @colorwarp == 41 ) temp = sin( _color^2 ) elseif ( @colorwarp == 42 ) temp = exp( -1/_color ) elseif ( @colorwarp == 43 ) temp = _color * exp( _color ) elseif ( @colorwarp == 44 ) temp = _color * exp( -_color ) elseif ( @colorwarp == 45 ) temp = _color * exp( 1/_color ) elseif ( @colorwarp == 46 ) temp = _color * exp( -1/_color ) elseif ( @colorwarp == 47 ) temp = _color * _color * _color elseif ( @colorwarp == 48 ) temp = 1 / ( _color * _color * _color ) elseif ( @colorwarp == 49 ) temp = atan( 1 / _color ) elseif ( @colorwarp == 50 ) temp = acos( 1 / _color ) elseif ( @colorwarp == 51 ) temp = asin( 1 / _color ) elseif ( @colorwarp == 52 ) temp = tan( _color ) / _color elseif ( @colorwarp == 53 ) temp = cotan( _color ) / _color elseif ( @colorwarp == 54 ) temp = 1 / ( _color * cos( _color )) elseif ( @colorwarp == 55 ) temp = 1 / ( _color * sin( _color )) elseif ( @colorwarp == 56 ) temp = _color * sin( _color ) elseif ( @colorwarp == 57 ) temp = _color * cos( _color ) elseif ( @colorwarp == 58 ) temp = _color * tan( _color ) elseif ( @colorwarp == 59 ) temp = _color * cotan( _color ) elseif ( @colorwarp == 60 ) temp = _color/cos( _color ) elseif ( @colorwarp == 61 ) temp = _color/sin( _color ) elseif ( @colorwarp == 62 ) temp = sin( 1/_color ) elseif ( @colorwarp == 63 ) temp = cos( 1/_color ) elseif ( @colorwarp == 64 ) temp = tan( 1/_color ) elseif ( @colorwarp == 65 ) temp = cotan( 1/_color ) elseif ( @colorwarp == 66 ) temp = 1/cos( 1/_color ) elseif ( @colorwarp == 67 ) temp = 1/sin( 1/_color ) elseif ( @colorwarp == 68 ) temp = cotanh( _color ) elseif ( @colorwarp == 69 ) temp = 1/cosh( _color ) elseif ( @colorwarp == 70 ) temp = 1/sinh( _color ) elseif ( @colorwarp == 71 ) temp = atanh( 1/_color ) elseif ( @colorwarp == 72 ) temp = acosh( 1/_color ) elseif ( @colorwarp == 73 ) temp = asinh( 1/_color ) elseif @colorwarp == 74 temp = _color^@cpower elseif @colorwarp == 75 temp = sinh(_color) temp = temp * temp elseif @colorwarp == 76 temp = cosh( _color ) temp = temp * temp elseif @colorwarp == 77 temp = tanh(_color) temp = temp * temp elseif @colorwarp == 78 temp = cotanh( _color ) temp = temp * temp elseif @colorwarp == 79 temp = 1/cosh(_color) temp = temp * temp elseif @colorwarp == 80 temp = 1 / sinh( _color ) temp = temp * temp elseif @colorwarp == 81 temp = sinh(1/_color) elseif @colorwarp == 82 temp = cosh(1/_color) elseif @colorwarp == 83 temp = tanh(1/_color) elseif @colorwarp == 84 temp = cotanh(1/_color) elseif @colorwarp == 85 temp = 1/cosh(1/_color) elseif @colorwarp == 86 temp = 1/sinh(1/_color) elseif @colorwarp == 87 temp = sin( _color ) * tan(_color) elseif @colorwarp == 88 temp = sinh(_color) * tanh(_color) elseif @colorwarp == 89 temp = sinh(_color) * cosh(_color) elseif @colorwarp == 90 temp = sinh(_color), tempx = cosh(_color) temp = temp*temp*tempx*tempx elseif @colorwarp == 91 temp = sin(_color), tempx = cos(_color) temp = temp*temp*tempx*tempx elseif @colorwarp == 92 temp = 1/_color temp = sin(temp)*cos(temp) elseif @colorwarp == 93 temp = sin( 1/_color ) temp = temp*temp elseif @colorwarp == 94 temp = sin(_color) * cos(1/_color) elseif @colorwarp == 95 temp = sin(_color) * sin(1/_color) elseif @colorwarp == 96 temp = log(_color) temp = temp*temp elseif @colorwarp == 97 temp = sin(_color) * sin(2*_color) elseif @colorwarp == 98 temp = exp(2*_color) elseif @colorwarp == 99 temp = exp(-2*_color) elseif @colorwarp == 100 temp = 1/_color temp = sinh(temp)*cosh(temp) elseif @colorwarp == 101 temp = sinh( 1/_color ) temp = temp*temp elseif @colorwarp == 102 temp = sinh(_color) * cosh(1/_color) elseif @colorwarp == 103 temp = sinh(_color) * sinh(1/_color) elseif @colorwarp == 104 temp = sin(_color) * sinh(_color) elseif @colorwarp == 105 temp = sin(_color) * cosh(_color) elseif @colorwarp == 106 temp = sin(_color), tempx = sinh(_color) temp = temp*temp*tempx*tempx elseif @colorwarp == 107 temp = sin(_color)*exp(_color) elseif @colorwarp == 108 temp = cos(_color)*exp(_color) elseif @colorwarp == 109 temp = sinh(_color)*exp(_color) elseif @colorwarp == 110 temp = cosh(_color)*exp(_color) elseif @colorwarp == 111 temp = sin(_color)*log(_color) elseif @colorwarp == 112 temp = cos(_color)*log(_color) elseif @colorwarp == 113 temp = sinh(_color)*log(_color) else ; @colorwarp == 114 temp = cosh(_color)*log(_color) endif ; _colorwarp #index = abs(temp) else #solid = TRUE endif ; itrapped default: title = "Oscillators 2" param whattotrap caption = "Trap What?" enum = "minimum" "maximum" "2nd minimum" "3rd minimum" "4th minimum" "2nd maximum" \ "3rd maximum" "4th maximum" "1st threshold" "last threshold" "threshold count" \ "2nd threshold" "1st limit" "2nd limit" "last limit" "max-min" "max+min" \ "max*min" "max/min" "max^min" "min-max" "min/max" "min^max" "min,max avg" default = 0 hint = "What type of value will be trapped?" endparam param threshold caption = "Threshold Value" default = 0.5 hint = "Upper bound (maximum value that will be trapped) if one of the \ 'Threshold' options is chosen for param 'Trap What'; \ also, lower bound (minimum trapped value) if 'Trap What' is set to \ a 'Limit' option. Increase value for limit traps" visible = (( @whattotrap > 7 ) && ( @whattotrap < 15 )) endparam param varythresh caption = "Vary Threshold?" default = FALSE hint = "If set, the value of the trap will modify the value of 'threshold' and 'limit' type traps \ each iteration; parameter 'ThreshFeedback' can be used to modulate the variation" visible = (( @whattotrap > 7 ) && ( @whattotrap < 15 )) endparam param threshstp caption = "ThreshFeedback" default = 1.0 hint = "If 'Vary Threshold' is set, this setting adjusts the amount of variation" visible = @varythresh endparam param ringstyle caption = "Enable Rings?" default = FALSE hint = "If 'Enable Rings' is active, AND if param 'Trap What' is set to a \ 'Threshold' or 'Limit' option, then 'Trap What' \ becomes a ring trap. \ 'Threshold Value' sets outer radius, 'Ring Width' sets inner radius" visible = (( @whattotrap > 7 ) && ( @whattotrap < 15 )) endparam param ringwidth caption = "Ring Width" default = 0.25 hint = "If 'Enable Rings' is TRUE and 'Trap What' is set to either a 'Threshold', \ or 'Limit' option, this parameter determines the width of the ring trap" visible = @ringstyle == TRUE endparam param varyrwidth caption = "Vary Ringwidth?" default = FALSE hint = "If set, the value of the trap will modify the ring width of 'threshold' \ and 'limit' ring-type traps each iteration; parameter 'RingFeedback' can be \ used to modulate the variation" visible = @ringstyle endparam param ringstp caption = "RingFeedback" default = 1.0 hint = "If 'Vary Ringwidth' is set, this setting adjusts the amount of variation" visible = @varyrwidth endparam param trapmode caption = "Trap Flavor" enum = "distance" "angle" "trap angle" "difference angle" "magnitude" "trap magnitude" \ "real" "imaginary" "trap real" "trap imaginary" "sum" "difference" "product" \ "quotient 1" "quotient 2" "power 1" "power 2" "arith. mean" "geom. mean" \ "angle 2" "angle 3" "angle 4" "angle 5" "angle 6" "angle 7" "angle 8" \ "real 2" "real 3" "real 4" "real 5" "real 6" "real 7" "real 8" \ "imag 2" "imag 3" "imag 4" "imag 5" "imag 6" "imag 7" "imag 8" default = 0 hint = "What quantity will be watched for possible trapping?" endparam param swapflavor caption = "New Flavor?" default = FALSE hint = "Try an alternately flavored trap test? Only affects flavor choices \ above 9 (sum, difference, etc)" visible = @trapmode > 9 endparam param nscale caption = "Scale" default = 0.25 hint = "This parameter determines the size of the oscillator" endparam param varyscale caption = "Vary Scale?" default = FALSE hint = "If set, the value of the trap will modify the trap size each iteration; \ parameter 'ScaleFeedback' can be used to modulate the variation" endparam param scalestp caption = "ScaleFeedback" default = 1.0 hint = "If 'Vary Scale' is set, this setting adjusts the amount of variation" visible = @varyscale endparam param rotate caption = "Rotation Angle" default = 0.0 min = -179.9 max = 359.9 hint = "Number of degrees (0-359) that the oscillator should be rotated from its default position" endparam param varyrotation caption = "Vary Rotation?" default = FALSE hint = "If set, the value of the trap will modify the trap rotation each iteration; \ parameter 'RotationFeedback' can be used to modulate the variation" endparam param rotationstp caption = "RotationFeedback" default = 1.0 hint = "If 'Vary Rotation' is set, this setting adjusts the amount of variation" visible = @varyrotation endparam param centr caption = "Center" default = (0,0) hint = "Enter coordinates of oscillator center" endparam param varycenter caption = "Vary Center?" default = FALSE hint = "If set, the value of the trap will modify the trap center each iteration; \ parameter 'CenterFeedback' can be used to modulate the variation" endparam param centerstp caption = "CenterFeedback" default = 1.0 hint = "If 'Vary Center' is set, this setting adjusts the amount of variation" visible = @varycenter endparam param ampx1 caption = "X Amplitude 1" default = 5.0 hint = "The trap is defined by the parametric equations x = cx1 * \ fn(fx1*t+xoffset) + cx2 * fn(fx2*t) + cx3 * fn(fx3*t), y = cy1 * \ fn(fy1*t+yoffset) + cy2 * fn(fy2*t) + cy3 * fn(fy3*t); t = atan(#z), \ the funcs = sin or cos" endparam param freqx1 caption = "X Frequency 1" default = 2.0 hint = "The trap is defined by the parametric equations x = cx1 * \ fn(fx1*t+xoffset) + cx2 * fn(fx2*t) + cx3 * fn(fx3*t), y = cy1 * \ fn(fy1*t+yoffset) + cy2 * fn(fy2*t) + cy3 * fn(fy3*t); t = atan(#z), \ the funcs = sin or cos" endparam param funcx1 caption = "Func X1 Sin?" default = FALSE hint = "If enabled, the sine function is used for oscillator X1; \ cosine is the default" endparam param xoffset caption = "X1 Offset" default = 0.0 hint = "The frequency of oscillator X1 can be offset by this amount" endparam param ampx2 caption = "X Amplitude 2" default = -3.0 hint = "The trap is defined by the parametric equations x = cx1 * \ fn(fx1*t+xoffset) + cx2 * fn(fx2*t) + cx3 * fn(fx3*t), y = cy1 * \ fn(fy1*t+yoffset) + cy2 * fn(fy2*t) + cy3 * fn(fy3*t); t = atan(#z), \ the funcs = sin or cos" endparam param freqx2 caption = "X Frequency 2" default = 4.0 hint = "The trap is defined by the parametric equations x = cx1 * \ fn(fx1*t+xoffset) + cx2 * fn(fx2*t) + cx3 * fn(fx3*t), y = cy1 * \ fn(fy1*t+yoffset) + cy2 * fn(fy2*t) + cy3 * fn(fy3*t); t = atan(#z), \ the funcs = sin or cos" visible = @ampx2 != 0.0 endparam param funcx2 caption = "Func X2 Sin?" default = FALSE hint = "If enabled, the sine function is used for oscillator X2; \ cosine is the default" visible = @ampx2 != 0.0 endparam param ampx3 caption = "X Amplitude 3" default = 0.0 hint = "The trap is defined by the parametric equations x = cx1 * \ fn(fx1*t+xoffset) + cx2 * fn(fx2*t) + cx3 * fn(fx3*t), y = cy1 * \ fn(fy1*t+yoffset) + cy2 * fn(fy2*t) + cy3 * fn(fy3*t); t = atan(#z), \ the funcs = sin or cos" endparam param freqx3 caption = "X Frequency 3" default = 1.0 hint = "The trap is defined by the parametric equations x = cx1 * \ fn(fx1*t+xoffset) + cx2 * fn(fx2*t) + cx3 * fn(fx3*t), y = cy1 * \ fn(fy1*t+yoffset) + cy2 * fn(fy2*t) + cy3 * fn(fy3*t); t = atan(#z), \ the funcs = sin or cos" visible = @ampx3 != 0.0 endparam param funcx3 caption = "Func X3 Sin?" default = FALSE hint = "If enabled, the sine function is used for oscillator X3; \ cosine is the default" visible = @ampx3 != 0.0 endparam param ampy1 caption = "Y Amplitude 1" default = 5.0 hint = "The trap is defined by the parametric equations x = cx1 * \ fn(fx1*t+xoffset) + cx2 * fn(fx2*t) + cx3 * fn(fx3*t), y = cy1 * \ fn(fy1*t+yoffset) + cy2 * fn(fy2*t) + cy3 * fn(fy3*t); t = atan(#z), \ the funcs = sin or cos" endparam param freqy1 caption = "Y Frequency 1" default = 2.0 hint = "The trap is defined by the parametric equations x = cx1 * \ fn(fx1*t+xoffset) + cx2 * fn(fx2*t) + cx3 * fn(fx3*t), y = cy1 * \ fn(fy1*t+yoffset) + cy2 * fn(fy2*t) + cy3 * fn(fy3*t); t = atan(#z), \ the funcs = sin or cos" endparam param funcy1 caption = "Func Y1 Sin?" default = FALSE hint = "If enabled, the sine function is used for oscillator Y1; \ cosine is the default" endparam param yoffset caption = "Y1 Offset" default = 0.0 hint = "The frequency of oscillator Y1 can be offset by this amount" endparam param ampy2 caption = "Y Amplitude 2" default = -3.0 hint = "The trap is defined by the parametric equations x = cx1 * \ fn(fx1*t+xoffset) + cx2 * fn(fx2*t) + cx3 * fn(fx3*t), y = cy1 * \ fn(fy1*t+yoffset) + cy2 * fn(fy2*t) + cy3 * fn(fy3*t); t = atan(#z), \ the funcs = sin or cos" endparam param freqy2 caption = "Y Frequency 2" default = 4.0 hint = "The trap is defined by the parametric equations x = cx1 * \ fn(fx1*t+xoffset) + cx2 * fn(fx2*t) + cx3 * fn(fx3*t), y = cy1 * \ fn(fy1*t+yoffset) + cy2 * fn(fy2*t) + cy3 * fn(fy3*t); t = atan(#z), \ the funcs = sin or cos" visible = @ampy2 != 0.0 endparam param funcy2 caption = "Func Y2 Sin?" default = FALSE hint = "If enabled, the sine function is used for oscillator Y2; \ cosine is the default" visible = @ampy2 != 0.0 endparam param ampy3 caption = "Y Amplitude 3" default = 0.0 hint = "The trap is defined by the parametric equations x = cx1 * \ fn(fx1*t+xoffset) + cx2 * fn(fx2*t) + cx3 * fn(fx3*t), y = cy1 * \ fn(fy1*t+yoffset) + cy2 * fn(fy2*t) + cy3 * fn(fy3*t); t = atan(#z), \ the funcs = sin or cos" endparam param freqy3 caption = "Y Frequency 3" default = 1.0 hint = "The trap is defined by the parametric equations x = cx1 * \ fn(fx1*t+xoffset) + cx2 * fn(fx2*t) + cx3 * fn(fx3*t), y = cy1 * \ fn(fy1*t+yoffset) + cy2 * fn(fy2*t) + cy3 * fn(fy3*t); t = atan(#z), \ the funcs = sin or cos" visible = @ampy3 != 0.0 endparam param funcy3 caption = "Func Y3 Sin?" default = FALSE hint = "If enabled, the sine function is used for oscillator Y3; \ cosine is the default" visible = @ampy3 != 0.0 endparam param hypmode caption = "Angle Mode" default = 0 enum = "atan(z)" "atan(pixel)" "atan(first z)" hint = "This setting affects how the angle argument to the oscillator \ function is determined" endparam param sprangle caption = "Spread Angle?" default = FALSE hint = "If enabled, the angular range is spread out or compressed, \ depending on the value of param 'AngleSpread Factor'" endparam param sprangfactor caption = "AngleSpread Factor" default = 3.0 hint = "If param 'Spread Angle?' is enabled, this is the stretching or \ compression multiplier of atan(z). 1.0 corresponds to no spreading. \ Inactive if 'Spread Angle?' is not enabled" visible = @sprangle == TRUE endparam param initialization caption = "Z Initialization" enum = "z" "1/z" "z^2" "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)" "z^power" \ "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 = "The fractal is initialized to this value at each iteration prior to \ being fed to the trap" endparam param zpower caption = "Z Power" default = (0,1) hint = "Z exponent if param 'Z Initialization' is set to 'z^power'" visible = @initialization == "z^power" endparam param ziscale caption = "Z Init Scale" default = 1.0 hint = "This param can be used to scale the overall iterate z \ before z initialization" endparam param initperturb caption = "Perturb Z Initialization?" default = FALSE hint = "If enabled, then 'Z Initialization' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'Z Init Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @initialization != "z" endparam param initblend caption = "Z Init Blend" default = 0.1 hint = "If 'Perturb Z Initialization' is enabled, then this sets the fraction \ of 'Z Initialization' that is mixed in with the original #z. \ Inactive if 'Perturb Z Initialization' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @initperturb endparam param transmogrify caption = "Trap Transmute" enum = "t" "1/t" "t^2" "1/t^2" "log(t)" "e^t" "t^t" "sin(t)" "cos(t)" \ "tan(t)" "asin(t)" "acos(t)" "atan(t)" "sinh(t)" "cosh(t)" "tanh(t)" \ "asinh(t)" "acosh(t)" "atanh(t)" "log(1/t)" "log(log(t))" "e^-t" \ "e^(1/t)" "t^-t" "sin(t)^2" "cos(t)^2" "tan(t)^2" "cot(t)" "sec(t)" \ "csc(t)" "cot(t)^2" "sec(t)^2" "csc(t)^2" "t^t^t" "1/t^t^t" "log(-t)" \ "1/log(t)" "tlog(t)" "sin(t)/t" "cos(t)/t" "sin(t)*cos(t)" "sin(t^2)" \ "e^(-1/t)" "te^t" "te^-t" "te^(1/t)" "te^(-1/t)" "t^3" "1/t^3" \ "acot(t)" "asec(t)" "acsc(t)" "tan(t)/t" "cot(t)/t" "sec(t)/t" \ "csc(t)/t" "tsin(t)" "tcos(t)" "ttan(t)" "tcot(t)" "tsec(t)" "tcsc(t)" \ "sin(1/t)" "cos(1/t)" "tan(1/t)" "cot(1/t)" "sec(1/t)" "csc(1/t)" \ "cotanh(t)" "sech(t)" "cosech(t)" "acoth(t)" "asech(t)" "acosech(t)" "t^power" \ "sinh(t)^2" "cosh(t)^2" "tanh(t)^2" "cotanh(t)^2" \ "sech(t)^2" "cosech(t)^2" "sinh(1/t)" "cosh(1/t)" "tanh(1/t)" \ "cotanh(1/t)" "sech(1/t)" "cosech(1/t)" "sin(t)tan(t)" "sinh(t)tanh(t)" \ "sinh(t)cosh(t)" "sinh(t)^2*cosh(t)^2" "sin(t)^2*cos(t)^2" \ "sin(1/t)*cos(1/t)" "sin(1/t)^2" "sin(t)cos(1/t)" "sin(t)sin(1/t)" \ "log(t)^2" "sin(t)sin(2t)" "e^2t" "e^-2t" "sinh(1/t)cosh(1/t)" \ "sinh(1/t)^2" "sinh(t)cosh(1/t)" "sinh(t)sinh(1/t)" "sin(t)sinh(t)" \ "sin(t)cosh(t)" "sin(t)^2*sinh(t)^2" "sin(t)e^t" "cos(t)e^t" \ "sinh(t)e^t" "cosh(t)e^t" "sin(t)log(t)" "cos(t)log(t)" "sinh(t)log(t)" \ "cosh(t)log(t)" default = 0 hint = "The point, t, on the oscillator potentially trapped by z can be transformed \ prior to testing; select 't' for no transmutation. \ Transmute does not work on the following trap flavors: \ 2 (angle), 5 (magnitude), 7 (real), and 8 (imag)" endparam param tpower caption = "Trap Power" default = (0,1) hint = "Trap point t exponent if param 'Trap Transmute' is set to 't^power'" visible = @transmogrify == "t^power" endparam param tiscale caption = "Trap Scale" default = 1.0 hint = "This param can be used to scale the overall trap point t \ before transmutation" endparam param trapperturb caption = "Perturb Trap Transmute?" default = FALSE hint = "If enabled, then 'Trap Transmute' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'Trap Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @transmogrify != "t" endparam param trapblend caption = "Trap Blend" default = 0.1 hint = "If 'Perturb Trap Transmute' is enabled, then this sets the fraction \ of 'Trap Transmute' that is mixed in with the original trap point, t. \ Inactive if 'Perturb Trap Transmute' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @trapperturb endparam param realfront caption = "FrontEndReal Warp" enum = "r" "1/r" "r^2" "1/r^2" "log(r)" "e^r" "r^r" "sin(r)" "cos(r)" \ "tan(r)" "asin(r)" "acos(r)" "atan(r)" "sinh(r)" "cosh(r)" "tanh(r)" \ "asinh(r)" "acosh(r)" "atanh(r)" "log(1/r)" "log(log(r))" "e^-r" \ "e^(1/r)" "r^-r" "sin(r)^2" "cos(r)^2" "tan(r)^2" "cot(r)" "sec(r)" \ "csc(r)" "cot(r)^2" "sec(r)^2" "csc(r)^2" "r^r^r" "1/r^r^r" "log(-r)" \ "1/log(r)" "rlog(r)" "sin(r)/r" "cos(r)/r" "sin(r)*cos(r)" "sin(r^2)" \ "e^(-1/r)" "re^r" "re^-r" "re^(1/r)" "re^(-1/r)" "r^3" "1/r^3" \ "acot(r)" "asec(r)" "acsc(r)" "tan(r)/r" "cot(r)/r" "sec(r)/r" \ "csc(r)/r" "rsin(r)" "rcos(r)" "rtan(r)" "rcot(r)" "rsec(r)" "rcsc(r)" \ "sin(1/r)" "cos(1/r)" "tan(1/r)" "cot(1/r)" "sec(1/r)" "csc(1/r)" \ "cotanh(r)" "sech(r)" "cosech(r)" "acoth(r)" "asech(r)" "acosech(r)" "r^power" \ "sinh(r)^2" "cosh(r)^2" "tanh(r)^2" "cotanh(r)^2" \ "sech(r)^2" "cosech(r)^2" "sinh(1/r)" "cosh(1/r)" "tanh(1/r)" \ "cotanh(1/r)" "sech(1/r)" "cosech(1/r)" "sin(r)tan(r)" "sinh(r)tanh(r)" \ "sinh(r)cosh(r)" "sinh(r)^2*cosh(r)^2" "sin(r)^2*cos(r)^2" \ "sin(1/r)*cos(1/r)" "sin(1/r)^2" "sin(r)cos(1/r)" "sin(r)sin(1/r)" \ "log(r)^2" "sin(r)sin(2r)" "e^2r" "e^-2r" "sinh(1/r)cosh(1/r)" \ "sinh(1/r)^2" "sinh(r)cosh(1/r)" "sinh(r)sinh(1/r)" "sin(r)sinh(r)" \ "sin(r)cosh(r)" "sin(r)^2*sinh(r)^2" "sin(r)e^r" "cos(r)e^r" \ "sinh(r)e^r" "cosh(r)e^r" "sin(r)log(r)" "cos(r)log(r)" "sinh(r)log(r)" \ "cosh(r)log(r)" default = 0 hint = "This function can warp the initial value of real(z) before input to \ the 'Z Initialization' function. For 'r^power' set param 'FrontEndReal \ Power'" endparam param rfpower caption = "FrontEndReal Power" default = 4.0 hint = "Real(z) exponent if param 'FrontEndReal Warp' is set to 'r^power'" visible = @realfront == "r^power" endparam param rfscale caption = "Real(z) Scale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ iterate z before warping or initialization" endparam param rfperturb caption = "Perturb FrontEndReal?" default = FALSE hint = "If enabled, then 'FrontEndReal Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'FrontEndReal Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @realfront != "r" endparam param rfblend caption = "FrontEndReal Blend" default = 0.1 hint = "If 'Perturb FrontEndReal' is enabled, then this sets the fraction \ of 'FrontEndReal Warp' that is mixed in with the original real(z). \ Inactive if 'Perturb FrontEndReal' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @rfperturb endparam param imagfront caption = "FrontEndImag Warp" enum = "i" "1/i" "i^2" "1/i^2" "log(i)" "e^i" "i^i" "sin(i)" "cos(i)" \ "tan(i)" "asin(i)" "acos(i)" "atan(i)" "sinh(i)" "cosh(i)" "tanh(i)" \ "asinh(i)" "acosh(i)" "atanh(i)" "log(1/i)" "log(log(i))" "e^-i" \ "e^(1/i)" "i^-i" "sin(i)^2" "cos(i)^2" "tan(i)^2" "cot(i)" "sec(i)" \ "csc(i)" "cot(i)^2" "sec(i)^2" "csc(i)^2" "i^i^i" "1/i^i^i" "log(-i)" \ "1/log(i)" "ilog(i)" "sin(i)/i" "cos(i)/i" "sin(i)*cos(i)" "sin(i^2)" \ "e^(-1/i)" "ie^i" "ie^-i" "ie^(1/i)" "ie^(-1/i)" "i^3" "1/i^3" \ "acot(i)" "asec(i)" "acsc(i)" "tan(i)/i" "cot(i)/i" "sec(i)/i" \ "csc(i)/i" "isin(i)" "icos(i)" "itan(i)" "icot(i)" "isec(i)" "icsc(i)" \ "sin(1/i)" "cos(1/i)" "tan(1/i)" "cot(1/i)" "sec(1/i)" "csc(1/i)" \ "cotanh(i)" "sech(i)" "cosech(i)" "acoth(i)" "asech(i)" "acosech(i)" "i^power" \ "sinh(i)^2" "cosh(i)^2" "tanh(i)^2" "cotanh(i)^2" \ "sech(i)^2" "cosech(i)^2" "sinh(1/i)" "cosh(1/i)" "tanh(1/i)" \ "cotanh(1/i)" "sech(1/i)" "cosech(1/i)" "sin(i)tan(i)" "sinh(i)tanh(i)" \ "sinh(i)cosh(i)" "sinh(i)^2*cosh(i)^2" "sin(i)^2*cos(i)^2" \ "sin(1/i)*cos(1/i)" "sin(1/i)^2" "sin(i)cos(1/i)" "sin(i)sin(1/i)" \ "log(i)^2" "sin(i)sin(2i)" "e^2i" "e^-2i" "sinh(1/i)cosh(1/i)" \ "sinh(1/i)^2" "sinh(i)cosh(1/i)" "sinh(i)sinh(1/i)" "sin(i)sinh(i)" \ "sin(i)cosh(i)" "sin(i)^2*sinh(i)^2" "sin(i)e^i" "cos(i)e^i" \ "sinh(i)e^i" "cosh(i)e^i" "sin(i)log(i)" "cos(i)log(i)" "sinh(i)log(i)" \ "cosh(i)log(i)" default = 0 hint = "This function can warp the initial value of imag(z) before input to \ the 'Z Initialization' function. For 'i^power' set param 'FrontEndImag \ Power'" endparam param ifpower caption = "FrontEndImag Power" default = 4.0 hint = "Imag(z) exponent if param 'FrontEndImag Warp' is set to 'i^power'" visible = @imagfront == "i^power" endparam param ifscale caption = "Imag(z) Scale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ iterate z before warping or initialization" endparam param ifperturb caption = "Perturb FrontEndImag?" default = FALSE hint = "If enabled, then 'FrontEndImag Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'FrontEndImag Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @imagfront != "i" endparam param ifblend caption = "FrontEndImag Blend" default = 0.1 hint = "If 'Perturb FrontEndImag' is enabled, then this sets the fraction \ of 'FrontEndImag Warp' that is mixed in with the original imag(z). \ Inactive if 'Perturb FrontEndImag' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @ifperturb endparam param realback caption = "BackEndReal Warp" enum = "r" "1/r" "r^2" "1/r^2" "log(r)" "e^r" "r^r" "sin(r)" "cos(r)" \ "tan(r)" "asin(r)" "acos(r)" "atan(r)" "sinh(r)" "cosh(r)" "tanh(r)" \ "asinh(r)" "acosh(r)" "atanh(r)" "log(1/r)" "log(log(r))" "e^-r" \ "e^(1/r)" "r^-r" "sin(r)^2" "cos(r)^2" "tan(r)^2" "cot(r)" "sec(r)" \ "csc(r)" "cot(r)^2" "sec(r)^2" "csc(r)^2" "r^r^r" "1/r^r^r" "log(-r)" \ "1/log(r)" "rlog(r)" "sin(r)/r" "cos(r)/r" "sin(r)*cos(r)" "sin(r^2)" \ "e^(-1/r)" "re^r" "re^-r" "re^(1/r)" "re^(-1/r)" "r^3" "1/r^3" \ "acot(r)" "asec(r)" "acsc(r)" "tan(r)/r" "cot(r)/r" "sec(r)/r" \ "csc(r)/r" "rsin(r)" "rcos(r)" "rtan(r)" "rcot(r)" "rsec(r)" "rcsc(r)" \ "sin(1/r)" "cos(1/r)" "tan(1/r)" "cot(1/r)" "sec(1/r)" "csc(1/r)" \ "cotanh(r)" "sech(r)" "cosech(r)" "acoth(r)" "asech(r)" "acosech(r)" "r^power" \ "sinh(r)^2" "cosh(r)^2" "tanh(r)^2" "cotanh(r)^2" \ "sech(r)^2" "cosech(r)^2" "sinh(1/r)" "cosh(1/r)" "tanh(1/r)" \ "cotanh(1/r)" "sech(1/r)" "cosech(1/r)" "sin(r)tan(r)" "sinh(r)tanh(r)" \ "sinh(r)cosh(r)" "sinh(r)^2*cosh(r)^2" "sin(r)^2*cos(r)^2" \ "sin(1/r)*cos(1/r)" "sin(1/r)^2" "sin(r)cos(1/r)" "sin(r)sin(1/r)" \ "log(r)^2" "sin(r)sin(2r)" "e^2r" "e^-2r" "sinh(1/r)cosh(1/r)" \ "sinh(1/r)^2" "sinh(r)cosh(1/r)" "sinh(r)sinh(1/r)" "sin(r)sinh(r)" \ "sin(r)cosh(r)" "sin(r)^2*sinh(r)^2" "sin(r)e^r" "cos(r)e^r" \ "sinh(r)e^r" "cosh(r)e^r" "sin(r)log(r)" "cos(r)log(r)" "sinh(r)log(r)" \ "cosh(r)log(r)" default = 0 hint = "This function can warp the final value of real(trap) before testing for \ trapping by the 'Trap What?' function. For 'r^power' set param 'BackEndReal \ Power'" endparam param rbpower caption = "BackEndReal Power" default = 4.0 hint = "Real(trap) exponent if param 'BackEndReal Warp' is set to 'r^power'" visible = @realback == "r^power" endparam param rbscale caption = "Real(t) Scale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ trap point t before warping (but after transmutation)" endparam param rbperturb caption = "Perturb BackEndReal?" default = FALSE hint = "If enabled, then 'BackEndReal Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'BackEndReal Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @realback != "r" endparam param rbblend caption = "BackEndReal Blend" default = 0.1 hint = "If 'Perturb BackEndReal' is enabled, then this sets the fraction \ of 'BackEndReal Warp' that is mixed in with the original real(trap). \ Inactive if 'Perturb BackEndReal' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @rbperturb endparam param imagback caption = "BackEndImag Warp" enum = "i" "1/i" "i^2" "1/i^2" "log(i)" "e^i" "i^i" "sin(i)" "cos(i)" \ "tan(i)" "asin(i)" "acos(i)" "atan(i)" "sinh(i)" "cosh(i)" "tanh(i)" \ "asinh(i)" "acosh(i)" "atanh(i)" "log(1/i)" "log(log(i))" "e^-i" \ "e^(1/i)" "i^-i" "sin(i)^2" "cos(i)^2" "tan(i)^2" "cot(i)" "sec(i)" \ "csc(i)" "cot(i)^2" "sec(i)^2" "csc(i)^2" "i^i^i" "1/i^i^i" "log(-i)" \ "1/log(i)" "ilog(i)" "sin(i)/i" "cos(i)/i" "sin(i)*cos(i)" "sin(i^2)" \ "e^(-1/i)" "ie^i" "ie^-i" "ie^(1/i)" "ie^(-1/i)" "i^3" "1/i^3" \ "acot(i)" "asec(i)" "acsc(i)" "tan(i)/i" "cot(i)/i" "sec(i)/i" \ "csc(i)/i" "isin(i)" "icos(i)" "itan(i)" "icot(i)" "isec(i)" "icsc(i)" \ "sin(1/i)" "cos(1/i)" "tan(1/i)" "cot(1/i)" "sec(1/i)" "csc(1/i)" \ "cotanh(i)" "sech(i)" "cosech(i)" "acoth(i)" "asech(i)" "acosech(i)" "i^power" \ "sinh(i)^2" "cosh(i)^2" "tanh(i)^2" "cotanh(i)^2" \ "sech(i)^2" "cosech(i)^2" "sinh(1/i)" "cosh(1/i)" "tanh(1/i)" \ "cotanh(1/i)" "sech(1/i)" "cosech(1/i)" "sin(i)tan(i)" "sinh(i)tanh(i)" \ "sinh(i)cosh(i)" "sinh(i)^2*cosh(i)^2" "sin(i)^2*cos(i)^2" \ "sin(1/i)*cos(1/i)" "sin(1/i)^2" "sin(i)cos(1/i)" "sin(i)sin(1/i)" \ "log(i)^2" "sin(i)sin(2i)" "e^2i" "e^-2i" "sinh(1/i)cosh(1/i)" \ "sinh(1/i)^2" "sinh(i)cosh(1/i)" "sinh(i)sinh(1/i)" "sin(i)sinh(i)" \ "sin(i)cosh(i)" "sin(i)^2*sinh(i)^2" "sin(i)e^i" "cos(i)e^i" \ "sinh(i)e^i" "cosh(i)e^i" "sin(i)log(i)" "cos(i)log(i)" "sinh(i)log(i)" \ "cosh(i)log(i)" default = 0 hint = "This function can warp the final value of imag(trap) before testing for \ trapping by the 'Trap What?' function. For 'i^power' set param 'BackEndImag \ Power'" endparam param ibpower caption = "BackEndImag Power" default = 4.0 hint = "Imag(trap) exponent if param 'BackEndImag Warp' is set to 'i^power'" visible = @imagback == "i^power" endparam param ibscale caption = "Imag(t) Scale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ trap point t before warping (but after transmutation)" endparam param ibperturb caption = "Perturb BackEndImag?" default = FALSE hint = "If enabled, then 'BackEndImag Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'BackEndImag Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @imagback != "i" endparam param ibblend caption = "BackEndImag Blend" default = 0.1 hint = "If 'Perturb BackEndImag' is enabled, then this sets the fraction \ of 'BackEndImag Warp' that is mixed in with the original imag(trap). \ Inactive if 'Perturb BackEndImag' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @ibperturb endparam param @colorby caption = "Color By?" enum = "distance" "iteration" "magnitude" "test" "trap magnitude" "angle" \ "trap angle" "mod magnitude" "mod angle" "real" "trap real" "mod real"\ "imag" "trap imag" "mod imag" "raw distance" default = 0 hint = "Criterion for computing color index" endparam param @colorspread caption = "Color Spread" default = 1.0 hint = "This value can increase or decrease the color index range; adjust \ if fractal coloring is too monotone" endparam param varyspread caption = "Vary Colorspread?" default = FALSE hint = "If set, the value of the trap will modify the color index spread each \ iteration; parameter 'SpreadFeedback' can be used to modulate the variation" endparam param spreadstp caption = "SpreadFeedback" default = 1.0 hint = "If 'Vary Colorspread' is set, this setting adjusts the amount of variation" visible = @varyspread endparam param ranges caption = "Color Ranges" default = 1 hint = "Different ranges of the color palette can be used, based on iteration" endparam param hideranges caption = "Mask Color Ranges?" default = FALSE hint = "If enabled, then param 'Show Which Range?' can be set to mask pixels \ other than those in the given range. Only valid if 'Color Ranges' > 1" visible = @ranges > 1 endparam param showrange caption = "Show Which Range?" default = 0 min = 0 hint = "If 'Mask Color Ranges?' is turned on, then pixels falling in this color \ range will be visible; others will be set to the solid color. Works best \ with param 'Trap What?' set to a threshold or limit option. 0 <= param < \ 'Color Ranges'" visible = @hideranges == TRUE endparam param @colorwarp caption = "Color Warp Factor" enum = "c" "1/c" "c^2" "1/c^2" "log(c)" "e^c" "c^c" "sin(c)" "cos(c)" \ "tan(c)" "asin(c)" "acos(c)" "atan(c)" "sinh(c)" "cosh(c)" "tanh(c)" \ "asinh(c)" "acosh(c)" "atanh(c)" "log(1/c)" "log(log(c))" "e^-c" \ "e^(1/c)" "c^-c" "sin(c)^2" "cos(c)^2" "tan(c)^2" "cot(c)" "sec(c)" \ "csc(c)" "cot(c)^2" "sec(c)^2" "csc(c)^2" "c^c^c" "1/c^c^c" "log(-c)" \ "1/log(c)" "clog(c)" "sin(c)/c" "cos(c)/c" "sin(c)*cos(c)" "sin(c^2)" \ "e^(-1/c)" "ce^c" "ce^-c" "ce^(1/c)" "ce^(-1/c)" "c^3" "1/c^3" \ "acot(c)" "asec(c)" "acsc(c)" "tan(c)/c" "cot(c)/c" "sec(c)/c" \ "csc(c)/c" "csin(c)" "ccos(c)" "ctan(c)" "ccot(c)" "csec(c)" "ccsc(c)" \ "sin(1/c)" "cos(1/c)" "tan(1/c)" "cot(1/c)" "sec(1/c)" "csc(1/c)" \ "cotanh(c)" "sech(c)" "cosech(c)" "acoth(c)" "asech(c)" "acosech(c)" "c^power" \ "sinh(c)^2" "cosh(c)^2" "tanh(c)^2" "cotanh(c)^2" \ "sech(c)^2" "cosech(c)^2" "sinh(1/c)" "cosh(1/c)" "tanh(1/c)" \ "cotanh(1/c)" "sech(1/c)" "cosech(1/c)" "sin(c)tan(c)" "sinh(c)tanh(c)" \ "sinh(c)cosh(c)" "sinh(c)^2*cosh(c)^2" "sin(c)^2*cos(c)^2" \ "sin(1/c)*cos(1/c)" "sin(1/c)^2" "sin(c)cos(1/c)" "sin(c)sin(1/c)" \ "log(c)^2" "sin(c)sin(2c)" "e^2c" "e^-2c" "sinh(1/c)cosh(1/c)" \ "sinh(1/c)^2" "sinh(c)cosh(1/c)" "sinh(c)sinh(1/c)" "sin(c)sinh(c)" \ "sin(c)cosh(c)" "sin(c)^2*sinh(c)^2" "sin(c)e^c" "cos(c)e^c" \ "sinh(c)e^c" "cosh(c)e^c" "sin(c)log(c)" "cos(c)log(c)" "sinh(c)log(c)" \ "cosh(c)log(c)" default = 0 hint = "The final color index can be warped by this function; default is \ 'c' (no change in color index)" endparam param cpower caption = "Color Power" default = 0.25 hint = "Color index exponent if param 'Color Warp Factor' is set to 'c^power'" visible = @colorwarp == "c^power" endparam param skippediters caption = "Iterations to Skip" default = 0 hint = "Values will not be watched for trapping until after this many \ fractal iterations" endparam param towatch caption = "Iterations to Watch" default = 0 min = 0 hint = "How many iterations should the orbit be monitored for potential trapping? \ '0' means watch all iterations" endparam param polar caption = "Polar Coordinates?" default = FALSE hint = "Alternative interpretation of trap value" endparam param mutantpolar caption = "Mutant Polars?" default = FALSE hint = "Optional interpretation; only active if param 'Polar Coordinates' \ is also set" visible = @polar endparam param trapvariant caption = "Trap Variants" enum = "Normal" "Flip" "Conjugate" "FlipConjugate" "Negate" "Negate Flip" \ "Negate Conjugate" "Conjugate Flip" default = 0 hint = "Enables alternative coloring algorithms based on manipulation of \ real(z) and imag(z) before trapping" endparam param operator caption = "Enable Operator?" enum = "none" "multiply" "add" "subtract" "divide" "exponentiate" \ "subtraction2" "division2" "exponential2" "logarithm" "logarithm2" default = 0 hint = "If enabled, z is multiplied by (added to, etc) this constant on each iteration \ before testing; parameter 'Operator Constant' sets the constant \ value that is used in the operation" endparam param operatee caption = "Operation Constant" default = (-1, 1) hint = "If 'Enable Operator' is set, this is the constant used in the \ multiplication/addition/subtraction/division/exponentiation/logarithm" visible = @operator != "none" endparam param swaporder caption = "Swap Order?" default = FALSE hint = "Swaps order of 'Trap Variants' and 'Enable Operator'. Normally, \ the trap variation is executed AFTER the arithmetic operation; this \ param toggles the execution order" visible = (( @trapvariant != "normal" ) && ( @operator != "none" )) endparam param history caption = "Enable History?" default = FALSE hint = "If enabled, both the previous and current z are used to determine \ trapping; a curvature-based coloring variant" endparam param histype caption = "History Type" enum = "middle aged" "old" "very old" default = 0 hint = "Determines curvature algorithm" visible = @history == TRUE endparam param twavy caption = "Enable T Waviness?" default = FALSE hint = "Adds waves to the trap function. If enabled, params 'Waviness Mode', \ 'Waviness Amplitude', & 'Waviness Frequency' may be adjusted to vary \ wave character" endparam param twavmode caption = "T Wave Mode" enum = "radial" "tangential" default = 0 hint = "If 'Enable T Waviness' is on, this param sets the type of waves \ superposed on the trap function; inactive otherwise" visible = @twavy == TRUE endparam param twavamp caption = "T Wave Amplitude" default = 0.1 hint = "If 'Enable T Waviness' is on, this param sets the height of the waves \ superposed on the trap function; inactive otherwise" visible = @twavy == TRUE endparam param twavfreq caption = "T Wave Frequency" default = 10.0 hint = "If 'Enable T Waviness' is on, this param sets the density of waves \ superposed on the trap function; inactive otherwise" visible = @twavy == TRUE endparam param pointmode caption = "Enable Point Mode?" default = FALSE hint = "If set, trapping occurs normally until the first #z has been \ trapped using the usual criteria; subsequently, trapping is \ relative to this first trap point, rather than to the entire curve" endparam param turb1 caption = "Turbulence 1?" default = FALSE hint = "Adds distortion (Products) to coloring; amount of turbulence \ for all types is set by parameter 'Turbulence Amount'" endparam param turb2 caption = "Turbulence 2?" default = FALSE hint = "Adds distortion (Random) to coloring; amount of turbulence \ is set for all types by parameter 'Turbulence Amount'" endparam param turb3 caption = "Turbulence 3?" default = FALSE hint = "Adds fBm distortion to coloring; amount of turbulence \ for all types is set by parameter 'Turbulence Amount', while \ the six 'fBm' params ('fBm Scale', 'fBm Rotation', etc) are \ specific to 'Turbulence 3'" endparam param turb4 caption = "Turbulence 4?" default = FALSE hint = "Adds distortion (Sine) to coloring; amount of turbulence \ for all types is set by parameter 'Turbulence Amount'" endparam param turb5 caption = "Turbulence 5?" default = FALSE hint = "Adds distortion (Log) to coloring; amount of turbulence \ for all types is set by parameter 'Turbulence Amount'" endparam param turb6 caption = "Turbulence 6?" default = FALSE hint = "Adds distortion (Vectors) to coloring; amount of turbulence \ for all types is set by parameter 'Turbulence Amount'" endparam param turbamount caption = "Turbulence Amount" default = 1.0 hint = "Overall degree of texturizing, if any of the six 'Turbulence' \ parameters are enabled" visible = (@turb1 || @turb2 || @turb3 || @turb4 || @turb5 || @turb6) endparam param bscale caption = "fBm Scale" default = 1.0 hint = "The overall scale of 'Turbulence 3', the fBm turbulence option" visible = @turb3 endparam param bangle caption = "fBm Rotation" default = 0.0 hint = "Angular parameter for 'Turbulence 3', fBm noise" visible = @turb3 endparam param bstep caption = "fBm Stepsize" default = 0.5 hint = "'Turbulence 3' scale step size for fBm noise iterations" visible = @turb3 endparam param banglestep caption = "fBm Rotation Step" default = 37.0 hint = "The angle in degrees for noise function rotation after \ each fBm iteration; used if 'Turbulence 3' is enabled" visible = @turb3 endparam param boctaves caption = "fBm Octaves" default = 7 min = 1 hint = "The number of iterations of the 'Turbulence 3' fBm noise function" visible = @turb3 endparam param bpower caption = "fBm Exponent" default = 2.0 hint = "The exponent used if param 'Turbulence 3' is enabled \ for fBm randomization" visible = @turb3 endparam param varyturb caption = "Vary Turbulence?" default = FALSE hint = "If set, the value of the trap will modify the turbulence amount each \ iteration; parameter 'TurbulenceFeedback' can be used to modulate the variation" visible = (@turb1 || @turb2 || @turb3 || @turb4 || @turb5 || @turb6) endparam param turbstp caption = "TurbulenceFeedback" default = 1.0 hint = "If 'Vary Turbulence' is set, this setting adjusts the amount of variation" visible = @varyturb endparam param mask caption = "Masking?" default = FALSE hint = "If enabled, trapped values below the 'Masking Threshold' parameter \ will be colored the solid color" visible = !@revmask endparam param revmask caption = "Reverse Masking?" default = FALSE hint = "If enabled, trapped values greater than the 'Masking Threshold' \ parameter will be colored the solid color; inactive if normal \ 'Masking' is also enabled" visible = !@mask endparam param maskthresh caption = "Masking Threshold" default = 0.1 hint = "This param is the value used for solid color masking if either \ 'Masking?' or 'Reverse Masking?' are enabled. Depending on how param \ 'Color By' is set, the value may need large adjustment (.001-10 may \ be useful)" visible = (@mask || @revmask) endparam param varymode caption = "Feedback Mode" enum = "trapped" "not trapped" "always" default = 2 hint = "Variation style; variation of individual parameters must still \ be enabled. 'trapped' -- feedback occurs only on iterations where some \ value was trapped; 'not trapped' -- varies on iterations when nothing \ trapped; 'always' -- feedback on every iteation" visible = (@varyturb || @varyscale || @varyrotation || @varythresh || @varyrwidth || @varycenter || @varyspread) endparam param oldstyle caption = "OldStyle Feedback?" default = FALSE hint = "Retained for compatibility with original version of this formula; \ enable if you need to render an early image utilizing this formula, \ or for a variant algorithm that generally produces less feedback variation" visible = (@varyturb || @varyscale || @varyrotation || @varythresh || @varyrwidth || @varycenter || @varyspread) endparam } jam-Emboss { ; Joseph A. Maddry 040308 ; Meant for use with theEmboss options of formulas in the jam2.ufm folder final: #index = real(#z) default: title = "jam-Emboss" } jam-basic { ; Joseph A. Maddry ; January 23, 2004 ; ; Enhancement of the default coloring algorithm that is used by ; Ultra Fractal when no coloring algorithm is loaded, modified by the ; addition of additional transfer functions, color index scaling, ; and optional fBm. Also includes a smoothing option based on ; the exponential smoothing code of Damien Jones and Ron Barnett. init: float tempcolor = float ftemp = float ftemp2 = 0.0 float minz = 1.0e12 complex zfBm = zmin = zfirst = ztwo = zlast = zpenult = (0,0) float fbmadjust = 0.0 float sumz = 0.0 int iter = 0 loop: iter = iter + 1 if @smoothing sumz = sumz + exp(-iter) endif ; @smoothing if @fBm if @fbminit == "min z" if iter > 1 ; skip first iter, since #z may have been initialized to (0,0) ftemp = cabs(#z) if ftemp < minz minz = ftemp zmin = #z endif ; temp endif ; iter elseif @fbminit == "first z" if iter == 1 zfirst = #z endif ; iter elseif @fbminit == "second z" if iter == 2 ztwo = #z endif ; iter elseif @fbminit == "last z" zlast = #z elseif @fbminit == "penult z" zpenult = zlast zlast = #z endif ; @fbminit endif ; @fBm final: ; Figure amount of fBm ; fBm code adapted from code of dmj, mt, and others if @fBm if @fbminit == "min z" zfBm = zmin elseif @fbminit == "first z" zfBm = zfirst elseif @fbminit == "second z" zfBm = ztwo elseif @fbminit == "last z" zfBm = zlast elseif @fbminit == "penult z" zfBm = zpenult else ; @fbminit == "pixel" zfBm = #pixel endif ; @fbminit zfBm = zfBm + @boffset float bfreq = @bbfreq complex br = (0,1) ^ (@bangle / 90.0) complex br2 = (0,1) ^ (@banglestep / 90.0) complex bp = zfBm * @bscale * br float bsum = 0.0 int bi = @boctaves while (bi > 0) float bx0 = floor(real(bp)) % 256 float by0 = floor(imag(bp)) % 256 if bx0 < 0 bx0 = bx0 + 256 endif ; bx0 if by0 < 0 by0 = by0 + 256 endif ; by0 float bx1 = (bx0 + 1) % 256 float by1 = (by0 + 1) % 256 float rx0 = real(bp) - floor(real(bp)) float ry0 = imag(bp) - floor(imag(bp)) float rx1 = rx0 - 1 float ry1 = ry0 - 1 float b00 = (bx0^@bpower % 65536 + by0)^@bpower % 65536 float b10 = (bx1^@bpower % 65536 + by0)^@bpower % 65536 float b01 = (bx0^@bpower % 65536 + by1)^@bpower % 65536 float b11 = (bx1^@bpower % 65536 + by1)^@bpower % 65536 float g_b00_0 = (b00)^@bpower*0.25 % 512 - 256 float g_b10_0 = (b10)^@bpower*0.25 % 512 - 256 float g_b01_0 = (b01)^@bpower*0.25 % 512 - 256 float g_b11_0 = (b11)^@bpower*0.25 % 512 - 256 float g_b00_1 = (b00+1)^@bpower*0.25 % 512 - 256 float g_b10_1 = (b10+1)^@bpower*0.25 % 512 - 256 float g_b01_1 = (b01+1)^@bpower*0.25 % 512 - 256 float g_b11_1 = (b11+1)^@bpower*0.25 % 512 - 256 float bd = 0.0 bd = 1 / sqrt(sqr(g_b00_0) + sqr(g_b00_1)) g_b00_0 = g_b00_0 * bd g_b00_1 = g_b00_1 * bd bd = 1 / sqrt(sqr(g_b10_0) + sqr(g_b10_1)) g_b10_0 = g_b10_0 * bd g_b10_1 = g_b10_1 * bd bd = 1 / sqrt(sqr(g_b01_0) + sqr(g_b01_1)) g_b01_0 = g_b01_0 * bd g_b01_1 = g_b01_1 * bd bd = 1 / sqrt(sqr(g_b11_0) + sqr(g_b11_1)) g_b11_0 = g_b11_0 * bd g_b11_1 = g_b11_1 * bd float u1 = rx0 * g_b00_0 + ry0 * g_b00_1 float v1 = rx1 * g_b10_0 + ry0 * g_b10_1 float u2 = rx0 * g_b01_0 + ry1 * g_b01_1 float v2 = rx1 * g_b11_0 + ry1 * g_b11_1 float sx = sqr(rx0) * (3 - rx0*2) float sy = sqr(ry0) * (3 - ry0*2) float ba = u1 + sx*(v1-u1) float bb = u2 + sx*(v2-u2) bsum = bsum + (ba + sy*(bb-ba))* bfreq if @fbmfunc != 0 bsum = @funcprescale * bsum if ( @fbmfunc == 1 ) ftemp = 1/bsum elseif ( @fbmfunc == 2 ) ftemp = bsum * bsum elseif ( @fbmfunc == 3 ) ftemp = 1 / ( bsum * bsum ) elseif ( @fbmfunc == 4 ) ftemp = @funcparam1*log(bsum) elseif ( @fbmfunc == 5 ) ftemp = @funcparam1*exp( bsum) elseif ( @fbmfunc == 6 ) ftemp = @funcparam1*bsum^(bsum) elseif ( @fbmfunc == 7 ) ftemp = @funcparam1*sin( bsum ) elseif ( @fbmfunc == 8 ) ftemp = @funcparam1*cos( bsum ) elseif ( @fbmfunc == 9 ) ftemp = @funcparam1*tan( bsum ) elseif ( @fbmfunc == 10 ) ftemp = @funcparam1*asin( bsum ) elseif ( @fbmfunc == 11 ) ftemp = @funcparam1*acos( bsum ) elseif ( @fbmfunc == 12 ) ftemp = @funcparam1*atan( bsum ) elseif ( @fbmfunc == 13 ) ftemp = @funcparam1*sinh( bsum ) elseif ( @fbmfunc == 14 ) ftemp = @funcparam1*cosh( bsum ) elseif ( @fbmfunc == 15 ) ftemp = @funcparam1*tanh( bsum ) elseif ( @fbmfunc == 16 ) ftemp = @funcparam1*asinh( bsum ) elseif ( @fbmfunc == 17 ) ftemp = @funcparam1*acosh( bsum ) elseif ( @fbmfunc == 18 ) ftemp = @funcparam1*atanh( bsum ) elseif ( @fbmfunc == 19 ) ftemp = @funcparam1*log( 1/bsum ) elseif ( @fbmfunc == 20 ) ftemp = @funcparam1*log( @funcparam2*log( bsum )) elseif ( @fbmfunc == 21 ) ftemp = @funcparam1*exp( -bsum ) elseif ( @fbmfunc == 22 ) ftemp = @funcparam1*exp( 1/bsum ) elseif ( @fbmfunc == 23 ) ftemp = @funcparam1*bsum^(-bsum) elseif ( @fbmfunc == 24 ) ftemp = @funcparam1*(sin( bsum ))^@funcparam2 elseif ( @fbmfunc == 25 ) ftemp = @funcparam1*(cos( bsum ))^@funcparam2 elseif ( @fbmfunc == 26 ) ftemp = @funcparam1*(tan( bsum ))^@funcparam2 elseif ( @fbmfunc == 27 ) ftemp = @funcparam1*cotan( bsum ) elseif ( @fbmfunc == 28 ) ftemp = @funcparam1/cos( bsum ) elseif ( @fbmfunc == 29 ) ftemp = @funcparam1/sin( bsum ) elseif ( @fbmfunc == 30 ) ftemp = @funcparam1*(cotan( bsum ))^@funcparam2 elseif ( @fbmfunc == 31 ) ftemp = @funcparam1/(cos( bsum ))^@funcparam2 elseif ( @fbmfunc == 32 ) ftemp = @funcparam1/(sin( @funcparam1*bsum ))^@funcparam2 elseif ( @fbmfunc == 33 ) ftemp = @funcparam1*bsum^(bsum) ftemp = @funcparam2*bsum^(ftemp) elseif ( @fbmfunc == 34 ) ftemp = @funcparam1*bsum^(bsum) ftemp = @funcparam2/( bsum^ftemp ) elseif ( @fbmfunc == 35 ) ftemp = @funcparam1*log(-bsum) elseif ( @fbmfunc == 36 ) ftemp = @funcparam1/log( bsum ) elseif ( @fbmfunc == 37 ) ftemp = @funcparam1* bsum * log( bsum ) elseif ( @fbmfunc == 38 ) ftemp = @funcparam1* sin( bsum ) / bsum elseif ( @fbmfunc == 39 ) ftemp = @funcparam1* cos( bsum ) / bsum elseif ( @fbmfunc == 40 ) ftemp = @funcparam1* sin( bsum ) * cos( @funcparam2*bsum ) elseif ( @fbmfunc == 41 ) ftemp = @funcparam1*sin( bsum^2 ) elseif ( @fbmfunc == 42 ) ftemp = @funcparam1*exp( -1/bsum ) elseif ( @fbmfunc == 43 ) ftemp = @funcparam1* bsum * exp( bsum ) elseif ( @fbmfunc == 44 ) ftemp = @funcparam1* bsum * exp( -bsum ) elseif ( @fbmfunc == 45 ) ftemp = @funcparam1* bsum * exp( 1/bsum ) elseif ( @fbmfunc == 46 ) ftemp = @funcparam1* bsum * exp( -1/bsum ) elseif ( @fbmfunc == 47 ) ftemp = @funcparam1* bsum * bsum * bsum elseif ( @fbmfunc == 48 ) ftemp = @funcparam1 / ( bsum * bsum * bsum ) elseif ( @fbmfunc == 49 ) ftemp = @funcparam1*atan( 1 / bsum ) elseif ( @fbmfunc == 50 ) ftemp = @funcparam1*acos( 1 / bsum ) elseif ( @fbmfunc == 51 ) ftemp = @funcparam1*asin( 1 / bsum ) elseif ( @fbmfunc == 52 ) ftemp = @funcparam1*tan( bsum ) / bsum elseif ( @fbmfunc == 53 ) ftemp = @funcparam1*cotan( bsum ) / bsum elseif ( @fbmfunc == 54 ) ftemp = @funcparam1 / ( bsum * cos( bsum )) elseif ( @fbmfunc == 55 ) ftemp = @funcparam1 / ( bsum * sin( bsum )) elseif ( @fbmfunc == 56 ) ftemp = @funcparam1* bsum * sin( bsum ) elseif ( @fbmfunc == 57 ) ftemp = @funcparam1* bsum * cos( bsum ) elseif ( @fbmfunc == 58 ) ftemp = @funcparam1* bsum * tan( bsum ) elseif ( @fbmfunc == 59 ) ftemp = @funcparam1* bsum * cotan( bsum ) elseif ( @fbmfunc == 60 ) ftemp = @funcparam1*bsum/cos( bsum ) elseif ( @fbmfunc == 61 ) ftemp = @funcparam1*bsum/sin( bsum ) elseif ( @fbmfunc == 62 ) ftemp = @funcparam1*sin( 1/bsum ) elseif ( @fbmfunc == 63 ) ftemp = @funcparam1*cos( 1/bsum ) elseif ( @fbmfunc == 64 ) ftemp = @funcparam1*tan( 1/bsum ) elseif ( @fbmfunc == 65 ) ftemp = @funcparam1*cotan( 1/bsum ) elseif ( @fbmfunc == 66 ) ftemp = @funcparam1/cos( 1/bsum ) elseif ( @fbmfunc == 67 ) ftemp = @funcparam1/sin( 1/bsum ) elseif ( @fbmfunc == 68 ) ftemp = @funcparam1*cotanh( bsum ) elseif ( @fbmfunc == 69 ) ftemp = @funcparam1/cosh( bsum ) elseif ( @fbmfunc == 70 ) ftemp = @funcparam1/sinh( bsum ) elseif ( @fbmfunc == 71 ) ftemp = @funcparam1*atanh( 1/bsum ) elseif ( @fbmfunc == 72 ) ftemp = @funcparam1*acosh( 1/bsum ) elseif ( @fbmfunc == 73 ) ftemp = @funcparam1*asinh( 1/bsum ) elseif @fbmfunc == 74 ftemp = bsum^@funcpower elseif @fbmfunc == 75 ftemp = @funcparam1*(sinh(bsum))^@funcparam2 elseif @fbmfunc == 76 ftemp = @funcparam1*(cosh( bsum ))^@funcparam2 elseif @fbmfunc == 77 ftemp = @funcparam1*(tanh(bsum))^@funcparam2 elseif @fbmfunc == 78 ftemp = @funcparam1*(cotanh( bsum ))^@funcparam2 elseif @fbmfunc == 79 ftemp = @funcparam1*(1/cosh(bsum))^@funcparam2 elseif @fbmfunc == 80 ftemp = @funcparam1*(1 / sinh( bsum ))^@funcparam2 elseif @fbmfunc == 81 ftemp = @funcparam1*sinh(1/bsum) elseif @fbmfunc == 82 ftemp = @funcparam1*cosh(1/bsum) elseif @fbmfunc == 83 ftemp = @funcparam1*tanh(1/bsum) elseif @fbmfunc == 84 ftemp = @funcparam1*cotanh(1/bsum) elseif @fbmfunc == 85 ftemp = @funcparam1/cosh(1/bsum) elseif @fbmfunc == 86 ftemp = @funcparam1/sinh(1/bsum) elseif @fbmfunc == 87 ftemp = @funcparam1*sin( bsum ) * tan(@funcparam2*bsum) elseif @fbmfunc == 88 ftemp = @funcparam1*sinh(bsum) * tanh(@funcparam2*bsum) elseif @fbmfunc == 89 ftemp = @funcparam1*sinh(bsum) * cosh(@funcparam2*bsum) elseif @fbmfunc == 90 ftemp = (sinh(bsum)^@funcparam1)*(cosh(bsum)^@funcparam2) elseif @fbmfunc == 91 ftemp = (sin(bsum)^@funcparam1)*(cos(bsum)^@funcparam2) elseif @fbmfunc == 92 ftemp = 1/bsum ftemp = @funcparam1*sin(ftemp)*cos(@funcparam2*ftemp) elseif @fbmfunc == 93 ftemp = @funcparam1*(sin( 1/bsum ))^@funcparam2 elseif @fbmfunc == 94 ftemp = @funcparam1* sin(bsum) * cos(@funcparam2/bsum) elseif @fbmfunc == 95 ftemp = @funcparam1* sin(bsum) * sin(@funcparam2/bsum) elseif @fbmfunc == 96 ftemp = (log(bsum))^@funcparam1 elseif @fbmfunc == 97 ftemp = @funcparam1*sin(bsum) * sin(@funcparam2*bsum) elseif @fbmfunc == 98 ftemp = exp(2*bsum) elseif @fbmfunc == 99 ftemp = exp(-2*bsum) elseif @fbmfunc == 100 ftemp = 1/bsum ftemp = @funcparam1*sinh(ftemp)*cosh(@funcparam2*ftemp) elseif @fbmfunc == 101 ftemp = @funcparam1*(sinh( 1/bsum )^@funcparam2) elseif @fbmfunc == 102 ftemp = @funcparam1*sinh(bsum) * cosh(@funcparam2/bsum) elseif @fbmfunc == 103 ftemp = @funcparam1*sinh(bsum) * sinh(@funcparam2/bsum) elseif @fbmfunc == 104 ftemp = @funcparam1*sin(bsum) * sinh(@funcparam2*bsum) elseif @fbmfunc == 105 ftemp = @funcparam1*sin(bsum) * cosh(@funcparam2*bsum) elseif @fbmfunc == 106 ftemp = (sin(bsum)^@funcparam1)*(sinh(bsum)^@funcparam2) elseif @fbmfunc == 107 ftemp = @funcparam1*sin(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 108 ftemp = @funcparam1*cos(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 109 ftemp = @funcparam1*sinh(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 110 ftemp = @funcparam1*cosh(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 111 ftemp = @funcparam1*sin(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 112 ftemp = @funcparam1*cos(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 113 ftemp = @funcparam1*sinh(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 114 ftemp = @funcparam1*cosh(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 115 ftemp = @funcparam1*exp(bsum^@funcparam2) elseif @fbmfunc == 116 ftemp = @funcparam1*exp(1/(bsum^@funcparam2)) elseif @fbmfunc == 117 ftemp = abs(bsum) elseif @fbmfunc == 118 ftemp = round(bsum) elseif @fbmfunc == 119 ftemp = trunc(bsum) elseif @fbmfunc == 120 ftemp = ceil(bsum) elseif @fbmfunc == 121 ftemp = floor(bsum) elseif @fbmfunc == 122 ftemp = @funcparam1*bsum/log(bsum) elseif @fbmfunc == 123 ftemp = @funcparam1*log(bsum)/bsum elseif @fbmfunc == 124 ftemp = @funcparam1*exp(bsum)/bsum elseif @fbmfunc == 125 ftemp = @funcparam1*exp(1/bsum)/bsum elseif @fbmfunc == 126 ftemp = @funcparam1*exp(bsum^@funcparam2)/bsum elseif @fbmfunc == 127 ftemp = @funcparam1*exp(1/(bsum^@funcparam2))/bsum elseif @fbmfunc == 128 ftemp = @funcparam1*bsum * exp(bsum^@funcparam2) elseif @fbmfunc == 129 ftemp = @funcparam1*bsum * exp(1/(bsum^@funcparam2)) elseif @fbmfunc == 130 ftemp = @funcparam1*exp(-(bsum^@funcparam2)) elseif @fbmfunc == 131 ftemp = @funcparam1*exp(-1/(bsum^@funcparam2)) elseif @fbmfunc == 132 ftemp = @funcparam1*exp(-(bsum^@funcparam2))/bsum elseif @fbmfunc == 133 ftemp = @funcparam1*exp(-1/(bsum^@funcparam2))/bsum elseif @fbmfunc == 134 ftemp = @funcparam1*bsum * exp(-(bsum^@funcparam2)) elseif @fbmfunc == 135 ftemp = @funcparam1*bsum * exp(-1/(bsum^@funcparam2)) else ; @fbmfunc == 136 ftemp = bsum % @funcparam1 endif ; bsumwarp bsum = ftemp endif ; @fbmfunc bsum = (bsum + @bsumoffset) * @bpostscale bfreq = bfreq * @bstep bp = bp * br2 / @bstep bi = bi - 1 endwhile ; bi fbmadjust = @fbmamount * (bsum + 1) endif ; @fBm if @smoothing tempcolor = 100 * @scalefactor * sumz else ; use iteration count tempcolor = @scalefactor * #numiter endif ; @smoothing if ( @colorwarp == 0 ) ftemp = tempcolor elseif ( @colorwarp == 1 ) ftemp = 1/tempcolor elseif ( @colorwarp == 2 ) ftemp = tempcolor * tempcolor elseif ( @colorwarp == 3 ) ftemp = 1 / ( tempcolor * tempcolor ) elseif ( @colorwarp == 4 ) ftemp = log(@cpower*(1+tempcolor)) elseif ( @colorwarp == 5 ) ftemp = exp( @cpower*tempcolor) elseif ( @colorwarp == 6 ) ftemp = tempcolor^(@cpower*tempcolor) elseif ( @colorwarp == 7 ) ftemp = sin( @cpower*tempcolor ) elseif ( @colorwarp == 8 ) ftemp = cos( @cpower*tempcolor ) elseif ( @colorwarp == 9 ) ftemp = tan( @cpower*tempcolor ) elseif ( @colorwarp == 10 ) ftemp = asin( @cpower*tempcolor ) elseif ( @colorwarp == 11 ) ftemp = acos( @cpower*tempcolor ) elseif ( @colorwarp == 12 ) ftemp = atan( @cpower*tempcolor ) elseif ( @colorwarp == 13 ) ftemp = sinh( @cpower*tempcolor ) elseif ( @colorwarp == 14 ) ftemp = cosh( @cpower*tempcolor ) elseif ( @colorwarp == 15 ) ftemp = tanh( @cpower*tempcolor ) elseif ( @colorwarp == 16 ) ftemp = asinh(@cpower* tempcolor ) elseif ( @colorwarp == 17 ) ftemp = acosh( @cpower*tempcolor ) elseif ( @colorwarp == 18 ) ftemp = atanh( @cpower*tempcolor ) elseif ( @colorwarp == 19 ) ftemp = log( 1+@cpower/tempcolor ) elseif ( @colorwarp == 20 ) ftemp = log( 1+log( @cpower+tempcolor )) elseif ( @colorwarp == 21 ) ftemp = exp( -@cpower*tempcolor ) elseif ( @colorwarp == 22 ) ftemp = exp( @cpower/tempcolor ) elseif ( @colorwarp == 23 ) ftemp = tempcolor^(-@cpower*tempcolor) elseif ( @colorwarp == 24 ) ftemp = sin( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 25 ) ftemp = cos( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 26 ) ftemp = tan( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 27 ) ftemp = cotan( @cpower*tempcolor ) elseif ( @colorwarp == 28 ) ftemp = 1/cos( @cpower*tempcolor ) elseif ( @colorwarp == 29 ) ftemp = 1/sin( @cpower*tempcolor ) elseif ( @colorwarp == 30 ) ftemp = cotan( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 31 ) ftemp = 1/cos( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 32 ) ftemp = 1/sin( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 33 ) ftemp = tempcolor^(tempcolor) ftemp = tempcolor^(@cpower*ftemp) elseif ( @colorwarp == 34 ) ftemp = tempcolor^(tempcolor) ftemp = 1/( tempcolor^(@cpower*ftemp )) elseif ( @colorwarp == 35 ) ftemp = log(-@cpower*tempcolor) elseif ( @colorwarp == 36 ) ftemp = 1/log(@cpower*(1+ tempcolor )) elseif ( @colorwarp == 37 ) ftemp = tempcolor * log(1+ @cpower*tempcolor ) elseif ( @colorwarp == 38 ) ftemp = sin( @cpower*tempcolor ) / tempcolor elseif ( @colorwarp == 39 ) ftemp = cos( @cpower*tempcolor ) / tempcolor elseif ( @colorwarp == 40 ) ftemp = sin( @cpower*tempcolor ) * cos( tempcolor ) elseif ( @colorwarp == 41 ) ftemp = sin( tempcolor^(@cpower*2 )) elseif ( @colorwarp == 42 ) ftemp = exp( -@cpower/tempcolor ) elseif ( @colorwarp == 43 ) ftemp = tempcolor * exp( @cpower*tempcolor ) elseif ( @colorwarp == 44 ) ftemp = tempcolor * exp( -@cpower*tempcolor ) elseif ( @colorwarp == 45 ) ftemp = tempcolor * exp( @cpower/tempcolor ) elseif ( @colorwarp == 46 ) ftemp = tempcolor * exp( -@cpower/tempcolor ) elseif ( @colorwarp == 47 ) ftemp = tempcolor * tempcolor * tempcolor elseif ( @colorwarp == 48 ) ftemp = 1 / ( tempcolor * tempcolor * tempcolor ) elseif ( @colorwarp == 49 ) ftemp = atan( @cpower / tempcolor ) elseif ( @colorwarp == 50 ) ftemp = acos( @cpower / tempcolor ) elseif ( @colorwarp == 51 ) ftemp = asin( @cpower / tempcolor ) elseif ( @colorwarp == 52 ) ftemp = tan( @cpower*tempcolor ) / tempcolor elseif ( @colorwarp == 53 ) ftemp = cotan( @cpower*tempcolor ) / tempcolor elseif ( @colorwarp == 54 ) ftemp = 1 / ( tempcolor * cos( @cpower*tempcolor )) elseif ( @colorwarp == 55 ) ftemp = 1 / ( tempcolor * sin( @cpower*tempcolor )) elseif ( @colorwarp == 56 ) ftemp = tempcolor * sin( @cpower*tempcolor ) elseif ( @colorwarp == 57 ) ftemp = tempcolor * cos( @cpower*tempcolor ) elseif ( @colorwarp == 58 ) ftemp = tempcolor * tan( @cpower*tempcolor ) elseif ( @colorwarp == 59 ) ftemp = tempcolor * cotan( @cpower*tempcolor ) elseif ( @colorwarp == 60 ) ftemp = tempcolor/cos( @cpower*tempcolor ) elseif ( @colorwarp == 61 ) ftemp = tempcolor/sin( @cpower*tempcolor ) elseif ( @colorwarp == 62 ) ftemp = sin( @cpower/tempcolor ) elseif ( @colorwarp == 63 ) ftemp = cos( @cpower/tempcolor ) elseif ( @colorwarp == 64 ) ftemp = tan( @cpower/tempcolor ) elseif ( @colorwarp == 65 ) ftemp = cotan( @cpower/tempcolor ) elseif ( @colorwarp == 66 ) ftemp = 1/cos( @cpower/tempcolor ) elseif ( @colorwarp == 67 ) ftemp = 1/sin( @cpower/tempcolor ) elseif ( @colorwarp == 68 ) ftemp = cotanh( @cpower*tempcolor ) elseif ( @colorwarp == 69 ) ftemp = 1/cosh( @cpower*tempcolor ) elseif ( @colorwarp == 70 ) ftemp = 1/sinh( @cpower*tempcolor ) elseif ( @colorwarp == 71 ) ftemp = atanh( @cpower/tempcolor ) elseif ( @colorwarp == 72 ) ftemp = acosh( @cpower/tempcolor ) elseif ( @colorwarp == 73 ) ftemp = asinh( @cpower/tempcolor ) elseif @colorwarp == 74 ftemp = tempcolor^@cpower elseif @colorwarp == 75 ftemp = sinh(@cpower*tempcolor) ftemp = ftemp * ftemp elseif @colorwarp == 76 ftemp = cosh( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == 77 ftemp = tanh(@cpower*tempcolor) ftemp = ftemp * ftemp elseif @colorwarp == 78 ftemp = cotanh( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == 79 ftemp = 1/cosh(@cpower*tempcolor) ftemp = ftemp * ftemp elseif @colorwarp == 80 ftemp = 1 / sinh( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == 81 ftemp = sinh(@cpower/tempcolor) elseif @colorwarp == 82 ftemp = cosh(@cpower/tempcolor) elseif @colorwarp == 83 ftemp = tanh(@cpower/tempcolor) elseif @colorwarp == 84 ftemp = cotanh(@cpower/tempcolor) elseif @colorwarp == 85 ftemp = 1/cosh(@cpower/tempcolor) elseif @colorwarp == 86 ftemp = 1/sinh(@cpower/tempcolor) elseif @colorwarp == 87 ftemp = sin( @cpower*tempcolor ) * tan(tempcolor) elseif @colorwarp == 88 ftemp = sinh(@cpower*tempcolor) * tanh(tempcolor) elseif @colorwarp == 89 ftemp = sinh(@cpower*tempcolor) * cosh(tempcolor) elseif @colorwarp == 90 ftemp = sinh(@cpower*tempcolor), ftemp2 = cosh(tempcolor) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == 91 ftemp = sin(@cpower*tempcolor), ftemp2 = cos(tempcolor) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == 92 ftemp = 1/tempcolor ftemp = sin(@cpower*ftemp)*cos(ftemp) elseif @colorwarp == 93 ftemp = sin( @cpower/tempcolor ) ftemp = ftemp*ftemp elseif @colorwarp == 94 ftemp = sin(@cpower*tempcolor) * cos(1/tempcolor) elseif @colorwarp == 95 ftemp = sin(tempcolor) * sin(@cpower/tempcolor) elseif @colorwarp == 96 ftemp = log(1+@cpower*tempcolor) ftemp = ftemp*ftemp elseif @colorwarp == 97 ftemp = sin(tempcolor) * sin(2*tempcolor) elseif @colorwarp == 98 ftemp = exp(2*tempcolor) elseif @colorwarp == 99 ftemp = exp(-2*tempcolor) elseif @colorwarp == 100 ftemp = 1/tempcolor ftemp = sinh(@cpower*ftemp)*cosh(ftemp) elseif @colorwarp == 101 ftemp = sinh( @cpower/tempcolor ) ftemp = ftemp*ftemp elseif @colorwarp == 102 ftemp = sinh(@cpower*tempcolor) * cosh(1/tempcolor) elseif @colorwarp == 103 ftemp = sinh(tempcolor) * sinh(@cpower/tempcolor) elseif @colorwarp == 104 ftemp = sin(@cpower*tempcolor) * sinh(tempcolor) elseif @colorwarp == 105 ftemp = sin(tempcolor) * cosh(@cpower*tempcolor) elseif @colorwarp == 106 ftemp = sin(@cpower*tempcolor), ftemp2 = sinh(tempcolor) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == 107 ftemp = sin(@cpower*tempcolor)*exp(tempcolor) elseif @colorwarp == 108 ftemp = cos(@cpower*tempcolor)*exp(tempcolor) elseif @colorwarp == 109 ftemp = sinh(tempcolor)*exp(@cpower*tempcolor) elseif @colorwarp == 110 ftemp = cosh(@cpower*tempcolor)*exp(tempcolor) elseif @colorwarp == 111 ftemp = sin(@cpower*tempcolor)*log(1+tempcolor) elseif @colorwarp == 112 ftemp = cos(tempcolor)*log(1+@cpower*tempcolor) elseif @colorwarp == 113 ftemp = sinh(@cpower*tempcolor)*log(1+tempcolor) elseif @colorwarp == 114 ftemp = cosh(tempcolor)*log(1+@cpower*tempcolor) elseif @colorwarp == 115 ftemp = exp(@cpower*(tempcolor^2)) elseif @colorwarp == 116 ftemp = exp(@cpower/(tempcolor^2)) elseif @colorwarp == 117 ftemp = abs(@cpower*tempcolor) elseif @colorwarp == 118 ftemp = round(@cpower*tempcolor) elseif @colorwarp == 119 ftemp = trunc(@cpower*tempcolor) elseif @colorwarp == 120 ftemp = ceil(@cpower*tempcolor) elseif @colorwarp == 121 ftemp = floor(@cpower*tempcolor) elseif @colorwarp == 122 ftemp = tempcolor/log(1+@cpower*tempcolor) elseif @colorwarp == 123 ftemp = log(1+@cpower*tempcolor)/tempcolor elseif @colorwarp == 124 ftemp = exp(@cpower*tempcolor)/tempcolor elseif @colorwarp == 125 ftemp = exp(@cpower/tempcolor)/tempcolor elseif @colorwarp == 126 ftemp = exp(@cpower*(tempcolor^2))/tempcolor elseif @colorwarp == 127 ftemp = exp(@cpower/(tempcolor^2))/tempcolor elseif @colorwarp == 128 ftemp = tempcolor * exp(@cpower*(tempcolor^2)) elseif @colorwarp == 129 ftemp = tempcolor * exp(@cpower/(tempcolor^2)) elseif @colorwarp == 130 ftemp = exp(-(@cpower*(tempcolor^2))) elseif @colorwarp == 131 ftemp = exp(-@cpower/(tempcolor^2)) elseif @colorwarp == 132 ftemp = exp(-@cpower*(tempcolor^2))/tempcolor elseif @colorwarp == 133 ftemp = exp(-@cpower/(tempcolor^2))/tempcolor elseif @colorwarp == 134 ftemp = tempcolor * exp(-@cpower*(tempcolor^2)) else ; @colorwarp == 135 ftemp = tempcolor * exp(-@cpower/(tempcolor^2)) endif ; tempcolorwarp if @maskA if @maskifA == "falls above" if iter > @maskAmin #solid = TRUE endif ; iter elseif @maskifA == "falls below" if iter < @maskAmin #solid = TRUE endif ; iter elseif @maskifA == "falls between" if (iter > @maskAmin) && (iter < @maskAmax) #solid = TRUE endif ; iter elseif @maskifA == "falls outside" if (iter < @maskAmin) || (iter > @maskAmax) #solid = TRUE endif ; iter elseif @maskifA == "equals" if iter == @maskAmin #solid = TRUE endif ; iter elseif @maskifA == "not equal" if iter != @maskAmin #solid = TRUE endif ; iter endif ; @maskifA endif ; maskA #index = abs(ftemp) + fbmadjust default: title = "jam-Basic" param @scalefactor caption = "Scale Factor" default = 0.01 hint = "This is the factor with which to multiply the iteration value at \ bailout; it acts like a color density. The UF default for coloring \ method 'None' is 0.01" endparam param @colorwarp caption = "Color Warp Factor" enum = "c" "1/c" "c^2" "1/c^2" "log(c)" "e^c" "c^c" "sin(c)" "cos(c)" \ "tan(c)" "asin(c)" "acos(c)" "atan(c)" "sinh(c)" "cosh(c)" "tanh(c)" \ "asinh(c)" "acosh(c)" "atanh(c)" "log(1/c)" "log(log(c))" "e^-c" \ "e^(1/c)" "c^-c" "sin(c)^2" "cos(c)^2" "tan(c)^2" "cot(c)" "sec(c)" \ "csc(c)" "cot(c)^2" "sec(c)^2" "csc(c)^2" "c^c^c" "1/c^c^c" "log(-c)" \ "1/log(c)" "clog(c)" "sin(c)/c" "cos(c)/c" "sin(c)*cos(c)" "sin(c^2)" \ "e^(-1/c)" "ce^c" "ce^-c" "ce^(1/c)" "ce^(-1/c)" "c^3" "1/c^3" \ "acot(c)" "asec(c)" "acsc(c)" "tan(c)/c" "cot(c)/c" "sec(c)/c" \ "csc(c)/c" "csin(c)" "ccos(c)" "ctan(c)" "ccot(c)" "csec(c)" "ccsc(c)" \ "sin(1/c)" "cos(1/c)" "tan(1/c)" "cot(1/c)" "sec(1/c)" "csc(1/c)" \ "cotanh(c)" "sech(c)" "cosech(c)" "acoth(c)" "asech(c)" "acosech(c)" "c^power" \ "sinh(c)^2" "cosh(c)^2" "tanh(c)^2" "cotanh(c)^2" \ "sech(c)^2" "cosech(c)^2" "sinh(1/c)" "cosh(1/c)" "tanh(1/c)" \ "cotanh(1/c)" "sech(1/c)" "cosech(1/c)" "sin(c)tan(c)" "sinh(c)tanh(c)" \ "sinh(c)cosh(c)" "sinh(c)^2*cosh(c)^2" "sin(c)^2*cos(c)^2" \ "sin(1/c)*cos(1/c)" "sin(1/c)^2" "sin(c)cos(1/c)" "sin(c)sin(1/c)" \ "log(c)^2" "sin(c)sin(2c)" "e^2c" "e^-2c" "sinh(1/c)cosh(1/c)" \ "sinh(1/c)^2" "sinh(c)cosh(1/c)" "sinh(c)sinh(1/c)" "sin(c)sinh(c)" \ "sin(c)cosh(c)" "sin(c)^2*sinh(c)^2" "sin(c)e^c" "cos(c)e^c" \ "sinh(c)e^c" "cosh(c)e^c" "sin(c)log(c)" "cos(c)log(c)" "sinh(c)log(c)" \ "cosh(c)log(c)" \ "e^(c^2)" "e^(1/(c^2))" "abs(c)" "round(c)" "trunc(c)" \ "ceil(c)" "floor(c)" "c/log(c)" "log(c)/c" "(e^c)/c" "(e^(1/c))/c" \ "(e^(c^2))/c" "(e^(1/(c^2))/c" "c*e^(c^2)" "c*e^(1/(c^2))" \ "e^(-c^2)" "e^(-1/(c^2))" "(e^(-c^2))/c" "(e^(-1/(c^2))/c" \ "c*e^(-c^2)" "c*e^(1/(-c^2))" default = 0 hint = "The final color index can be warped by this function; default is \ 'c' (no change in color index). A transfer function" endparam param cpower caption = "Color Parameter" default = 1.0 hint = "Color index exponent if param 'Color Warp Factor' is set to 'c^power'; \ otherwise, this is a general parameter that usually affects the 'Color \ Warp Factor' (for example, in the sin/cos options, it sets the frequency)" endparam param smoothing caption = "Enable Smoothing?" default = FALSE hint = "If enabled, then the coloring algorithm changes from the default UF \ style, to one similar to the exponential smoothing algorithm in the \ dmj folder" endparam heading caption = "fBm Settings" endheading param showfbm caption = "Show fBm Params?" default = FALSE endparam param fBm caption = "Enable fBm?" default = FALSE hint = "Adds fBm distortion to coloring; overall amount of turbulence \ is set by parameter 'fBm Amount'" visible = @showfbm endparam param fbmamount caption = "fBm Amount" default = 1.0 hint = "Overall degree of fBm texturing, if enabled" visible = @fBm && @showfbm endparam param fbminit caption = "fBm Initialization" enum = "min z" "first z" "second z" "last z" "penult z" "pixel" default = 0 hint = "This setting defines the input to the fBm algorithm" visible = @fBm && @showfbm endparam param bscale caption = "fBm Scale" default = 1.0 hint = "The overall scale of the fBm turbulence" visible = @fBm && @showfbm endparam param bangle caption = "fBm Rotation" default = 0.0 hint = "Angular parameter for fBm noise" visible = @fBm && @showfbm endparam param bstep caption = "fBm Stepsize" default = 0.5 hint = "Scale step size for fBm noise iterations" visible = @fBm && @showfbm endparam param banglestep caption = "fBm Rotation Step" default = 53.0 hint = "The angle in degrees for noise function rotation after \ each fBm iteration; used if fBm is enabled" visible = @fBm && @showfbm endparam param boctaves caption = "fBm Octaves" default = 7 min = 1 hint = "The number of iterations of the fBm noise function" visible = @fBm && @showfbm endparam param bpower caption = "fBm Exponent" default = 2.0 hint = "The exponent used if param fBm is enabled \ for fBm randomization" visible = @fBm && @showfbm endparam param bbfreq caption = "fBm Frequency" default = 1.0 hint = "Frequency multiplier for fBm noise" visible = @fBm && @showfbm endparam param boffset caption = "fBm Offset" default = (0.0,0.0) hint = "Offset added to fBm noise initializer" visible = @fBm && @showfbm endparam param bsumoffset caption = "fBm Sum Offset" default = 0.0 hint = "This term adjusts the cumulative fBm sum" visible = @fBm && @showfbm endparam param bpostscale caption = "fBm Postscale" default = 1.0 hint = "This factor scales the cumulative fBm sum after the \ 'fBm Warp Factor' function" visible = @fBm && @showfbm endparam param @fbmfunc caption = "fBm Warp Factor" enum = "none" "1/c" "c^2" "1/c^2" "log(c)" "e^c" "c^c" "sin(c)" "cos(c)" \ "tan(c)" "asin(c)" "acos(c)" "atan(c)" "sinh(c)" "cosh(c)" "tanh(c)" \ "asinh(c)" "acosh(c)" "atanh(c)" "log(1/c)" "log(log(c))" "e^-c" \ "e^(1/c)" "c^-c" "sin(c)^n" "cos(c)^n" "tan(c)^n" "cot(c)" "sec(c)" \ "csc(c)" "cot(c)^n" "sec(c)^n" "csc(c)^n" "c^c^c" "1/c^c^c" "log(-c)" \ "1/log(c)" "clog(c)" "sin(c)/c" "cos(c)/c" "sin(c)*cos(n*c)" "sin(c^n)" \ "e^(-1/c)" "ce^c" "ce^-c" "ce^(1/c)" "ce^(-1/c)" "c^3" "1/c^3" \ "acot(c)" "asec(c)" "acsc(c)" "tan(c)/c" "cot(c)/c" "sec(c)/c" \ "csc(c)/c" "csin(c)" "ccos(c)" "ctan(c)" "ccot(c)" "csec(c)" "ccsc(c)" \ "sin(1/c)" "cos(1/c)" "tan(1/c)" "cot(1/c)" "sec(1/c)" "csc(1/c)" \ "cotanh(c)" "sech(c)" "cosech(c)" "acoth(c)" "asech(c)" "acosech(c)" "c^power" \ "sinh(c)^n" "cosh(c)^n" "tanh(c)^n" "cotanh(c)^n" \ "sech(c)^n" "cosech(c)^n" "sinh(1/c)" "cosh(1/c)" "tanh(1/c)" \ "cotanh(1/c)" "sech(1/c)" "cosech(1/c)" "sin(c)tan(n*c)" "sinh(c)tanh(n*c)" \ "sinh(c)cosh(n*c)" "sinh(c)^m*cosh(c)^n" "sin(c)^m*cos(c)^n" \ "sin(1/c)*cos(n/c)" "sin(1/c)^n" "sin(c)cos(n/c)" "sin(c)sin(n/c)" \ "log(c)^n" "sin(c)sin(n*c)" "e^2c" "e^-2c" "sinh(1/c)cosh(n/c)" \ "sinh(1/c)^n" "sinh(c)cosh(n/c)" "sinh(c)sinh(n/c)" "sin(c)sinh(n*c)" \ "sin(c)cosh(n*c)" "sin(c)^m*sinh(c)^n" "sin(c)e^c" "cos(c)e^c" \ "sinh(c)e^c" "cosh(c)e^c" "sin(c)log(c)" "cos(c)log(c)" "sinh(c)log(c)" \ "cosh(c)log(c)" \ "e^(c^n)" "e^(1/(c^n))" "abs(c)" "round(c)" "trunc(c)" \ "ceil(c)" "floor(c)" "c/log(c)" "log(c)/c" "(e^c)/c" "(e^(1/c))/c" \ "(e^(c^n))/c" "(e^(1/(c^n))/c" "c*e^(c^n)" "c*e^(1/(c^n))" \ "e^(-c^n)" "e^(-1/(c^n))" "(e^(-c^n))/c" "(e^(-1/(c^n))/c" \ "c*e^(-c^n)" "c*e^(1/(-c^n))" "c%n" default = 0 hint = "This function modifies the fBm noise algorithm" visible = @fBm && @showfbm endparam param funcpower caption = "fBm Warp Power" default = 0.333333333333333 hint = "If param 'fBm Warp Factor' is set to 'c^power', then this is the power" visible = (@fbmfunc == "c^power") && @fBm && @showfbm endparam param funcprescale caption = "fBm Warp Prescale" default = 1.0 hint = "This factor scales the argument to the 'fBm Warp Factor' function" visible = @fBm && @showfbm && @fbmfunc != "none" endparam param funcparam1 caption = "fBm Warp Param1" default = 1.0 hint = "If the 'fBm Warp Factor' function uses extra parameters, then \ this number is the first of those" visible = @fBm && @showfbm && (@fbmfunc > 3) endparam param funcparam2 caption = "fBm Warp Param2" default = 2.0 hint = "If the 'fBm Warp Factor' function uses extra parameters, then \ this number is the second of those" visible = @fBm && @showfbm && ( (@fbmfunc == 20) || (@fbmfunc == 24) || \ (@fbmfunc == 25) || (@fbmfunc == 26) || (@fbmfunc == 30) || \ (@fbmfunc == 31) || (@fbmfunc == 32) || (@fbmfunc == 33) || \ (@fbmfunc == 34) || (@fbmfunc == 40) || (@fbmfunc == 75) || \ (@fbmfunc == 76) || (@fbmfunc == 77) || (@fbmfunc == 78) || \ (@fbmfunc == 79) || (@fbmfunc == 80) || (@fbmfunc == 87) || \ (@fbmfunc == 88) || (@fbmfunc == 89) || (@fbmfunc == 90) || \ (@fbmfunc == 91) || (@fbmfunc == 92) || (@fbmfunc == 93) || \ (@fbmfunc == 94) || (@fbmfunc == 95) || (@fbmfunc == 97) || \ (@fbmfunc == 100) || (@fbmfunc == 101) || (@fbmfunc == 102) || \ (@fbmfunc == 103) || (@fbmfunc == 104) || (@fbmfunc == 105) || \ (@fbmfunc == 106) || (@fbmfunc == 107) || (@fbmfunc == 108) || \ (@fbmfunc == 109) || (@fbmfunc == 110) || (@fbmfunc == 111) || \ (@fbmfunc == 112) || (@fbmfunc == 113) || (@fbmfunc == 114) || \ (@fbmfunc == 115) || (@fbmfunc == 116) || (@fbmfunc == 126) || \ (@fbmfunc == 127) || (@fbmfunc == 128) || (@fbmfunc == 129) || \ (@fbmfunc == 130) || (@fbmfunc == 131) || (@fbmfunc == 132) || \ (@fbmfunc == 133) || (@fbmfunc == 134) || (@fbmfunc == 135) ) endparam heading caption = "Mask Settings" endheading param showmasks caption = "Show Mask Params?" default = FALSE endparam param maskA caption = "Enable Mask?" default = FALSE hint = "If enabled, pixels can be masked by iteration depending upon the values \ of parameter 'Mask If?' \ Masked pixels will be colored the solid color" visible = @showmasks endparam param maskifA caption = "Mask If?" enum = "falls above" "falls below" "falls between" "falls outside" "equals" "not equal" default = 0 hint = "If 'Enable Mask?' is active, then this param sets the range of \ values that will be masked" visible = @showmasks && @maskA endparam param maskAmin caption = "Mask Threshold" default = 100 hint = "If 'Enable Mask?' is active, then this param sets the iteration threshold \ for masking. If two values are needed, then this is the lower value \ for masking" visible = @showmasks && @maskA endparam param maskAmax caption = "Mask Maximum" default = 300 hint = "If 'Enable Mask?' is active and 'Mask If?' is set to \ 'falls between' or 'falls below', then this param sets the upper iteration value \ for masking" visible = @showmasks && @maskA && ( (@maskifA == 2) || (@maskifA == 3) ) endparam } jam-IterRanges { ; jam 020620 ; Up to eight iteration ranges can be specified; each range will be ; mapped uniformly to a different segment of the color gradient. ; Pixels bailing out either before or after the eight ranges can ; be mapped to their own colors. ; Parameter 'Low Cutoff' is always the lower limit of the first gradient ; segment; parameter 'High Cutoff' is always the upper limit of the final ; gradient segment; params 'Range 1', 'Range 2', etc. form the boundaries ; between adjacent iteration ranges. ; Try turning off 'Repeat Gradient' in the 'Fractal Properties' window. ; fBm code from ideas of Damien Jones and Mark Townsend. ; Texture code from ideas of Dennis Magar and Ron Barnett. ; Tweaks & additional options added 020625. ; Comments/suggestions welcome to Joe Maddry (maddry@sri.org) init: float segmentwidth = 1.0/@ranges int currentsegment = 0 int iter = int offsetiter = 0 float rangewidth = 0.0 float tempcolor1 = 0.0 float startindex = 0.0 float temp1 = float temp2 = 0.0 bool done = FALSE complex zlast = complex ztemp = complex ztemp2 = (0,0) complex zmini = complex zminr = (1000,1000) complex zmaxp = (-1000,1000) loop: ; increment the iteration count iter = iter + 1 ; save the final z in case we want fBm, texture later zlast = #z if imag(#z) < imag(zmini) zmini = #z endif ; imag if abs(real(#z)) < abs(real(zminr)) zminr = #z endif ; real if ( real(#z)*imag(#z) > real(zmaxp)*imag(zmaxp) ) zmaxp = #z endif ; real ; that's it! final: if iter < @lowlimit if @uselowsolid #solid = TRUE else tempcolor1 = @lowcolor/400 endif ; @uselowsolid done = TRUE elseif iter > @highlimit if @usehighsolid #solid = TRUE else tempcolor1 = @highcolor/400 endif ; @usehighsolid done = TRUE endif ; iter if !done if @ranges == 1 ; iter must be in range 1 rangewidth = @highlimit - @lowlimit offsetiter = iter - @lowlimit currentsegment = 1 if @map1 == 0 ; linear tempcolor1 = offsetiter/rangewidth elseif @map1 == 1 ; quadratic temp1 = offsetiter/rangewidth tempcolor1 = temp1 * temp1 elseif @map1 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = log(temp1) elseif @map1 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = (temp1 - 1)/(#e - 1) elseif @map1 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = 1/temp1 elseif @map1 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = (temp1 + 1)/2 elseif @map1 == 6 ; general power, restricted to positive exponents tempcolor1 = (offsetiter/rangewidth)^@const1 elseif @map1 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const1 * offsetiter/rangewidth) tempcolor1 = (temp1 + 1)/2 elseif @map1 == 8 ; exponential(n*iter) temp1 = exp( @const1 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const1 ) - 1 tempcolor1 = temp1/tempcolor1 elseif @map1 == 9 ; arctangent temp1 = #pi * offsetiter/(2 *rangewidth) tempcolor1 = atan(temp1) elseif @map1 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = temp1^temp1 elseif @map1 == 11 ; n*linear tempcolor1 = @const1 * offsetiter/rangewidth elseif @map1 == 12 ; symmetric tempcolor1 = 2 * offsetiter/rangewidth if tempcolor1 > 1 tempcolor1 = 2 - tempcolor1 endif ; tempcolor1 elseif @map1 == 13 ; constant tempcolor1 = @r1color/400 elseif @map1 == 14 ; solid #solid = TRUE endif ; @map1 elseif @ranges == 2 ; Is iter in Range 1? if iter < @range1 ; yes, it is rangewidth = @range1 - @lowlimit offsetiter = iter - @lowlimit currentsegment = 1 if @map1 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth elseif @map1 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 elseif @map1 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = (log(temp1)) * segmentwidth elseif @map1 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = ((temp1 - 1)/(#e - 1)) * segmentwidth elseif @map1 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = (1/temp1) * segmentwidth elseif @map1 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = ((temp1 + 1)/2) * segmentwidth elseif @map1 == 6 ; general power, restricted to positive exponents tempcolor1 = ((offsetiter/rangewidth)^@const1) * segmentwidth elseif @map1 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const1 * offsetiter/rangewidth) tempcolor1 = ((temp1 + 1)/2) * segmentwidth elseif @map1 == 8 ; exponential(n*iter) temp1 = exp( @const1 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const1 ) - 1 tempcolor1 = (temp1/tempcolor1) * segmentwidth elseif @map1 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth elseif @map1 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth elseif @map1 == 11 ; n*linear tempcolor1 = segmentwidth * @const1 * offsetiter/rangewidth elseif @map1 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = segmentwidth * temp1 elseif @map1 == 13 ; constant tempcolor1 = @r1color/400 elseif @map1 == 14 ; solid #solid = TRUE endif ; @map1 else ; no, iter must be in Range 2 startindex = startindex + segmentwidth ; reposition at next index start site rangewidth = @highlimit - @range1 offsetiter = iter - @range1 currentsegment = 2 if @map2 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map2 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map2 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = log(temp1) * segmentwidth + startindex elseif @map2 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = ((temp1 - 1)/(#e - 1)) * segmentwidth + startindex elseif @map2 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = (1/temp1) * segmentwidth + startindex elseif @map2 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = ((temp1 + 1)/2) * segmentwidth + startindex elseif @map2 == 6 ; general power, restricted to positive exponents tempcolor1 = ((offsetiter/rangewidth)^@const2) * segmentwidth + startindex elseif @map2 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const2 * offsetiter/rangewidth) tempcolor1 = ((temp1 + 1)/2) * segmentwidth + startindex elseif @map2 == 8 ; exponential(n*iter) temp1 = exp( @const2 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const2 ) - 1 tempcolor1 = (temp1/tempcolor1) * segmentwidth + startindex elseif @map2 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map2 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map2 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const2 * offsetiter/rangewidth elseif @map2 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map2 == 13 ; constant tempcolor1 = @r2color/400 elseif @map2 == 14 ; solid #solid = TRUE endif ; @map2 endif ; iter elseif @ranges == 3 if iter < @range1 rangewidth = @range1 - @lowlimit offsetiter = iter - @lowlimit currentsegment = 1 if @map1 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth elseif @map1 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 elseif @map1 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = log(temp1) * segmentwidth elseif @map1 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = ((temp1 - 1)/(#e - 1)) * segmentwidth elseif @map1 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = (1/temp1) * segmentwidth elseif @map1 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = ((temp1 + 1)/2) * segmentwidth elseif @map1 == 6 ; general power, restricted to positive exponents tempcolor1 = ((offsetiter/rangewidth)^@const1) * segmentwidth elseif @map1 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const1 * offsetiter/rangewidth) tempcolor1 = ((temp1 + 1)/2) * segmentwidth elseif @map1 == 8 ; exponential(n*iter) temp1 = exp( @const1 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const1 ) - 1 tempcolor1 = (temp1/tempcolor1) * segmentwidth elseif @map1 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth elseif @map1 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth elseif @map1 == 11 ; n*linear tempcolor1 = segmentwidth * @const1 * offsetiter/rangewidth elseif @map1 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = segmentwidth * temp1 elseif @map1 == 13 ; constant tempcolor1 = @r1color/400 elseif @map1 == 14 ; solid #solid = TRUE endif ; @map1 elseif iter < @range2 startindex = startindex + segmentwidth rangewidth = @range2 - @range1 offsetiter = iter - @range1 currentsegment = 2 if @map2 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map2 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map2 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = log(temp1) * segmentwidth + startindex elseif @map2 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = ((temp1 - 1)/(#e - 1)) * segmentwidth + startindex elseif @map2 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = (1/temp1) * segmentwidth + startindex elseif @map2 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = ((temp1 + 1)/2) * segmentwidth + startindex elseif @map2 == 6 ; general power, restricted to positive exponents tempcolor1 = ((offsetiter/rangewidth)^@const2) * segmentwidth + startindex elseif @map2 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const2 * offsetiter/rangewidth) tempcolor1 = ((temp1 + 1)/2) * segmentwidth + startindex elseif @map2 == 8 ; exponential(n*iter) temp1 = exp( @const2 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const2 ) - 1 tempcolor1 = (temp1/tempcolor1) * segmentwidth + startindex elseif @map2 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map2 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map2 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const2 * offsetiter/rangewidth elseif @map2 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map2 == 13 ; constant tempcolor1 = @r2color/400 elseif @map2 == 14 ; solid #solid = TRUE endif ; @map2 else ; iter must be in Range 3 startindex = startindex + 2*segmentwidth ; reposition at 3rd index start site rangewidth = @highlimit - @range2 offsetiter = iter - @range2 currentsegment = 3 if @map3 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map3 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map3 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = log(temp1) * segmentwidth + startindex elseif @map3 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = ((temp1 - 1)/(#e - 1)) * segmentwidth + startindex elseif @map3 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = (1/temp1) * segmentwidth + startindex elseif @map3 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = ((temp1 + 1)/2) * segmentwidth + startindex elseif @map3 == 6 ; general power, restricted to positive exponents tempcolor1 = ((offsetiter/rangewidth)^@const3) * segmentwidth + startindex elseif @map3 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const3 * offsetiter/rangewidth) tempcolor1 = ((temp1 + 1)/2) * segmentwidth + startindex elseif @map3 == 8 ; exponential(n*iter) temp1 = exp( @const3 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const3 ) - 1 tempcolor1 = (temp1/tempcolor1) * segmentwidth + startindex elseif @map3 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map3 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map3 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const3 * offsetiter/rangewidth elseif @map3 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map3 == 13 ; constant tempcolor1 = @r3color/400 elseif @map3 == 14 ; solid #solid = TRUE endif ; @map3 endif ; iter elseif @ranges == 4 if iter < @range1 rangewidth = @range1 - @lowlimit offsetiter = iter - @lowlimit currentsegment = 1 if @map1 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth elseif @map1 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 elseif @map1 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = log(temp1) * segmentwidth elseif @map1 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = ((temp1 - 1)/(#e - 1)) * segmentwidth elseif @map1 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = (1/temp1) * segmentwidth elseif @map1 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = ((temp1 + 1)/2) * segmentwidth elseif @map1 == 6 ; general power, restricted to positive exponents tempcolor1 = ((offsetiter/rangewidth)^@const1) * segmentwidth elseif @map1 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const1 * offsetiter/rangewidth) tempcolor1 = ((temp1 + 1)/2) * segmentwidth elseif @map1 == 8 ; exponential(n*iter) temp1 = exp( @const1 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const1 ) - 1 tempcolor1 = (temp1/tempcolor1) * segmentwidth elseif @map1 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth elseif @map1 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth elseif @map1 == 11 ; n*linear tempcolor1 = segmentwidth * @const1 * offsetiter/rangewidth elseif @map1 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = segmentwidth * temp1 elseif @map1 == 13 ; constant tempcolor1 = @r1color/400 elseif @map1 == 14 ; solid #solid = TRUE endif ; @map1 elseif iter < @range2 startindex = startindex + segmentwidth rangewidth = @range2 - @range1 offsetiter = iter - @range1 currentsegment = 2 if @map2 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map2 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map2 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = log(temp1) * segmentwidth + startindex elseif @map2 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = ((temp1 - 1)/(#e - 1)) * segmentwidth + startindex elseif @map2 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = (1/temp1) * segmentwidth + startindex elseif @map2 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = ((temp1 + 1)/2) * segmentwidth + startindex elseif @map2 == 6 ; general power, restricted to positive exponents tempcolor1 = ((offsetiter/rangewidth)^@const2) * segmentwidth + startindex elseif @map2 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const2 * offsetiter/rangewidth) tempcolor1 = ((temp1 + 1)/2) * segmentwidth + startindex elseif @map2 == 8 ; exponential(n*iter) temp1 = exp( @const2 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const2 ) - 1 tempcolor1 = (temp1/tempcolor1) * segmentwidth + startindex elseif @map2 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map2 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map2 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const2 * offsetiter/rangewidth elseif @map2 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map2 == 13 ; constant tempcolor1 = @r2color/400 elseif @map2 == 14 ; solid #solid = TRUE endif ; @map2 elseif iter < @range3 startindex = startindex + 2*segmentwidth rangewidth = @range3 - @range2 offsetiter = iter - @range2 currentsegment = 3 if @map3 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map3 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map3 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = log(temp1) * segmentwidth + startindex elseif @map3 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = ((temp1 - 1)/(#e - 1)) * segmentwidth + startindex elseif @map3 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = (1/temp1) * segmentwidth + startindex elseif @map3 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = ((temp1 + 1)/2) * segmentwidth + startindex elseif @map3 == 6 ; general power, restricted to positive exponents tempcolor1 = ((offsetiter/rangewidth)^@const3) * segmentwidth + startindex elseif @map3 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const3 * offsetiter/rangewidth) tempcolor1 = ((temp1 + 1)/2) * segmentwidth + startindex elseif @map3 == 8 ; exponential(n*iter) temp1 = exp( @const3 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const3 ) - 1 tempcolor1 = (temp1/tempcolor1) * segmentwidth + startindex elseif @map3 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map3 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map3 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const3 * offsetiter/rangewidth elseif @map3 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map3 == 13 ; constant tempcolor1 = @r3color/400 elseif @map3 == 14 ; solid #solid = TRUE endif ; @map3 else ; iter must be in Range 4 startindex = startindex + 3*segmentwidth rangewidth = @highlimit - @range3 offsetiter = iter - @range3 currentsegment = 4 if @map4 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map4 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map4 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = log(temp1) * segmentwidth + startindex elseif @map4 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = ((temp1 - 1)/(#e - 1)) * segmentwidth + startindex elseif @map4 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = (1/temp1) * segmentwidth + startindex elseif @map4 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = ((temp1 + 1)/2) * segmentwidth + startindex elseif @map4 == 6 ; general power, restricted to positive exponents tempcolor1 = ((offsetiter/rangewidth)^@const4) * segmentwidth + startindex elseif @map4 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const4 * offsetiter/rangewidth) tempcolor1 = ((temp1 + 1)/2) * segmentwidth + startindex elseif @map4 == 8 ; exponential(n*iter) temp1 = exp( @const4 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const4 ) - 1 tempcolor1 = (temp1/tempcolor1) * segmentwidth + startindex elseif @map4 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map4 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map4 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const4 * offsetiter/rangewidth elseif @map4 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map4 == 13 ; constant tempcolor1 = @r4color/400 elseif @map4 == 14 ; solid #solid = TRUE endif ; @map4 endif ; iter elseif @ranges == 5 if iter < @range1 rangewidth = @range1 - @lowlimit offsetiter = iter - @lowlimit currentsegment = 1 if @map1 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth elseif @map1 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 elseif @map1 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = segmentwidth * log(temp1) elseif @map1 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = segmentwidth * (temp1 - 1)/(#e - 1) elseif @map1 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = segmentwidth * 1/temp1 elseif @map1 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = segmentwidth * (temp1 + 1)/2 elseif @map1 == 6 ; general power, restricted to positive exponents tempcolor1 = segmentwidth * (offsetiter/rangewidth)^@const1 elseif @map1 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const1 * offsetiter/rangewidth) tempcolor1 = segmentwidth * (temp1 + 1)/2 elseif @map1 == 8 ; exponential(n*iter) temp1 = exp( @const1 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const1 ) - 1 tempcolor1 = segmentwidth * temp1/tempcolor1 elseif @map1 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth elseif @map1 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth elseif @map1 == 11 ; n*linear tempcolor1 = segmentwidth * @const1 * offsetiter/rangewidth elseif @map1 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = segmentwidth * temp1 elseif @map1 == 13 ; constant tempcolor1 = @r1color/400 elseif @map1 == 14 ; solid #solid = TRUE endif ; @map1 elseif iter < @range2 startindex = startindex + segmentwidth rangewidth = @range2 - @range1 offsetiter = iter - @range1 currentsegment = 2 if @map2 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map2 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map2 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map2 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map2 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map2 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map2 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const2 elseif @map2 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const2 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map2 == 8 ; exponential(n*iter) temp1 = exp( @const2 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const2 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map2 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map2 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map2 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const2 * offsetiter/rangewidth elseif @map2 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map2 == 13 ; constant tempcolor1 = @r2color/400 elseif @map2 == 14 ; solid #solid = TRUE endif ; @map2 elseif iter < @range3 startindex = startindex + 2*segmentwidth rangewidth = @range3 - @range2 offsetiter = iter - @range2 currentsegment = 3 if @map3 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map3 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map3 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map3 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map3 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map3 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map3 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const3 elseif @map3 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const3 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map3 == 8 ; exponential(n*iter) temp1 = exp( @const3 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const3 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map3 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map3 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map3 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const3 * offsetiter/rangewidth elseif @map3 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map3 == 13 ; constant tempcolor1 = @r3color/400 elseif @map3 == 14 ; solid #solid = TRUE endif ; @map3 elseif iter < @range4 startindex = startindex + 3*segmentwidth rangewidth = @range4 - @range3 offsetiter = iter - @range3 currentsegment = 4 if @map4 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map4 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map4 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map4 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map4 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map4 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map4 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const4 elseif @map4 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const4 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map4 == 8 ; exponential(n*iter) temp1 = exp( @const4 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const4 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map4 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map4 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map4 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const4 * offsetiter/rangewidth elseif @map4 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map4 == 13 ; constant tempcolor1 = @r4color/400 elseif @map4 == 14 ; solid #solid = TRUE endif ; @map4 else ; iter must be in Range 5 startindex = startindex + 4*segmentwidth rangewidth = @highlimit - @range4 offsetiter = iter - @range4 currentsegment = 5 if @map5 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map5 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map5 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map5 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map5 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map5 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map5 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const5 elseif @map5 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const5 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map5 == 8 ; exponential(n*iter) temp1 = exp( @const5 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const5 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map5 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map5 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map5 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const5 * offsetiter/rangewidth elseif @map5 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map5 == 13 ; constant tempcolor1 = @r5color/400 elseif @map5 == 14 ; solid #solid = TRUE endif ; @map5 endif ; iter elseif @ranges == 6 if iter < @range1 rangewidth = @range1 - @lowlimit offsetiter = iter - @lowlimit currentsegment = 1 if @map1 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth elseif @map1 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 elseif @map1 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = segmentwidth * log(temp1) elseif @map1 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = segmentwidth * (temp1 - 1)/(#e - 1) elseif @map1 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = segmentwidth * 1/temp1 elseif @map1 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = segmentwidth * (temp1 + 1)/2 elseif @map1 == 6 ; general power, restricted to positive exponents tempcolor1 = segmentwidth * (offsetiter/rangewidth)^@const1 elseif @map1 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const1 * offsetiter/rangewidth) tempcolor1 = segmentwidth * (temp1 + 1)/2 elseif @map1 == 8 ; exponential(n*iter) temp1 = exp( @const1 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const1 ) - 1 tempcolor1 = segmentwidth * temp1/tempcolor1 elseif @map1 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth elseif @map1 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth elseif @map1 == 11 ; n*linear tempcolor1 = segmentwidth * @const1 * offsetiter/rangewidth elseif @map1 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = segmentwidth * temp1 elseif @map1 == 13 ; constant tempcolor1 = @r1color/400 elseif @map1 == 14 ; solid #solid = TRUE endif ; @map1 elseif iter < @range2 startindex = startindex + segmentwidth rangewidth = @range2 - @range1 offsetiter = iter - @range1 currentsegment = 2 if @map2 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map2 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map2 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map2 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map2 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map2 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map2 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const2 elseif @map2 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const2 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map2 == 8 ; exponential(n*iter) temp1 = exp( @const2 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const2 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map2 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map2 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map2 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const2 * offsetiter/rangewidth elseif @map2 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map2 == 13 ; constant tempcolor1 = @r2color/400 elseif @map2 == 14 ; solid #solid = TRUE endif ; @map2 elseif iter < @range3 startindex = startindex + 2*segmentwidth rangewidth = @range3 - @range2 offsetiter = iter - @range2 currentsegment = 3 if @map3 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map3 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map3 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map3 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map3 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map3 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map3 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const3 elseif @map3 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const3 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map3 == 8 ; exponential(n*iter) temp1 = exp( @const3 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const3 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map3 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map3 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map3 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const3 * offsetiter/rangewidth elseif @map3 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map3 == 13 ; constant tempcolor1 = @r3color/400 elseif @map3 == 14 ; solid #solid = TRUE endif ; @map3 elseif iter < @range4 startindex = startindex + 3*segmentwidth rangewidth = @range4 - @range3 offsetiter = iter - @range3 currentsegment = 4 if @map4 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map4 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map4 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map4 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map4 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map4 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map4 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const4 elseif @map4 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const4 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map4 == 8 ; exponential(n*iter) temp1 = exp( @const4 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const4 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map4 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map4 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map4 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const4 * offsetiter/rangewidth elseif @map4 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map4 == 13 ; constant tempcolor1 = @r4color/400 elseif @map4 == 14 ; solid #solid = TRUE endif ; @map4 elseif iter < @range5 startindex = startindex + 4*segmentwidth rangewidth = @range5 - @range4 offsetiter = iter - @range4 currentsegment = 5 if @map5 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map5 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map5 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map5 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map5 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map5 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map5 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const5 elseif @map5 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const5 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map5 == 8 ; exponential(n*iter) temp1 = exp( @const5 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const5 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map5 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map5 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map5 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const5 * offsetiter/rangewidth elseif @map5 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map5 == 13 ; constant tempcolor1 = @r5color/400 elseif @map5 == 14 ; solid #solid = TRUE endif ; @map5 else ; iter must be in Range 6 startindex = startindex + 5*segmentwidth rangewidth = @highlimit - @range5 offsetiter = iter - @range5 currentsegment = 6 if @map6 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map6 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map6 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map6 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map6 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map6 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map6 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const6 elseif @map6 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const6 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map6 == 8 ; exponential(n*iter) temp1 = exp( @const6 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const6 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map6 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map6 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map6 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const6 * offsetiter/rangewidth elseif @map6 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map6 == 13 ; constant tempcolor1 = @r6color/400 elseif @map6 == 14 ; solid #solid = TRUE endif ; @map6 endif ; iter elseif @ranges == 7 if iter < @range1 rangewidth = @range1 - @lowlimit offsetiter = iter - @lowlimit currentsegment = 1 if @map1 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth elseif @map1 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 elseif @map1 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = segmentwidth * log(temp1) elseif @map1 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = segmentwidth * (temp1 - 1)/(#e - 1) elseif @map1 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = segmentwidth * 1/temp1 elseif @map1 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = segmentwidth * (temp1 + 1)/2 elseif @map1 == 6 ; general power, restricted to positive exponents tempcolor1 = segmentwidth * (offsetiter/rangewidth)^@const1 elseif @map1 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const1 * offsetiter/rangewidth) tempcolor1 = segmentwidth * (temp1 + 1)/2 elseif @map1 == 8 ; exponential(n*iter) temp1 = exp( @const1 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const1 ) - 1 tempcolor1 = segmentwidth * temp1/tempcolor1 elseif @map1 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth elseif @map1 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth elseif @map1 == 11 ; n*linear tempcolor1 = segmentwidth * @const1 * offsetiter/rangewidth elseif @map1 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = segmentwidth * temp1 elseif @map1 == 13 ; constant tempcolor1 = @r1color/400 elseif @map1 == 14 ; solid #solid = TRUE endif ; @map1 elseif iter < @range2 startindex = startindex + segmentwidth rangewidth = @range2 - @range1 offsetiter = iter - @range1 currentsegment = 2 if @map2 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map2 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map2 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map2 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map2 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map2 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map2 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const2 elseif @map2 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const2 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map2 == 8 ; exponential(n*iter) temp1 = exp( @const2 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const2 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map2 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map2 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map2 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const2 * offsetiter/rangewidth elseif @map2 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map2 == 13 ; constant tempcolor1 = @r2color/400 elseif @map2 == 14 ; solid #solid = TRUE endif ; @map2 elseif iter < @range3 startindex = startindex + 2*segmentwidth rangewidth = @range3 - @range2 offsetiter = iter - @range2 currentsegment = 3 if @map3 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map3 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map3 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map3 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map3 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map3 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map3 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const3 elseif @map3 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const3 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map3 == 8 ; exponential(n*iter) temp1 = exp( @const3 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const3 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map3 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map3 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map3 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const3 * offsetiter/rangewidth elseif @map3 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map3 == 13 ; constant tempcolor1 = @r3color/400 elseif @map3 == 14 ; solid #solid = TRUE endif ; @map3 elseif iter < @range4 startindex = startindex + 3*segmentwidth rangewidth = @range4 - @range3 offsetiter = iter - @range3 currentsegment = 4 if @map4 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map4 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map4 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map4 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map4 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map4 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map4 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const4 elseif @map4 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const4 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map4 == 8 ; exponential(n*iter) temp1 = exp( @const4 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const4 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map4 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map4 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map4 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const4 * offsetiter/rangewidth elseif @map4 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map4 == 13 ; constant tempcolor1 = @r4color/400 elseif @map4 == 14 ; solid #solid = TRUE endif ; @map4 elseif iter < @range5 startindex = startindex + 4*segmentwidth rangewidth = @range5 - @range4 offsetiter = iter - @range4 currentsegment = 5 if @map5 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map5 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map5 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map5 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map5 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map5 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map5 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const5 elseif @map5 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const5 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map5 == 8 ; exponential(n*iter) temp1 = exp( @const5 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const5 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map5 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map5 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map5 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const5 * offsetiter/rangewidth elseif @map5 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map5 == 13 ; constant tempcolor1 = @r5color/400 elseif @map5 == 14 ; solid #solid = TRUE endif ; @map5 elseif iter < @range6 startindex = startindex + 5*segmentwidth rangewidth = @range6 - @range5 offsetiter = iter - @range5 currentsegment = 6 if @map6 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map6 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map6 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map6 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map6 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map6 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map6 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const6 elseif @map6 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const6 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map6 == 8 ; exponential(n*iter) temp1 = exp( @const6 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const6 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map6 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map6 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map6 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const6 * offsetiter/rangewidth elseif @map6 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map6 == 13 ; constant tempcolor1 = @r6color/400 elseif @map6 == 14 ; solid #solid = TRUE endif ; @map6 else ; iter must be in Range 7 startindex = startindex + 6*segmentwidth rangewidth = @highlimit - @range6 offsetiter = iter - @range6 currentsegment = 7 if @map7 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map7 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map7 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map7 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map7 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map7 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map7 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const7 elseif @map7 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const7 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map7 == 8 ; exponential(n*iter) temp1 = exp( @const7 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const7 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map7 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map7 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map7 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const7 * offsetiter/rangewidth elseif @map7 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map7 == 13 ; constant tempcolor1 = @r7color/400 elseif @map7 == 14 ; solid #solid = TRUE endif ; @map7 endif ; iter else ; @ranges must == 8 if iter < @range1 rangewidth = @range1 - @lowlimit offsetiter = iter - @lowlimit currentsegment = 1 if @map1 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth elseif @map1 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 elseif @map1 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = segmentwidth * log(temp1) elseif @map1 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = segmentwidth * (temp1 - 1)/(#e - 1) elseif @map1 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = segmentwidth * 1/temp1 elseif @map1 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = segmentwidth * (temp1 + 1)/2 elseif @map1 == 6 ; general power, restricted to positive exponents tempcolor1 = segmentwidth * (offsetiter/rangewidth)^@const1 elseif @map1 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const1 * offsetiter/rangewidth) tempcolor1 = segmentwidth * (temp1 + 1)/2 elseif @map1 == 8 ; exponential(n*iter) temp1 = exp( @const1 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const1 ) - 1 tempcolor1 = segmentwidth * temp1/tempcolor1 elseif @map1 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth elseif @map1 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth elseif @map1 == 11 ; n*linear tempcolor1 = segmentwidth * @const1 * offsetiter/rangewidth elseif @map1 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = segmentwidth * temp1 elseif @map1 == 13 ; constant tempcolor1 = @r1color/400 elseif @map1 == 14 ; solid #solid = TRUE endif ; @map1 elseif iter < @range2 startindex = startindex + segmentwidth rangewidth = @range2 - @range1 offsetiter = iter - @range1 currentsegment = 2 if @map2 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map2 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map2 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map2 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map2 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map2 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map2 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const2 elseif @map2 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const2 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map2 == 8 ; exponential(n*iter) temp1 = exp( @const2 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const2 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map2 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map2 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map2 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const2 * offsetiter/rangewidth elseif @map2 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map2 == 13 ; constant tempcolor1 = @r2color/400 elseif @map2 == 14 ; solid #solid = TRUE endif ; @map2 elseif iter < @range3 startindex = startindex + 2*segmentwidth rangewidth = @range3 - @range2 offsetiter = iter - @range2 currentsegment = 3 if @map3 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map3 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map3 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map3 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map3 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map3 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map3 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const3 elseif @map3 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const3 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map3 == 8 ; exponential(n*iter) temp1 = exp( @const3 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const3 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map3 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map3 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map3 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const3 * offsetiter/rangewidth elseif @map3 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map3 == 13 ; constant tempcolor1 = @r3color/400 elseif @map3 == 14 ; solid #solid = TRUE endif ; @map3 elseif iter < @range4 startindex = startindex + 3*segmentwidth rangewidth = @range4 - @range3 offsetiter = iter - @range3 currentsegment = 4 if @map4 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map4 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map4 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map4 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map4 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map4 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map4 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const4 elseif @map4 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const4 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map4 == 8 ; exponential(n*iter) temp1 = exp( @const4 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const4 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map4 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map4 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map4 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const4 * offsetiter/rangewidth elseif @map4 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map4 == 13 ; constant tempcolor1 = @r4color/400 elseif @map4 == 14 ; solid #solid = TRUE endif ; @map4 elseif iter < @range5 startindex = startindex + 4*segmentwidth rangewidth = @range5 - @range4 offsetiter = iter - @range4 currentsegment = 5 if @map5 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map5 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map5 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map5 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map5 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map5 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map5 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const5 elseif @map5 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const5 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map5 == 8 ; exponential(n*iter) temp1 = exp( @const5 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const5 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map5 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map5 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map5 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const5 * offsetiter/rangewidth elseif @map5 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map5 == 13 ; constant tempcolor1 = @r5color/400 elseif @map5 == 14 ; solid #solid = TRUE endif ; @map5 elseif iter < @range6 startindex = startindex + 5*segmentwidth rangewidth = @range6 - @range5 offsetiter = iter - @range5 currentsegment = 6 if @map6 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map6 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map6 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map6 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map6 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map6 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map6 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const6 elseif @map6 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const6 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map6 == 8 ; exponential(n*iter) temp1 = exp( @const6 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const6 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map6 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map6 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map6 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const6 * offsetiter/rangewidth elseif @map6 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map6 == 13 ; constant tempcolor1 = @r6color/400 elseif @map6 == 14 ; solid #solid = TRUE endif ; @map6 elseif iter < @range7 startindex = startindex + 6*segmentwidth rangewidth = @range7 - @range6 offsetiter = iter - @range6 currentsegment = 7 if @map7 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map7 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map7 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map7 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map7 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map7 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map7 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const7 elseif @map7 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const7 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map7 == 8 ; exponential(n*iter) temp1 = exp( @const7 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const7 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map7 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map7 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map7 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const7 * offsetiter/rangewidth elseif @map7 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map7 == 13 ; constant tempcolor1 = @r7color/400 elseif @map7 == 14 ; solid #solid = TRUE endif ; @map7 else ; iter must be in Range 8 startindex = startindex + 7*segmentwidth rangewidth = @highlimit - @range7 offsetiter = iter - @range7 currentsegment = 8 if @map8 == 0 tempcolor1 = segmentwidth * offsetiter/rangewidth + startindex elseif @map8 == 1 temp1 = offsetiter/rangewidth tempcolor1 = segmentwidth * temp1 * temp1 + startindex elseif @map8 == 2 ; log temp1 = (#e - 1) * offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * log(temp1) elseif @map8 == 3 ; exponential temp1 = exp(offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 - 1)/(#e - 1) elseif @map8 == 4 ; reciprocal temp1 = 10*offsetiter/rangewidth + 1 tempcolor1 = startindex + segmentwidth * 1/temp1 elseif @map8 == 5 ; sine temp1 = sin( 2 * #pi * offsetiter/rangewidth ) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map8 == 6 ; general power, restricted to positive exponents tempcolor1 = startindex + segmentwidth * (offsetiter/rangewidth)^@const8 elseif @map8 == 7 ; sine(n*iter) temp1 = sin( 2 * #pi * @const8 * offsetiter/rangewidth) tempcolor1 = startindex + segmentwidth * (temp1 + 1)/2 elseif @map8 == 8 ; exponential(n*iter) temp1 = exp( @const8 * offsetiter/rangewidth ) - 1 tempcolor1 = exp( @const8 ) - 1 tempcolor1 = startindex + segmentwidth * temp1/tempcolor1 elseif @map8 == 9 ; arctangent temp1 = #pi * offsetiter/(2*rangewidth) tempcolor1 = atan(temp1) * segmentwidth + startindex elseif @map8 == 10 ; offsetiter^offsetiter temp1 = offsetiter/rangewidth tempcolor1 = (temp1^temp1) * segmentwidth + startindex elseif @map8 == 11 ; n*linear tempcolor1 = startindex + segmentwidth * @const8 * offsetiter/rangewidth elseif @map8 == 12 ; symmetric temp1 = 2 * offsetiter/rangewidth if temp1 > 1 temp1 = 2 - temp1 endif ; temp1 tempcolor1 = startindex + segmentwidth * temp1 elseif @map8 == 13 ; constant tempcolor1 = @r8color/400 elseif @map8 == 14 ; solid #solid = TRUE endif ; @map8 endif ; iter endif ; @ranges endif ; done ; texture code --- adapted from code of ldm & reb if @texturemode == 0 ztemp2 = zlast elseif @texturemode == 1 ztemp2 = zmini elseif @texturemode == 2 ztemp2 = zminr elseif @texturemode == 3 ztemp2 = zmaxp endif ; texturemode if ( @r1tex && currentsegment == 1 ) ztemp = @fn2tex1(@fn1tex1(ztemp2*10^@texpower)) * @texscale ztemp = @fn2tex1(@fn1tex1(ztemp-round(ztemp))) + @texoffset temp2 = cabs(ztemp) * @texmod temp2 = (temp2 - trunc(temp2)) * @texamount * @r1texamt tempcolor1 = tempcolor1 + temp2 endif ; @r1tex if ( @r2tex && currentsegment == 2 ) ztemp = @fn2tex2(@fn1tex2(ztemp2*10^@texpower)) * @texscale ztemp = @fn2tex2(@fn1tex2(ztemp-round(ztemp))) + @texoffset temp2 = cabs(ztemp) * @texmod temp2 = (temp2 - trunc(temp2)) * @texamount * @r2texamt tempcolor1 = tempcolor1 + temp2 endif ; @r2tex if ( @r3tex && currentsegment == 3 ) ztemp = @fn2tex3(@fn1tex3(ztemp2*10^@texpower)) * @texscale ztemp = @fn2tex3(@fn1tex3(ztemp-round(ztemp))) + @texoffset temp2 = cabs(ztemp) * @texmod temp2 = (temp2 - trunc(temp2)) * @texamount * @r3texamt tempcolor1 = tempcolor1 + temp2 endif ; @r3tex if ( @r4tex && currentsegment == 4 ) ztemp = @fn2tex4(@fn1tex4(ztemp2*10^@texpower)) * @texscale ztemp = @fn2tex4(@fn1tex4(ztemp-round(ztemp))) + @texoffset temp2 = cabs(ztemp) * @texmod temp2 = (temp2 - trunc(temp2)) * @texamount * @r4texamt tempcolor1 = tempcolor1 + temp2 endif ; @r4tex if ( @r5tex && currentsegment == 5 ) ztemp = @fn2tex5(@fn1tex5(ztemp2*10^@texpower)) * @texscale ztemp = @fn2tex5(@fn1tex5(ztemp-round(ztemp))) + @texoffset temp2 = cabs(ztemp) * @texmod temp2 = (temp2 - trunc(temp2)) * @texamount * @r5texamt tempcolor1 = tempcolor1 + temp2 endif ; @r5tex if ( @r6tex && currentsegment == 6 ) ztemp = @fn2tex6(@fn1tex6(ztemp2*10^@texpower)) * @texscale ztemp = @fn2tex6(@fn1tex6(ztemp-round(ztemp))) + @texoffset temp2 = cabs(ztemp) * @texmod temp2 = (temp2 - trunc(temp2)) * @texamount * @r6texamt tempcolor1 = tempcolor1 + temp2 endif ; @r6tex if ( @r7tex && currentsegment == 7 ) ztemp = @fn2tex7(@fn1tex7(ztemp2*10^@texpower)) * @texscale ztemp = @fn2tex7(@fn1tex7(ztemp-round(ztemp))) + @texoffset temp2 = cabs(ztemp) * @texmod temp2 = (temp2 - trunc(temp2)) * @texamount * @r7texamt tempcolor1 = tempcolor1 + temp2 endif ; @r7tex if ( @r8tex && currentsegment == 8 ) ztemp = @fn2tex8(@fn1tex8(ztemp2*10^@texpower)) * @texscale ztemp = @fn2tex8(@fn1tex8(ztemp-round(ztemp))) + @texoffset temp2 = cabs(ztemp) * @texmod temp2 = (temp2 - trunc(temp2)) * @texamount * @r8texamt tempcolor1 = tempcolor1 + temp2 endif ; @r8tex if ( @oortex && done ) ztemp = @fn2texoor(@fn1texoor(ztemp2*10^@texpower)) * @texscale ztemp = @fn2texoor(@fn1texoor(ztemp-round(ztemp))) + @texoffset temp2 = cabs(ztemp) * @texmod temp2 = (temp2 - trunc(temp2)) * @texamount * @oortexamt tempcolor1 = tempcolor1 + temp2 endif ; @oortex ; fBm --- adapted from formulas of dmj, mt, and others temp1 = 0.0 if ( ( @globalfBm ) || ( @r1fbm && currentsegment == 1 ) || \ ( @r2fbm && currentsegment == 2 ) || \ ( @r3fbm && currentsegment == 3 ) || \ ( @r4fbm && currentsegment == 4 ) || \ ( @r5fbm && currentsegment == 5 ) || \ ( @r6fbm && currentsegment == 6 ) || \ ( @r7fbm && currentsegment == 7 ) || \ ( @r8fbm && currentsegment == 8 ) || \ ( @oorfbm && done ) ) if @fbmmode == 0 ztemp2 = zlast elseif @fbmmode == 1 ztemp2 = zmini elseif @fbmmode == 2 ztemp2 = zminr elseif @fbmmode == 3 ztemp2 = zmaxp endif ; fbmmode complex br = (0,1) ^ (@bangle / 90.0) complex br2 = (0,1) ^ (@banglestep / 90.0) complex bp = ztemp2 * @bscale * br float bsum = 0.0 float bfreq = 1.0 int bi = @boctaves while (bi > 0) float bx0 = floor(real(bp)) % 256 float by0 = floor(imag(bp)) % 256 if bx0 < 0 bx0 = bx0 + 256 endif ; bx0 if by0 < 0 by0 = by0 + 256 endif ; by0 float bx1 = (bx0 + 1) % 256 float by1 = (by0 + 1) % 256 float rx0 = real(bp) - floor(real(bp)) float ry0 = imag(bp) - floor(imag(bp)) float rx1 = rx0 - 1 float ry1 = ry0 - 1 float b00 = (bx0^@bpower % 65536 + by0)^@bpower % 65536 float b10 = (bx1^@bpower % 65536 + by0)^@bpower % 65536 float b01 = (bx0^@bpower % 65536 + by1)^@bpower % 65536 float b11 = (bx1^@bpower % 65536 + by1)^@bpower % 65536 float g_b00_0 = (b00)^@bpower*0.25 % 512 - 256 float g_b10_0 = (b10)^@bpower*0.25 % 512 - 256 float g_b01_0 = (b01)^@bpower*0.25 % 512 - 256 float g_b11_0 = (b11)^@bpower*0.25 % 512 - 256 float g_b00_1 = (b00+1)^@bpower*0.25 % 512 - 256 float g_b10_1 = (b10+1)^@bpower*0.25 % 512 - 256 float g_b01_1 = (b01+1)^@bpower*0.25 % 512 - 256 float g_b11_1 = (b11+1)^@bpower*0.25 % 512 - 256 float bd = 0.0 bd = 1 / sqrt(sqr(g_b00_0) + sqr(g_b00_1)) g_b00_0 = g_b00_0 * bd g_b00_1 = g_b00_1 * bd bd = 1 / sqrt(sqr(g_b10_0) + sqr(g_b10_1)) g_b10_0 = g_b10_0 * bd g_b10_1 = g_b10_1 * bd bd = 1 / sqrt(sqr(g_b01_0) + sqr(g_b01_1)) g_b01_0 = g_b01_0 * bd g_b01_1 = g_b01_1 * bd bd = 1 / sqrt(sqr(g_b11_0) + sqr(g_b11_1)) g_b11_0 = g_b11_0 * bd g_b11_1 = g_b11_1 * bd float u1 = rx0 * g_b00_0 + ry0 * g_b00_1 float v1 = rx1 * g_b10_0 + ry0 * g_b10_1 float u2 = rx0 * g_b01_0 + ry1 * g_b01_1 float v2 = rx1 * g_b11_0 + ry1 * g_b11_1 float sx = sqr(rx0) * (3 - rx0*2) float sy = sqr(ry0) * (3 - ry0*2) float ba = u1 + sx*(v1-u1) float bb = u2 + sx*(v2-u2) bsum = bsum + (ba + sy*(bb-ba))* bfreq bfreq = bfreq * @bstep bp = bp * br2 / @bstep bi = bi - 1 endwhile ; bi temp1 = @turbamount * (bsum + 1) if currentsegment == 1 temp1 = temp1 * @r1fbmamt elseif currentsegment == 2 temp1 = temp1 * @r2fbmamt elseif currentsegment == 3 temp1 = temp1 * @r3fbmamt elseif currentsegment == 4 temp1 = temp1 * @r4fbmamt elseif currentsegment == 5 temp1 = temp1 * @r5fbmamt elseif currentsegment == 6 temp1 = temp1 * @r6fbmamt elseif currentsegment == 7 temp1 = temp1 * @r7fbmamt elseif currentsegment == 8 temp1 = temp1 * @r8fbmamt else ; low/high region temp1 = temp1 * @oorfbmamt endif; currentsegment endif ; @globalfBm #index = tempcolor1 + temp1 default: title = "Iteration Ranges" param ranges caption = "Ranges" default = 2 min = 1 max = 8 hint = "This is the number of iteration ranges that will be mapped to \ different gradient segments (1-8)" endparam param lowlimit caption = "Low Cutoff" default = 50 min = 0 hint = "The lower iteration limit. Pixels that bail out before this \ iteration will be colored the 'Low Color'. This is also the lower \ iteration boundary for gradient Range 1" endparam param lowcolor caption = "Low Color" default = 0.0 min = 0.0 max = 400.0 hint = "Gradient position index that will be assigned to pixels \ that bail out before the 'Low Cutoff' limit (0-400)" endparam param uselowsolid caption = "Low Solid?" default = FALSE hint = "If enabled, pixels bailing out below the 'Low Cutoff' will \ be set to the SOLID color instead of the 'Low Color'" endparam param highlimit caption = "High Cutoff" default = 200 min = 1 hint = "Upper iteration limit. Pixels bailing out after this \ iter will be colored 'High Color'. Bailouts just before \ this iter are mapped to the last gradient range \ (this is upper boundary for highest enabled Range)" endparam param highcolor caption = "High Color" default = 0.0 min = 0.0 max = 400.0 hint = "Gradient position index that will be assigned to pixels \ that bail out after the 'High Cutoff' limit (0-400)" endparam param usehighsolid caption = "High Solid?" default = FALSE hint = "If enabled, pixels bailing out after the 'High Cutoff' will \ be set to the SOLID color instead of the 'High Color'" endparam param oorfbm caption = "Low/High fBm?" default = FALSE hint = "Adds distortion to coloring based on fBm algorithm; affects \ iterations falling in the 'Low Color' and 'High Color' intervals only \ (outside Ranges 1-8). Overall fBm amount is set by parameter 'fBm Amount'" endparam param oorfbmamt caption = "Lo/Hi fBm Boost" default = 1.0 hint = "This param softens/boosts the fBm amount for 'Low Color' \ and 'High Color' regions only" endparam param oortex caption = "Low/High Texture?" default = FALSE hint = "Adds texture to coloring; affects 'Low Color' & 'High Color' \ iterations only. Overall amount of texture set by param 'Tex Amount'. \ Texture functions are 'LoHi Texture Fn1' and 'LoHi Texture Fn2'" endparam param oortexamt caption = "Lo/Hi Tex Boost" default = 1.0 hint = "This param softens/boosts the texture amount for 'Low Color' \ and 'High Color' regions only" endparam param range1 caption = "Range 1" default = 100 min = 1 hint = "If 'Ranges' > 1, iters from 'Low Cutoff' to 'Range 1' will be \ mapped to the 1st gradient segment. If 'Ranges' = 1, use 'High Cutoff' \ as the upper end of the range for the 1st gradient segment (index 0)" endparam param map1 caption = "Range 1 Mapping" enum = "linear" "quadratic" "log" "exp" "recip" "sin" \ "iter^const" "sin(iter*const)" "exp(iter*const)" \ "atan" "iter^iter" "const*linear" "symmetric" "Range 1 Color" \ "solid" default = 0 hint = "This function determines how iterations falling in Range 1 \ are mapped to the 1st gradient segment (transfer function)" endparam param const1 caption = "Constant 1" default = 3.0 min = 0.0 hint = "This is the const value used in 4 of the 'Range 1 Mapping' \ options; unused otherwise. Positive values only" endparam param r1color caption = "Range 1 Color" default = 0.0 min = 0.0 max = 400.0 hint = "Gradient position index that will be assigned to Range 1 pixels \ if 'Range 1 Mapping' is set to 'Range 1 Color' (0-400)" endparam param r1fbm caption = "Range 1 fBm?" default = FALSE hint = "Adds distortion to coloring based on fBm algorithm; affects \ iterations falling in Range 1 only. Overall amount of turbulence \ is set by parameter 'fBm Amount'" endparam param r1fbmamt caption = "R1 fBm Boost" default = 1.0 hint = "This param softens/boosts the fBm amount for Range 1 \ regions only" endparam param r1tex caption = "Range 1 Texture?" default = FALSE hint = "Adds texture to coloring; affects iterations falling in Range 1 only. \ Overall amount of texture is set by parameter 'Tex Amount'. Texture \ functions are 'R1 Texture Fn1' and 'R1 Texture Fn2'" endparam param r1texamt caption = "R1 Tex Boost" default = 1.0 hint = "This param softens/boosts the texture amount for Range 1 \ regions only" endparam param range2 caption = "Range 2" default = 300 min = 2 hint = "If 'Ranges' > 2, iters from 'Range 1' to 'Range 2' will be \ mapped to the 2nd gradient segment. If 'Ranges' = 2, use 'High Cutoff' \ as the upper end of the range for the 2nd gradient segment" endparam param map2 caption = "Range 2 Mapping" enum = "linear" "quadratic" "log" "exp" "recip" "sin" \ "iter^const" "sin(iter*const)" "exp(iter*const)" \ "atan" "iter^iter" "const*linear" "symmetric" "Range 2 Color" \ "solid" default = 0 hint = "This function determines how iterations falling in Range 2 \ are mapped to the 2nd gradient segment (transfer function)" endparam param const2 caption = "Constant 2" default = 3.0 min = 0.0 hint = "This is the const value used in 4 of the 'Range 2 Mapping' \ options; unused otherwise. Positive values only" endparam param r2color caption = "Range 2 Color" default = 0.0 min = 0.0 max = 400.0 hint = "Gradient position index that will be assigned to Range 2 pixels \ if 'Range 2 Mapping' is set to 'Range 2 Color' (0-400)" endparam param r2fbm caption = "Range 2 fBm?" default = FALSE hint = "Adds distortion to coloring based on fBm algorithm; affects \ iterations falling in Range 2 only. Overall amount of turbulence \ is set by parameter 'fBm Amount'" endparam param r2fbmamt caption = "R2 fBm Boost" default = 1.0 hint = "This param softens/boosts the fBm amount for Range 2 \ regions only" endparam param r2tex caption = "Range 2 Texture?" default = FALSE hint = "Adds texture to coloring; affects iterations falling in Range 2 only. \ Overall amount of texture is set by parameter 'Tex Amount'. Texture \ functions are 'R2 Texture Fn1' and 'R2 Texture Fn2'" endparam param r2texamt caption = "R2 Tex Boost" default = 1.0 hint = "This param softens/boosts the texture amount for Range 2 \ regions only" endparam param range3 caption = "Range 3" default = 400 min = 3 hint = "If 'Ranges' > 3, iters from 'Range 2' to 'Range 3' will be \ mapped to the 3rd gradient segment. If 'Ranges' = 3, use 'High Cutoff' \ as the upper end of the range for the 3rd gradient segment" endparam param map3 caption = "Range 3 Mapping" enum = "linear" "quadratic" "log" "exp" "recip" "sin" \ "iter^const" "sin(iter*const)" "exp(iter*const)" \ "atan" "iter^iter" "const*linear" "symmetric" "Range 3 Color" \ "solid" default = 0 hint = "This function determines how iterations falling in Range 3 \ are mapped to the 3rd gradient segment (transfer function)" endparam param const3 caption = "Constant 3" default = 3.0 min = 0.0 hint = "This is the const value used in 4 of the 'Range 3 Mapping' \ options; unused otherwise. Positive values only" endparam param r3color caption = "Range 3 Color" default = 0.0 min = 0.0 max = 400.0 hint = "Gradient position index that will be assigned to Range 3 pixels \ if 'Range 3 Mapping' is set to 'Range 3 Color' (0-400)" endparam param r3fbm caption = "Range 3 fBm?" default = FALSE hint = "Adds distortion to coloring based on fBm algorithm; affects \ iterations falling in Range 3 only. Overall amount of turbulence \ is set by parameter 'fBm Amount'" endparam param r3fbmamt caption = "R3 fBm Boost" default = 1.0 hint = "This param softens/boosts the fBm amount for Range 3 \ regions only" endparam param r3tex caption = "Range 3 Texture?" default = FALSE hint = "Adds texture to coloring; affects iterations falling in Range 3 only. \ Overall amount of texture is set by parameter 'Tex Amount'. Texture \ functions are 'R3 Texture Fn1' and 'R3 Texture Fn2'" endparam param r3texamt caption = "R3 Tex Boost" default = 1.0 hint = "This param softens/boosts the texture amount for Range 3 \ regions only" endparam param range4 caption = "Range 4" default = 500 min = 4 hint = "If 'Ranges' > 4, iters from 'Range 3' to 'Range 4' will be \ mapped to the 4th gradient segment. If 'Ranges' = 4, use 'High Cutoff' \ as the upper end of the range for the 4th gradient segment" endparam param map4 caption = "Range 4 Mapping" enum = "linear" "quadratic" "log" "exp" "recip" "sin" \ "iter^const" "sin(iter*const)" "exp(iter*const)" \ "atan" "iter^iter" "const*linear" "symmetric" "Range 4 Color" \ "solid" default = 0 hint = "This function determines how iterations falling in Range 4 \ are mapped to the 4th gradient segment (transfer function)" endparam param const4 caption = "Constant 4" default = 3.0 min = 0.0 hint = "This is the const value used in 4 of the 'Range 4 Mapping' \ options; unused otherwise. Positive values only" endparam param r4color caption = "Range 4 Color" default = 0.0 min = 0.0 max = 400.0 hint = "Gradient position index that will be assigned to Range 4 pixels \ if 'Range 4 Mapping' is set to 'Range 4 Color' (0-400)" endparam param r4fbm caption = "Range 4 fBm?" default = FALSE hint = "Adds distortion to coloring based on fBm algorithm; affects \ iterations falling in Range 4 only. Overall amount of turbulence \ is set by parameter 'fBm Amount'" endparam param r4fbmamt caption = "R4 fBm Boost" default = 1.0 hint = "This param softens/boosts the fBm amount for Range 4 \ regions only" endparam param r4tex caption = "Range 4 Texture?" default = FALSE hint = "Adds texture to coloring; affects iterations falling in Range 4 only. \ Overall amount of texture is set by parameter 'Tex Amount'. Texture \ functions are 'R4 Texture Fn1' and 'R4 Texture Fn2'" endparam param r4texamt caption = "R4 Tex Boost" default = 1.0 hint = "This param softens/boosts the texture amount for Range 4 \ regions only" endparam param range5 caption = "Range 5" default = 600 min = 5 hint = "If 'Ranges' > 5, iters from 'Range 4' to 'Range 5' will be \ mapped to the 5th gradient segment. If 'Ranges' = 5, use 'High Cutoff' \ as the upper end of the range for the 5th gradient segment" endparam param map5 caption = "Range 5 Mapping" enum = "linear" "quadratic" "log" "exp" "recip" "sin" \ "iter^const" "sin(iter*const)" "exp(iter*const)" \ "atan" "iter^iter" "const*linear" "symmetric" "Range 5 Color" \ "solid" default = 0 hint = "This function determines how iterations falling in Range 5 \ are mapped to the 5th gradient segment (transfer function)" endparam param const5 caption = "Constant 5" default = 3.0 min = 0.0 hint = "This is the const value used in 4 of the 'Range 5 Mapping' \ options; unused otherwise. Positive values only" endparam param r5color caption = "Range 5 Color" default = 0.0 min = 0.0 max = 400.0 hint = "Gradient position index that will be assigned to Range 5 pixels \ if 'Range 5 Mapping' is set to 'Range 5 Color' (0-400)" endparam param r5fbm caption = "Range 5 fBm?" default = FALSE hint = "Adds distortion to coloring based on fBm algorithm; affects \ iterations falling in Range 5 only. Overall amount of turbulence \ is set by parameter 'fBm Amount'" endparam param r5fbmamt caption = "R5 fBm Boost" default = 1.0 hint = "This param softens/boosts the fBm amount for Range 5 \ regions only" endparam param r5tex caption = "Range 5 Texture?" default = FALSE hint = "Adds texture to coloring; affects iterations falling in Range 5 only. \ Overall amount of texture is set by parameter 'Tex Amount'. Texture \ functions are 'R5 Texture Fn1' and 'R5 Texture Fn2'" endparam param r5texamt caption = "R5 Tex Boost" default = 1.0 hint = "This param softens/boosts the texture amount for Range 5 \ regions only" endparam param range6 caption = "Range 6" default = 700 min = 6 hint = "If 'Ranges' > 6, iters from 'Range 5' to 'Range 6' will be \ mapped to the 6th gradient segment. If 'Ranges' = 6, use 'High Cutoff' \ as the upper end of the range for the 6th gradient segment" endparam param map6 caption = "Range 6 Mapping" enum = "linear" "quadratic" "log" "exp" "recip" "sin" \ "iter^const" "sin(iter*const)" "exp(iter*const)" \ "atan" "iter^iter" "const*linear" "symmetric" "Range 6 Color" \ "solid" default = 0 hint = "This function determines how iterations falling in Range 6 \ are mapped to the 6th gradient segment (transfer function)" endparam param const6 caption = "Constant 6" default = 3.0 min = 0.0 hint = "This is the const value used in 4 of the 'Range 6 Mapping' \ options; unused otherwise. Positive values only" endparam param r6color caption = "Range 6 Color" default = 0.0 min = 0.0 max = 400.0 hint = "Gradient position index that will be assigned to Range 6 pixels \ if 'Range 6 Mapping' is set to 'Range 6 Color' (0-400)" endparam param r6fbm caption = "Range 6 fBm?" default = FALSE hint = "Adds distortion to coloring based on fBm algorithm; affects \ iterations falling in Range 6 only. Overall amount of turbulence \ is set by parameter 'fBm Amount'" endparam param r6fbmamt caption = "R6 fBm Boost" default = 1.0 hint = "This param softens/boosts the fBm amount for Range 6 \ regions only" endparam param r6tex caption = "Range 6 Texture?" default = FALSE hint = "Adds texture to coloring; affects iterations falling in Range 6 only. \ Overall amount of texture is set by parameter 'Tex Amount'. Texture \ functions are 'R6 Texture Fn1' and 'R6 Texture Fn2'" endparam param r6texamt caption = "R6 Tex Boost" default = 1.0 hint = "This param softens/boosts the texture amount for Range 6 \ regions only" endparam param range7 caption = "Range 7" default = 800 min = 7 hint = "If 'Ranges' > 7, iters from 'Range 6' to 'Range 7' will be \ mapped to the 7th gradient segment. If 'Ranges' = 7, use 'High Cutoff' \ as the upper end of the range for the 7th gradient segment" endparam param map7 caption = "Range 7 Mapping" enum = "linear" "quadratic" "log" "exp" "recip" "sin" \ "iter^const" "sin(iter*const)" "exp(iter*const)" \ "atan" "iter^iter" "const*linear" "symmetric" "Range 7 Color" \ "solid" default = 0 hint = "This function determines how iterations falling in Range 7 \ are mapped to the 7th gradient segment (transfer function)" endparam param const7 caption = "Constant 7" default = 3.0 min = 0.0 hint = "This is the const value used in 4 of the 'Range 7 Mapping' \ options; unused otherwise. Positive values only" endparam param r7color caption = "Range 7 Color" default = 0.0 min = 0.0 max = 400.0 hint = "Gradient position index that will be assigned to Range 7 pixels \ if 'Range 7 Mapping' is set to 'Range 7 Color' (0-400)" endparam param r7fbm caption = "Range 7 fBm?" default = FALSE hint = "Adds distortion to coloring based on fBm algorithm; affects \ iterations falling in Range 7 only. Overall amount of turbulence \ is set by parameter 'fBm Amount'" endparam param r7fbmamt caption = "R7 fBm Boost" default = 1.0 hint = "This param softens/boosts the fBm amount for Range 7 \ regions only" endparam param r7tex caption = "Range 7 Texture?" default = FALSE hint = "Adds texture to coloring; affects iterations falling in Range 7 only. \ Overall amount of texture is set by parameter 'Tex Amount'. Texture \ functions are 'R7 Texture Fn1' and 'R7 Texture Fn2'" endparam param r7texamt caption = "R7 Tex Boost" default = 1.0 hint = "This param softens/boosts the texture amount for Range 7 \ regions only" endparam param map8 caption = "Range 8 Mapping" enum = "linear" "quadratic" "log" "exp" "recip" "sin" \ "iter^const" "sin(iter*const)" "exp(iter*const)" \ "atan" "iter^iter" "const*linear" "symmetric" "Range 8 Color" \ "solid" default = 0 hint = "This function determines how iterations falling in Range 8 \ are mapped to the 8th gradient segment (transfer function)" endparam param const8 caption = "Constant 8" default = 3.0 min = 0.0 hint = "This is the const value used in 4 of the 'Range 8 Mapping' \ options; unused otherwise. Positive values only" endparam param r8color caption = "Range 8 Color" default = 0.0 min = 0.0 max = 400.0 hint = "Gradient position index that will be assigned to Range 8 pixels \ if 'Range 8 Mapping' is set to 'Range 8 Color' (0-400)" endparam param r8fbm caption = "Range 8 fBm?" default = FALSE hint = "Adds distortion to coloring based on fBm algorithm; affects \ iterations falling in Range 8 only. Overall amount of turbulence \ is set by parameter 'fBm Amount'" endparam param r8fbmamt caption = "R8 fBm Boost" default = 1.0 hint = "This param softens/boosts the fBm amount for Range 8 \ regions only" endparam param r8tex caption = "Range 8 Texture?" default = FALSE hint = "Adds texture to coloring; affects iterations falling in Range 8 only. \ Overall amount of texture is set by parameter 'Tex Amount'. Texture \ functions are 'R8 Texture Fn1' and 'R8 Texture Fn2'" endparam param r8texamt caption = "R8 Tex Boost" default = 1.0 hint = "This param softens/boosts the texture amount for Range 8 \ regions only" endparam param globalfBm caption = "Enable fBm (global)?" default = FALSE hint = "Adds distortion to coloring of all ranges based on fBm algorithm; \ overall amount of turbulence is set by parameter 'fBm Amount'" endparam param turbamount caption = "fBm Amount" default = 0.1 hint = "Overall degree of fBm, if enabled" endparam param bscale caption = "fBm Scale" default = 1.0 hint = "Affects the overall scale of distortion generated by the fBm algorithm" endparam param bangle caption = "fBm Rotation" default = 0.0 hint = "Angular parameter for fBm noise" endparam param bstep caption = "fBm Stepsize" default = 0.5 hint = "Scale step size for fBm noise iterations" endparam param banglestep caption = "fBm Rotation Step" default = 37.0 hint = "The angle in degrees for noise function rotation after \ each fBm iteration, if enabled" endparam param boctaves caption = "fBm Octaves" default = 7 min = 1 hint = "The number of iterations of the fBm noise function" endparam param bpower caption = "fBm Exponent" default = 2.0 hint = "The exponent used for fBm randomization, if enabled" endparam param fbmmode caption = "fBm Mode" enum = "A" "B" "C" "D" default = 0 hint = "This parameter affects initialization of the fBm algorithm" endparam param texamount caption = "Tex Amount" default = 0.1 hint = "This param sets the overall amount of all enabled texture options" endparam param texpower caption = "Tex Power" default = 1.0 hint = "Params 'Tex Power' & 'Tex Scale' set the initial levels in the \ texture algorithms, if any texture options are enabled" endparam param texscale caption = "Tex Scale1" default = 20.0 hint = "Params 'Tex Power' & 'Tex Scale' set the initial levels in the \ texture algorithm, if any texture options are enabled; 'Tex Scale1' \ affects the size of the texture pattern" endparam param texoffset caption = "Tex Offset" default = (-1,1) hint = "This param modifies the texture pattern of any enabled texture options" endparam param texmod caption = "Tex Scale2" default = 5.0 hint = "This param sets the final level in the texture algorithm, \ if any texture options are enabled; affects the shapes made by \ the texture functions" endparam param texturemode caption = "Texture Mode" enum = "A" "B" "C" "D" default = 0 hint = "This parameter affects initialization of the texture algorithm" endparam func fn1tex1 caption = "R1 Texture Fn1" default = atan() hint = "This param is the first texture function for Range 1 if param \ 'Range 1 Texture?' is enabled; inactive otherwise" endfunc func fn2tex1 caption = "R1 Texture Fn2" default = acos() hint = "This param is the second texture function for Range 1 if param \ 'Range 1 Texture?' is enabled; inactive otherwise" endfunc func fn1tex2 caption = "R2 Texture Fn1" default = atan() hint = "This param is the first texture function for Range 2 if param \ 'Range 2 Texture?' is enabled; inactive otherwise" endfunc func fn2tex2 caption = "R2 Texture Fn2" default = acos() hint = "This param is the second texture function for Range 2 if param \ 'Range 2 Texture?' is enabled; inactive otherwise" endfunc func fn1tex3 caption = "R3 Texture Fn1" default = atan() hint = "This param is the first texture function for Range 3 if param \ 'Range 3 Texture?' is enabled; inactive otherwise" endfunc func fn2tex3 caption = "R3 Texture Fn2" default = acos() hint = "This param is the second texture function for Range 3 if param \ 'Range 3 Texture?' is enabled; inactive otherwise" endfunc func fn1tex4 caption = "R4 Texture Fn1" default = atan() hint = "This param is the first texture function for Range 4 if param \ 'Range 4 Texture?' is enabled; inactive otherwise" endfunc func fn2tex4 caption = "R4 Texture Fn2" default = acos() hint = "This param is the second texture function for Range 4 if param \ 'Range 4 Texture?' is enabled; inactive otherwise" endfunc func fn1tex5 caption = "R5 Texture Fn1" default = atan() hint = "This param is the first texture function for Range 5 if param \ 'Range 5 Texture?' is enabled; inactive otherwise" endfunc func fn2tex5 caption = "R5 Texture Fn2" default = acos() hint = "This param is the second texture function for Range 5 if param \ 'Range 5 Texture?' is enabled; inactive otherwise" endfunc func fn1tex6 caption = "R6 Texture Fn1" default = atan() hint = "This param is the first texture function for Range 6 if param \ 'Range 6 Texture?' is enabled; inactive otherwise" endfunc func fn2tex6 caption = "R6 Texture Fn2" default = acos() hint = "This param is the second texture function for Range 6 if param \ 'Range 6 Texture?' is enabled; inactive otherwise" endfunc func fn1tex7 caption = "R7 Texture Fn1" default = atan() hint = "This param is the first texture function for Range 7 if param \ 'Range 7 Texture?' is enabled; inactive otherwise" endfunc func fn2tex7 caption = "R7 Texture Fn2" default = acos() hint = "This param is the second texture function for Range 7 if param \ 'Range 7 Texture?' is enabled; inactive otherwise" endfunc func fn1tex8 caption = "R8 Texture Fn1" default = atan() hint = "This param is the first texture function for Range 8 if param \ 'Range 8 Texture?' is enabled; inactive otherwise" endfunc func fn2tex8 caption = "R8 Texture Fn2" default = acos() hint = "This param is the second texture function for Range 8 if param \ 'Range 8 Texture?' is enabled; inactive otherwise" endfunc func fn1texoor caption = "Lo/Hi Tex Fn1" default = atan() hint = "This param is the first texture function for Range 1 if param \ 'Range 1 Texture?' is enabled; inactive otherwise" endfunc func fn2texoor caption = "Lo/Hi Tex Fn2" default = acos() hint = "This param is the second texture function for 'Low Color' & \ 'High Color' iterations if param 'Low/High Texture?' is enabled; \ inactive otherwise" endfunc } jam-OscillatorTraps { ; jam 011114 ; The oscillator is defined as ; C1 * sine(x) ~ C2 * sine(x) ~ C3 * sine(x) ~ C4 * sine(x), ; where x = z or 1/z (chosen independently for each term), ; and ~ can each independently be any operation +, *, or /. ; Also, in each term z has the form Az+K for adjustment of ; that oscillator's frequency and period. init: float twopi = 2.0 * #pi ; Change and scale variables to facilitate variation, if selected float spread = @colorspread, float spreadstep = 0.05 * @spreadstp float thresh = @threshold, float threshstep = 0.05 * @threshstp float scale = @tscale, float scalestep = 0.05 * @scalestp float ringstep = 0.05 * @ringstp, float rwidth = @ringwidth float rotation = @rotate * #pi / 180, float rotationstep = 0.05 * @rotationstp if ( rotation < 0 ) rotation = rotation + twopi endif ; rotation complex center = @centr, float centerstep = @centerstp float sign = 0.0 bool trapped = FALSE bool vary = TRUE float innerradius = thresh - @ringwidth if ( @whattotrap > 11 ) innerradius = thresh + @ringwidth ; innerradius is really an outerradius if we are exceeding limits endif ; @whattotrap ; For turbulence computation option float turbulamount = @turbamount, float _coloradjust = 0.0, float _color = 0.0 complex zlast = (0,0), complex tlast = (1,0), float turbstep = @turbstp complex zold = (0,0), complex zveryold = (0,0), complex zscratch = (0,0) complex z1 = complex z2 = complex z3 = complex z4 = (0,0) complex zold2 = (0,0) float rfbcomp = 1-@rfblend, float ifbcomp = 1-@ifblend float rbbcomp = 1-@rbblend, float ibbcomp = 1-@ibblend float trapbcomp = 1-@trapblend, float initbcomp = 1-@initblend if @towatch == 0 int watch = #maxiter else int watch = @skippediters + @towatch endif ; towatch int iter = 0, int count = 0 int itrapped = int itrapped2 = int itrapped3 = int itrapped4 = 0 float test = 0.0, float trapped1 = float trapped2 = float trapped3 = float trapped4 = 1e9 float zangle = 0.0, float zatrapped = float zatrapped2 = float zatrapped3 = float zatrapped4 = 0.0 float cangle = 0.0, float catrapped = float catrapped2 = float catrapped3 = float catrapped4 = 0.0 complex ztrapped = complex ztrapped2 = complex ztrapped3 = complex ztrapped4 = (0,0) complex ztemp = complex zttrapped = complex zttrapped2 = complex zttrapped3 = complex zttrapped4 = (0,0) complex tempc = complex ctrapped = complex ctrapped2 = complex ctrapped3 = complex ctrapped4 = (0,0) float tempx = 0.0, float tempy = 0.0, float temp = 0.0, float temp2 = 0.0 complex zinput = (0,0) ; If we're trapping something big, initialize small if (( @whattotrap == 1 ) || ( @whattotrap == 5 ) || ( @whattotrap == 6 ) \ || ( @whattotrap == 7 )) trapped1 = trapped2 = trapped3 = trapped4 = -1e9 elseif @whattotrap > 14 trapped2 = -1e9 ; used to store the max when looking for min-max, min+max, etc. endif ; trapmode loop: iter = iter + 1 if ( iter > @skippediters ) && ( iter <= watch ) ; finished skipping --- start testing for trap ; Initialize front end real, front end imag, if desired temp2 = @rfscale * real(#z) if ( @realfront == 0 ) tempx = temp2 elseif ( @realfront == 1 ) tempx = 1/temp2 elseif ( @realfront == 2 ) tempx = temp2 * temp2 elseif ( @realfront == 3 ) tempx = 1 / ( temp2 * temp2 ) elseif ( @realfront == 4 ) tempx = log(temp2) elseif ( @realfront == 5 ) tempx = exp( temp2) elseif ( @realfront == 6 ) tempx = temp2^temp2 elseif ( @realfront == 7 ) tempx = sin( temp2 ) elseif ( @realfront == 8 ) tempx = cos( temp2 ) elseif ( @realfront == 9 ) tempx = tan( temp2 ) elseif ( @realfront == 10 ) tempx = asin( temp2 ) elseif ( @realfront == 11 ) tempx = acos( temp2 ) elseif ( @realfront == 12 ) tempx = atan( temp2 ) elseif ( @realfront == 13 ) tempx = sinh( temp2 ) elseif ( @realfront == 14 ) tempx = cosh( temp2 ) elseif ( @realfront == 15 ) tempx = tanh( temp2 ) elseif ( @realfront == 16 ) tempx = asinh( temp2 ) elseif ( @realfront == 17 ) tempx = acosh( temp2 ) elseif ( @realfront == 18 ) tempx = atanh( temp2 ) elseif ( @realfront == 19 ) tempx = log( 1/temp2 ) elseif ( @realfront == 20 ) tempx = log( log( temp2 )) elseif ( @realfront == 21 ) tempx = exp( -temp2 ) elseif ( @realfront == 22 ) tempx = exp( 1/temp2 ) elseif ( @realfront == 23 ) tempx = temp2^(-temp2) elseif ( @realfront == 24 ) tempx = sin( temp2 ) tempx = tempx * tempx elseif ( @realfront == 25 ) tempx = cos( temp2 ) tempx = tempx * tempx elseif ( @realfront == 26 ) tempx = tan( temp2 ) tempx = tempx * tempx elseif ( @realfront == 27 ) tempx = cotan( temp2 ) elseif ( @realfront == 28 ) tempx = 1/cos( temp2 ) elseif ( @realfront == 29 ) tempx = 1/sin( temp2 ) elseif ( @realfront == 30 ) tempx = cotan( temp2 ) tempx = tempx * tempx elseif ( @realfront == 31 ) tempx = 1/cos( temp2 ) tempx = tempx * tempx elseif ( @realfront == 32 ) tempx = 1/sin( temp2 ) tempx = tempx * tempx elseif ( @realfront == 33 ) tempx = temp2^(temp2) tempx = temp2^tempx elseif ( @realfront == 34 ) tempx = temp2^(temp2) tempx = 1/( temp2^tempx ) elseif ( @realfront == 35 ) tempx = log(-temp2) elseif ( @realfront == 36 ) tempx = 1/log( temp2 ) elseif ( @realfront == 37 ) tempx = temp2 * log( temp2 ) elseif ( @realfront == 38 ) tempx = sin( temp2 ) / temp2 elseif ( @realfront == 39 ) tempx = cos( temp2 ) / temp2 elseif ( @realfront == 40 ) tempx = sin( temp2 ) * cos( temp2 ) elseif ( @realfront == 41 ) tempx = sin( temp2^2 ) elseif ( @realfront == 42 ) tempx = exp( -1/temp2 ) elseif ( @realfront == 43 ) tempx = temp2 * exp( temp2 ) elseif ( @realfront == 44 ) tempx = temp2 * exp( -temp2 ) elseif ( @realfront == 45 ) tempx = temp2 * exp( 1/temp2 ) elseif ( @realfront == 46 ) tempx = temp2 * exp( -1/temp2 ) elseif ( @realfront == 47 ) tempx = temp2 * temp2 * temp2 elseif ( @realfront == 48 ) tempx = 1 / ( temp2 * temp2 * temp2 ) elseif ( @realfront == 49 ) tempx = atan( 1 / temp2 ) elseif ( @realfront == 50 ) tempx = acos( 1 / temp2 ) elseif ( @realfront == 51 ) tempx = asin( 1 / temp2 ) elseif ( @realfront == 52 ) tempx = tan( temp2 ) / temp2 elseif ( @realfront == 53 ) tempx = cotan( temp2 ) / temp2 elseif ( @realfront == 54 ) tempx = 1 / ( temp2 * cos( temp2 )) elseif ( @realfront == 55 ) tempx = 1 / ( temp2 * sin( temp2 )) elseif ( @realfront == 56 ) tempx = temp2 * sin( temp2 ) elseif ( @realfront == 57 ) tempx = temp2 * cos( temp2 ) elseif ( @realfront == 58 ) tempx = temp2 * tan( temp2 ) elseif ( @realfront == 59 ) tempx = temp2 * cotan( temp2 ) elseif ( @realfront == 60 ) tempx = temp2/cos( temp2 ) elseif ( @realfront == 61 ) tempx = temp2/sin( temp2 ) elseif ( @realfront == 62 ) tempx = sin( 1/temp2 ) elseif ( @realfront == 63 ) tempx = cos( 1/temp2 ) elseif ( @realfront == 64 ) tempx = tan( 1/temp2 ) elseif ( @realfront == 65 ) tempx = cotan( 1/temp2 ) elseif ( @realfront == 66 ) tempx = 1/cos( 1/temp2 ) elseif ( @realfront == 67 ) tempx = 1/sin( 1/temp2 ) elseif ( @realfront == 68 ) tempx = cotanh( temp2 ) elseif ( @realfront == 69 ) tempx = 1/cosh( temp2 ) elseif ( @realfront == 70 ) tempx = 1/sinh( temp2 ) elseif ( @realfront == 71 ) tempx = atanh( 1/temp2 ) elseif ( @realfront == 72 ) tempx = acosh( 1/temp2 ) elseif ( @realfront == 73 ) tempx = asinh( 1/temp2 ) elseif @realfront == 74 tempx = temp2^@rfpower elseif @realfront == 75 tempx = sinh(temp2) tempx = tempx * tempx elseif @realfront == 76 tempx = cosh( temp2 ) tempx = tempx * tempx elseif @realfront == 77 tempx = tanh(temp2) tempx = tempx * tempx elseif @realfront == 78 tempx = cotanh( temp2 ) tempx = tempx * tempx elseif @realfront == 79 tempx = 1/cosh(temp2) tempx = tempx * tempx elseif @realfront == 80 tempx = 1 / sinh( temp2 ) tempx = tempx * tempx elseif @realfront == 81 tempx = sinh(1/temp2) elseif @realfront == 82 tempx = cosh(1/temp2) elseif @realfront == 83 tempx = tanh(1/temp2) elseif @realfront == 84 tempx = cotanh(1/temp2) elseif @realfront == 85 tempx = 1/cosh(1/temp2) elseif @realfront == 86 tempx = 1/sinh(1/temp2) elseif @realfront == 87 tempx = sin( temp2 ) * tan(temp2) elseif @realfront == 88 tempx = sinh(temp2) * tanh(temp2) elseif @realfront == 89 tempx = sinh(temp2) * cosh(temp2) elseif @realfront == 90 tempx = sinh(temp2), temp = cosh(temp2) tempx = tempx*tempx*temp*temp elseif @realfront == 91 tempx = sin(temp2), temp = cos(temp2) tempx = tempx*tempx*temp*temp elseif @realfront == 92 tempx = 1/temp2 tempx = sin(tempx)*cos(tempx) elseif @realfront == 93 tempx = sin( 1/temp2 ) tempx = tempx*tempx elseif @realfront == 94 tempx = sin(temp2) * cos(1/temp2) elseif @realfront == 95 tempx = sin(temp2) * sin(1/temp2) elseif @realfront == 96 tempx = log(temp2) tempx = tempx*tempx elseif @realfront == 97 tempx = sin(temp2) * sin(2*temp2) elseif @realfront == 98 tempx = exp(2*temp2) elseif @realfront == 99 tempx = exp(-2*temp2) elseif @realfront == 100 tempx = 1/temp2 tempx = sinh(tempx)*cosh(tempx) elseif @realfront == 101 tempx = sinh( 1/temp2 ) tempx = tempx*tempx elseif @realfront == 102 tempx = sinh(temp2) * cosh(1/temp2) elseif @realfront == 103 tempx = sinh(temp2) * sinh(1/temp2) elseif @realfront == 104 tempx = sin(temp2) * sinh(temp2) elseif @realfront == 105 tempx = sin(temp2) * cosh(temp2) elseif @realfront == 106 tempx = sin(temp2), temp = sinh(temp2) tempx = tempx*tempx*temp*temp elseif @realfront == 107 tempx = sin(temp2)*exp(temp2) elseif @realfront == 108 tempx = cos(temp2)*exp(temp2) elseif @realfront == 109 tempx = sinh(temp2)*exp(temp2) elseif @realfront == 110 tempx = cosh(temp2)*exp(temp2) elseif @realfront == 111 tempx = sin(temp2)*log(temp2) elseif @realfront == 112 tempx = cos(temp2)*log(temp2) elseif @realfront == 113 tempx = sinh(temp2)*log(temp2) else ; @realfront == 114 tempx = cosh(temp2)*log(temp2) endif ; realfront if @rfperturb tempx = @rfblend * tempx + rfbcomp * real(#z) endif ; @rfperturb temp2 = @ifscale * imag(#z) if ( @imagfront == 0 ) tempy = temp2 elseif ( @imagfront == 1 ) tempy = 1/temp2 elseif ( @imagfront == 2 ) tempy = temp2 * temp2 elseif ( @imagfront == 3 ) tempy = 1 / ( temp2 * temp2 ) elseif ( @imagfront == 4 ) tempy = log(temp2) elseif ( @imagfront == 5 ) tempy = exp( temp2) elseif ( @imagfront == 6 ) tempy = temp2^temp2 elseif ( @imagfront == 7 ) tempy = sin( temp2 ) elseif ( @imagfront == 8 ) tempy = cos( temp2 ) elseif ( @imagfront == 9 ) tempy = tan( temp2 ) elseif ( @imagfront == 10 ) tempy = asin( temp2 ) elseif ( @imagfront == 11 ) tempy = acos( temp2 ) elseif ( @imagfront == 12 ) tempy = atan( temp2 ) elseif ( @imagfront == 13 ) tempy = sinh( temp2 ) elseif ( @imagfront == 14 ) tempy = cosh( temp2 ) elseif ( @imagfront == 15 ) tempy = tanh( temp2 ) elseif ( @imagfront == 16 ) tempy = asinh( temp2 ) elseif ( @imagfront == 17 ) tempy = acosh( temp2 ) elseif ( @imagfront == 18 ) tempy = atanh( temp2 ) elseif ( @imagfront == 19 ) tempy = log( 1/temp2 ) elseif ( @imagfront == 20 ) tempy = log( log( temp2 )) elseif ( @imagfront == 21 ) tempy = exp( -temp2 ) elseif ( @imagfront == 22 ) tempy = exp( 1/temp2 ) elseif ( @imagfront == 23 ) tempy = temp2^(-temp2) elseif ( @imagfront == 24 ) tempy = sin( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 25 ) tempy = cos( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 26 ) tempy = tan( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 27 ) tempy = cotan( temp2 ) elseif ( @imagfront == 28 ) tempy = 1/cos( temp2 ) elseif ( @imagfront == 29 ) tempy = 1/sin( temp2 ) elseif ( @imagfront == 30 ) tempy = cotan( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 31 ) tempy = 1/cos( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 32 ) tempy = 1/sin( temp2 ) tempy = tempy * tempy elseif ( @imagfront == 33 ) tempy = temp2^(temp2) tempy = temp2^tempy elseif ( @imagfront == 34 ) tempy = temp2^(temp2) tempy = 1/( temp2^tempy ) elseif ( @imagfront == 35 ) tempy = log(-temp2) elseif ( @imagfront == 36 ) tempy = 1/log( temp2 ) elseif ( @imagfront == 37 ) tempy = temp2 * log( temp2 ) elseif ( @imagfront == 38 ) tempy = sin( temp2 ) / temp2 elseif ( @imagfront == 39 ) tempy = cos( temp2 ) / temp2 elseif ( @imagfront == 40 ) tempy = sin( temp2 ) * cos( temp2 ) elseif ( @imagfront == 41 ) tempy = sin( temp2^2 ) elseif ( @imagfront == 42 ) tempy = exp( -1/temp2 ) elseif ( @imagfront == 43 ) tempy = temp2 * exp( temp2 ) elseif ( @imagfront == 44 ) tempy = temp2 * exp( -temp2 ) elseif ( @imagfront == 45 ) tempy = temp2 * exp( 1/temp2 ) elseif ( @imagfront == 46 ) tempy = temp2 * exp( -1/temp2 ) elseif ( @imagfront == 47 ) tempy = temp2 * temp2 * temp2 elseif ( @imagfront == 48 ) tempy = 1 / ( temp2 * temp2 * temp2 ) elseif ( @imagfront == 49 ) tempy = atan( 1 / temp2 ) elseif ( @imagfront == 50 ) tempy = acos( 1 / temp2 ) elseif ( @imagfront == 51 ) tempy = asin( 1 / temp2 ) elseif ( @imagfront == 52 ) tempy = tan( temp2 ) / temp2 elseif ( @imagfront == 53 ) tempy = cotan( temp2 ) / temp2 elseif ( @imagfront == 54 ) tempy = 1 / ( temp2 * cos( temp2 )) elseif ( @imagfront == 55 ) tempy = 1 / ( temp2 * sin( temp2 )) elseif ( @imagfront == 56 ) tempy = temp2 * sin( temp2 ) elseif ( @imagfront == 57 ) tempy = temp2 * cos( temp2 ) elseif ( @imagfront == 58 ) tempy = temp2 * tan( temp2 ) elseif ( @imagfront == 59 ) tempy = temp2 * cotan( temp2 ) elseif ( @imagfront == 60 ) tempy = temp2/cos( temp2 ) elseif ( @imagfront == 61 ) tempy = temp2/sin( temp2 ) elseif ( @imagfront == 62 ) tempy = sin( 1/temp2 ) elseif ( @imagfront == 63 ) tempy = cos( 1/temp2 ) elseif ( @imagfront == 64 ) tempy = tan( 1/temp2 ) elseif ( @imagfront == 65 ) tempy = cotan( 1/temp2 ) elseif ( @imagfront == 66 ) tempy = 1/cos( 1/temp2 ) elseif ( @imagfront == 67 ) tempy = 1/sin( 1/temp2 ) elseif ( @imagfront == 68 ) tempy = cotanh( temp2 ) elseif ( @imagfront == 69 ) tempy = 1/cosh( temp2 ) elseif ( @imagfront == 70 ) tempy = 1/sinh( temp2 ) elseif ( @imagfront == 71 ) tempy = atanh( 1/temp2 ) elseif ( @imagfront == 72 ) tempy = acosh( 1/temp2 ) elseif ( @imagfront == 73 ) tempy = asinh( 1/temp2 ) elseif @imagfront == 74 tempy = temp2^@ifpower elseif @imagfront == 75 tempy = sinh(temp2) tempy = tempy * tempy elseif @imagfront == 76 tempy = cosh( temp2 ) tempy = tempy * tempy elseif @imagfront == 77 tempy = tanh(temp2) tempy = tempy * tempy elseif @imagfront == 78 tempy = cotanh( temp2 ) tempy = tempy * tempy elseif @imagfront == 79 tempy = 1/cosh(temp2) tempy = tempy * tempy elseif @imagfront == 80 tempy = 1 / sinh( temp2 ) tempy = tempy * tempy elseif @imagfront == 81 tempy = sinh(1/temp2) elseif @imagfront == 82 tempy = cosh(1/temp2) elseif @imagfront == 83 tempy = tanh(1/temp2) elseif @imagfront == 84 tempy = cotanh(1/temp2) elseif @imagfront == 85 tempy = 1/cosh(1/temp2) elseif @imagfront == 86 tempy = 1/sinh(1/temp2) elseif @imagfront == 87 tempy = sin( temp2 ) * tan(temp2) elseif @imagfront == 88 tempy = sinh(temp2) * tanh(temp2) elseif @imagfront == 89 tempy = sinh(temp2) * cosh(temp2) elseif @imagfront == 90 tempy = sinh(temp2), temp = cosh(temp2) tempy = tempy*tempy*temp*temp elseif @imagfront == 91 tempy = sin(temp2), temp = cos(temp2) tempy = tempy*tempy*temp*temp elseif @imagfront == 92 tempy = 1/temp2 tempy = sin(tempy)*cos(tempy) elseif @imagfront == 93 tempy = sin( 1/temp2 ) tempy = tempy*tempy elseif @imagfront == 94 tempy = sin(temp2) * cos(1/temp2) elseif @imagfront == 95 tempy = sin(temp2) * sin(1/temp2) elseif @imagfront == 96 tempy = log(temp2) tempy = tempy*tempy elseif @imagfront == 97 tempy = sin(temp2) * sin(2*temp2) elseif @imagfront == 98 tempy = exp(2*temp2) elseif @imagfront == 99 tempy = exp(-2*temp2) elseif @imagfront == 100 tempy = 1/temp2 tempy = sinh(tempy)*cosh(tempy) elseif @imagfront == 101 tempy = sinh( 1/temp2 ) tempy = tempy*tempy elseif @imagfront == 102 tempy = sinh(temp2) * cosh(1/temp2) elseif @imagfront == 103 tempy = sinh(temp2) * sinh(1/temp2) elseif @imagfront == 104 tempy = sin(temp2) * sinh(temp2) elseif @imagfront == 105 tempy = sin(temp2) * cosh(temp2) elseif @imagfront == 106 tempy = sin(temp2), temp = sinh(temp2) tempy = tempy*tempy*temp*temp elseif @imagfront == 107 tempy = sin(temp2)*exp(temp2) elseif @imagfront == 108 tempy = cos(temp2)*exp(temp2) elseif @imagfront == 109 tempy = sinh(temp2)*exp(temp2) elseif @imagfront == 110 tempy = cosh(temp2)*exp(temp2) elseif @imagfront == 111 tempy = sin(temp2)*log(temp2) elseif @imagfront == 112 tempy = cos(temp2)*log(temp2) elseif @imagfront == 113 tempy = sinh(temp2)*log(temp2) else ; @imagfront == 114 tempy = cosh(temp2)*log(temp2) endif ; imagfront if @ifperturb tempy = @ifblend * tempy + ifbcomp * imag(#z) endif ; @ifperturb zold = tempx + flip(tempy) ; Initialize z, if desired zold = @ziscale * zold if ( @initialization == 0 ) zinput = zold elseif ( @initialization == 1 ) zinput = 1/zold elseif ( @initialization == 2 ) zinput = zold * zold elseif ( @initialization == 3 ) zinput = 1 / ( zold * zold ) elseif ( @initialization == 4 ) zinput = log(zold) elseif ( @initialization == 5 ) zinput = exp( zold) elseif ( @initialization == 6 ) zinput = zold^zold elseif ( @initialization == 7 ) zinput = sin( zold ) elseif ( @initialization == 8 ) zinput = cos( zold ) elseif ( @initialization == 9 ) zinput = tan( zold ) elseif ( @initialization == 10 ) zinput = asin( zold ) elseif ( @initialization == 11 ) zinput = acos( zold ) elseif ( @initialization == 12 ) zinput = atan( zold ) elseif ( @initialization == 13 ) zinput = sinh( zold ) elseif ( @initialization == 14 ) zinput = cosh( zold ) elseif ( @initialization == 15 ) zinput = tanh( zold ) elseif ( @initialization == 16 ) zinput = asinh( zold ) elseif ( @initialization == 17 ) zinput = acosh( zold ) elseif ( @initialization == 18 ) zinput = atanh( zold ) elseif ( @initialization == 19 ) zinput = log( 1/zold ) elseif ( @initialization == 20 ) zinput = log( log( zold )) elseif ( @initialization == 21 ) zinput = exp( -zold ) elseif ( @initialization == 22 ) zinput = exp( 1/zold ) elseif ( @initialization == 23 ) zinput = zold^(-zold) elseif ( @initialization == 24 ) zinput = sin( zold ) zinput = zinput * zinput elseif ( @initialization == 25 ) zinput = cos( zold ) zinput = zinput * zinput elseif ( @initialization == 26 ) zinput = tan( zold ) zinput = zinput * zinput elseif ( @initialization == 27 ) zinput = cotan( zold ) elseif ( @initialization == 28 ) zinput = 1/cos( zold ) elseif ( @initialization == 29 ) zinput = 1/sin( zold ) elseif ( @initialization == 30 ) zinput = cotan( zold ) zinput = zinput * zinput elseif ( @initialization == 31 ) zinput = 1/cos( zold ) zinput = zinput * zinput elseif ( @initialization == 32 ) zinput = 1/sin( zold ) zinput = zinput * zinput elseif ( @initialization == 33 ) zinput = zold^(zold) zinput = zold^zinput elseif ( @initialization == 34 ) zinput = zold^(zold) zinput = 1/( zold^zinput ) elseif ( @initialization == 35 ) zinput = log(-zold) elseif ( @initialization == 36 ) zinput = 1/log( zold ) elseif ( @initialization == 37 ) zinput = zold * log( zold ) elseif ( @initialization == 38 ) zinput = sin( zold ) / zold elseif ( @initialization == 39 ) zinput = cos( zold ) / zold elseif ( @initialization == 40 ) zinput = sin( zold ) * cos( zold ) elseif ( @initialization == 41 ) zinput = sin( zold^2 ) elseif ( @initialization == 42 ) zinput = exp( -1/zold ) elseif ( @initialization == 43 ) zinput = zold * exp( zold ) elseif ( @initialization == 44 ) zinput = zold * exp( -zold ) elseif ( @initialization == 45 ) zinput = zold * exp( 1/zold ) elseif ( @initialization == 46 ) zinput = zold * exp( -1/zold ) elseif ( @initialization == 47 ) zinput = zold * zold * zold elseif ( @initialization == 48 ) zinput = 1 / ( zold * zold * zold ) elseif ( @initialization == 49 ) zinput = atan( 1 / zold ) elseif ( @initialization == 50 ) zinput = acos( 1 / zold ) elseif ( @initialization == 51 ) zinput = asin( 1 / zold ) elseif ( @initialization == 52 ) zinput = tan( zold ) / zold elseif ( @initialization == 53 ) zinput = cotan( zold ) / zold elseif ( @initialization == 54 ) zinput = 1 / ( zold * cos( zold )) elseif ( @initialization == 55 ) zinput = 1 / ( zold * sin( zold )) elseif ( @initialization == 56 ) zinput = zold * sin( zold ) elseif ( @initialization == 57 ) zinput = zold * cos( zold ) elseif ( @initialization == 58 ) zinput = zold * tan( zold ) elseif ( @initialization == 59 ) zinput = zold * cotan( zold ) elseif ( @initialization == 60 ) zinput = zold/cos( zold ) elseif ( @initialization == 61 ) zinput = zold/sin( zold ) elseif ( @initialization == 62 ) zinput = sin( 1/zold ) elseif ( @initialization == 63 ) zinput = cos( 1/zold ) elseif ( @initialization == 64 ) zinput = tan( 1/zold ) elseif ( @initialization == 65 ) zinput = cotan( 1/zold ) elseif ( @initialization == 66 ) zinput = 1/cos( 1/zold ) elseif ( @initialization == 67 ) zinput = 1/sin( 1/zold ) elseif ( @initialization == 68 ) zinput = cotanh( zold ) elseif ( @initialization == 69 ) zinput = 1/cosh( zold ) elseif ( @initialization == 70 ) zinput = 1/sinh( zold ) elseif ( @initialization == 71 ) zinput = atanh( 1/zold ) elseif ( @initialization == 72 ) zinput = acosh( 1/zold ) elseif ( @initialization == 73 ) zinput = asinh( 1/zold ) elseif @initialization == 74 zinput = zold^@zpower elseif @initialization == 75 zinput = sinh(zold) zinput = zinput * zinput elseif @initialization == 76 zinput = cosh( zold ) zinput = zinput * zinput elseif @initialization == 77 zinput = tanh(zold) zinput = zinput * zinput elseif @initialization == 78 zinput = cotanh( zold ) zinput = zinput * zinput elseif @initialization == 79 zinput = 1/cosh(zold) zinput = zinput * zinput elseif @initialization == 80 zinput = 1 / sinh( zold ) zinput = zinput * zinput elseif @initialization == 81 zinput = sinh(1/zold) elseif @initialization == 82 zinput = cosh(1/zold) elseif @initialization == 83 zinput = tanh(1/zold) elseif @initialization == 84 zinput = cotanh(1/zold) elseif @initialization == 85 zinput = 1/cosh(1/zold) elseif @initialization == 86 zinput = 1/sinh(1/zold) elseif @initialization == 87 zinput = sin( zold ) * tan(zold) elseif @initialization == 88 zinput = sinh(zold) * tanh(zold) elseif @initialization == 89 zinput = sinh(zold) * cosh(zold) elseif @initialization == 90 zinput = sinh(zold), zscratch = cosh(zold) zinput = zinput*zinput*zscratch*zscratch elseif @initialization == 91 zinput = sin(zold), zscratch = cos(zold) zinput = zinput*zinput*zscratch*zscratch elseif @initialization == 92 zinput = 1/zold zinput = sin(zinput)*cos(zinput) elseif @initialization == 93 zinput = sin( 1/zold ) zinput = zinput*zinput elseif @initialization == 94 zinput = sin(zold) * cos(1/zold) elseif @initialization == 95 zinput = sin(zold) * sin(1/zold) elseif @initialization == 96 zinput = log(zold) zinput = zinput*zinput elseif @initialization == 97 zinput = sin(zold) * sin(2*zold) elseif @initialization == 98 zinput = exp(2*zold) elseif @initialization == 99 zinput = exp(-2*zold) elseif @initialization == 100 zinput = 1/zold zinput = sinh(zinput)*cosh(zinput) elseif @initialization == 101 zinput = sinh( 1/zold ) zinput = zinput*zinput elseif @initialization == 102 zinput = sinh(zold) * cosh(1/zold) elseif @initialization == 103 zinput = sinh(zold) * sinh(1/zold) elseif @initialization == 104 zinput = sin(zold) * sinh(zold) elseif @initialization == 105 zinput = sin(zold) * cosh(zold) elseif @initialization == 106 zinput = sin(zold), zscratch = sinh(zold) zinput = zinput*zinput*zscratch*zscratch elseif @initialization == 107 zinput = sin(zold)*exp(zold) elseif @initialization == 108 zinput = cos(zold)*exp(zold) elseif @initialization == 109 zinput = sinh(zold)*exp(zold) elseif @initialization == 110 zinput = cosh(zold)*exp(zold) elseif @initialization == 111 zinput = sin(zold)*log(zold) elseif @initialization == 112 zinput = cos(zold)*log(zold) elseif @initialization == 113 zinput = sinh(zold)*log(zold) else ; @initialization == 114 zinput = cosh(zold)*log(zold) endif ; initialization if @initperturb zinput = @initblend * zinput + initbcomp * zold endif ; @ifperturb if @trapvariant != 0 if @swaporder if @trapvariant == 1 ; flip zinput = flip(zinput) elseif @trapvariant == 2 ; conjugate zinput = conj(zinput) elseif @trapvariant == 3 ; flip conjugate zinput = flip(conj(zinput)) elseif @trapvariant == 4 ; negate zinput = -zinput elseif @trapvariant == 5 ; negate flip zinput = -flip(zinput) elseif @trapvariant == 6 ; negate conjugate zinput = -conj(zinput) elseif @trapvariant == 7 ; negate flip conj = conj flip zinput = -flip(conj(zinput)) endif ; trapvariant2 endif ; swaporder endif ; trapvariant1 if @operator != 0 if @operator == 1 ; multiplication zinput = zinput * @operatee elseif @operator == 2 ; addition zinput = zinput + @operatee elseif @operator == 3 ; subtraction zinput = zinput - @operatee elseif @operator == 4 ; division zinput = zinput / @operatee elseif @operator == 5 ; exponentiation zinput = zinput ^ @operatee elseif @operator == 6 ; subtraction2 zinput = @operatee - zinput elseif @operator == 7 ; division2 zinput = @operatee / zinput elseif @operator == 8 ; exponential2 zinput = @operatee ^ zinput elseif @operator == 9 ; logarithm zinput = log(zinput) / log(@operatee) elseif @operator == 10 ; logarithm2 zinput = log(@operatee) / log(zinput) endif ; operator2 endif ; operator1 if @trapvariant != 0 if !@swaporder if @trapvariant == 1 ; flip zinput = flip(zinput) elseif @trapvariant == 2 ; conjugate zinput = conj(zinput) elseif @trapvariant == 3 ; flip conjugate zinput = flip(conj(zinput)) elseif @trapvariant == 4 ; negate zinput = -zinput elseif @trapvariant == 5 ; negate flip zinput = -flip(zinput) elseif @trapvariant == 6 ; negate conjugate zinput = -conj(zinput) elseif @trapvariant == 7 ; negate flip conj = conj flip zinput = -flip(conj(zinput)) endif ; trapvariant2 endif ; swaporder endif ; trapvariant1 ; Find coordinates and angle of point on oscillator closest to #z (zinput) ; First, center z on the oscillator origin ztemp = zinput - center ; Compute rotated #z ztemp = ztemp * exp( flip( -rotation)) if @history if @histype == 0 zold2 = ztemp - zold2, ztemp = zold2 elseif @histype == 1 zscratch = ztemp, ztemp = ztemp - zold2, zold2 = zscratch elseif @histype == 2 zscratch = ztemp, ztemp = ztemp - zveryold, zveryold = zold2, zold2 = zscratch endif ; histype endif ; history ; Save value for later turbulence zlast = ztemp ; Now find angle of 'rotated' #z zangle = atan2( ztemp ) if ( zangle < 0 ) zangle = zangle + twopi ; 0 <= zangle <= two pi, for _coloring purposes endif ; zangle if @mutant zinput = ztemp else zinput = zangle - #pi ; we want oscillator centered on the origin (-pi <= zangle <= pi for trapping) endif; mutant if @sprangle zinput = zinput*@sprangfactor endif ; @sprangle ; Find corresponding point on oscillator function graph z1 = @freq1 * zinput + @K1, z2 = @freq2 * zinput + @K2 z3 = @freq3 * zinput + @K3, z4 = @freq4 * zinput + @K4 if @square1 z1 = z1*z1 endif ; square1 if @square2 z2 = z2*z2 endif ; square2 if @square3 z3 = z3*z3 endif ; square3 if @square4 z4 = z4*z4 endif ; square4 if @recip1 z1 = 1.0/z1 endif ; recip1 if @recip2 z2 = 1.0/z2 endif ; recip2 if @recip3 z3 = 1.0/z3 endif ; recip3 if @recip4 z4 = 1.0/z4 endif ; recip4 z1 = @amp1 * sin(z1), z2 = @amp2 * sin(z2) z3 = @amp3 * sin(z3), z4 = @amp4 * sin(z4) if @pretreat1 != 0 if @pretreat1 == 1 ; z z1 = zinput * z1 elseif @pretreat1 == 2 ; 1/z z1 = z1 / zinput elseif @pretreat1 == 3 ; z^2 z1 = z1 * zinput * zinput elseif @pretreat1 == 4 ; 1/z^2 z1 = z1 / (zinput * zinput) elseif @pretreat1 == 5 ; log(z) z1 = z1 * log(zinput) elseif @pretreat1 == 6 ; e^z z1 = z1 * #e^zinput elseif @pretreat1 == 7 ; z^z z1 = z1 * zinput^zinput elseif @pretreat1 == 8 ; 1/log(z) z1 = z1 / log(zinput) elseif @pretreat1 == 9 ; 1/e^z z1 = z1 / #e^zinput elseif @pretreat1 == 10 ; 1/z^z z1 = z1 / zinput^zinput endif ; pretreat1-2 endif ; pretreat1-1 if @pretreat2 != 0 if @pretreat2 == 1 ; z z2 = zinput * z2 elseif @pretreat2 == 2 ; 1/z z2 = z2 / zinput elseif @pretreat2 == 3 ; z^2 z2 = z2 * zinput * zinput elseif @pretreat2 == 4 ; 1/z^2 z2 = z2 / (zinput * zinput) elseif @pretreat2 == 5 ; log(z) z2 = z2 * log(zinput) elseif @pretreat2 == 6 ; e^z z2 = z2 * #e^zinput elseif @pretreat2 == 7 ; z^z z2 = z2 * zinput^zinput elseif @pretreat2 == 8 ; 1/log(z) z2 = z2 / log(zinput) elseif @pretreat2 == 9 ; 1/e^z z2 = z2 / #e^zinput elseif @pretreat2 == 10 ; 1/z^z z2 = z2 / zinput^zinput endif ; pretreat2-2 endif ; pretreat2-1 if @pretreat3 != 0 if @pretreat3 == 1 ; z z3 = zinput * z3 elseif @pretreat3 == 2 ; 1/z z3 = z3 / zinput elseif @pretreat3 == 3 ; z^2 z3 = z3 * zinput * zinput elseif @pretreat3 == 4 ; 1/z^2 z3 = z3 / (zinput * zinput) elseif @pretreat3 == 5 ; log(z) z3 = z3 * log(zinput) elseif @pretreat3 == 6 ; e^z z3 = z3 * #e^zinput elseif @pretreat3 == 7 ; z^z z3 = z3 * zinput^zinput elseif @pretreat3 == 8 ; 1/log(z) z3 = z3 / log(zinput) elseif @pretreat3 == 9 ; 1/e^z z3 = z3 / #e^zinput elseif @pretreat3 == 10 ; 1/z^z z3 = z3 / zinput^zinput endif ; pretreat3-2 endif ; pretreat3-1 if @pretreat4 != 0 if @pretreat4 == 1 ; z z4 = zinput * z4 elseif @pretreat4 == 2 ; 1/z z4 = z4 / zinput elseif @pretreat4 == 3 ; z^2 z4 = z4 * zinput * zinput elseif @pretreat4 == 4 ; 1/z^2 z4 = z4 / (zinput * zinput) elseif @pretreat4 == 5 ; log(z) z4 = z4 * log(zinput) elseif @pretreat4 == 6 ; e^z z4 = z4 * #e^zinput elseif @pretreat4 == 7 ; z^z z4 = z4 * zinput^zinput elseif @pretreat4 == 8 ; 1/log(z) z4 = z4 / log(zinput) elseif @pretreat4 == 9 ; 1/e^z z4 = z4 / #e^zinput elseif @pretreat4 == 10 ; 1/z^z z4 = z4 / zinput^zinput endif ; pretreat4-2 endif ; pretreat4-1 z1 = scale*z1, z2 = scale*z2 z3 = scale*z3, z4 = scale*z4 if @combistyle == 0 ; multiplications first, then divisions, then additions if @combimode < 20 if @combimode < 10 if @combimode == 0 ; + tempc = z1 + z2 elseif @combimode == 1 ; * tempc = z1 * z2 elseif @combimode == 2 ; / tempc = z1 / z2 elseif @combimode == 3 ; ++ tempc = z1 + z2 + z3 elseif @combimode == 4 ; +* tempc = z1 + (z2 * z3) elseif @combimode == 5 ; +/ tempc = z1 + (z2 / z3) elseif @combimode == 6 ; *+ tempc = (z1 * z2) + z3 elseif @combimode == 7 ; ** tempc = z1 * z2 * z3 elseif @combimode == 8 ; */ tempc = z1 * z2 / z3 else ; @combimode == 9 ; /+ tempc = (z1 / z2) + z3 endif ; @combimode3 elseif @combimode == 10 ; /* tempc = z1 / (z2 * z3) elseif @combimode == 11 ; // tempc = z1 / (z2 * z3) elseif @combimode == 12 ; +++ tempc = z1 + z2 + z3 + z4 elseif @combimode == 13 ; ++* tempc = z1 + z2 + (z3 * z4) elseif @combimode == 14 ; +*+ tempc = z1 + (z2 * z3) + z4 elseif @combimode == 15 ; *++ tempc = (z1 * z2) + z3 + z4 elseif @combimode == 16 ; +** tempc = z1 + (z2 * z3 * z4) elseif @combimode == 17 ; *+* tempc = (z1 * z2) + (z3 * z4) elseif @combimode == 18 ; **+ tempc = (z1 * z2 * z3) + z4 else ; @combimode == 19 ; ++/ tempc = z1 + z2 + (z3 / z4) endif ; @combimode2 elseif @combimode < 30 if @combimode == 20 ; +/+ tempc = z1 + (z2 / z3) + z4 elseif @combimode == 21 ; /++ tempc = (z1 / z2) + z3 + z4 elseif @combimode == 22 ; +// tempc = z1 + (z2 / (z3 * z4)) elseif @combimode == 23 ; /+/ tempc = (z1 / z2) + (z3 / z4) elseif @combimode == 24 ; //+ tempc = (z1 / (z2 * z3)) + z4 elseif @combimode == 25 ; +*/ tempc = z1 + (z2 * z3 / z4) elseif @combimode == 26 ; +/* tempc = z1 + (z2 / (z3 * z4)) elseif @combimode == 27 ; *+/ tempc = (z1 * z2) + (z3 / z4) elseif @combimode == 28 ; */+ tempc = (z1 * z2 / z3) + z4 else ; @combimode == 29 ; /+* tempc = (z1 / z2) + (z3 * z4) endif ; @combimode2 elseif @combimode == 30 ; /*+ tempc = (z1 / (z2 * z3)) + z4 elseif @combimode == 31 ; *** tempc = z1 * z2 * z3 * z4 elseif @combimode == 32 ; **/ tempc = z1 * z2 * z3 / z4 elseif @combimode == 33 ; */* tempc = (z1 * z2) / (z3 * z4) elseif @combimode == 34 ; /** tempc = z1 / (z2 * z3 * z4) elseif @combimode == 35 ; *// tempc = z1 * z2 / (z3 * z4) elseif @combimode == 36 ; /*/ tempc = z1 / (z2 * z3 * z4) elseif @combimode == 37 ; //* tempc = z1 / (z2 * z3 * z4) elseif @combimode == 38 ; /// tempc = z1 / (z2 * z3 * z4) else ; @combimode == 39 ; sin tempc = z1 endif ; @combimode1 elseif @combistyle == 1 ; additions first, then mults, then divisions if @combimode < 20 if @combimode < 10 if @combimode == 0 ; + tempc = z1 + z2 elseif @combimode == 1 ; * tempc = z1 * z2 elseif @combimode == 2 ; / tempc = z1 / z2 elseif @combimode == 3 ; ++ tempc = z1 + z2 + z3 elseif @combimode == 4 ; +* tempc = (z1 + z2) * z3 elseif @combimode == 5 ; +/ tempc = (z1 + z2) / z3 elseif @combimode == 6 ; *+ tempc = z1 * (z2 + z3) elseif @combimode == 7 ; ** tempc = z1 * z2 * z3 elseif @combimode == 8 ; */ tempc = z1 * z2 / z3 else ; @combimode == 9 ; /+ tempc = z1 / (z2 + z3) endif ; @combimode3 elseif @combimode == 10 ; /* tempc = z1 / (z2 * z3) elseif @combimode == 11 ; // tempc = z1 / (z2 * z3) elseif @combimode == 12 ; +++ tempc = z1 + z2 + z3 + z4 elseif @combimode == 13 ; ++* tempc = (z1 + z2 + z3) * z4 elseif @combimode == 14 ; +*+ tempc = (z1 + z2) * (z3 + z4) elseif @combimode == 15 ; *++ tempc = z1 * (z2 + z3 + z4) elseif @combimode == 16 ; +** tempc = (z1 + z2) * z3 * z4 elseif @combimode == 17 ; *+* tempc = z1 * (z2 + z3) * z4 elseif @combimode == 18 ; **+ tempc = z1 * z2 * (z3 + z4) else ; @combimode == 19 ; ++/ tempc = (z1 + z2 + z3) / z4 endif ; @combimode2 elseif @combimode < 30 if @combimode == 20 ; +/+ tempc = (z1 + z2) / (z3 + z4) elseif @combimode == 21 ; /++ tempc = z1 / (z2 + z3 + z4) elseif @combimode == 22 ; +// tempc = (z1 + z2) / (z3 * z4) elseif @combimode == 23 ; /+/ tempc = z1 / ((z2 + z3) * z4) elseif @combimode == 24 ; //+ tempc = z1 / (z2 * (z3 + z4)) elseif @combimode == 25 ; +*/ tempc = (z1 + z2) * z3 / z4 elseif @combimode == 26 ; +/* tempc = (z1 + z2) / (z3 * z4) elseif @combimode == 27 ; *+/ tempc = z1 * (z2 + z3) / z4 elseif @combimode == 28 ; */+ tempc = z1 * z2 / (z3 + z4) else ; @combimode == 29 ; /+* tempc = z1 / ((z2 + z3) * z4) endif ; @combimode2 elseif @combimode == 30 ; /*+ tempc = z1 / (z2 * (z3 + z4)) elseif @combimode == 31 ; *** tempc = z1 * z2 * z3 * z4 elseif @combimode == 32 ; **/ tempc = z1 * z2 * z3 / z4 elseif @combimode == 33 ; */* tempc = (z1 * z2) / (z3 * z4) elseif @combimode == 34 ; /** tempc = z1 / (z2 * z3 * z4) elseif @combimode == 35 ; *// tempc = z1 * z2 / (z3 * z4) elseif @combimode == 36 ; /*/ tempc = z1 / (z2 * z3 * z4) elseif @combimode == 37 ; //* tempc = z1 / (z2 * z3 * z4) elseif @combimode == 38 ; /// tempc = z1 / (z2 * z3 * z4) else ; @combimode == 39 ; sin tempc = z1 endif ; @combimode1 else ; @combistyle == 2. Linear, left-to-right order of operations if @combimode < 20 if @combimode < 10 if @combimode == 0 ; + tempc = z1 + z2 elseif @combimode == 1 ; * tempc = z1 * z2 elseif @combimode == 2 ; / tempc = z1 / z2 elseif @combimode == 3 ; ++ tempc = z1 + z2 + z3 elseif @combimode == 4 ; +* tempc = z1 + z2 * z3 elseif @combimode == 5 ; +/ tempc = z1 + z2 / z3 elseif @combimode == 6 ; *+ tempc = z1 * z2 + z3 elseif @combimode == 7 ; ** tempc = z1 * z2 * z3 elseif @combimode == 8 ; */ tempc = z1 * z2 / z3 else ; @combimode == 9 ; /+ tempc = z1 / z2 + z3 endif ; @combimode3 elseif @combimode == 10 ; /* tempc = z1 / z2 * z3 elseif @combimode == 11 ; // tempc = z1 / z2 * z3 elseif @combimode == 12 ; +++ tempc = z1 + z2 + z3 + z4 elseif @combimode == 13 ; ++* tempc = z1 + z2 + z3 * z4 elseif @combimode == 14 ; +*+ tempc = z1 + z2 * z3 + z4 elseif @combimode == 15 ; *++ tempc = z1 * z2 + z3 + z4 elseif @combimode == 16 ; +** tempc = z1 + z2 * z3 * z4 elseif @combimode == 17 ; *+* tempc = z1 * z2 + z3 * z4 elseif @combimode == 18 ; **+ tempc = z1 * z2 * z3 + z4 else ; @combimode == 19 ; ++/ tempc = z1 + z2 + z3 / z4 endif ; @combimode2 elseif @combimode < 30 if @combimode == 20 ; +/+ tempc = z1 + z2 / z3 + z4 elseif @combimode == 21 ; /++ tempc = z1 / z2 + z3 + z4 elseif @combimode == 22 ; +// tempc = z1 + z2 / z3 * z4 elseif @combimode == 23 ; /+/ tempc = z1 / z2 + z3 / z4 elseif @combimode == 24 ; //+ tempc = z1 / z2 * z3 + z4 elseif @combimode == 25 ; +*/ tempc = z1 + z2 * z3 / z4 elseif @combimode == 26 ; +/* tempc = z1 + z2 / z3 * z4 elseif @combimode == 27 ; *+/ tempc = z1 * z2 + z3 / z4 elseif @combimode == 28 ; */+ tempc = z1 * z2 / z3 + z4 else ; @combimode == 29 ; /+* tempc = z1 / z2 + z3 * z4 endif ; @combimode2 elseif @combimode == 30 ; /*+ tempc = z1 / z2 * z3 + z4 elseif @combimode == 31 ; *** tempc = z1 * z2 * z3 * z4 elseif @combimode == 32 ; **/ tempc = z1 * z2 * z3 / z4 elseif @combimode == 33 ; */* tempc = z1 * z2 / z3 * z4 elseif @combimode == 34 ; /** tempc = z1 / z2 * z3 * z4 elseif @combimode == 35 ; *// tempc = z1 * z2 / z3 * z4 elseif @combimode == 36 ; /*/ tempc = z1 / z2 * z3 * z4 elseif @combimode == 37 ; //* tempc = z1 / z2 * z3 * z4 elseif @combimode == 38 ; /// tempc = z1 / (z2 * z3 * z4) else ; @combimode == 39 ; sin tempc = z1 endif ; @combimode1 endif ; @combistyle if @polar tempc = cabs(tempc) * exp( flip( zangle )) endif ; @polar zold = tempc ; Now transmute the trapped point of the trapping curve if desired tempc = @tiscale * tempc if @transmogrify != 0 if ( @transmogrify == 1 ) tempc = 1/tempc elseif ( @transmogrify == 2 ) tempc = tempc * tempc elseif ( @transmogrify == 3 ) tempc = 1 / ( tempc * tempc ) elseif ( @transmogrify == 4 ) tempc = log(tempc) elseif ( @transmogrify == 5 ) tempc = exp( tempc) elseif ( @transmogrify == 6 ) tempc = tempc^tempc elseif ( @transmogrify == 7 ) tempc = sin( tempc ) elseif ( @transmogrify == 8 ) tempc = cos( tempc ) elseif ( @transmogrify == 9 ) tempc = tan( tempc ) elseif ( @transmogrify == 10 ) tempc = asin( tempc ) elseif ( @transmogrify == 11 ) tempc = acos( tempc ) elseif ( @transmogrify == 12 ) tempc = atan( tempc ) elseif ( @transmogrify == 13 ) tempc = sinh( tempc ) elseif ( @transmogrify == 14 ) tempc = cosh( tempc ) elseif ( @transmogrify == 15 ) tempc = tanh( tempc ) elseif ( @transmogrify == 16 ) tempc = asinh( tempc ) elseif ( @transmogrify == 17 ) tempc = acosh( tempc ) elseif ( @transmogrify == 18 ) tempc = atanh( tempc ) elseif ( @transmogrify == 19 ) tempc = log( 1/tempc ) elseif ( @transmogrify == 20 ) tempc = log( log( tempc )) elseif ( @transmogrify == 21 ) tempc = exp( -tempc ) elseif ( @transmogrify == 22 ) tempc = exp( 1/tempc ) elseif ( @transmogrify == 23 ) tempc = tempc^(-tempc) elseif ( @transmogrify == 24 ) tempc = sin( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 25 ) tempc = cos( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 26 ) tempc = tan( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 27 ) tempc = cotan( tempc ) elseif ( @transmogrify == 28 ) tempc = 1/cos( tempc ) elseif ( @transmogrify == 29 ) tempc = 1/sin( tempc ) elseif ( @transmogrify == 30 ) tempc = cotan( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 31 ) tempc = 1/cos( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 32 ) tempc = 1/sin( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 33 ) tempc = tempc^(tempc) tempc = tempc^tempc elseif ( @transmogrify == 34 ) tempc = tempc^(tempc) tempc = 1/( tempc^tempc ) elseif ( @transmogrify == 35 ) tempc = log(-tempc) elseif ( @transmogrify == 36 ) tempc = 1/log( tempc ) elseif ( @transmogrify == 37 ) tempc = tempc * log( tempc ) elseif ( @transmogrify == 38 ) tempc = sin( tempc ) / tempc elseif ( @transmogrify == 39 ) tempc = cos( tempc ) / tempc elseif ( @transmogrify == 40 ) tempc = sin( tempc ) * cos( tempc ) elseif ( @transmogrify == 41 ) tempc = sin( tempc^2 ) elseif ( @transmogrify == 42 ) tempc = exp( -1/tempc ) elseif ( @transmogrify == 43 ) tempc = tempc * exp( tempc ) elseif ( @transmogrify == 44 ) tempc = tempc * exp( -tempc ) elseif ( @transmogrify == 45 ) tempc = tempc * exp( 1/tempc ) elseif ( @transmogrify == 46 ) tempc = tempc * exp( -1/tempc ) elseif ( @transmogrify == 47 ) tempc = tempc * tempc * tempc elseif ( @transmogrify == 48 ) tempc = 1 / ( tempc * tempc * tempc ) elseif ( @transmogrify == 49 ) tempc = atan( 1 / tempc ) elseif ( @transmogrify == 50 ) tempc = acos( 1 / tempc ) elseif ( @transmogrify == 51 ) tempc = asin( 1 / tempc ) elseif ( @transmogrify == 52 ) tempc = tan( tempc ) / tempc elseif ( @transmogrify == 53 ) tempc = cotan( tempc ) / tempc elseif ( @transmogrify == 54 ) tempc = 1 / ( tempc * cos( tempc )) elseif ( @transmogrify == 55 ) tempc = 1 / ( tempc * sin( tempc )) elseif ( @transmogrify == 56 ) tempc = tempc * sin( tempc ) elseif ( @transmogrify == 57 ) tempc = tempc * cos( tempc ) elseif ( @transmogrify == 58 ) tempc = tempc * tan( tempc ) elseif ( @transmogrify == 59 ) tempc = tempc * cotan( tempc ) elseif ( @transmogrify == 60 ) tempc = tempc/cos( tempc ) elseif ( @transmogrify == 61 ) tempc = tempc/sin( tempc ) elseif ( @transmogrify == 62 ) tempc = sin( 1/tempc ) elseif ( @transmogrify == 63 ) tempc = cos( 1/tempc ) elseif ( @transmogrify == 64 ) tempc = tan( 1/tempc ) elseif ( @transmogrify == 65 ) tempc = cotan( 1/tempc ) elseif ( @transmogrify == 66 ) tempc = 1/cos( 1/tempc ) elseif ( @transmogrify == 67 ) tempc = 1/sin( 1/tempc ) elseif ( @transmogrify == 68 ) tempc = cotanh( tempc ) elseif ( @transmogrify == 69 ) tempc = 1/cosh( tempc ) elseif ( @transmogrify == 70 ) tempc = 1/sinh( tempc ) elseif ( @transmogrify == 71 ) tempc = atanh( 1/tempc ) elseif ( @transmogrify == 72 ) tempc = acosh( 1/tempc ) elseif ( @transmogrify == 73 ) tempc = asinh( 1/tempc ) elseif @transmogrify == 74 tempc = tempc^@tpower elseif @transmogrify == 75 tempc = sinh(tempc) tempc = tempc * tempc elseif @transmogrify == 76 tempc = cosh( tempc ) tempc = tempc * tempc elseif @transmogrify == 77 tempc = tanh(tempc) tempc = tempc * tempc elseif @transmogrify == 78 tempc = cotanh( tempc ) tempc = tempc * tempc elseif @transmogrify == 79 tempc = 1/cosh(tempc) tempc = tempc * tempc elseif @transmogrify == 80 tempc = 1 / sinh( tempc ) tempc = tempc * tempc elseif @transmogrify == 81 tempc = sinh(1/tempc) elseif @transmogrify == 82 tempc = cosh(1/tempc) elseif @transmogrify == 83 tempc = tanh(1/tempc) elseif @transmogrify == 84 tempc = cotanh(1/tempc) elseif @transmogrify == 85 tempc = 1/cosh(1/tempc) elseif @transmogrify == 86 tempc = 1/sinh(1/tempc) elseif @transmogrify == 87 tempc = sin( tempc ) * tan(tempc) elseif @transmogrify == 88 tempc = sinh(tempc) * tanh(tempc) elseif @transmogrify == 89 tempc = sinh(tempc) * cosh(tempc) elseif @transmogrify == 90 zscratch = cosh(tempc) tempc = sinh(tempc) tempc = tempc*tempc*zscratch*zscratch elseif @transmogrify == 91 zscratch = cosh(tempc) tempc = sin(tempc) tempc = tempc*tempc*zscratch*zscratch elseif @transmogrify == 92 tempc = 1/tempc tempc = sin(tempc)*cos(tempc) elseif @transmogrify == 93 tempc = sin( 1/tempc ) tempc = tempc*tempc elseif @transmogrify == 94 tempc = sin(tempc) * cos(1/tempc) elseif @transmogrify == 95 tempc = sin(tempc) * sin(1/tempc) elseif @transmogrify == 96 tempc = log(tempc) tempc = tempc*tempc elseif @transmogrify == 97 tempc = sin(tempc) * sin(2*tempc) elseif @transmogrify == 98 tempc = exp(2*tempc) elseif @transmogrify == 99 tempc = exp(-2*tempc) elseif @transmogrify == 100 tempc = 1/tempc tempc = sinh(tempc)*cosh(tempc) elseif @transmogrify == 101 tempc = sinh( 1/tempc ) tempc = tempc*tempc elseif @transmogrify == 102 tempc = sinh(tempc) * cosh(1/tempc) elseif @transmogrify == 103 tempc = sinh(tempc) * sinh(1/tempc) elseif @transmogrify == 104 tempc = sin(tempc) * sinh(tempc) elseif @transmogrify == 105 tempc = sin(tempc) * cosh(tempc) elseif @transmogrify == 106 zscratch = cosh(tempc) tempc = sin(tempc) tempc = tempc*tempc*zscratch*zscratch elseif @transmogrify == 107 tempc = sin(tempc)*exp(tempc) elseif @transmogrify == 108 tempc = cos(tempc)*exp(tempc) elseif @transmogrify == 109 tempc = sinh(tempc)*exp(tempc) elseif @transmogrify == 110 tempc = cosh(tempc)*exp(tempc) elseif @transmogrify == 111 tempc = sin(tempc)*log(tempc) elseif @transmogrify == 112 tempc = cos(tempc)*log(tempc) elseif @transmogrify == 113 tempc = sinh(tempc)*log(tempc) else ; @transmogrify == 114 tempc = cosh(tempc)*log(tempc) endif ; transmogrify2 endif ; transmogrify1 if @trapperturb tempc = @trapblend * tempc + trapbcomp * zold endif ; @trapperturb ; Initialize back end real, back end imag, if desired temp2 = @rbscale * real(tempc) if ( @realback == 0 ) tempx = temp2 elseif ( @realback == 1 ) tempx = 1/temp2 elseif ( @realback == 2 ) tempx = temp2 * temp2 elseif ( @realback == 3 ) tempx = 1 / ( temp2 * temp2 ) elseif ( @realback == 4 ) tempx = log(temp2) elseif ( @realback == 5 ) tempx = exp( temp2) elseif ( @realback == 6 ) tempx = temp2^temp2 elseif ( @realback == 7 ) tempx = sin( temp2 ) elseif ( @realback == 8 ) tempx = cos( temp2 ) elseif ( @realback == 9 ) tempx = tan( temp2 ) elseif ( @realback == 10 ) tempx = asin( temp2 ) elseif ( @realback == 11 ) tempx = acos( temp2 ) elseif ( @realback == 12 ) tempx = atan( temp2 ) elseif ( @realback == 13 ) tempx = sinh( temp2 ) elseif ( @realback == 14 ) tempx = cosh( temp2 ) elseif ( @realback == 15 ) tempx = tanh( temp2 ) elseif ( @realback == 16 ) tempx = asinh( temp2 ) elseif ( @realback == 17 ) tempx = acosh( temp2 ) elseif ( @realback == 18 ) tempx = atanh( temp2 ) elseif ( @realback == 19 ) tempx = log( 1/temp2 ) elseif ( @realback == 20 ) tempx = log( log( temp2 )) elseif ( @realback == 21 ) tempx = exp( -temp2 ) elseif ( @realback == 22 ) tempx = exp( 1/temp2 ) elseif ( @realback == 23 ) tempx = temp2^(-temp2) elseif ( @realback == 24 ) tempx = sin( temp2 ) tempx = tempx * tempx elseif ( @realback == 25 ) tempx = cos( temp2 ) tempx = tempx * tempx elseif ( @realback == 26 ) tempx = tan( temp2 ) tempx = tempx * tempx elseif ( @realback == 27 ) tempx = cotan( temp2 ) elseif ( @realback == 28 ) tempx = 1/cos( temp2 ) elseif ( @realback == 29 ) tempx = 1/sin( temp2 ) elseif ( @realback == 30 ) tempx = cotan( temp2 ) tempx = tempx * tempx elseif ( @realback == 31 ) tempx = 1/cos( temp2 ) tempx = tempx * tempx elseif ( @realback == 32 ) tempx = 1/sin( temp2 ) tempx = tempx * tempx elseif ( @realback == 33 ) tempx = temp2^(temp2) tempx = temp2^tempx elseif ( @realback == 34 ) tempx = temp2^(temp2) tempx = 1/( temp2^tempx ) elseif ( @realback == 35 ) tempx = log(-temp2) elseif ( @realback == 36 ) tempx = 1/log( temp2 ) elseif ( @realback == 37 ) tempx = temp2 * log( temp2 ) elseif ( @realback == 38 ) tempx = sin( temp2 ) / temp2 elseif ( @realback == 39 ) tempx = cos( temp2 ) / temp2 elseif ( @realback == 40 ) tempx = sin( temp2 ) * cos( temp2 ) elseif ( @realback == 41 ) tempx = sin( temp2^2 ) elseif ( @realback == 42 ) tempx = exp( -1/temp2 ) elseif ( @realback == 43 ) tempx = temp2 * exp( temp2 ) elseif ( @realback == 44 ) tempx = temp2 * exp( -temp2 ) elseif ( @realback == 45 ) tempx = temp2 * exp( 1/temp2 ) elseif ( @realback == 46 ) tempx = temp2 * exp( -1/temp2 ) elseif ( @realback == 47 ) tempx = temp2 * temp2 * temp2 elseif ( @realback == 48 ) tempx = 1 / ( temp2 * temp2 * temp2 ) elseif ( @realback == 49 ) tempx = atan( 1 / temp2 ) elseif ( @realback == 50 ) tempx = acos( 1 / temp2 ) elseif ( @realback == 51 ) tempx = asin( 1 / temp2 ) elseif ( @realback == 52 ) tempx = tan( temp2 ) / temp2 elseif ( @realback == 53 ) tempx = cotan( temp2 ) / temp2 elseif ( @realback == 54 ) tempx = 1 / ( temp2 * cos( temp2 )) elseif ( @realback == 55 ) tempx = 1 / ( temp2 * sin( temp2 )) elseif ( @realback == 56 ) tempx = temp2 * sin( temp2 ) elseif ( @realback == 57 ) tempx = temp2 * cos( temp2 ) elseif ( @realback == 58 ) tempx = temp2 * tan( temp2 ) elseif ( @realback == 59 ) tempx = temp2 * cotan( temp2 ) elseif ( @realback == 60 ) tempx = temp2/cos( temp2 ) elseif ( @realback == 61 ) tempx = temp2/sin( temp2 ) elseif ( @realback == 62 ) tempx = sin( 1/temp2 ) elseif ( @realback == 63 ) tempx = cos( 1/temp2 ) elseif ( @realback == 64 ) tempx = tan( 1/temp2 ) elseif ( @realback == 65 ) tempx = cotan( 1/temp2 ) elseif ( @realback == 66 ) tempx = 1/cos( 1/temp2 ) elseif ( @realback == 67 ) tempx = 1/sin( 1/temp2 ) elseif ( @realback == 68 ) tempx = cotanh( temp2 ) elseif ( @realback == 69 ) tempx = 1/cosh( temp2 ) elseif ( @realback == 70 ) tempx = 1/sinh( temp2 ) elseif ( @realback == 71 ) tempx = atanh( 1/temp2 ) elseif ( @realback == 72 ) tempx = acosh( 1/temp2 ) elseif ( @realback == 73 ) tempx = asinh( 1/temp2 ) elseif @realback == 74 tempx = temp2^@rbpower elseif @realback == 75 tempx = sinh(temp2) tempx = tempx * tempx elseif @realback == 76 tempx = cosh( temp2 ) tempx = tempx * tempx elseif @realback == 77 tempx = tanh(temp2) tempx = tempx * tempx elseif @realback == 78 tempx = cotanh( temp2 ) tempx = tempx * tempx elseif @realback == 79 tempx = 1/cosh(temp2) tempx = tempx * tempx elseif @realback == 80 tempx = 1 / sinh( temp2 ) tempx = tempx * tempx elseif @realback == 81 tempx = sinh(1/temp2) elseif @realback == 82 tempx = cosh(1/temp2) elseif @realback == 83 tempx = tanh(1/temp2) elseif @realback == 84 tempx = cotanh(1/temp2) elseif @realback == 85 tempx = 1/cosh(1/temp2) elseif @realback == 86 tempx = 1/sinh(1/temp2) elseif @realback == 87 tempx = sin( temp2 ) * tan(temp2) elseif @realback == 88 tempx = sinh(temp2) * tanh(temp2) elseif @realback == 89 tempx = sinh(temp2) * cosh(temp2) elseif @realback == 90 tempx = sinh(temp2), temp = cosh(temp2) tempx = tempx*tempx*temp*temp elseif @realback == 91 tempx = sin(temp2), temp = cos(temp2) tempx = tempx*tempx*temp*temp elseif @realback == 92 tempx = 1/temp2 tempx = sin(tempx)*cos(tempx) elseif @realback == 93 tempx = sin( 1/temp2 ) tempx = tempx*tempx elseif @realback == 94 tempx = sin(temp2) * cos(1/temp2) elseif @realback == 95 tempx = sin(temp2) * sin(1/temp2) elseif @realback == 96 tempx = log(temp2) tempx = tempx*tempx elseif @realback == 97 tempx = sin(temp2) * sin(2*temp2) elseif @realback == 98 tempx = exp(2*temp2) elseif @realback == 99 tempx = exp(-2*temp2) elseif @realback == 100 tempx = 1/temp2 tempx = sinh(tempx)*cosh(tempx) elseif @realback == 101 tempx = sinh( 1/temp2 ) tempx = tempx*tempx elseif @realback == 102 tempx = sinh(temp2) * cosh(1/temp2) elseif @realback == 103 tempx = sinh(temp2) * sinh(1/temp2) elseif @realback == 104 tempx = sin(temp2) * sinh(temp2) elseif @realback == 105 tempx = sin(temp2) * cosh(temp2) elseif @realback == 106 tempx = sin(temp2), temp = sinh(temp2) tempx = tempx*tempx*temp*temp elseif @realback == 107 tempx = sin(temp2)*exp(temp2) elseif @realback == 108 tempx = cos(temp2)*exp(temp2) elseif @realback == 109 tempx = sinh(temp2)*exp(temp2) elseif @realback == 110 tempx = cosh(temp2)*exp(temp2) elseif @realback == 111 tempx = sin(temp2)*log(temp2) elseif @realback == 112 tempx = cos(temp2)*log(temp2) elseif @realback == 113 tempx = sinh(temp2)*log(temp2) else ; @realback == 114 tempx = cosh(temp2)*log(temp2) endif ; realback if @rbperturb tempx = @rbblend * tempx + rbbcomp * real(tempc) endif ; @rbperturb temp2 = @ibscale * imag(tempc) if ( @imagback == 0 ) tempy = temp2 elseif ( @imagback == 1 ) tempy = 1/temp2 elseif ( @imagback == 2 ) tempy = temp2 * temp2 elseif ( @imagback == 3 ) tempy = 1 / ( temp2 * temp2 ) elseif ( @imagback == 4 ) tempy = log(temp2) elseif ( @imagback == 5 ) tempy = exp( temp2) elseif ( @imagback == 6 ) tempy = temp2^temp2 elseif ( @imagback == 7 ) tempy = sin( temp2 ) elseif ( @imagback == 8 ) tempy = cos( temp2 ) elseif ( @imagback == 9 ) tempy = tan( temp2 ) elseif ( @imagback == 10 ) tempy = asin( temp2 ) elseif ( @imagback == 11 ) tempy = acos( temp2 ) elseif ( @imagback == 12 ) tempy = atan( temp2 ) elseif ( @imagback == 13 ) tempy = sinh( temp2 ) elseif ( @imagback == 14 ) tempy = cosh( temp2 ) elseif ( @imagback == 15 ) tempy = tanh( temp2 ) elseif ( @imagback == 16 ) tempy = asinh( temp2 ) elseif ( @imagback == 17 ) tempy = acosh( temp2 ) elseif ( @imagback == 18 ) tempy = atanh( temp2 ) elseif ( @imagback == 19 ) tempy = log( 1/temp2 ) elseif ( @imagback == 20 ) tempy = log( log( temp2 )) elseif ( @imagback == 21 ) tempy = exp( -temp2 ) elseif ( @imagback == 22 ) tempy = exp( 1/temp2 ) elseif ( @imagback == 23 ) tempy = temp2^(-temp2) elseif ( @imagback == 24 ) tempy = sin( temp2 ) tempy = tempy * tempy elseif ( @imagback == 25 ) tempy = cos( temp2 ) tempy = tempy * tempy elseif ( @imagback == 26 ) tempy = tan( temp2 ) tempy = tempy * tempy elseif ( @imagback == 27 ) tempy = cotan( temp2 ) elseif ( @imagback == 28 ) tempy = 1/cos( temp2 ) elseif ( @imagback == 29 ) tempy = 1/sin( temp2 ) elseif ( @imagback == 30 ) tempy = cotan( temp2 ) tempy = tempy * tempy elseif ( @imagback == 31 ) tempy = 1/cos( temp2 ) tempy = tempy * tempy elseif ( @imagback == 32 ) tempy = 1/sin( temp2 ) tempy = tempy * tempy elseif ( @imagback == 33 ) tempy = temp2^(temp2) tempy = temp2^tempy elseif ( @imagback == 34 ) tempy = temp2^(temp2) tempy = 1/( temp2^tempy ) elseif ( @imagback == 35 ) tempy = log(-temp2) elseif ( @imagback == 36 ) tempy = 1/log( temp2 ) elseif ( @imagback == 37 ) tempy = temp2 * log( temp2 ) elseif ( @imagback == 38 ) tempy = sin( temp2 ) / temp2 elseif ( @imagback == 39 ) tempy = cos( temp2 ) / temp2 elseif ( @imagback == 40 ) tempy = sin( temp2 ) * cos( temp2 ) elseif ( @imagback == 41 ) tempy = sin( temp2^2 ) elseif ( @imagback == 42 ) tempy = exp( -1/temp2 ) elseif ( @imagback == 43 ) tempy = temp2 * exp( temp2 ) elseif ( @imagback == 44 ) tempy = temp2 * exp( -temp2 ) elseif ( @imagback == 45 ) tempy = temp2 * exp( 1/temp2 ) elseif ( @imagback == 46 ) tempy = temp2 * exp( -1/temp2 ) elseif ( @imagback == 47 ) tempy = temp2 * temp2 * temp2 elseif ( @imagback == 48 ) tempy = 1 / ( temp2 * temp2 * temp2 ) elseif ( @imagback == 49 ) tempy = atan( 1 / temp2 ) elseif ( @imagback == 50 ) tempy = acos( 1 / temp2 ) elseif ( @imagback == 51 ) tempy = asin( 1 / temp2 ) elseif ( @imagback == 52 ) tempy = tan( temp2 ) / temp2 elseif ( @imagback == 53 ) tempy = cotan( temp2 ) / temp2 elseif ( @imagback == 54 ) tempy = 1 / ( temp2 * cos( temp2 )) elseif ( @imagback == 55 ) tempy = 1 / ( temp2 * sin( temp2 )) elseif ( @imagback == 56 ) tempy = temp2 * sin( temp2 ) elseif ( @imagback == 57 ) tempy = temp2 * cos( temp2 ) elseif ( @imagback == 58 ) tempy = temp2 * tan( temp2 ) elseif ( @imagback == 59 ) tempy = temp2 * cotan( temp2 ) elseif ( @imagback == 60 ) tempy = temp2/cos( temp2 ) elseif ( @imagback == 61 ) tempy = temp2/sin( temp2 ) elseif ( @imagback == 62 ) tempy = sin( 1/temp2 ) elseif ( @imagback == 63 ) tempy = cos( 1/temp2 ) elseif ( @imagback == 64 ) tempy = tan( 1/temp2 ) elseif ( @imagback == 65 ) tempy = cotan( 1/temp2 ) elseif ( @imagback == 66 ) tempy = 1/cos( 1/temp2 ) elseif ( @imagback == 67 ) tempy = 1/sin( 1/temp2 ) elseif ( @imagback == 68 ) tempy = cotanh( temp2 ) elseif ( @imagback == 69 ) tempy = 1/cosh( temp2 ) elseif ( @imagback == 70 ) tempy = 1/sinh( temp2 ) elseif ( @imagback == 71 ) tempy = atanh( 1/temp2 ) elseif ( @imagback == 72 ) tempy = acosh( 1/temp2 ) elseif ( @imagback == 73 ) tempy = asinh( 1/temp2 ) elseif @imagback == 74 tempy = temp2^@ibpower elseif @imagback == 75 tempy = sinh(temp2) tempy = tempy * tempy elseif @imagback == 76 tempy = cosh( temp2 ) tempy = tempy * tempy elseif @imagback == 77 tempy = tanh(temp2) tempy = tempy * tempy elseif @imagback == 78 tempy = cotanh( temp2 ) tempy = tempy * tempy elseif @imagback == 79 tempy = 1/cosh(temp2) tempy = tempy * tempy elseif @imagback == 80 tempy = 1 / sinh( temp2 ) tempy = tempy * tempy elseif @imagback == 81 tempy = sinh(1/temp2) elseif @imagback == 82 tempy = cosh(1/temp2) elseif @imagback == 83 tempy = tanh(1/temp2) elseif @imagback == 84 tempy = cotanh(1/temp2) elseif @imagback == 85 tempy = 1/cosh(1/temp2) elseif @imagback == 86 tempy = 1/sinh(1/temp2) elseif @imagback == 87 tempy = sin( temp2 ) * tan(temp2) elseif @imagback == 88 tempy = sinh(temp2) * tanh(temp2) elseif @imagback == 89 tempy = sinh(temp2) * cosh(temp2) elseif @imagback == 90 tempy = sinh(temp2), temp = cosh(temp2) tempy = tempy*tempy*temp*temp elseif @imagback == 91 tempy = sin(temp2), temp = cos(temp2) tempy = tempy*tempy*temp*temp elseif @imagback == 92 tempy = 1/temp2 tempy = sin(tempy)*cos(tempy) elseif @imagback == 93 tempy = sin( 1/temp2 ) tempy = tempy*tempy elseif @imagback == 94 tempy = sin(temp2) * cos(1/temp2) elseif @imagback == 95 tempy = sin(temp2) * sin(1/temp2) elseif @imagback == 96 tempy = log(temp2) tempy = tempy*tempy elseif @imagback == 97 tempy = sin(temp2) * sin(2*temp2) elseif @imagback == 98 tempy = exp(2*temp2) elseif @imagback == 99 tempy = exp(-2*temp2) elseif @imagback == 100 tempy = 1/temp2 tempy = sinh(tempy)*cosh(tempy) elseif @imagback == 101 tempy = sinh( 1/temp2 ) tempy = tempy*tempy elseif @imagback == 102 tempy = sinh(temp2) * cosh(1/temp2) elseif @imagback == 103 tempy = sinh(temp2) * sinh(1/temp2) elseif @imagback == 104 tempy = sin(temp2) * sinh(temp2) elseif @imagback == 105 tempy = sin(temp2) * cosh(temp2) elseif @imagback == 106 tempy = sin(temp2), temp = sinh(temp2) tempy = tempy*tempy*temp*temp elseif @imagback == 107 tempy = sin(temp2)*exp(temp2) elseif @imagback == 108 tempy = cos(temp2)*exp(temp2) elseif @imagback == 109 tempy = sinh(temp2)*exp(temp2) elseif @imagback == 110 tempy = cosh(temp2)*exp(temp2) elseif @imagback == 111 tempy = sin(temp2)*log(temp2) elseif @imagback == 112 tempy = cos(temp2)*log(temp2) elseif @imagback == 113 tempy = sinh(temp2)*log(temp2) else ; @imagback == 114 tempy = cosh(temp2)*log(temp2) endif ; imagback if @ibperturb tempy = @ibblend * tempy + ibbcomp * imag(tempc) endif ; @ibperturb tempc = tempx + flip(tempy) cangle = atan2( tempc ) if ( cangle < 0 ) cangle = cangle + twopi endif ; cangle if @twavy if @twavmode == 0 ; radial mode temp = cabs( tempc ) temp = temp + @twavamp * temp * sin( @twavfreq * cangle ) ; vary radius tempc = temp * exp( flip( cangle )) ; compute new tempc else ; tangential mode tempx = cabs( tempc ) temp = cangle + @twavamp * cangle * sin( @twavfreq * tempx ) ; vary azimuth tempc = tempx * exp( flip( temp )) ; compute new tempc cangle = temp endif ; @twavmode endif ; @twavy if @pointmode ; compare subsequent values to first trap point on trap graph if itrapped != 0 ; some point must have already been trapped tempc = ctrapped endif; itrapped endif ; @pointmode ; Save value for later turbulence tlast = tempc if @swapflavor zscratch = ztemp else zscratch = #z endif ; swapflavor if ( @trapmode == 0 ) ; distance test = cabs( ztemp - tempc ) elseif ( @trapmode == 1 ) ; angle test = zangle elseif ( @trapmode == 2 ) ; trap angle test = cangle elseif ( @trapmode == 3 ) ; difference angle test = abs( zangle - cangle ) elseif ( @trapmode == 4 ) ; magnitude test = cabs( ztemp ) elseif ( @trapmode == 5 ) ; trap magnitude test = cabs( tempc ) elseif ( @trapmode == 6 ) ; real test = abs( real( ztemp )) elseif ( @trapmode == 7 ) ; imaginary test = abs( imag( ztemp )) elseif ( @trapmode == 8 ) ; trap real test = abs( real( tempc )) elseif ( @trapmode == 9 ) ; trap imaginary test = abs( imag( tempc )) elseif ( @trapmode == 10 ) ; sum test = cabs( zscratch + tempc ) elseif ( @trapmode == 11 ) ; difference test = cabs( zscratch - tempc) elseif ( @trapmode == 12 ) ; product test = cabs( zscratch * tempc ) elseif ( @trapmode == 13 ) ; quotient 1 test = cabs( zscratch / tempc ) elseif ( @trapmode == 14 ) ; quotient 2 test = cabs( tempc / zscratch ) elseif ( @trapmode == 15 ) ; power 1 test = cabs( zscratch ^ tempc ) elseif ( @trapmode == 16 ) ; power 2 test = cabs( tempc ^ zscratch ) elseif ( @trapmode == 17 ) ; arithmetic mean test = cabs( (zscratch + tempc)/2 ) elseif ( @trapmode == 18 ) ; geometric mean test = cabs( sqrt( zscratch * tempc )) elseif ( @trapmode == 19 ) ; angle 2 test = atan2( zscratch - tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 20 ) ; angle 3 test = atan2( zscratch + tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 21 ) ; angle 4 test = atan2( zscratch * tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 22 ) ; angle 5 test = atan2( zscratch / tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 23 ) ; angle 6 test = atan2( tempc / zscratch ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 24 ) ; angle 7 test = atan2( zscratch ^ tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 25 ) ; angle 8 test = atan2( tempc ^ zscratch ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 26 ) ; real 2 test = abs( real( zscratch - tempc )) elseif ( @trapmode == 27 ) ; real 3 test = abs( real( zscratch + tempc )) elseif ( @trapmode == 28 ) ; real 4 test = abs( real( zscratch * tempc )) elseif ( @trapmode == 29 ) ; real 5 test = abs( real( zscratch / tempc )) elseif ( @trapmode == 30 ) ; real 6 test = abs( real( tempc / zscratch )) elseif ( @trapmode == 31 ) ; real 7 test = abs( real( zscratch ^ tempc )) elseif ( @trapmode == 32 ) ; real 8 test = abs( real( tempc ^ zscratch )) elseif ( @trapmode == 33 ) ; imag 2 test = abs( imag( zscratch - tempc )) elseif ( @trapmode == 34 ) ; imag 3 test = abs( imag( zscratch + tempc )) elseif ( @trapmode == 35 ) ; imag 4 test = abs( imag( zscratch * tempc )) elseif ( @trapmode == 36 ) ; imag 5 test = abs( imag( zscratch / tempc )) elseif ( @trapmode == 37 ) ; imag 6 test = abs( imag( tempc / zscratch )) elseif ( @trapmode == 38 ) ; imag 7 test = abs( imag( zscratch ^ tempc )) elseif ( @trapmode == 39 ) ; imag 8 test = abs( imag( tempc ^ zscratch )) endif ; trapmode if ( @whattotrap == 0 ) ; minimum if ( test < trapped1 ) trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 1 ) ; maximum if ( test > trapped1 ) trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 2 ) ; 2nd minimum if ( test < trapped1 ) trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 3 ) ; 3rd minimum if ( test < trapped1 ) trapped3 = trapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, catrapped3 = catrapped2 ztrapped3 = ztrapped2, zttrapped3 = zttrapped2, ctrapped3 = ctrapped2 trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 4 ) ; 4th minimum if ( test < trapped1 ) trapped4 = trapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, catrapped4 = catrapped3 ztrapped4 = ztrapped3, zttrapped4 = zttrapped3, ctrapped4 = ctrapped3 trapped3 = trapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, catrapped3 = catrapped2 ztrapped3 = ztrapped2, zttrapped3 = zttrapped2, ctrapped3 = ctrapped2 trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 5 ) ; 2nd maximum if ( test > trapped1 ) trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 6 ) ; 3rd maximum if ( test > trapped1 ) trapped3 = trapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, catrapped3 = catrapped2 ztrapped3 = ztrapped2, zttrapped3 = zttrapped2, ctrapped3 = ctrapped2 trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 7 ) ; 4th maximum if ( test > trapped1 ) trapped4 = trapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, catrapped4 = catrapped3 ztrapped4 = ztrapped3, zttrapped4 = zttrapped3, ctrapped4 = ctrapped3 trapped3 = trapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, catrapped3 = catrapped2 ztrapped3 = ztrapped2, zttrapped3 = zttrapped2, ctrapped3 = ctrapped2 trapped2 = trapped1, itrapped2 = itrapped, zatrapped2 = zatrapped, catrapped2 = catrapped ztrapped2 = ztrapped, zttrapped2 = zttrapped, ctrapped2 = ctrapped trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; test elseif ( @whattotrap == 8 ) ; 1st to dip below threshold value if ( itrapped == 0 ) ; nothing trapped yet if ( test < thresh ) if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc elseif test > innerradius trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc endif ; ringstyle endif ; ztest endif ; itrapped elseif ( @whattotrap == 9 ) ; last to dip below threshold --- just store them all if ( test < thresh ) if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE elseif test > innerradius trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; ringstyle endif ; ztest elseif ( @whattotrap == 10 ) ; count dips below threshold --- store the last if ( test < thresh ) count = count + 1 if !@ringstyle trapped1 = count * test, itrapped = count * iter zatrapped = count * zangle, catrapped = count * cangle ztrapped = count * #z, zttrapped = count * ztemp ctrapped = count * tempc, trapped = TRUE elseif test > innerradius trapped1 = count * test, itrapped = count * iter zatrapped = count * zangle, catrapped = count * cangle ztrapped = count * #z, zttrapped = count * ztemp ctrapped = count * tempc, trapped = TRUE endif ; ringstyle endif ; ztest elseif ( @whattotrap == 11 ) ; 2nd to dip below threshold value if ( test < thresh ) if ( itrapped == 0 ) ; nothing trapped yet, set flag for next time itrapped = -1, trapped = TRUE elseif itrapped == -1 ; must be the 2nd threshold value if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc elseif test > innerradius trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc endif ; ringstyle endif ; itrapped endif ; test elseif ( @whattotrap == 12 ) ; 1st to exceed threshold limit if ( itrapped == 0 ) ; nothing trapped yet if ( test > thresh ) if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc elseif test < innerradius ; really an outer radius for limits trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc endif ; ringstyle endif ; ztest endif ; itrapped elseif ( @whattotrap == 13 ) ; 2nd to exceed threshold limit if ( test > thresh ) if ( itrapped == 0 ) ; nothing trapped yet, set flag for next time itrapped = -1, trapped = TRUE elseif itrapped == -1 ; must be the 2nd threshold value if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc elseif test < innerradius ; really an outer radius trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc endif ; ringstyle endif ; itrapped endif ; test elseif ( @whattotrap == 14 ) ; last to exceed threshold --- just store them all if ( test > thresh ) if !@ringstyle trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE elseif test < innerradius ; really an outer radius for limits trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE endif ; ringstyle endif ; ztest elseif @whattotrap > 14 ; maximum/minimum combos; need to find & store both ; trapped2 will hold he max, trapped1 the min if test < trapped1 ; is it a new min? trapped1 = test, itrapped = iter, zatrapped = zangle, catrapped = cangle ztrapped = #z, zttrapped = ztemp, ctrapped = tempc, trapped = TRUE elseif test > trapped2 ; is it a new max? trapped2 = test, itrapped2 = iter, zatrapped2 = zangle, catrapped2 = cangle ztrapped2 = #z, zttrapped2 = ztemp, ctrapped2 = tempc, trapped = TRUE endif ; test endif ; whattotrap if ( @varymode == 0 ) ; feedback only on iterations where something was trapped vary = trapped elseif ( @varymode == 1 ) ; feedback when nothing was trapped vary = !trapped else ; feedback on each iteration, if enabled for a given parameter vary = TRUE endif ; varymode trapped = FALSE ; reset flag for next iteration if vary ; vary chosen parameter if set float value = 0.0 if @oldstyle value = cabs(ctrapped) sign = real(ctrapped)/abs(real(ctrapped)) else value = cabs(ztemp) sign = real(ztemp)/abs(real(ztemp)) endif ; oldstyle if @varyrotation rotation = rotation + rotationstep * rotation * value * sign endif ; varyrotation if @varyscale scale = scale + scalestep * scale * value * sign endif ; varyscale if @varythresh thresh = thresh + threshstep * thresh * value * sign if @ringstyle if @whattotrap < 12 innerradius = thresh - rwidth else innerradius = thresh + rwidth endif ; whattotrap endif ; ringstyle endif ; varythresh if @varyrwidth rwidth = rwidth + ringstep * rwidth * value * sign if @whattotrap < 12 innerradius = thresh - rwidth else innerradius = thresh + rwidth endif ; whattotrap endif ; varyrwidth if @varyspread spread = spread + spreadstep * spread * value * sign endif ; varyspread if @varycenter tempx = real(center) + centerstep * real(center) * value * sign tempy = imag(center) + centerstep * imag(center) * value * sign center = tempx + flip( tempy ) endif ; varycenter if @varyturb turbulamount = turbulamount + turbstep * turbulamount * value * sign endif ; varyturb endif ; vary endif ; iter final: if ( itrapped != 0 ) ; something has been trapped if (( @whattotrap == 2 ) || ( @whattotrap == 5 )) ; we need to swap some values ; so we will plot the right thing trapped1 = trapped2, itrapped = itrapped2, zatrapped = zatrapped2, catrapped = catrapped2 ztrapped = ztrapped2, zttrapped = zttrapped2, ctrapped = ctrapped2 elseif (( @whattotrap == 3 ) || ( @whattotrap == 6 )) trapped1 = trapped3, itrapped = itrapped3, zatrapped = zatrapped3, catrapped = catrapped3 ztrapped = ztrapped3, zttrapped = zttrapped3, ctrapped = ctrapped3 elseif (( @whattotrap == 4 ) || ( @whattotrap == 7 )) trapped1 = trapped4, itrapped = itrapped4, zatrapped = zatrapped4, catrapped = catrapped4 ztrapped = ztrapped4, zttrapped = zttrapped4, ctrapped = ctrapped4 elseif @whattotrap == 15 ; max-min trapped1 = trapped2-trapped1, itrapped = itrapped2-itrapped zatrapped = zatrapped2-zatrapped, catrapped = catrapped2-catrapped ztrapped = ztrapped2-ztrapped, zttrapped = zttrapped2-zttrapped ctrapped = ctrapped2-ctrapped elseif @whattotrap == 16 ; max+min trapped1 = trapped2+trapped1, itrapped = itrapped2+itrapped zatrapped = zatrapped2+zatrapped, catrapped = catrapped2+catrapped ztrapped = ztrapped2+ztrapped, zttrapped = zttrapped2+zttrapped ctrapped = ctrapped2+ctrapped elseif @whattotrap == 17 ; max*min trapped1 = trapped2*trapped1, itrapped = itrapped2*itrapped zatrapped = zatrapped2*zatrapped, catrapped = catrapped2*catrapped ztrapped = ztrapped2*ztrapped, zttrapped = zttrapped2*zttrapped ctrapped = ctrapped2*ctrapped elseif @whattotrap == 18 ; max/min trapped1 = trapped2/trapped1, itrapped = round(itrapped2/itrapped) zatrapped = zatrapped2/zatrapped, catrapped = catrapped2/catrapped ztrapped = ztrapped2/ztrapped, zttrapped = zttrapped2/zttrapped ctrapped = ctrapped2/ctrapped elseif @whattotrap == 19 ; max^min trapped1 = trapped2^trapped1, itrapped = round(itrapped2^itrapped) zatrapped = zatrapped2^zatrapped, catrapped = catrapped2^catrapped ztrapped = ztrapped2^ztrapped, zttrapped = zttrapped2^zttrapped ctrapped = ctrapped2^ctrapped elseif @whattotrap == 20 ; min-max trapped1 = trapped1-trapped2, itrapped = itrapped-itrapped2 zatrapped = zatrapped-zatrapped2, catrapped = catrapped-catrapped2 ztrapped = ztrapped-ztrapped2, zttrapped = zttrapped-zttrapped2 ctrapped = ctrapped-ctrapped2 elseif @whattotrap == 21 ; min/max trapped1 = trapped1/trapped2, itrapped = round(itrapped/itrapped2) zatrapped = zatrapped/zatrapped2, catrapped = catrapped/catrapped2 ztrapped = ztrapped/ztrapped2, zttrapped = zttrapped/zttrapped2 ctrapped = ctrapped/ctrapped2 elseif @whattotrap == 22 ; min^max trapped1 = trapped1^trapped2, itrapped = round(itrapped^itrapped2) zatrapped = zatrapped^zatrapped2, catrapped = catrapped^catrapped2 ztrapped = ztrapped^ztrapped2, zttrapped = zttrapped^zttrapped2 ctrapped = ctrapped^ctrapped2 elseif @whattotrap == 23 ; average: (max+min)/2 trapped1 = (trapped1+trapped2)/2, itrapped = trunc((itrapped+itrapped2)/2) zatrapped = (zatrapped+zatrapped2)/2, catrapped = (catrapped+catrapped2)/2 ztrapped = (ztrapped+ztrapped2)/2, zttrapped = (zttrapped+zttrapped2)/2 ctrapped = (ctrapped+ctrapped2)/2 endif ; whattotrap ; Figure amount of 'random' turbulence if @turb1 || @turb2 || @turb3 || @turb4 || @turb5 || @turb6 float ca1 = float ca2 = float ca3 = float ca4 = float ca5 = float ca6 = 0.0 zinput = tlast*zlast*#random temp = cabs(zinput) if round(719*temp) % 2 == 0 ; 'random' sign sign = 1 else sign = -1 endif ; round if @turb1 ; product1 ca1 = turbulamount * 0.1 * sign * ((real(tlast)*real(tlast))/|tlast|) \ * ((real(zlast)*real(zlast))/|zlast|) endif ; turb1 if @turb2 ; random ca2 = turbulamount * 0.1 * sign * real(#random) endif ; turb2 if @turb3 ; fBm --- adapted from formulas of dmj, mt, and others complex br = (0,1) ^ (@bangle / 90.0) complex br2 = (0,1) ^ (@banglestep / 90.0) complex bp = zlast * @bscale * br float bsum = 0.0 float bfreq = 1.0 int bi = @boctaves while (bi > 0) float bx0 = floor(real(bp)) % 256 float by0 = floor(imag(bp)) % 256 if bx0 < 0 bx0 = bx0 + 256 endif ; bx0 if by0 < 0 by0 = by0 + 256 endif ; by0 float bx1 = (bx0 + 1) % 256 float by1 = (by0 + 1) % 256 float rx0 = real(bp) - floor(real(bp)) float ry0 = imag(bp) - floor(imag(bp)) float rx1 = rx0 - 1 float ry1 = ry0 - 1 float b00 = (bx0^@bpower % 65536 + by0)^@bpower % 65536 float b10 = (bx1^@bpower % 65536 + by0)^@bpower % 65536 float b01 = (bx0^@bpower % 65536 + by1)^@bpower % 65536 float b11 = (bx1^@bpower % 65536 + by1)^@bpower % 65536 float g_b00_0 = (b00)^@bpower*0.25 % 512 - 256 float g_b10_0 = (b10)^@bpower*0.25 % 512 - 256 float g_b01_0 = (b01)^@bpower*0.25 % 512 - 256 float g_b11_0 = (b11)^@bpower*0.25 % 512 - 256 float g_b00_1 = (b00+1)^@bpower*0.25 % 512 - 256 float g_b10_1 = (b10+1)^@bpower*0.25 % 512 - 256 float g_b01_1 = (b01+1)^@bpower*0.25 % 512 - 256 float g_b11_1 = (b11+1)^@bpower*0.25 % 512 - 256 float bd = 0.0 bd = 1 / sqrt(sqr(g_b00_0) + sqr(g_b00_1)) g_b00_0 = g_b00_0 * bd g_b00_1 = g_b00_1 * bd bd = 1 / sqrt(sqr(g_b10_0) + sqr(g_b10_1)) g_b10_0 = g_b10_0 * bd g_b10_1 = g_b10_1 * bd bd = 1 / sqrt(sqr(g_b01_0) + sqr(g_b01_1)) g_b01_0 = g_b01_0 * bd g_b01_1 = g_b01_1 * bd bd = 1 / sqrt(sqr(g_b11_0) + sqr(g_b11_1)) g_b11_0 = g_b11_0 * bd g_b11_1 = g_b11_1 * bd float u1 = rx0 * g_b00_0 + ry0 * g_b00_1 float v1 = rx1 * g_b10_0 + ry0 * g_b10_1 float u2 = rx0 * g_b01_0 + ry1 * g_b01_1 float v2 = rx1 * g_b11_0 + ry1 * g_b11_1 float sx = sqr(rx0) * (3 - rx0*2) float sy = sqr(ry0) * (3 - ry0*2) float ba = u1 + sx*(v1-u1) float bb = u2 + sx*(v2-u2) bsum = bsum + (ba + sy*(bb-ba))* bfreq bfreq = bfreq * @bstep bp = bp * br2 / @bstep bi = bi - 1 endwhile ; bi ca3 = turbulamount * (bsum + 1) * 0.5 endif ; turb3 if @turb4 ; sin ca4 = turbulamount * 0.1 * sign * ((sin(817*real(zinput))+1)/2) endif ; turb4 if @turb5 ; log ca5 = turbulamount * 0.1 * sign * log(((temp-trunc(temp))*(#e-1))+1) endif ; turb5 if @turb6 ; vectors tempx = trunc(real(zinput)), tempy = trunc(imag(zinput)) float tempx1 = tempx + 1, float tempy1 = tempy + 1 complex t00 = tempx + flip(tempy), complex t10 = tempx1 + flip(tempy) complex t01 = tempx + flip(tempy1), complex t11 = tempx1 + flip(tempy1) tempx = trunc(real(zlast)), tempy = trunc(imag(zlast)) tempx1 = tempx + 1, tempy1 = tempy + 1 complex z00 = tempx + flip(tempy), complex z10 = tempx1 + flip(tempy) complex z01 = tempx + flip(tempy1), complex z11 = tempx1 + flip(tempy1) if real(tlast) >= 0 ; + if imag(tlast) >= 0 ; + if real(zlast) >= 0 ; + if imag(zlast) >= 0 ; + temp = cabs(z00-t00) else ; - temp = cabs(z00-t10) endif else ; - if imag(zlast) >= 0 ; + temp = cabs(z00-t01) else ; - temp = cabs(z00-t11) endif endif else ; - if real(zlast) >= 0 ; + if imag(zlast) >= 0 ; + temp = cabs(z01-t00) else ; - temp = cabs(z01-t10) endif else ; - if imag(zlast) >= 0 ; + temp = cabs(z01-t01) else ; - temp = cabs(z01-t11) endif endif endif else ; - if imag(tlast) >= 0 ; + if real(zlast) >= 0 ; + if imag(zlast) >= 0 ; + temp = cabs(z10-t00) else ; - temp = cabs(z10-t10) endif else ; - if imag(zlast) >= 0 ; + temp = cabs(z10-t01) else ; - temp = cabs(z10-t11) endif endif else ; - if real(zlast) >= 0 ; + if imag(zlast) >= 0 ; + temp = cabs(z11-t00) else ; - temp = cabs(z11-t10) endif else ; - if imag(zlast) >= 0 ; + temp = cabs(z11-t01) else ; - temp = cabs(z11-t11) endif endif endif endif ca6 = turbulamount * 0.1 * sign * temp/cabs(zlast-tlast) endif ; turb6 _coloradjust = ca1 + ca2 + ca3 + ca4 + ca5 + ca6 endif ; turb1 || turb2... if ( @colorby == 0 ) ; distance temp = cabs( zttrapped - ctrapped ) if @mask if temp < @maskthresh #solid = TRUE else _color = 3.0 * spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = 3.0 * spread * temp endif ; temp else _color = 3.0 * spread * temp endif ; @mask elseif ( @colorby == 1 ) ; iteration if @mask if itrapped < @maskthresh #solid = TRUE else _color = 0.3 * spread * itrapped endif ; temp elseif @revmask if itrapped > @maskthresh #solid = TRUE else _color = 0.3 * spread * itrapped endif ; temp else _color = 0.3 * spread * itrapped endif ; @mask elseif ( @colorby == 2 ) ; magnitude temp = cabs( ztrapped) if @mask if temp < @maskthresh #solid = TRUE else _color = 0.25 * spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = 0.25 * spread * temp endif ; temp else _color = 0.25 * spread * temp endif ; @mask elseif ( @colorby == 3 ) ; test if @mask if trapped1 < @maskthresh #solid = TRUE else _color = spread * trapped1 endif ; trapped1 elseif @revmask if trapped1 > @maskthresh #solid = TRUE else _color = spread * trapped1 endif ; trapped1 else _color = spread * trapped1 endif ; @mask elseif ( @colorby == 4 ) ; trap magnitude temp = cabs(ctrapped) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 5 ) ; angle temp = atan2( ztrapped ) if ( temp < 0 ) temp = temp + twopi endif ; temp if @mask if temp < @maskthresh #solid = TRUE else _color = ( spread * temp ) / twopi endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = ( spread * temp ) / twopi endif ; temp else _color = ( spread * temp ) / twopi endif ; @mask elseif ( @colorby == 6 ) ; trap angle if @mask if catrapped < @maskthresh #solid = TRUE else _color = ( spread * catrapped ) / twopi endif ; catrapped elseif @revmask if catrapped > @maskthresh #solid = TRUE else _color = ( spread * catrapped ) / twopi endif ; catrapped else _color = ( spread * catrapped ) / twopi endif ; @mask elseif ( @colorby == 7 ) ; modulated magnitude temp = cabs(zttrapped) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 8 ) ; modulated angle if @mask if zatrapped < @maskthresh #solid = TRUE else _color = ( spread * zatrapped ) / twopi endif ; zatrapped elseif @revmask if zatrapped > @maskthresh #solid = TRUE else _color = ( spread * zatrapped ) / twopi endif ; zatrapped else _color = ( spread * zatrapped ) / twopi endif ; @mask elseif ( @colorby == 9 ) ; real temp = abs( real( ztrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 10 ) ; trap real temp = abs( real( ctrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 11 ) ; modulated real temp = abs( real( zttrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 12 ) ; imaginary temp = abs( imag( ztrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 13 ) ; trap imaginary temp = abs( imag( ctrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 14 ) ; modulated imaginary temp = abs( imag( zttrapped )) if @mask if temp < @maskthresh #solid = TRUE else _color = spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = spread * temp endif ; temp else _color = spread * temp endif ; @mask elseif ( @colorby == 15 ) ; raw distance (distance to #z, not ztemp) temp = cabs( ztrapped - ctrapped ) if @mask if temp < @maskthresh #solid = TRUE else _color = 3.0 * spread * temp endif ; temp elseif @revmask if temp > @maskthresh #solid = TRUE else _color = 3.0 * spread * temp endif ; temp else _color = 3.0 * spread * temp endif ; @mask endif ; _colorby if @ranges == 1 _color = _color + _coloradjust else if !@hideranges _color = ((_color + _coloradjust) + (itrapped % @ranges) ) / @ranges else temp = itrapped % @ranges if temp != @showrange #solid = TRUE else _color = ((_color + _coloradjust) + temp ) / @ranges endif ; temp endif ; hideranges endif ; ranges if ( @colorwarp == 0 ) temp = _color elseif ( @colorwarp == 1 ) temp = 1/_color elseif ( @colorwarp == 2 ) temp = _color * _color elseif ( @colorwarp == 3 ) temp = 1 / ( _color * _color ) elseif ( @colorwarp == 4 ) temp = log(_color) elseif ( @colorwarp == 5 ) temp = exp( _color) elseif ( @colorwarp == 6 ) temp = _color^_color elseif ( @colorwarp == 7 ) temp = sin( _color ) elseif ( @colorwarp == 8 ) temp = cos( _color ) elseif ( @colorwarp == 9 ) temp = tan( _color ) elseif ( @colorwarp == 10 ) temp = asin( _color ) elseif ( @colorwarp == 11 ) temp = acos( _color ) elseif ( @colorwarp == 12 ) temp = atan( _color ) elseif ( @colorwarp == 13 ) temp = sinh( _color ) elseif ( @colorwarp == 14 ) temp = cosh( _color ) elseif ( @colorwarp == 15 ) temp = tanh( _color ) elseif ( @colorwarp == 16 ) temp = asinh( _color ) elseif ( @colorwarp == 17 ) temp = acosh( _color ) elseif ( @colorwarp == 18 ) temp = atanh( _color ) elseif ( @colorwarp == 19 ) temp = log( 1/_color ) elseif ( @colorwarp == 20 ) temp = log( log( _color )) elseif ( @colorwarp == 21 ) temp = exp( -_color ) elseif ( @colorwarp == 22 ) temp = exp( 1/_color ) elseif ( @colorwarp == 23 ) temp = _color^(-_color) elseif ( @colorwarp == 24 ) temp = sin( _color ) temp = temp * temp elseif ( @colorwarp == 25 ) temp = cos( _color ) temp = temp * temp elseif ( @colorwarp == 26 ) temp = tan( _color ) temp = temp * temp elseif ( @colorwarp == 27 ) temp = cotan( _color ) elseif ( @colorwarp == 28 ) temp = 1/cos( _color ) elseif ( @colorwarp == 29 ) temp = 1/sin( _color ) elseif ( @colorwarp == 30 ) temp = cotan( _color ) temp = temp * temp elseif ( @colorwarp == 31 ) temp = 1/cos( _color ) temp = temp * temp elseif ( @colorwarp == 32 ) temp = 1/sin( _color ) temp = temp * temp elseif ( @colorwarp == 33 ) temp = _color^(_color) temp = _color^temp elseif ( @colorwarp == 34 ) temp = _color^(_color) temp = 1/( _color^temp ) elseif ( @colorwarp == 35 ) temp = log(-_color) elseif ( @colorwarp == 36 ) temp = 1/log( _color ) elseif ( @colorwarp == 37 ) temp = _color * log( _color ) elseif ( @colorwarp == 38 ) temp = sin( _color ) / _color elseif ( @colorwarp == 39 ) temp = cos( _color ) / _color elseif ( @colorwarp == 40 ) temp = sin( _color ) * cos( _color ) elseif ( @colorwarp == 41 ) temp = sin( _color^2 ) elseif ( @colorwarp == 42 ) temp = exp( -1/_color ) elseif ( @colorwarp == 43 ) temp = _color * exp( _color ) elseif ( @colorwarp == 44 ) temp = _color * exp( -_color ) elseif ( @colorwarp == 45 ) temp = _color * exp( 1/_color ) elseif ( @colorwarp == 46 ) temp = _color * exp( -1/_color ) elseif ( @colorwarp == 47 ) temp = _color * _color * _color elseif ( @colorwarp == 48 ) temp = 1 / ( _color * _color * _color ) elseif ( @colorwarp == 49 ) temp = atan( 1 / _color ) elseif ( @colorwarp == 50 ) temp = acos( 1 / _color ) elseif ( @colorwarp == 51 ) temp = asin( 1 / _color ) elseif ( @colorwarp == 52 ) temp = tan( _color ) / _color elseif ( @colorwarp == 53 ) temp = cotan( _color ) / _color elseif ( @colorwarp == 54 ) temp = 1 / ( _color * cos( _color )) elseif ( @colorwarp == 55 ) temp = 1 / ( _color * sin( _color )) elseif ( @colorwarp == 56 ) temp = _color * sin( _color ) elseif ( @colorwarp == 57 ) temp = _color * cos( _color ) elseif ( @colorwarp == 58 ) temp = _color * tan( _color ) elseif ( @colorwarp == 59 ) temp = _color * cotan( _color ) elseif ( @colorwarp == 60 ) temp = _color/cos( _color ) elseif ( @colorwarp == 61 ) temp = _color/sin( _color ) elseif ( @colorwarp == 62 ) temp = sin( 1/_color ) elseif ( @colorwarp == 63 ) temp = cos( 1/_color ) elseif ( @colorwarp == 64 ) temp = tan( 1/_color ) elseif ( @colorwarp == 65 ) temp = cotan( 1/_color ) elseif ( @colorwarp == 66 ) temp = 1/cos( 1/_color ) elseif ( @colorwarp == 67 ) temp = 1/sin( 1/_color ) elseif ( @colorwarp == 68 ) temp = cotanh( _color ) elseif ( @colorwarp == 69 ) temp = 1/cosh( _color ) elseif ( @colorwarp == 70 ) temp = 1/sinh( _color ) elseif ( @colorwarp == 71 ) temp = atanh( 1/_color ) elseif ( @colorwarp == 72 ) temp = acosh( 1/_color ) elseif ( @colorwarp == 73 ) temp = asinh( 1/_color ) elseif @colorwarp == 74 temp = _color^@cpower elseif @colorwarp == 75 temp = sinh(_color) temp = temp * temp elseif @colorwarp == 76 temp = cosh( _color ) temp = temp * temp elseif @colorwarp == 77 temp = tanh(_color) temp = temp * temp elseif @colorwarp == 78 temp = cotanh( _color ) temp = temp * temp elseif @colorwarp == 79 temp = 1/cosh(_color) temp = temp * temp elseif @colorwarp == 80 temp = 1 / sinh( _color ) temp = temp * temp elseif @colorwarp == 81 temp = sinh(1/_color) elseif @colorwarp == 82 temp = cosh(1/_color) elseif @colorwarp == 83 temp = tanh(1/_color) elseif @colorwarp == 84 temp = cotanh(1/_color) elseif @colorwarp == 85 temp = 1/cosh(1/_color) elseif @colorwarp == 86 temp = 1/sinh(1/_color) elseif @colorwarp == 87 temp = sin( _color ) * tan(_color) elseif @colorwarp == 88 temp = sinh(_color) * tanh(_color) elseif @colorwarp == 89 temp = sinh(_color) * cosh(_color) elseif @colorwarp == 90 temp = sinh(_color), tempx = cosh(_color) temp = temp*temp*tempx*tempx elseif @colorwarp == 91 temp = sin(_color), tempx = cos(_color) temp = temp*temp*tempx*tempx elseif @colorwarp == 92 temp = 1/_color temp = sin(temp)*cos(temp) elseif @colorwarp == 93 temp = sin( 1/_color ) temp = temp*temp elseif @colorwarp == 94 temp = sin(_color) * cos(1/_color) elseif @colorwarp == 95 temp = sin(_color) * sin(1/_color) elseif @colorwarp == 96 temp = log(_color) temp = temp*temp elseif @colorwarp == 97 temp = sin(_color) * sin(2*_color) elseif @colorwarp == 98 temp = exp(2*_color) elseif @colorwarp == 99 temp = exp(-2*_color) elseif @colorwarp == 100 temp = 1/_color temp = sinh(temp)*cosh(temp) elseif @colorwarp == 101 temp = sinh( 1/_color ) temp = temp*temp elseif @colorwarp == 102 temp = sinh(_color) * cosh(1/_color) elseif @colorwarp == 103 temp = sinh(_color) * sinh(1/_color) elseif @colorwarp == 104 temp = sin(_color) * sinh(_color) elseif @colorwarp == 105 temp = sin(_color) * cosh(_color) elseif @colorwarp == 106 temp = sin(_color), tempx = sinh(_color) temp = temp*temp*tempx*tempx elseif @colorwarp == 107 temp = sin(_color)*exp(_color) elseif @colorwarp == 108 temp = cos(_color)*exp(_color) elseif @colorwarp == 109 temp = sinh(_color)*exp(_color) elseif @colorwarp == 110 temp = cosh(_color)*exp(_color) elseif @colorwarp == 111 temp = sin(_color)*log(_color) elseif @colorwarp == 112 temp = cos(_color)*log(_color) elseif @colorwarp == 113 temp = sinh(_color)*log(_color) else ; @colorwarp == 114 temp = cosh(_color)*log(_color) endif ; _colorwarp #index = abs(temp) else #solid = TRUE endif ; itrapped default: title = "Oscillator Traps" param whattotrap caption = "Trap What?" enum = "minimum" "maximum" "2nd minimum" "3rd minimum" "4th minimum" "2nd maximum" \ "3rd maximum" "4th maximum" "1st threshold" "last threshold" "threshold count" \ "2nd threshold" "1st limit" "2nd limit" "last limit" "max-min" "max+min" \ "max*min" "max/min" "max^min" "min-max" "min/max" "min^max" "min,max avg" default = 0 hint = "What type of value will be trapped?" endparam param threshold caption = "Threshold Value" default = 0.5 hint = "Upper bound (maximum value that will be trapped) if one of the \ 'Threshold' options is chosen for param 'Trap What'; \ also, lower bound (minimum trapped value) if 'Trap What' is set to \ a 'Limit' option. Increase value for limit traps" visible = (( @whattotrap > 7 ) && ( @whattotrap < 15 )) endparam param varythresh caption = "Vary Threshold?" default = FALSE hint = "If set, the value of the trap will modify the value of 'threshold' and 'limit' type traps \ each iteration; parameter 'ThreshFeedback' can be used to modulate the variation" visible = (( @whattotrap > 7 ) && ( @whattotrap < 15 )) endparam param threshstp caption = "ThreshFeedback" default = 1.0 hint = "If 'Vary Threshold' is set, this setting adjusts the amount of variation" visible = @varythresh endparam param ringstyle caption = "Enable Rings?" default = FALSE hint = "If 'Enable Rings' is active, AND if param 'Trap What' is set to a \ 'Threshold' or 'Limit' option, then 'Trap What' \ becomes a ring trap. \ 'Threshold Value' sets outer radius, 'Ring Width' sets inner radius" visible = (( @whattotrap > 7 ) && ( @whattotrap < 15 )) endparam param ringwidth caption = "Ring Width" default = 0.25 hint = "If 'Enable Rings' is TRUE and 'Trap What' is set to either a 'Threshold', \ or 'Limit' option, this parameter determines the width of the ring trap" visible = @ringstyle == TRUE endparam param varyrwidth caption = "Vary Ringwidth?" default = FALSE hint = "If set, the value of the trap will modify the ring width of 'threshold' \ and 'limit' ring-type traps each iteration; parameter 'RingFeedback' can be \ used to modulate the variation" visible = @ringstyle endparam param ringstp caption = "RingFeedback" default = 1.0 hint = "If 'Vary Ringwidth' is set, this setting adjusts the amount of variation" visible = @varyrwidth endparam param trapmode caption = "Trap Flavor" enum = "distance" "angle" "trap angle" "difference angle" "magnitude" "trap magnitude" \ "real" "imaginary" "trap real" "trap imaginary" "sum" "difference" "product" \ "quotient 1" "quotient 2" "power 1" "power 2" "arith. mean" "geom. mean" \ "angle 2" "angle 3" "angle 4" "angle 5" "angle 6" "angle 7" "angle 8" \ "real 2" "real 3" "real 4" "real 5" "real 6" "real 7" "real 8" \ "imag 2" "imag 3" "imag 4" "imag 5" "imag 6" "imag 7" "imag 8" default = 0 hint = "What quantity will be watched for possible trapping?" endparam param swapflavor caption = "New Flavor?" default = FALSE hint = "Try an alternately flavored trap test? Only affects flavor choices \ above 9 (sum, difference, etc)" visible = @trapmode > 9 endparam param tscale caption = "Scale" default = 0.25 hint = "This parameter determines the size of the oscillator graph" endparam param varyscale caption = "Vary Scale?" default = FALSE hint = "If set, the value of the trap will modify the trap size each iteration; \ parameter 'ScaleFeedback' can be used to modulate the variation" endparam param scalestp caption = "ScaleFeedback" default = 1.0 hint = "If 'Vary Scale' is set, this setting adjusts the amount of variation" visible = @varyscale endparam param rotate caption = "Rotation Angle" default = 0.0 min = -179.9 max = 359.9 hint = "Number of degrees (0-359) that the oscillator graph should be \ rotated from its default position" endparam param varyrotation caption = "Vary Rotation?" default = FALSE hint = "If set, the value of the trap will modify the trap rotation each iteration; \ parameter 'RotationFeedback' can be used to modulate the variation" endparam param rotationstp caption = "RotationFeedback" default = 1.0 hint = "If 'Vary Rotation' is set, this setting adjusts the amount of variation" visible = @varyrotation endparam param centr caption = "Center" default = (0,0) hint = "Enter coordinates of oscillator graph origin (center)" endparam param varycenter caption = "Vary Center?" default = FALSE hint = "If set, the value of the trap will modify the trap center each iteration; \ parameter 'CenterFeedback' can be used to modulate the variation" endparam param centerstp caption = "CenterFeedback" default = 1.0 hint = "If 'Vary Center' is set, this setting adjusts the amount of variation" visible = @varycenter endparam param combimode caption = "Osc Combination" enum = "+" "*" "/" "++" "+*" "+/" "*+" "**" "*/" "/+" "/*" "//" \ "+++" "++*" "+*+" "*++" "+**" "*+*" "**+" "++/" "+/+" "/++" \ "+//" "/+/" "//+" "+*/" "+/*" "*+/" "*/+" "/+*" "/*+" "***" \ "**/" "*/*" "/**" "*//" "/*/" "//*" "///" "sin" default = 0 hint = "How are the oscillators to be combined (added, multiplied etc)? \ For a single oscillator, choose 'sin'; for 2 oscillators, use '+', \ '*', or '/'; 3 oscillators, use '++', '+*' etc; 4 oscillators, \ '+++', '++*' or another 3-op combo" endparam param combistyle caption = "Combination Style" enum = "multiply first" "add first" "linear left-to-right" default = 0 hint = "How is param 'Osc Combination' interpreted? \ multiply first: multiplications then divisions then additions; \ add first: additions then multiplications then divisions; \ linear: operations performed left-to-right order, no grouping" visible = (( @combimode != "sin" ) && ( @combimode > 2 )) endparam param freq1 caption = "Osc1 Frequency" default = (1,0) hint = "This parameter sets the oscillation rate of oscillator function 1" endparam param amp1 caption = "Osc1 Amplitude" default = (1,0) hint = "This parameter sets the magnitude (weight) of the oscillator 1 vibration" endparam param K1 caption = "Osc1 Offset" default = (0,0) hint = "Constant frequency offset for oscillator 1. Osc1 = amplitude1 * sin( \ frequency1 * z + offset1 )" endparam param recip1 caption = "Reciprocal Osc1?" default = FALSE hint = "If enabled, then 1/z will be used as the argument to oscillator 1 instead of z" endparam param square1 caption = "Square Osc1?" default = FALSE hint = "If enabled, then z^2 will be used as the argument to oscillator 1 instead of z" endparam param pretreat1 caption = "Pretreat Osc1?" enum = "none" "z" "1/z" "z^2" "1/z^2" "log(z)" "e^z" "z^z" "1/log(z)" "1/e^z" "1/z^z" default = 0 hint = "Oscillator 1 can be multiplied by this value before combination with the \ other oscillators" endparam param freq2 caption = "Osc2 Frequency" default = (2,0) hint = "This parameter sets the oscillation rate of oscillator function 2" visible = @combimode != "sin" endparam param amp2 caption = "Osc2 Amplitude" default = (1,0) hint = "This parameter sets the magnitude (weight) of the oscillator 2 vibration" visible = @combimode != "sin" endparam param K2 caption = "Osc2 Offset" default = (0,0) hint = "Constant frequency offset for oscillator 2. Osc2 = amplitude2 * sin( \ frequency2 * z + offset2 )" visible = @combimode != "sin" endparam param recip2 caption = "Reciprocal Osc2?" default = FALSE hint = "If enabled, then 1/z will be used as the argument to oscillator 2 instead of z" visible = @combimode != "sin" endparam param square2 caption = "Square Osc2?" default = FALSE hint = "If enabled, then z^2 will be used as the argument to oscillator 2 instead of z" visible = @combimode != "sin" endparam param pretreat2 caption = "Pretreat Osc2?" enum = "none" "z" "1/z" "z^2" "1/z^2" "log(z)" "e^z" "z^z" "1/log(z)" "1/e^z" "1/z^z" default = 0 hint = "Oscillator 2 can be multiplied by this value before combination with the \ other oscillators" visible = @combimode != "sin" endparam param freq3 caption = "Osc3 Frequency" default = (4,0) hint = "This parameter sets the oscillation rate of oscillator function 3" visible = (( @combimode != "sin" ) && ( @combimode > 2 )) endparam param amp3 caption = "Osc3 Amplitude" default = (1,0) hint = "This parameter sets the magnitude (weight) of the oscillator 3 vibration" visible = (( @combimode != "sin" ) && ( @combimode > 2 )) endparam param K3 caption = "Osc3 Offset" default = (0,0) hint = "Constant frequency offset for oscillator 3. Osc3 = amplitude3 * sin( \ frequency3 * z + offset3 )" visible = (( @combimode != "sin" ) && ( @combimode > 2 )) endparam param recip3 caption = "Reciprocal Osc3?" default = FALSE hint = "If enabled, then 1/z will be used as the argument to oscillator 3 instead of z" visible = (( @combimode != "sin" ) && ( @combimode > 2 )) endparam param square3 caption = "Square Osc3?" default = FALSE hint = "If enabled, then z^2 will be used as the argument to oscillator 3 instead of z" visible = (( @combimode != "sin" ) && ( @combimode > 2 )) endparam param pretreat3 caption = "Pretreat Osc3?" enum = "none" "z" "1/z" "z^2" "1/z^2" "log(z)" "e^z" "z^z" "1/log(z)" "1/e^z" "1/z^z" default = 0 hint = "Oscillator 3 can be multiplied by this value before combination with the \ other oscillators" visible = (( @combimode != "sin" ) && ( @combimode > 2 )) endparam param freq4 caption = "Osc4 Frequency" default = (7,0) hint = "This parameter sets the oscillation rate of oscillator function 4" visible = (( @combimode != "sin" ) && ( @combimode > 11 )) endparam param amp4 caption = "Osc4 Amplitude" default = (1,0) hint = "This parameter sets the magnitude (weight) of the oscillator 4 vibration" visible = (( @combimode != "sin" ) && ( @combimode > 11 )) endparam param K4 caption = "Osc4 Offset" default = (0,0) hint = "Constant frequency offset for oscillator 4. Osc4 = amplitude4 * sin( \ frequency4 * z + offset4 )" visible = (( @combimode != "sin" ) && ( @combimode > 11 )) endparam param recip4 caption = "Reciprocal Osc4?" default = FALSE hint = "If enabled, then 1/z will be used as the argument to oscillator 4 instead of z" visible = (( @combimode != "sin" ) && ( @combimode > 11 )) endparam param square4 caption = "Square Osc4?" default = FALSE hint = "If enabled, then z^2 will be used as the argument to oscillator 4 instead of z" visible = (( @combimode != "sin" ) && ( @combimode > 11 )) endparam param pretreat4 caption = "Pretreat Osc4?" enum = "none" "z" "1/z" "z^2" "1/z^2" "log(z)" "e^z" "z^z" "1/log(z)" "1/e^z" "1/z^z" default = 0 hint = "Oscillator 4 can be multiplied by this value before combination with the \ other oscillators" visible = (( @combimode != "sin" ) && ( @combimode > 11 )) endparam param sprangle caption = "Spread Angle?" default = FALSE hint = "If enabled, the angular range is spread out or compressed, \ depending on the value of param 'AngleSpread Factor'" endparam param sprangfactor caption = "AngleSpread Factor" default = 3.0 hint = "If param 'Spread Angle?' is enabled, this is the stretching or \ compression multiplier of atan(z). 1.0 corresponds to no spreading. \ Inactive if 'Spread Angle?' is not enabled" visible = @sprangle == TRUE endparam param initialization caption = "Z Initialization" enum = "z" "1/z" "z^2" "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)" "z^power" \ "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 = "The fractal is initialized to this value at each iteration prior to \ being fed to the trap" endparam param zpower caption = "Z Power" default = (0,1) hint = "Z exponent if param 'Z Initialization' is set to 'z^power'" visible = @initialization == "z^power" endparam param ziscale caption = "Z Init Scale" default = 1.0 hint = "This param can be used to scale the overall iterate z \ before z initialization" endparam param initperturb caption = "Perturb Z Initialization?" default = FALSE hint = "If enabled, then 'Z Initialization' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'Z Init Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @initialization != "z" endparam param initblend caption = "Z Init Blend" default = 0.1 hint = "If 'Perturb Z Initialization' is enabled, then this sets the fraction \ of 'Z Initialization' that is mixed in with the original #z. \ Inactive if 'Perturb Z Initialization' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @initperturb endparam param transmogrify caption = "Trap Transmute" enum = "t" "1/t" "t^2" "1/t^2" "log(t)" "e^t" "t^t" "sin(t)" "cos(t)" \ "tan(t)" "asin(t)" "acos(t)" "atan(t)" "sinh(t)" "cosh(t)" "tanh(t)" \ "asinh(t)" "acosh(t)" "atanh(t)" "log(1/t)" "log(log(t))" "e^-t" \ "e^(1/t)" "t^-t" "sin(t)^2" "cos(t)^2" "tan(t)^2" "cot(t)" "sec(t)" \ "csc(t)" "cot(t)^2" "sec(t)^2" "csc(t)^2" "t^t^t" "1/t^t^t" "log(-t)" \ "1/log(t)" "tlog(t)" "sin(t)/t" "cos(t)/t" "sin(t)*cos(t)" "sin(t^2)" \ "e^(-1/t)" "te^t" "te^-t" "te^(1/t)" "te^(-1/t)" "t^3" "1/t^3" \ "acot(t)" "asec(t)" "acsc(t)" "tan(t)/t" "cot(t)/t" "sec(t)/t" \ "csc(t)/t" "tsin(t)" "tcos(t)" "ttan(t)" "tcot(t)" "tsec(t)" "tcsc(t)" \ "sin(1/t)" "cos(1/t)" "tan(1/t)" "cot(1/t)" "sec(1/t)" "csc(1/t)" \ "cotanh(t)" "sech(t)" "cosech(t)" "acoth(t)" "asech(t)" "acosech(t)" "t^power" \ "sinh(t)^2" "cosh(t)^2" "tanh(t)^2" "cotanh(t)^2" \ "sech(t)^2" "cosech(t)^2" "sinh(1/t)" "cosh(1/t)" "tanh(1/t)" \ "cotanh(1/t)" "sech(1/t)" "cosech(1/t)" "sin(t)tan(t)" "sinh(t)tanh(t)" \ "sinh(t)cosh(t)" "sinh(t)^2*cosh(t)^2" "sin(t)^2*cos(t)^2" \ "sin(1/t)*cos(1/t)" "sin(1/t)^2" "sin(t)cos(1/t)" "sin(t)sin(1/t)" \ "log(t)^2" "sin(t)sin(2t)" "e^2t" "e^-2t" "sinh(1/t)cosh(1/t)" \ "sinh(1/t)^2" "sinh(t)cosh(1/t)" "sinh(t)sinh(1/t)" "sin(t)sinh(t)" \ "sin(t)cosh(t)" "sin(t)^2*sinh(t)^2" "sin(t)e^t" "cos(t)e^t" \ "sinh(t)e^t" "cosh(t)e^t" "sin(t)log(t)" "cos(t)log(t)" "sinh(t)log(t)" \ "cosh(t)log(t)" default = 0 hint = "The point, t, on the oscillator potentially trapped by z can be transformed \ prior to testing; select 't' for no transmutation. \ Transmute does not work on the following trap flavors: \ 2 (angle), 5 (magnitude), 7 (real), and 8 (imag)" endparam param tpower caption = "Trap Power" default = (0,1) hint = "Trap point t exponent if param 'Trap Transmute' is set to 't^power'" visible = @transmogrify == "t^power" endparam param tiscale caption = "Trap Scale" default = 1.0 hint = "This param can be used to scale the overall trap point t \ before transmutation" endparam param trapperturb caption = "Perturb Trap Transmute?" default = FALSE hint = "If enabled, then 'Trap Transmute' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'Trap Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @transmogrify != "t" endparam param trapblend caption = "Trap Blend" default = 0.1 hint = "If 'Perturb Trap Transmute' is enabled, then this sets the fraction \ of 'Trap Transmute' that is mixed in with the original trap point, t. \ Inactive if 'Perturb Trap Transmute' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @trapperturb endparam param realfront caption = "FrontEndReal Warp" enum = "r" "1/r" "r^2" "1/r^2" "log(r)" "e^r" "r^r" "sin(r)" "cos(r)" \ "tan(r)" "asin(r)" "acos(r)" "atan(r)" "sinh(r)" "cosh(r)" "tanh(r)" \ "asinh(r)" "acosh(r)" "atanh(r)" "log(1/r)" "log(log(r))" "e^-r" \ "e^(1/r)" "r^-r" "sin(r)^2" "cos(r)^2" "tan(r)^2" "cot(r)" "sec(r)" \ "csc(r)" "cot(r)^2" "sec(r)^2" "csc(r)^2" "r^r^r" "1/r^r^r" "log(-r)" \ "1/log(r)" "rlog(r)" "sin(r)/r" "cos(r)/r" "sin(r)*cos(r)" "sin(r^2)" \ "e^(-1/r)" "re^r" "re^-r" "re^(1/r)" "re^(-1/r)" "r^3" "1/r^3" \ "acot(r)" "asec(r)" "acsc(r)" "tan(r)/r" "cot(r)/r" "sec(r)/r" \ "csc(r)/r" "rsin(r)" "rcos(r)" "rtan(r)" "rcot(r)" "rsec(r)" "rcsc(r)" \ "sin(1/r)" "cos(1/r)" "tan(1/r)" "cot(1/r)" "sec(1/r)" "csc(1/r)" \ "cotanh(r)" "sech(r)" "cosech(r)" "acoth(r)" "asech(r)" "acosech(r)" "r^power" \ "sinh(r)^2" "cosh(r)^2" "tanh(r)^2" "cotanh(r)^2" \ "sech(r)^2" "cosech(r)^2" "sinh(1/r)" "cosh(1/r)" "tanh(1/r)" \ "cotanh(1/r)" "sech(1/r)" "cosech(1/r)" "sin(r)tan(r)" "sinh(r)tanh(r)" \ "sinh(r)cosh(r)" "sinh(r)^2*cosh(r)^2" "sin(r)^2*cos(r)^2" \ "sin(1/r)*cos(1/r)" "sin(1/r)^2" "sin(r)cos(1/r)" "sin(r)sin(1/r)" \ "log(r)^2" "sin(r)sin(2r)" "e^2r" "e^-2r" "sinh(1/r)cosh(1/r)" \ "sinh(1/r)^2" "sinh(r)cosh(1/r)" "sinh(r)sinh(1/r)" "sin(r)sinh(r)" \ "sin(r)cosh(r)" "sin(r)^2*sinh(r)^2" "sin(r)e^r" "cos(r)e^r" \ "sinh(r)e^r" "cosh(r)e^r" "sin(r)log(r)" "cos(r)log(r)" "sinh(r)log(r)" \ "cosh(r)log(r)" default = 0 hint = "This function can warp the initial value of real(z) before input to \ the 'Z Initialization' function. For 'r^power' set param 'FrontEndReal \ Power'" endparam param rfpower caption = "FrontEndReal Power" default = 4.0 hint = "Real(z) exponent if param 'FrontEndReal Warp' is set to 'r^power'" visible = @realfront == "r^power" endparam param rfscale caption = "Real(z) Scale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ iterate z before warping or initialization" endparam param rfperturb caption = "Perturb FrontEndReal?" default = FALSE hint = "If enabled, then 'FrontEndReal Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'FrontEndReal Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @realfront != "r" endparam param rfblend caption = "FrontEndReal Blend" default = 0.1 hint = "If 'Perturb FrontEndReal' is enabled, then this sets the fraction \ of 'FrontEndReal Warp' that is mixed in with the original real(z). \ Inactive if 'Perturb FrontEndReal' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @rfperturb endparam param imagfront caption = "FrontEndImag Warp" enum = "i" "1/i" "i^2" "1/i^2" "log(i)" "e^i" "i^i" "sin(i)" "cos(i)" \ "tan(i)" "asin(i)" "acos(i)" "atan(i)" "sinh(i)" "cosh(i)" "tanh(i)" \ "asinh(i)" "acosh(i)" "atanh(i)" "log(1/i)" "log(log(i))" "e^-i" \ "e^(1/i)" "i^-i" "sin(i)^2" "cos(i)^2" "tan(i)^2" "cot(i)" "sec(i)" \ "csc(i)" "cot(i)^2" "sec(i)^2" "csc(i)^2" "i^i^i" "1/i^i^i" "log(-i)" \ "1/log(i)" "ilog(i)" "sin(i)/i" "cos(i)/i" "sin(i)*cos(i)" "sin(i^2)" \ "e^(-1/i)" "ie^i" "ie^-i" "ie^(1/i)" "ie^(-1/i)" "i^3" "1/i^3" \ "acot(i)" "asec(i)" "acsc(i)" "tan(i)/i" "cot(i)/i" "sec(i)/i" \ "csc(i)/i" "isin(i)" "icos(i)" "itan(i)" "icot(i)" "isec(i)" "icsc(i)" \ "sin(1/i)" "cos(1/i)" "tan(1/i)" "cot(1/i)" "sec(1/i)" "csc(1/i)" \ "cotanh(i)" "sech(i)" "cosech(i)" "acoth(i)" "asech(i)" "acosech(i)" "i^power" \ "sinh(i)^2" "cosh(i)^2" "tanh(i)^2" "cotanh(i)^2" \ "sech(i)^2" "cosech(i)^2" "sinh(1/i)" "cosh(1/i)" "tanh(1/i)" \ "cotanh(1/i)" "sech(1/i)" "cosech(1/i)" "sin(i)tan(i)" "sinh(i)tanh(i)" \ "sinh(i)cosh(i)" "sinh(i)^2*cosh(i)^2" "sin(i)^2*cos(i)^2" \ "sin(1/i)*cos(1/i)" "sin(1/i)^2" "sin(i)cos(1/i)" "sin(i)sin(1/i)" \ "log(i)^2" "sin(i)sin(2i)" "e^2i" "e^-2i" "sinh(1/i)cosh(1/i)" \ "sinh(1/i)^2" "sinh(i)cosh(1/i)" "sinh(i)sinh(1/i)" "sin(i)sinh(i)" \ "sin(i)cosh(i)" "sin(i)^2*sinh(i)^2" "sin(i)e^i" "cos(i)e^i" \ "sinh(i)e^i" "cosh(i)e^i" "sin(i)log(i)" "cos(i)log(i)" "sinh(i)log(i)" \ "cosh(i)log(i)" default = 0 hint = "This function can warp the initial value of imag(z) before input to \ the 'Z Initialization' function. For 'i^power' set param 'FrontEndImag \ Power'" endparam param ifpower caption = "FrontEndImag Power" default = 4.0 hint = "Imag(z) exponent if param 'FrontEndImag Warp' is set to 'i^power'" visible = @imagfront == "i^power" endparam param ifscale caption = "Imag(z) Scale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ iterate z before warping or initialization" endparam param ifperturb caption = "Perturb FrontEndImag?" default = FALSE hint = "If enabled, then 'FrontEndImag Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'FrontEndImag Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @imagfront != "i" endparam param ifblend caption = "FrontEndImag Blend" default = 0.1 hint = "If 'Perturb FrontEndImag' is enabled, then this sets the fraction \ of 'FrontEndImag Warp' that is mixed in with the original imag(z). \ Inactive if 'Perturb FrontEndImag' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @ifperturb endparam param realback caption = "BackEndReal Warp" enum = "r" "1/r" "r^2" "1/r^2" "log(r)" "e^r" "r^r" "sin(r)" "cos(r)" \ "tan(r)" "asin(r)" "acos(r)" "atan(r)" "sinh(r)" "cosh(r)" "tanh(r)" \ "asinh(r)" "acosh(r)" "atanh(r)" "log(1/r)" "log(log(r))" "e^-r" \ "e^(1/r)" "r^-r" "sin(r)^2" "cos(r)^2" "tan(r)^2" "cot(r)" "sec(r)" \ "csc(r)" "cot(r)^2" "sec(r)^2" "csc(r)^2" "r^r^r" "1/r^r^r" "log(-r)" \ "1/log(r)" "rlog(r)" "sin(r)/r" "cos(r)/r" "sin(r)*cos(r)" "sin(r^2)" \ "e^(-1/r)" "re^r" "re^-r" "re^(1/r)" "re^(-1/r)" "r^3" "1/r^3" \ "acot(r)" "asec(r)" "acsc(r)" "tan(r)/r" "cot(r)/r" "sec(r)/r" \ "csc(r)/r" "rsin(r)" "rcos(r)" "rtan(r)" "rcot(r)" "rsec(r)" "rcsc(r)" \ "sin(1/r)" "cos(1/r)" "tan(1/r)" "cot(1/r)" "sec(1/r)" "csc(1/r)" \ "cotanh(r)" "sech(r)" "cosech(r)" "acoth(r)" "asech(r)" "acosech(r)" "r^power" \ "sinh(r)^2" "cosh(r)^2" "tanh(r)^2" "cotanh(r)^2" \ "sech(r)^2" "cosech(r)^2" "sinh(1/r)" "cosh(1/r)" "tanh(1/r)" \ "cotanh(1/r)" "sech(1/r)" "cosech(1/r)" "sin(r)tan(r)" "sinh(r)tanh(r)" \ "sinh(r)cosh(r)" "sinh(r)^2*cosh(r)^2" "sin(r)^2*cos(r)^2" \ "sin(1/r)*cos(1/r)" "sin(1/r)^2" "sin(r)cos(1/r)" "sin(r)sin(1/r)" \ "log(r)^2" "sin(r)sin(2r)" "e^2r" "e^-2r" "sinh(1/r)cosh(1/r)" \ "sinh(1/r)^2" "sinh(r)cosh(1/r)" "sinh(r)sinh(1/r)" "sin(r)sinh(r)" \ "sin(r)cosh(r)" "sin(r)^2*sinh(r)^2" "sin(r)e^r" "cos(r)e^r" \ "sinh(r)e^r" "cosh(r)e^r" "sin(r)log(r)" "cos(r)log(r)" "sinh(r)log(r)" \ "cosh(r)log(r)" default = 0 hint = "This function can warp the final value of real(trap) before testing for \ trapping by the 'Trap What?' function. For 'r^power' set param 'BackEndReal \ Power'" endparam param rbpower caption = "BackEndReal Power" default = 4.0 hint = "Real(trap) exponent if param 'BackEndReal Warp' is set to 'r^power'" visible = @realback == "r^power" endparam param rbscale caption = "Real(t) Scale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ trap point t before warping (but after transmutation)" endparam param rbperturb caption = "Perturb BackEndReal?" default = FALSE hint = "If enabled, then 'BackEndReal Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'BackEndReal Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @realback != "r" endparam param rbblend caption = "BackEndReal Blend" default = 0.1 hint = "If 'Perturb BackEndReal' is enabled, then this sets the fraction \ of 'BackEndReal Warp' that is mixed in with the original real(trap). \ Inactive if 'Perturb BackEndReal' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @rbperturb endparam param imagback caption = "BackEndImag Warp" enum = "i" "1/i" "i^2" "1/i^2" "log(i)" "e^i" "i^i" "sin(i)" "cos(i)" \ "tan(i)" "asin(i)" "acos(i)" "atan(i)" "sinh(i)" "cosh(i)" "tanh(i)" \ "asinh(i)" "acosh(i)" "atanh(i)" "log(1/i)" "log(log(i))" "e^-i" \ "e^(1/i)" "i^-i" "sin(i)^2" "cos(i)^2" "tan(i)^2" "cot(i)" "sec(i)" \ "csc(i)" "cot(i)^2" "sec(i)^2" "csc(i)^2" "i^i^i" "1/i^i^i" "log(-i)" \ "1/log(i)" "ilog(i)" "sin(i)/i" "cos(i)/i" "sin(i)*cos(i)" "sin(i^2)" \ "e^(-1/i)" "ie^i" "ie^-i" "ie^(1/i)" "ie^(-1/i)" "i^3" "1/i^3" \ "acot(i)" "asec(i)" "acsc(i)" "tan(i)/i" "cot(i)/i" "sec(i)/i" \ "csc(i)/i" "isin(i)" "icos(i)" "itan(i)" "icot(i)" "isec(i)" "icsc(i)" \ "sin(1/i)" "cos(1/i)" "tan(1/i)" "cot(1/i)" "sec(1/i)" "csc(1/i)" \ "cotanh(i)" "sech(i)" "cosech(i)" "acoth(i)" "asech(i)" "acosech(i)" "i^power" \ "sinh(i)^2" "cosh(i)^2" "tanh(i)^2" "cotanh(i)^2" \ "sech(i)^2" "cosech(i)^2" "sinh(1/i)" "cosh(1/i)" "tanh(1/i)" \ "cotanh(1/i)" "sech(1/i)" "cosech(1/i)" "sin(i)tan(i)" "sinh(i)tanh(i)" \ "sinh(i)cosh(i)" "sinh(i)^2*cosh(i)^2" "sin(i)^2*cos(i)^2" \ "sin(1/i)*cos(1/i)" "sin(1/i)^2" "sin(i)cos(1/i)" "sin(i)sin(1/i)" \ "log(i)^2" "sin(i)sin(2i)" "e^2i" "e^-2i" "sinh(1/i)cosh(1/i)" \ "sinh(1/i)^2" "sinh(i)cosh(1/i)" "sinh(i)sinh(1/i)" "sin(i)sinh(i)" \ "sin(i)cosh(i)" "sin(i)^2*sinh(i)^2" "sin(i)e^i" "cos(i)e^i" \ "sinh(i)e^i" "cosh(i)e^i" "sin(i)log(i)" "cos(i)log(i)" "sinh(i)log(i)" \ "cosh(i)log(i)" default = 0 hint = "This function can warp the final value of imag(trap) before testing for \ trapping by the 'Trap What?' function. For 'i^power' set param 'BackEndImag \ Power'" endparam param ibpower caption = "BackEndImag Power" default = 4.0 hint = "Imag(trap) exponent if param 'BackEndImag Warp' is set to 'i^power'" visible = @imagback == "i^power" endparam param ibscale caption = "Imag(t) Scale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ trap point t before warping (but after transmutation)" endparam param ibperturb caption = "Perturb BackEndImag?" default = FALSE hint = "If enabled, then 'BackEndImag Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'BackEndImag Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = @imagback != "i" endparam param ibblend caption = "BackEndImag Blend" default = 0.1 hint = "If 'Perturb BackEndImag' is enabled, then this sets the fraction \ of 'BackEndImag Warp' that is mixed in with the original imag(trap). \ Inactive if 'Perturb BackEndImag' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @ibperturb endparam param @colorby caption = "Color By?" enum = "distance" "iteration" "magnitude" "test" "trap magnitude" "angle" \ "trap angle" "mod magnitude" "mod angle" "real" "trap real" "mod real"\ "imag" "trap imag" "mod imag" "raw distance" default = 0 hint = "Criterion for computing color index" endparam param @colorspread caption = "Color Spread" default = 1.0 hint = "This value can increase or decrease the color index range; adjust \ if fractal coloring is too monotone" endparam param varyspread caption = "Vary Colorspread?" default = FALSE hint = "If set, the value of the trap will modify the color index spread each \ iteration; parameter 'SpreadFeedback' can be used to modulate the variation" endparam param spreadstp caption = "SpreadFeedback" default = 1.0 hint = "If 'Vary Colorspread' is set, this setting adjusts the amount of variation" visible = @varyspread endparam param ranges caption = "Color Ranges" default = 1 hint = "Different ranges of the color palette can be used, based on iteration" endparam param hideranges caption = "Mask Color Ranges?" default = FALSE hint = "If enabled, then param 'Show Which Range?' can be set to mask pixels \ other than those in the given range. Only valid if 'Color Ranges' > 1" visible = @ranges > 1 endparam param showrange caption = "Show Which Range?" default = 0 min = 0 hint = "If 'Mask Color Ranges?' is turned on, then pixels falling in this color \ range will be visible; others will be set to the solid color. Works best \ with param 'Trap What?' set to a threshold or limit option. 0 <= param < \ 'Color Ranges'" visible = @hideranges == TRUE endparam param @colorwarp caption = "Color Warp Factor" enum = "c" "1/c" "c^2" "1/c^2" "log(c)" "e^c" "c^c" "sin(c)" "cos(c)" \ "tan(c)" "asin(c)" "acos(c)" "atan(c)" "sinh(c)" "cosh(c)" "tanh(c)" \ "asinh(c)" "acosh(c)" "atanh(c)" "log(1/c)" "log(log(c))" "e^-c" \ "e^(1/c)" "c^-c" "sin(c)^2" "cos(c)^2" "tan(c)^2" "cot(c)" "sec(c)" \ "csc(c)" "cot(c)^2" "sec(c)^2" "csc(c)^2" "c^c^c" "1/c^c^c" "log(-c)" \ "1/log(c)" "clog(c)" "sin(c)/c" "cos(c)/c" "sin(c)*cos(c)" "sin(c^2)" \ "e^(-1/c)" "ce^c" "ce^-c" "ce^(1/c)" "ce^(-1/c)" "c^3" "1/c^3" \ "acot(c)" "asec(c)" "acsc(c)" "tan(c)/c" "cot(c)/c" "sec(c)/c" \ "csc(c)/c" "csin(c)" "ccos(c)" "ctan(c)" "ccot(c)" "csec(c)" "ccsc(c)" \ "sin(1/c)" "cos(1/c)" "tan(1/c)" "cot(1/c)" "sec(1/c)" "csc(1/c)" \ "cotanh(c)" "sech(c)" "cosech(c)" "acoth(c)" "asech(c)" "acosech(c)" "c^power" \ "sinh(c)^2" "cosh(c)^2" "tanh(c)^2" "cotanh(c)^2" \ "sech(c)^2" "cosech(c)^2" "sinh(1/c)" "cosh(1/c)" "tanh(1/c)" \ "cotanh(1/c)" "sech(1/c)" "cosech(1/c)" "sin(c)tan(c)" "sinh(c)tanh(c)" \ "sinh(c)cosh(c)" "sinh(c)^2*cosh(c)^2" "sin(c)^2*cos(c)^2" \ "sin(1/c)*cos(1/c)" "sin(1/c)^2" "sin(c)cos(1/c)" "sin(c)sin(1/c)" \ "log(c)^2" "sin(c)sin(2c)" "e^2c" "e^-2c" "sinh(1/c)cosh(1/c)" \ "sinh(1/c)^2" "sinh(c)cosh(1/c)" "sinh(c)sinh(1/c)" "sin(c)sinh(c)" \ "sin(c)cosh(c)" "sin(c)^2*sinh(c)^2" "sin(c)e^c" "cos(c)e^c" \ "sinh(c)e^c" "cosh(c)e^c" "sin(c)log(c)" "cos(c)log(c)" "sinh(c)log(c)" \ "cosh(c)log(c)" default = 0 hint = "The final color index can be warped by this function; default is \ 'c' (no change in color index)" endparam param cpower caption = "Color Power" default = 0.25 hint = "Color index exponent if param 'Color Warp Factor' is set to 'c^power'" visible = @colorwarp == "c^power" endparam param skippediters caption = "Iterations to Skip" default = 0 hint = "Values will not be watched for trapping until after this many \ fractal iterations" endparam param towatch caption = "Iterations to Watch" default = 0 min = 0 hint = "How many iterations should the orbit be monitored for potential trapping? \ '0' means watch all iterations" endparam param mutant caption = "Enable Mutant?" default = FALSE hint = "Variant bases _coloring on z rather than atan(z)" endparam param polar caption = "Polar Coordinates?" default = FALSE hint = "Alternative interpretation of trap value" endparam param trapvariant caption = "Trap Variants" enum = "Normal" "Flip" "Conjugate" "FlipConjugate" "Negate" "Negate Flip" \ "Negate Conjugate" "Conjugate Flip" default = 0 hint = "Enables alternative coloring algorithms based on manipulation of \ real(z) and imag(z) before trapping" endparam param operator caption = "Enable Operator?" enum = "none" "multiply" "add" "subtract" "divide" "exponentiate" \ "subtraction2" "division2" "exponential2" "logarithm" "logarithm2" default = 0 hint = "If enabled, z is multiplied by (added to, etc) this constant on each iteration \ before testing; parameter 'Operator Constant' sets the constant \ value that is used in the operation" endparam param operatee caption = "Operation Constant" default = (-1, 1) hint = "If 'Enable Operator' is set, this is the constant used in the \ multiplication/addition/subtraction/division/exponentiation/logarithm" visible = @operator != "none" endparam param swaporder caption = "Swap Order?" default = FALSE hint = "Swaps order of 'Trap Variants' and 'Enable Operator'. Normally, \ the trap variation is executed AFTER the arithmetic operation; this \ param toggles the execution order" visible = (( @trapvariant != "normal" ) && ( @operator != "none" )) endparam param history caption = "Enable History?" default = FALSE hint = "If enabled, both the previous and current z are used to determine \ trapping; a curvature-based coloring variant" endparam param histype caption = "History Type" enum = "middle aged" "old" "very old" default = 0 hint = "Determines curvature algorithm" visible = @history == TRUE endparam param twavy caption = "Enable T Waviness?" default = FALSE hint = "Adds waves to the trap function. If enabled, params 'Waviness Mode', \ 'Waviness Amplitude', & 'Waviness Frequency' may be adjusted to vary \ wave character" endparam param twavmode caption = "T Wave Mode" enum = "radial" "tangential" default = 0 hint = "If 'Enable T Waviness' is on, this param sets the type of waves \ superposed on the trap function; inactive otherwise" visible = @twavy == TRUE endparam param twavamp caption = "T Wave Amplitude" default = 0.1 hint = "If 'Enable T Waviness' is on, this param sets the height of the waves \ superposed on the trap function; inactive otherwise" visible = @twavy == TRUE endparam param twavfreq caption = "T Wave Frequency" default = 10.0 hint = "If 'Enable T Waviness' is on, this param sets the density of waves \ superposed on the trap function; inactive otherwise" visible = @twavy == TRUE endparam param pointmode caption = "Enable Point Mode?" default = FALSE hint = "If set, trapping occurs normally until the first #z has been \ trapped using the usual criteria; subsequently, trapping is \ relative to this first trap point, rather than to the entire curve" endparam param turb1 caption = "Turbulence 1?" default = FALSE hint = "Adds distortion (Products) to coloring; amount of turbulence \ for all types is set by parameter 'Turbulence Amount'" endparam param turb2 caption = "Turbulence 2?" default = FALSE hint = "Adds distortion (Random) to coloring; amount of turbulence \ is set for all types by parameter 'Turbulence Amount'" endparam param turb3 caption = "Turbulence 3?" default = FALSE hint = "Adds distortion (fBm) to coloring; amount of turbulence \ for all types is set by parameter 'Turbulence Amount', while \ the six 'fBm' params ('fBm Scale', 'fBm Rotation', etc) are \ specific to 'Turbulence 3'" endparam param turb4 caption = "Turbulence 4?" default = FALSE hint = "Adds distortion (Sine) to coloring; amount of turbulence \ for all types is set by parameter 'Turbulence Amount'" endparam param turb5 caption = "Turbulence 5?" default = FALSE hint = "Adds distortion (Log) to coloring; amount of turbulence \ for all types is set by parameter 'Turbulence Amount'" endparam param turb6 caption = "Turbulence 6?" default = FALSE hint = "Adds distortion (Vectors) to coloring; amount of turbulence \ for all types is set by parameter 'Turbulence Amount'" endparam param turbamount caption = "Turbulence Amount" default = 1.0 hint = "Overall degree of texturizing, if any of the six 'Turbulence' \ parameters are enabled" visible = (@turb1 || @turb2 || @turb3 || @turb4 || @turb5 || @turb6) endparam param bscale caption = "fBm Scale" default = 1.0 hint = "The overall scale of 'Turbulence 3', the fBm turbulence option" visible = @turb3 endparam param bangle caption = "fBm Rotation" default = 0.0 hint = "Angular parameter for 'Turbulence 3', fBm noise" visible = @turb3 endparam param bstep caption = "fBm Stepsize" default = 0.5 hint = "'Turbulence 3' scale step size for fBm noise iterations" visible = @turb3 endparam param banglestep caption = "fBm Rotation Step" default = 37.0 hint = "The angle in degrees for noise function rotation after \ each fBm iteration; used if 'Turbulence 3' is enabled" visible = @turb3 endparam param boctaves caption = "fBm Octaves" default = 7 min = 1 hint = "The number of iterations of the 'Turbulence 3' fBm noise function" visible = @turb3 endparam param bpower caption = "fBm Exponent" default = 2.0 hint = "The exponent used if param 'Turbulence 3' is enabled \ for fBm randomization" visible = @turb3 endparam param varyturb caption = "Vary Turbulence?" default = FALSE hint = "If set, the value of the trap will modify the turbulence amount each \ iteration; parameter 'TurbulenceFeedback' can be used to modulate the variation" visible = (@turb1 || @turb2 || @turb3 || @turb4 || @turb5 || @turb6) endparam param turbstp caption = "TurbulenceFeedback" default = 1.0 hint = "If 'Vary Turbulence' is set, this setting adjusts the amount of variation" visible = @varyturb endparam param mask caption = "Masking?" default = FALSE hint = "If enabled, trapped values below the 'Masking Threshold' parameter \ will be colored the solid color" visible = !@revmask endparam param revmask caption = "Reverse Masking?" default = FALSE hint = "If enabled, trapped values greater than the 'Masking Threshold' \ parameter will be colored the solid color; inactive if normal \ 'Masking' is also enabled" visible = !@mask endparam param maskthresh caption = "Masking Threshold" default = 0.1 hint = "This param is the value used for solid color masking if either \ 'Masking?' or 'Reverse Masking?' are enabled. Depending on how param \ 'Color By' is set, the value may need large adjustment (.001-10 may \ be useful)" visible = (@mask || @revmask) endparam param varymode caption = "Feedback Mode" enum = "trapped" "not trapped" "always" default = 2 hint = "Variation style; variation of individual parameters must still \ be enabled. 'trapped' -- feedback occurs only on iterations where some \ value was trapped; 'not trapped' -- varies on iterations when nothing \ trapped; 'always' -- feedback on every iteation" visible = (@varyturb || @varyscale || @varyrotation || @varythresh || @varyrwidth || @varycenter || @varyspread) endparam param oldstyle caption = "OldStyle Feedback?" default = FALSE hint = "Retained for compatibility with original version of this formula; \ enable if you need to render an early image utilizing this formula, \ or for a variant algorithm that generally produces less feedback variation" visible = (@varyturb || @varyscale || @varyrotation || @varythresh || @varyrwidth || @varycenter || @varyspread) endparam } jam-trapestry2007 { ; jam ; Jamuary 2008 --- added the attractor routines; magnitude screwiness options. ; December 2007 --- modified the color softening and stretching routines; ; added a filled trap option for distance coloring modes; added the polygon, ; star, and curved polygon traps with generalized parameters; added angle restriction ; and expanded the periodicity functions. ; V.5.3 October 2007 --- trapestry+ adds new average modes, and also changes ; some default settings. Added exponential color stretching mode. ; Added periodicity routine. Added more parameters to many trap functions. ; V.5.2 February, 2006 --- added new oscilator options: result reciprocals, ; new osc functions, new osc operator combinations; added new trap functions; ; new trap flavors; new trap combination mode ('alternative'). ; V.5.1 February, 2006 --- added the new parameter group, 'Bias Settings', and ; relocated a few old parameters. Added screwiness modes based on magnitude. ; V.5 January, 2006 --- added new modes 325-370 to all history types, using three ; generations of points to determine trap; added many new 'Trap Flavors', such as ; crosssum and manhattan metric for distance; added option to use the reciprocal angle ; rather than the angle of #z as the input to the trap function (in the 'Modifiers' ; parameter block); added reciprocal Real and reciprocal Imaginary options to the ; screwiness functions; added option to partially blend in the screwiness and/or weirdness ; modifiers instead of using them full strength; added several new trap functions and ; one new modulator function; added two new gradient offset options and a gradient stretch/ ; contract option (in the 'Color Settings' param block); tweaked user interface: reordered ; parameter blocks, updated hints and changed the default settings of the 'Color By' parameter ; and texture functions 2-4. ; The new 'Color By?' default, 'flavor value', works much better (i.e., more "distance-like" ; results) for many of the new 'Trap Flavor' values. ; V. 4.1 August, 2005 --- added additional functions, options to oscillators; corrected ; some errors in the fBm hints; added new trap combination modes (quotient 4-14, ; exponential 3-14). ; V.4 August, 2005 --- Tweaked interface for UF4; added new trap wavy mode; ; added new trap flavors; new trap functions; 4th optional constant for some trap functions; ; blending of trap histories; corrected rare bug in z history logic. ; V.3 released 24 January, 2005 --- added many new trap combo modes, added new screwiness ; types, added screwiness negate operator, added weirdness and weirdness types, added a ; new history index selector to all history modes (original, alternative, and trap), ; added an alternative trap history mode, added mix&match selectors to provide more ; flexibility for which previous generations are used in all history types/modes, ; added a new (second) Z operator modifier, tweaked the mask options and texture functions, ; redesigned the history user interface, and added a few new trap functions. ; V.2 released 30 August, 2004 --- added 'Color By' modes mod iter, discrete iter, ; smooth iter, modulus angle, count (meant to be used with 'Trap What' = 'count'); ; added 'Trap What' mode 'count'; added new trap combo modes (splice 7-12); added ; Mask A and Mask B modes 'mod iter' and 'modulus angle'; added ; History modes 'alternative' and 'both'; added Trap History and Trap Operator; ; added post-scaling options to real and imag modulator functions; added alternative ; log() and log(log)) functions [denoted by 'log() B' and 'log(log()) B']. ; Version 1 begun 18 May, 2003; finished 3 June, 2003 ; Generalized traps based on radial or parametric functions. ; One or two trap functions may be specified. If more than one trap ; is specified, they can be merged in various ways. ; Each of these traps may be defined either in polar coordinates, ; in which case a radius is calculated, or parametrically, in which case ; an x,y-coordinate pair is computed. Alternatively, one trap can be ; computed radially, the other parametrically. ; Regardless of the coordinate system(s) chosen, each radius, x-, or y- ; can be calculated using a variety of user-specified functions, or ; alternatively, using a set of up to four simple sine/cosine oscillators. ; TO TURN OFF A FUNCTION, set its scale to zero; ; TO TURN OFF AN OSCILLATOR SET, set the amplitude of its first oscillator to zero. ; These are the only methods (almost) to control whether you are using one or two traps. ; (If 'Blend' is enabled,you can also turn a trap off by setting its blend weight to zero. ; This method is less efficient computationally.) ; Using 'Blend' accomplishes nothing (except slowing down execution) unless ; at least one of the two weights is set != 1.0 ; Some functions are designated with an "(x)" or "(y)"; this designation is just ; to make it easier, when using parametric functions, to match up the correct ; formulas to generate the chosen trap shape, i.e., the first (x-coordinate) ; function should be set to the "(x)" formula, and the second (y-coord) formula ; set to the "(y)" function. ; Questions/comments to Joseph A. Maddry (maddry@sri.org) (Joe). ; For my own convenience: ; pi = 3.1415926535897932384626433832795 ; e = 2.7182818284590452353602874713527 ; phi = 1.6180339887498948482045868343656 ; sqrt(2) = 1.4142135623730950488016887242097 ; sqrt(3) = 1.7320508075688772935274463415059 ; sqrt(pi) = 1.7724538509055 ; gamma = 0.5772156649 ; omega = 0.5671432904097838729999686622103 ; zeta(2) = 1.6449340668482 global: ; Old variables moved to global ; Common constants float twopi = 2.0 * #pi float degconversion = twopi/360 float onehalf = 1.0/2 float onethird = 1.0/3 float onefourth = 1.0/4 ; blending variables float rfbcomp = 1-@rfblend, float ifbcomp = 1-@ifblend float rbbcomp = 1-@rbblend, float ibbcomp = 1-@ibblend float trapbcomp = 1-@trapblend, float initbcomp = 1-@initblend float zhist1comp = 1-@zhist1fraction, float zhist2comp = 1-@zhist2fraction float thist1comp = 1-@thist1fraction, float thist2comp = 1-@thist2fraction float weirdcomplement = 1-@weirdfraction float screwycomplement = 1-@screwyfraction ; attractor blends float zmartincomp = 1.0-@zmartinfraction float zcosmartincomp = 1.0-@zcosmartinfraction float zpopcorncomp = 1.0-@zpopcornfraction float zvinecomp = 1.0-@zvinefraction float zvine2comp = 1.0-@zvine2fraction float zquadruptwocomp = 1.0-@zquadruptwofraction float zthreeplycomp = 1.0-@zthreeplyfraction float zhenoncomp = 1.0-@zhenonfraction float zhopalongcomp = 1.0-@zhopalongfraction float zchipcomp = 1.0-@zchipfraction float zliarcomp = 1.0-@zliarfraction float zgingerbreadcomp = 1.0-@zgingerbreadfraction float tmartincomp = 1.0-@tmartinfraction float tcosmartincomp = 1.0-@tcosmartinfraction float tpopcorncomp = 1.0-@tpopcornfraction float tvinecomp = 1.0-@tvinefraction float tvine2comp = 1.0-@tvine2fraction float tquadruptwocomp = 1.0-@tquadruptwofraction float tthreeplycomp = 1.0-@tthreeplyfraction float thenoncomp = 1.0-@thenonfraction float thopalongcomp = 1.0-@thopalongfraction float tchipcomp = 1.0-@tchipfraction float tliarcomp = 1.0-@tliarfraction float tgingerbreadcomp = 1.0-@tgingerbreadfraction if @towatch == 0 int watch = #maxiter else int watch = @skippediters + @towatch endif ; towatch ; New variables ; Vars needed by the loop trapping routines bool twotraps = FALSE ; flag for trap combination routine int numberoffuncs = int numberofoscsets = 0 int trapfunc[4] ; points to selected function list members (trap functions) int texfunc[4] ; points to selected function list members (texture functions) float tex2powers[4] ; exponent for the 4 texture functions if any are set to 'x^power' float coeff[4,4,2] ; [parametric/polar function number, osc number, amplitude/frequency selector] float offset[4] ; this value is added to each r, x, or y equation float const[4,4] ; optional function parameters; function 1-4, constants 1, 2, 3, and 4 bool oscreciprocal[4,4] ; FALSE = use regular angular argument, TRUE = use reciprocal angle for that given operator bool oscsetrecip[4] ; FALSE = use oscillator set result as is, TRUE = take reciprocal of osc set result bool oscpower[4,4] ; FALSE = do not raise result to a power before combining with other oscillators float oscexponent[4,4] ; holds the relevant exponent if any of the oscpower[] values are TRUE bool oscselector[4,4] ; FALSE = cosine oscillator, TRUE = sine or other function int oscfunction[4,4] ; selects either sine, tangent, or exponential function for individual oscillators int oscoperator[4,4] ; selects how each oscillator is combined with the previous oscillators bool absoluteangle[4] ; FALSE = use raw angle argument, TRUE = use absolute value bool absoluteresult[4] ; FALSE = use raw trap function/osc result, TRUE = use absolute value float globaltemp = 0.0 ; scratchpad variable; do not assume value between code sections ; Special variables for "global" function options float gielispower = -1.0/@gielisexponent float polygonincrement = twopi/@polygonsides ; angle between successive vertices of polygon float polystarincrement = #pi/@polystarpoints ; angle between successive vertices of N-pointed star float polycuspincrement = twopi/@polygoncusps ; angle between successive vertices of curved polygon float recipcuspincrement = 1.0/polycuspincrement float polyvertexangles[19] ; holds the angular coordinate of each polygon vertex float polystarangles[37] ; holds the angular coordinate of each star vertex float polycuspangles[19] ; holds the angular coordinate of each curved polygon cusp float starspikiness = @polystarradius/@polystarspikiness ; short radius of star float radiusproduct = starspikiness*@polystarradius int polystarmax = 2*@polystarpoints float cuspsharpness = @polycuspdepth*@polycuspradius bool cuspadjust = FALSE if (@cuspexponent != 1.0) cuspadjust = TRUE endif ; hypoadjust ; Fix parameters for exponential color stretching float stretchconstant = 0.0, float stretchconstant2 = 0.0 ; for color stretching modes if @enablestretch if @stretchtype == "linear2" stretchconstant = (@stretchlinear22-1)/(@stretchlinear21-1.0) stretchconstant2 = 1.0-stretchconstant elseif @stretchtype == "exponential" globaltemp = exp(@stretchdelta) stretchconstant = (@stretchamount - globaltemp)/(globaltemp - 1.0) stretchconstant2 = 1.0 + (1.0/stretchconstant) elseif @stretchtype == "quadratic" stretchconstant = (@stretchquad11-@stretchquad12)/(@stretchquad11*(@stretchquad13-@stretchquad11)) stretchconstant2 = @stretchquad12/@stretchquad11 - @stretchquad11*stretchconstant elseif @stretchtype == "quadratic2" stretchconstant = (@stretchquad21-@stretchquad22)/((@stretchquad21*@stretchquad21)-@stretchquad21) stretchconstant2 = 1.0-stretchconstant elseif @stretchtype == "tanh" stretchconstant = tanh(@stretchtanhamount) endif ; @stretchtype endif ; @enablestretch ; Initialize periodicity variables int periodphase = 0 if @periodicity if @perphase < @period ; phase can only be 0, 1,..., (@period-1) periodphase = @perphase endif ; @perphase endif ; @periodicity float anglelowbound = @anglelow*twopi/360 float anglehighbound = @anglehigh*twopi/360 if anglehighbound <= anglelowbound anglelowbound = 0.0 anglehighbound = twopi endif ; anglehighbound ; Initialize the arrays int gtempindex1 = int gtempindex2 = 0 while gtempindex1 < 4 trapfunc[gtempindex1] = 0 texfunc[gtempindex1] = 0 offset[gtempindex1] = 0.0 const[gtempindex1,0] = 0.0 const[gtempindex1,1] = 0.0 const[gtempindex1,2] = 0.0 const[gtempindex1,3] = 0.0 oscsetrecip[gtempindex1] = FALSE absoluteangle[gtempindex1] = FALSE absoluteresult[gtempindex1] = FALSE while gtempindex2 < 4 coeff[gtempindex1, gtempindex2, 0] = 0.0 coeff[gtempindex1, gtempindex2, 1] = 0.0 oscreciprocal[gtempindex1, gtempindex2] = FALSE oscpower[gtempindex1, gtempindex2] = FALSE oscexponent[gtempindex1, gtempindex2] = 0.0 oscselector[gtempindex1, gtempindex2] = FALSE oscfunction[gtempindex1, gtempindex2] = 0 oscoperator[gtempindex1, gtempindex2] = 0 gtempindex2 = gtempindex2 + 1 endwhile ; gtempindex2 gtempindex1 = gtempindex1 + 1 endwhile ; gtempindex1 gtempindex1 = 0 while gtempindex1 < 19 polyvertexangles[gtempindex1] = 0.0 gtempindex1 = gtempindex1+1 endwhile ; gtempindex1 gtempindex1 = 0 while gtempindex1 < 37 polystarangles[gtempindex1] = 0.0 gtempindex1 = gtempindex1+1 endwhile ; gtempindex1 ; Fill in select array values with the user-chosen options if @coordtype == "Polar" ; compute a single radius, or two & combine them if @traptype == "functions" ; use polar functions to compute radii coeff[0,0,0] = @f1scale ; scale factor for the first function coeff[1,0,0] = @f2scale ; scale factor for the second function trapfunc[0] = @func1 ; list index for the first function trapfunc[1] = @func2 ; list index for the second function offset[0] = @f1offset ; radial offset ("min" value) for first function offset[1] = @f2offset ; radial offset ("min" value) for second function absoluteangle[0] = @f1absangle absoluteangle[1] = @f2absangle absoluteresult[0] = @f1absresult absoluteresult[1] = @f2absresult const[0,0] = @const1f1 ; optional first parameter for first function const[1,0] = @const1f2 ; optional first parameter for second function const[0,1] = @const2f1 ; optional second parameter for first function const[1,1] = @const2f2 ; optional second parameter for second function const[0,2] = @const3f1 ; optional third parameter for first function const[1,2] = @const3f2 ; optional third parameter for second function const[0,3] = @const4f1 ; optional fourth parameter for first function const[1,3] = @const4f2 ; optional fourth parameter for second function if @f2scale != 0.0 twotraps = TRUE numberoffuncs = 2 else numberoffuncs = 1 endif ; @f2scale numberofoscsets = 0 elseif @traptype == "oscillators" ; use a set of 4 oscillators to compute each radius coeff[0,0,0] = @osc11amp ; amplitude (scale) factor for the first oscillator of osc set 1 coeff[0,0,1] = @osc11freq ; frequency of the first oscillator of osc set 1 coeff[0,1,0] = @osc12amp ; amplitude of the second oscillator of osc set 1 coeff[0,1,1] = @osc12freq ; frequency of the second oscillator of osc set 1 coeff[0,2,0] = @osc13amp ; amplitude of the third oscillator of osc set 1 coeff[0,2,1] = @osc13freq ; frequency of the third oscillator of osc set 1 coeff[0,3,0] = @osc14amp ; amplitude of the fourth oscillator of osc set 1 coeff[0,3,1] = @osc14freq ; frequency of the fourth oscillator of osc set 1 coeff[1,0,0] = @osc21amp ; amplitude of the first oscillator of osc set 2 coeff[1,0,1] = @osc21freq ; frequency of the first oscillator of osc set 2 coeff[1,1,0] = @osc22amp ; amplitude of the second oscillator of osc set 2 coeff[1,1,1] = @osc22freq ; frequency of the second oscillator of osc set 2 coeff[1,2,0] = @osc23amp ; amplitude of the third oscillator of osc set 2 coeff[1,2,1] = @osc23freq ; frequency of the third oscillator of osc set 2 coeff[1,3,0] = @osc24amp ; amplitude of the fourth oscillator of osc set 2 coeff[1,3,1] = @osc24freq ; frequency of the fourth oscillator of osc set 2 offset[0] = @o1offset ; radial offset for first oscillator set offset[1] = @o2offset ; radial offset for second oscillator set absoluteangle[0] = @o1absangle absoluteangle[1] = @o2absangle absoluteresult[0] = @o1absresult absoluteresult[1] = @o2absresult oscreciprocal[0,0] = @oscrecip11 oscreciprocal[0,1] = @oscrecip12 oscreciprocal[0,2] = @oscrecip13 oscreciprocal[0,3] = @oscrecip14 oscreciprocal[1,0] = @oscrecip21 oscreciprocal[1,1] = @oscrecip22 oscreciprocal[1,2] = @oscrecip23 oscreciprocal[1,3] = @oscrecip24 oscsetrecip[0] = @oscsetreciprocal1 oscsetrecip[1] = @oscsetreciprocal2 oscpower[0,0] = @oscpower11 oscpower[0,1] = @oscpower12 oscpower[0,2] = @oscpower13 oscpower[0,3] = @oscpower14 oscpower[1,0] = @oscpower21 oscpower[1,1] = @oscpower22 oscpower[1,2] = @oscpower23 oscpower[1,3] = @oscpower24 oscexponent[0,0] = @oscexponent11 oscexponent[0,1] = @oscexponent12 oscexponent[0,2] = @oscexponent13 oscexponent[0,3] = @oscexponent14 oscexponent[1,0] = @oscexponent21 oscexponent[1,1] = @oscexponent22 oscexponent[1,2] = @oscexponent23 oscexponent[1,3] = @oscexponent24 oscselector[0,0] = @osc11sin oscselector[0,1] = @osc12sin oscselector[0,2] = @osc13sin oscselector[0,3] = @osc14sin oscselector[1,0] = @osc21sin oscselector[1,1] = @osc22sin oscselector[1,2] = @osc23sin oscselector[1,3] = @osc24sin oscfunction[0,0] = @oscfunc11 oscfunction[0,1] = @oscfunc12 oscfunction[0,2] = @oscfunc13 oscfunction[0,3] = @oscfunc14 oscfunction[1,0] = @oscfunc21 oscfunction[1,1] = @oscfunc22 oscfunction[1,2] = @oscfunc23 oscfunction[1,3] = @oscfunc24 oscoperator[0,0] = @oscoperation11 oscoperator[0,1] = @oscoperation12 oscoperator[0,2] = @oscoperation13 oscoperator[0,3] = @oscoperation14 oscoperator[1,0] = @oscoperation21 oscoperator[1,1] = @oscoperation22 oscoperator[1,2] = @oscoperation23 oscoperator[1,3] = @oscoperation24 numberoffuncs = 0 if @osc21amp != 0.0 twotraps = TRUE numberofoscsets = 2 else numberofoscsets = 1 endif ; @osc21amp elseif ((@traptype == "mixed 1") || (@traptype == "mixed 2")) ; polar function for 1 radius, osc set for the other coeff[0,0,0] = @f1scale ; first the function, for radius 1 trapfunc[0] = @func1 offset[0] = @f1offset absoluteangle[0] = @f1absangle absoluteresult[0] = @f1absresult const[0,0] = @const1f1 const[0,1] = @const2f1 const[0,2] = @const3f1 const[0,3] = @const4f1 coeff[1,0,0] = @osc11amp ; now the oscillator, for radius 2 coeff[1,0,1] = @osc11freq coeff[1,1,0] = @osc12amp coeff[1,1,1] = @osc12freq coeff[1,2,0] = @osc13amp coeff[1,2,1] = @osc13freq coeff[1,3,0] = @osc14amp coeff[1,3,1] = @osc14freq offset[1] = @o1offset absoluteangle[1] = @o1absangle absoluteresult[1] = @o1absresult oscreciprocal[1,0] = @oscrecip11 oscreciprocal[1,1] = @oscrecip12 oscreciprocal[1,2] = @oscrecip13 oscreciprocal[1,3] = @oscrecip14 oscsetrecip[1] = @oscsetreciprocal1 oscpower[1,0] = @oscpower11 oscpower[1,1] = @oscpower12 oscpower[1,2] = @oscpower13 oscpower[1,3] = @oscpower14 oscexponent[1,0] = @oscexponent11 oscexponent[1,1] = @oscexponent12 oscexponent[1,2] = @oscexponent13 oscexponent[1,3] = @oscexponent14 oscselector[1,0] = @osc11sin oscselector[1,1] = @osc12sin oscselector[1,2] = @osc13sin oscselector[1,3] = @osc14sin oscfunction[1,0] = @oscfunc11 oscfunction[1,1] = @oscfunc12 oscfunction[1,2] = @oscfunc13 oscfunction[1,3] = @oscfunc14 oscoperator[1,0] = @oscoperation11 oscoperator[1,1] = @oscoperation12 oscoperator[1,2] = @oscoperation13 oscoperator[1,3] = @oscoperation14 numberoffuncs = 1 numberofoscsets = 1 twotraps = TRUE endif ; @traptype elseif @coordtype == "Parametric" ; instead of computing radii, we will compute x,y pairs if @traptype == "functions" ; 4 polar funcs, one for each x- and y-coordinate of the 2 pairs coeff[0,0,0] = @f1scale ; scale factor for the first function (x-coordinate 1) coeff[1,0,0] = @f2scale ; scale factor for the second function (y-coordinate 1) coeff[2,0,0] = @f3scale ; scale factor for the third function (x-coordinate 2) coeff[3,0,0] = @f4scale ; scale factor for the fourth function (y-coordinate 2) trapfunc[0] = @func1 ; list index for the first function (x-ccord 1) trapfunc[1] = @func2 ; list index for the second function (y-ccord 1) trapfunc[2] = @func3 ; list index for the third function (x-ccord 2) trapfunc[3] = @func4 ; list index for the fourth function (y-ccord 2) offset[0] = @f1offset ; offset for first function (x-coordinate 1) offset[1] = @f2offset ; offset for second function (y-coordinate 1) offset[2] = @f3offset ; offset for third function (x-coordinate 2) offset[3] = @f4offset ; offset for fourth function (y-coordinate 2) absoluteangle[0] = @f1absangle absoluteangle[1] = @f2absangle absoluteangle[2] = @f3absangle absoluteangle[3] = @f4absangle absoluteresult[0] = @f1absresult absoluteresult[1] = @f2absresult absoluteresult[2] = @f3absresult absoluteresult[3] = @f4absresult const[0,0] = @const1f1 ; optional first parameter for first function (x-ccord 1) const[1,0] = @const1f2 ; optional first parameter for second function (y-ccord 1) const[2,0] = @const1f3 ; optional first parameter for third function (x-ccord 2) const[3,0] = @const1f4 ; optional first parameter for fourth function (y-ccord 2) const[0,1] = @const2f1 ; optional second parameter for first function (x-ccord 1) const[1,1] = @const2f2 ; optional second parameter for second function (y-ccord 1) const[2,1] = @const2f3 ; optional second parameter for third function (x-ccord 2) const[3,1] = @const2f4 ; optional second parameter for fourth function (y-ccord 2) const[0,2] = @const3f1 ; optional third parameter for first function (x-ccord 1) const[1,2] = @const3f2 ; optional third parameter for second function (y-ccord 1) const[2,2] = @const3f3 ; optional third parameter for third function (x-ccord 2) const[3,2] = @const3f4 ; optional third parameter for fourth function (y-ccord 2) const[0,3] = @const4f1 ; optional fourth parameter for first function (x-ccord 1) const[1,3] = @const4f2 ; optional fourth parameter for second function (y-ccord 1) const[2,3] = @const4f3 ; optional fourth parameter for third function (x-ccord 2) const[3,3] = @const4f4 ; optional fourth parameter for fourth function (y-ccord 2) if (@f3scale != 0.0) || (@f4scale != 0.0) numberoffuncs = 4 twotraps = TRUE else numberoffuncs = 2 endif ; @f3scale numberofoscsets = 0 elseif @traptype == "oscillators" ; 4 sets of 4 oscillators, 1 for each x- and y-coordinate coeff[0,0,0] = @osc11amp ; amplitude of the first oscillator of osc set 1 (x-coord 1) coeff[0,0,1] = @osc11freq ; frequency of the first oscillator of osc set 1 (x-coord 1) coeff[0,1,0] = @osc12amp ; amplitude of the second oscillator of osc set 1 (x-coord 1) coeff[0,1,1] = @osc12freq ; frequency of the second oscillator of osc set 1 (x-coord 1) coeff[0,2,0] = @osc13amp ; amplitude of the third oscillator of osc set 1 (x-coord 1) coeff[0,2,1] = @osc13freq ; frequency of the third oscillator of osc set 1 (x-coord 1) coeff[0,3,0] = @osc14amp ; amplitude of the fourth oscillator of osc set 1 (x-coord 1) coeff[0,3,1] = @osc14freq ; frequency of the fourth oscillator of osc set 1 (x-coord 1) coeff[1,0,0] = @osc21amp ; amplitude of the first oscillator of osc set 2 (y-coord 1) coeff[1,0,1] = @osc21freq ; frequency of the first oscillator of osc set 2 (y-coord 1) coeff[1,1,0] = @osc22amp ; amplitude of the second oscillator of osc set 2 (y-coord 1) coeff[1,1,1] = @osc22freq ; frequency of the second oscillator of osc set 2 (y-coord 1) coeff[1,2,0] = @osc23amp ; amplitude of the third oscillator of osc set 2 (y-coord 1) coeff[1,2,1] = @osc23freq ; frequency of the third oscillator of osc set 2 (y-coord 1) coeff[1,3,0] = @osc24amp ; amplitude of the fourth oscillator of osc set 2 (y-coord 1) coeff[1,3,1] = @osc24freq ; frequency of the fourth oscillator of osc set 2 (y-coord 1) coeff[2,0,0] = @osc31amp ; amplitude of the first oscillator of osc set 3 (x-coord 2) coeff[2,0,1] = @osc31freq ; frequency of the first oscillator of osc set 3 (x-coord 2) coeff[2,1,0] = @osc32amp ; amplitude of the second oscillator of osc set 3 (x-coord 2) coeff[2,1,1] = @osc32freq ; frequency of the second oscillator of osc set 3 (x-coord 2) coeff[2,2,0] = @osc33amp ; amplitude of the third oscillator of osc set 3 (x-coord 2) coeff[2,2,1] = @osc33freq ; frequency of the third oscillator of osc set 3 (x-coord 2) coeff[2,3,0] = @osc34amp ; amplitude of the fourth oscillator of osc set 3 (x-coord 2) coeff[2,3,1] = @osc34freq ; frequency of the fourth oscillator of osc set 3 (x-coord 2) coeff[3,0,0] = @osc41amp ; amplitude of the first oscillator of osc set 4 (y-coord 2) coeff[3,0,1] = @osc41freq ; frequency of the first oscillator of osc set 4 (y-coord 2) coeff[3,1,0] = @osc42amp ; amplitude of the second oscillator of osc set 4 (y-coord 2) coeff[3,1,1] = @osc42freq ; frequency of the second oscillator of osc set 4 (y-coord 2) coeff[3,2,0] = @osc43amp ; amplitude of the third oscillator of osc set 4 (y-coord 2) coeff[3,2,1] = @osc43freq ; frequency of the third oscillator of osc set 4 (y-coord 2) coeff[3,3,0] = @osc44amp ; amplitude of the fourth oscillator of osc set 4 (y-coord 2) coeff[3,3,1] = @osc44freq ; frequency of the fourth oscillator of osc set 4 (y-coord 2) offset[0] = @o1offset ; offset for first oscillator (x-coordinate 1) offset[1] = @o2offset ; offset for second oscillator (y-coordinate 1) offset[2] = @o3offset ; offset for third oscillator (x-coordinate 2) offset[3] = @o4offset ; offset for fourth oscillator (y-coordinate 2) absoluteangle[0] = @o1absangle absoluteangle[1] = @o2absangle absoluteangle[2] = @o3absangle absoluteangle[3] = @o4absangle absoluteresult[0] = @o1absresult absoluteresult[1] = @o2absresult absoluteresult[2] = @o3absresult absoluteresult[3] = @o4absresult oscreciprocal[0,0] = @oscrecip11 oscreciprocal[0,1] = @oscrecip12 oscreciprocal[0,2] = @oscrecip13 oscreciprocal[0,3] = @oscrecip14 oscreciprocal[1,0] = @oscrecip21 oscreciprocal[1,1] = @oscrecip22 oscreciprocal[1,2] = @oscrecip23 oscreciprocal[1,3] = @oscrecip24 oscreciprocal[2,0] = @oscrecip31 oscreciprocal[2,1] = @oscrecip32 oscreciprocal[2,2] = @oscrecip33 oscreciprocal[2,3] = @oscrecip34 oscreciprocal[3,0] = @oscrecip41 oscreciprocal[3,1] = @oscrecip42 oscreciprocal[3,2] = @oscrecip43 oscreciprocal[3,3] = @oscrecip44 oscsetrecip[0] = @oscsetreciprocal1 oscsetrecip[1] = @oscsetreciprocal2 oscsetrecip[2] = @oscsetreciprocal3 oscsetrecip[3] = @oscsetreciprocal4 oscpower[0,0] = @oscpower11 oscpower[0,1] = @oscpower12 oscpower[0,2] = @oscpower13 oscpower[0,3] = @oscpower14 oscpower[1,0] = @oscpower21 oscpower[1,1] = @oscpower22 oscpower[1,2] = @oscpower23 oscpower[1,3] = @oscpower24 oscpower[2,0] = @oscpower31 oscpower[2,1] = @oscpower32 oscpower[2,2] = @oscpower33 oscpower[2,3] = @oscpower34 oscpower[3,0] = @oscpower41 oscpower[3,1] = @oscpower42 oscpower[3,2] = @oscpower43 oscpower[3,3] = @oscpower44 oscexponent[0,0] = @oscexponent11 oscexponent[0,1] = @oscexponent12 oscexponent[0,2] = @oscexponent13 oscexponent[0,3] = @oscexponent14 oscexponent[1,0] = @oscexponent21 oscexponent[1,1] = @oscexponent22 oscexponent[1,2] = @oscexponent23 oscexponent[1,3] = @oscexponent24 oscexponent[2,0] = @oscexponent31 oscexponent[2,1] = @oscexponent32 oscexponent[2,2] = @oscexponent33 oscexponent[2,3] = @oscexponent34 oscexponent[3,0] = @oscexponent41 oscexponent[3,1] = @oscexponent42 oscexponent[3,2] = @oscexponent43 oscexponent[3,3] = @oscexponent44 oscselector[0,0] = @osc11sin oscselector[0,1] = @osc12sin oscselector[0,2] = @osc13sin oscselector[0,3] = @osc14sin oscselector[1,0] = @osc21sin oscselector[1,1] = @osc22sin oscselector[1,2] = @osc23sin oscselector[1,3] = @osc24sin oscselector[2,0] = @osc31sin oscselector[2,1] = @osc32sin oscselector[2,2] = @osc33sin oscselector[2,3] = @osc34sin oscselector[3,0] = @osc41sin oscselector[3,1] = @osc42sin oscselector[3,2] = @osc43sin oscselector[3,3] = @osc44sin oscfunction[0,0] = @oscfunc11 oscfunction[0,1] = @oscfunc12 oscfunction[0,2] = @oscfunc13 oscfunction[0,3] = @oscfunc14 oscfunction[1,0] = @oscfunc21 oscfunction[1,1] = @oscfunc22 oscfunction[1,2] = @oscfunc23 oscfunction[1,3] = @oscfunc24 oscfunction[2,0] = @oscfunc31 oscfunction[2,1] = @oscfunc32 oscfunction[2,2] = @oscfunc33 oscfunction[2,3] = @oscfunc34 oscfunction[3,0] = @oscfunc41 oscfunction[3,1] = @oscfunc42 oscfunction[3,2] = @oscfunc43 oscfunction[3,3] = @oscfunc44 oscoperator[0,0] = @oscoperation11 oscoperator[0,1] = @oscoperation12 oscoperator[0,2] = @oscoperation13 oscoperator[0,3] = @oscoperation14 oscoperator[1,0] = @oscoperation21 oscoperator[1,1] = @oscoperation22 oscoperator[1,2] = @oscoperation23 oscoperator[1,3] = @oscoperation24 oscoperator[2,0] = @oscoperation31 oscoperator[2,1] = @oscoperation32 oscoperator[2,2] = @oscoperation33 oscoperator[2,3] = @oscoperation34 oscoperator[3,0] = @oscoperation41 oscoperator[3,1] = @oscoperation42 oscoperator[3,2] = @oscoperation43 oscoperator[3,3] = @oscoperation44 numberoffuncs = 0 if (@osc31amp != 0.0) || (@osc41amp != 0.0) numberofoscsets = 4 twotraps = TRUE else numberofoscsets = 2 endif ; @osc31amp elseif ((@traptype == "mixed 1") || (@traptype == "mixed 2")) ; 2 funcs for 1st x,y, & 2 osc sets for the 2nd x,y coeff[0,0,0] = @f1scale ; first the two functions, for first x,y-coordinate pair coeff[1,0,0] = @f2scale trapfunc[0] = @func1 trapfunc[1] = @func2 offset[0] = @f1offset offset[1] = @f2offset absoluteangle[0] = @f1absangle absoluteangle[1] = @f2absangle absoluteresult[0] = @f1absresult absoluteresult[1] = @f2absresult const[0,0] = @const1f1 const[1,0] = @const1f2 const[0,1] = @const2f1 const[1,1] = @const2f2 const[0,2] = @const3f1 const[1,2] = @const3f2 const[0,3] = @const4f1 const[1,3] = @const4f2 coeff[2,0,0] = @osc11amp ; now, the two osc sets, for the second x,y-coord pair coeff[2,0,1] = @osc11freq coeff[2,1,0] = @osc12amp coeff[2,1,1] = @osc12freq coeff[2,2,0] = @osc13amp coeff[2,2,1] = @osc13freq coeff[2,3,0] = @osc14amp coeff[2,3,1] = @osc14freq coeff[3,0,0] = @osc21amp coeff[3,0,1] = @osc21freq coeff[3,1,0] = @osc22amp coeff[3,1,1] = @osc22freq coeff[3,2,0] = @osc23amp coeff[3,2,1] = @osc23freq coeff[3,3,0] = @osc24amp coeff[3,3,1] = @osc24freq offset[2] = @o1offset offset[3] = @o2offset absoluteangle[2] = @o1absangle absoluteangle[3] = @o2absangle absoluteresult[2] = @o1absresult absoluteresult[3] = @o2absresult oscreciprocal[2,0] = @oscrecip11 oscreciprocal[2,1] = @oscrecip12 oscreciprocal[2,2] = @oscrecip13 oscreciprocal[2,3] = @oscrecip14 oscreciprocal[3,0] = @oscrecip21 oscreciprocal[3,1] = @oscrecip22 oscreciprocal[3,2] = @oscrecip23 oscreciprocal[3,3] = @oscrecip24 oscsetrecip[2] = @oscsetreciprocal1 oscsetrecip[3] = @oscsetreciprocal2 oscpower[2,0] = @oscpower11 oscpower[2,1] = @oscpower12 oscpower[2,2] = @oscpower13 oscpower[2,3] = @oscpower14 oscpower[3,0] = @oscpower21 oscpower[3,1] = @oscpower22 oscpower[3,2] = @oscpower23 oscpower[3,3] = @oscpower24 oscexponent[2,0] = @oscexponent11 oscexponent[2,1] = @oscexponent12 oscexponent[2,2] = @oscexponent13 oscexponent[2,3] = @oscexponent14 oscexponent[3,0] = @oscexponent21 oscexponent[3,1] = @oscexponent22 oscexponent[3,2] = @oscexponent23 oscexponent[3,3] = @oscexponent24 oscselector[2,0] = @osc11sin oscselector[2,1] = @osc12sin oscselector[2,2] = @osc13sin oscselector[2,3] = @osc14sin oscselector[3,0] = @osc21sin oscselector[3,1] = @osc22sin oscselector[3,2] = @osc23sin oscselector[3,3] = @osc24sin oscfunction[2,0] = @oscfunc11 oscfunction[2,1] = @oscfunc12 oscfunction[2,2] = @oscfunc13 oscfunction[2,3] = @oscfunc14 oscfunction[3,0] = @oscfunc21 oscfunction[3,1] = @oscfunc22 oscfunction[3,2] = @oscfunc23 oscfunction[3,3] = @oscfunc24 oscoperator[2,0] = @oscoperation11 oscoperator[2,1] = @oscoperation12 oscoperator[2,2] = @oscoperation13 oscoperator[2,3] = @oscoperation14 oscoperator[3,0] = @oscoperation21 oscoperator[3,1] = @oscoperation22 oscoperator[3,2] = @oscoperation23 oscoperator[3,3] = @oscoperation24 numberoffuncs = 2 numberofoscsets = 2 twotraps = TRUE endif ; @traptype elseif @coordtype == "Mixed" ; compute one radius and one x,y-coordinate pair twotraps = TRUE if @traptype == "functions" ; 1 polar func for the radius, & 2 more funcs for the x,y-coordinates coeff[0,0,0] = @f1scale ; first, the radius calculation trapfunc[0] = @func1 offset[0] = @f1offset absoluteangle[0] = @f1absangle absoluteresult[0] = @f1absresult const[0,0] = @const1f1 const[0,1] = @const2f1 const[0,2] = @const3f1 const[0,3] = @const4f1 coeff[1,0,0] = @f2scale ; now, the x- and y-coordinate calculations coeff[2,0,0] = @f3scale trapfunc[1] = @func2 trapfunc[2] = @func3 offset[1] = @f2offset offset[2] = @f3offset absoluteangle[1] = @f2absangle absoluteangle[2] = @f3absangle absoluteresult[1] = @f2absresult absoluteresult[2] = @f3absresult const[1,0] = @const1f2 const[2,0] = @const1f3 const[1,1] = @const2f2 const[2,1] = @const2f3 const[1,2] = @const3f2 const[2,2] = @const3f3 const[1,3] = @const4f2 const[2,3] = @const4f3 numberoffuncs = 3 numberofoscsets = 0 elseif @traptype == "oscillators" ; 1 set of 4 oscillators for the radius, 2 sets for the x,y pair coeff[0,0,0] = @osc11amp ; first, the radial oscillators coeff[0,0,1] = @osc11freq coeff[0,1,0] = @osc12amp coeff[0,1,1] = @osc12freq coeff[0,2,0] = @osc13amp coeff[0,2,1] = @osc13freq coeff[0,3,0] = @osc14amp coeff[0,3,1] = @osc14freq offset[0] = @o1offset absoluteangle[0] = @o1absangle absoluteresult[0] = @o1absresult oscreciprocal[0,0] = @oscrecip11 oscreciprocal[0,1] = @oscrecip12 oscreciprocal[0,2] = @oscrecip13 oscreciprocal[0,3] = @oscrecip14 oscsetrecip[0] = @oscsetreciprocal1 oscpower[0,0] = @oscpower11 oscpower[0,1] = @oscpower12 oscpower[0,2] = @oscpower13 oscpower[0,3] = @oscpower14 oscexponent[0,0] = @oscexponent11 oscexponent[0,1] = @oscexponent12 oscexponent[0,2] = @oscexponent13 oscexponent[0,3] = @oscexponent14 oscselector[0,0] = @osc11sin oscselector[0,1] = @osc12sin oscselector[0,2] = @osc13sin oscselector[0,3] = @osc14sin oscfunction[0,0] = @oscfunc11 oscfunction[0,1] = @oscfunc12 oscfunction[0,2] = @oscfunc13 oscfunction[0,3] = @oscfunc14 oscoperator[0,0] = @oscoperation11 oscoperator[0,1] = @oscoperation12 oscoperator[0,2] = @oscoperation13 oscoperator[0,3] = @oscoperation14 coeff[1,0,0] = @osc21amp ; now, the 2 sets of 4 oscillators to define the x- and y-coords coeff[1,0,1] = @osc21freq coeff[1,1,0] = @osc22amp coeff[1,1,1] = @osc22freq coeff[1,2,0] = @osc23amp coeff[1,2,1] = @osc23freq coeff[1,3,0] = @osc24amp coeff[1,3,1] = @osc24freq coeff[2,0,0] = @osc31amp coeff[2,0,1] = @osc31freq coeff[2,1,0] = @osc32amp coeff[2,1,1] = @osc32freq coeff[2,2,0] = @osc33amp coeff[2,2,1] = @osc33freq coeff[2,3,0] = @osc34amp coeff[2,3,1] = @osc34freq offset[1] = @o2offset offset[2] = @o3offset absoluteangle[1] = @o2absangle absoluteangle[2] = @o3absangle absoluteresult[1] = @o2absresult absoluteresult[2] = @o3absresult oscreciprocal[1,0] = @oscrecip21 oscreciprocal[1,1] = @oscrecip22 oscreciprocal[1,2] = @oscrecip23 oscreciprocal[1,3] = @oscrecip24 oscreciprocal[2,0] = @oscrecip31 oscreciprocal[2,1] = @oscrecip32 oscreciprocal[2,2] = @oscrecip33 oscreciprocal[2,3] = @oscrecip34 oscsetrecip[1] = @oscsetreciprocal2 oscsetrecip[2] = @oscsetreciprocal3 oscpower[1,0] = @oscpower21 oscpower[1,1] = @oscpower22 oscpower[1,2] = @oscpower23 oscpower[1,3] = @oscpower24 oscpower[2,0] = @oscpower31 oscpower[2,1] = @oscpower32 oscpower[2,2] = @oscpower33 oscpower[2,3] = @oscpower34 oscexponent[1,0] = @oscexponent21 oscexponent[1,1] = @oscexponent22 oscexponent[1,2] = @oscexponent23 oscexponent[1,3] = @oscexponent24 oscexponent[2,0] = @oscexponent31 oscexponent[2,1] = @oscexponent32 oscexponent[2,2] = @oscexponent33 oscexponent[2,3] = @oscexponent34 oscselector[1,0] = @osc21sin oscselector[1,1] = @osc22sin oscselector[1,2] = @osc23sin oscselector[1,3] = @osc24sin oscselector[2,0] = @osc31sin oscselector[2,1] = @osc32sin oscselector[2,2] = @osc33sin oscselector[2,3] = @osc34sin oscfunction[1,0] = @oscfunc21 oscfunction[1,1] = @oscfunc22 oscfunction[1,2] = @oscfunc23 oscfunction[1,3] = @oscfunc24 oscfunction[2,0] = @oscfunc31 oscfunction[2,1] = @oscfunc32 oscfunction[2,2] = @oscfunc33 oscfunction[2,3] = @oscfunc34 oscoperator[1,0] = @oscoperation21 oscoperator[1,1] = @oscoperation22 oscoperator[1,2] = @oscoperation23 oscoperator[1,3] = @oscoperation24 oscoperator[2,0] = @oscoperation31 oscoperator[2,1] = @oscoperation32 oscoperator[2,2] = @oscoperation33 oscoperator[2,3] = @oscoperation34 numberoffuncs = 0 numberofoscsets = 3 elseif @traptype == "mixed 1" ; radius computed by polar funcs, x,y-coords by 2 sets of oscillators coeff[0,0,0] = @f1scale ; first, the radius calculation trapfunc[0] = @func1 offset[0] = @f1offset absoluteangle[0] = @f1absangle absoluteresult[0] = @f1absresult const[0,0] = @const1f1 const[0,1] = @const2f1 const[0,2] = @const3f1 const[0,3] = @const4f1 coeff[1,0,0] = @osc11amp ; now, the 2 sets of 4 oscillators to define the x- and y-coords coeff[1,0,1] = @osc11freq coeff[1,1,0] = @osc12amp coeff[1,1,1] = @osc12freq coeff[1,2,0] = @osc13amp coeff[1,2,1] = @osc13freq coeff[1,3,0] = @osc14amp coeff[1,3,1] = @osc14freq coeff[2,0,0] = @osc21amp coeff[2,0,1] = @osc21freq coeff[2,1,0] = @osc22amp coeff[2,1,1] = @osc22freq coeff[2,2,0] = @osc23amp coeff[2,2,1] = @osc23freq coeff[2,3,0] = @osc24amp coeff[2,3,1] = @osc24freq offset[1] = @o1offset offset[2] = @o2offset absoluteangle[1] = @o1absangle absoluteangle[2] = @o2absangle absoluteresult[1] = @o1absresult absoluteresult[2] = @o2absresult oscreciprocal[1,0] = @oscrecip11 oscreciprocal[1,1] = @oscrecip12 oscreciprocal[1,2] = @oscrecip13 oscreciprocal[1,3] = @oscrecip14 oscreciprocal[2,0] = @oscrecip21 oscreciprocal[2,1] = @oscrecip22 oscreciprocal[2,2] = @oscrecip23 oscreciprocal[2,3] = @oscrecip24 oscsetrecip[1] = @oscsetreciprocal1 oscsetrecip[2] = @oscsetreciprocal2 oscpower[1,0] = @oscpower11 oscpower[1,1] = @oscpower12 oscpower[1,2] = @oscpower13 oscpower[1,3] = @oscpower14 oscpower[2,0] = @oscpower21 oscpower[2,1] = @oscpower22 oscpower[2,2] = @oscpower23 oscpower[2,3] = @oscpower24 oscexponent[1,0] = @oscexponent11 oscexponent[1,1] = @oscexponent12 oscexponent[1,2] = @oscexponent13 oscexponent[1,3] = @oscexponent14 oscexponent[2,0] = @oscexponent21 oscexponent[2,1] = @oscexponent22 oscexponent[2,2] = @oscexponent23 oscexponent[2,3] = @oscexponent24 oscselector[1,0] = @osc11sin oscselector[1,1] = @osc12sin oscselector[1,2] = @osc13sin oscselector[1,3] = @osc14sin oscselector[2,0] = @osc21sin oscselector[2,1] = @osc22sin oscselector[2,2] = @osc23sin oscselector[2,3] = @osc24sin oscfunction[1,0] = @oscfunc11 oscfunction[1,1] = @oscfunc12 oscfunction[1,2] = @oscfunc13 oscfunction[1,3] = @oscfunc14 oscfunction[2,0] = @oscfunc21 oscfunction[2,1] = @oscfunc22 oscfunction[2,2] = @oscfunc23 oscfunction[2,3] = @oscfunc24 oscoperator[1,0] = @oscoperation11 oscoperator[1,1] = @oscoperation12 oscoperator[1,2] = @oscoperation13 oscoperator[1,3] = @oscoperation14 oscoperator[2,0] = @oscoperation21 oscoperator[2,1] = @oscoperation22 oscoperator[2,2] = @oscoperation23 oscoperator[2,3] = @oscoperation24 numberoffuncs = 1 numberofoscsets = 2 elseif @traptype == "mixed 2" ; x,y- coords computed using polar funcs, radius using 1 set of oscillators coeff[0,0,0] = @f1scale ; first, calc the x,y pair with polar funcs coeff[1,0,0] = @f2scale trapfunc[0] = @func1 trapfunc[1] = @func2 offset[0] = @f1offset offset[1] = @f2offset absoluteangle[0] = @f1absangle absoluteangle[1] = @f2absangle absoluteresult[0] = @f1absresult absoluteresult[1] = @f2absresult const[0,0] = @const1f1 const[1,0] = @const1f2 const[0,1] = @const2f1 const[1,1] = @const2f2 const[0,2] = @const3f1 const[1,2] = @const3f2 const[0,3] = @const4f1 const[1,3] = @const4f2 coeff[2,0,0] = @osc11amp ; now compute a radius using a 4-oscillator set coeff[2,0,1] = @osc11freq coeff[2,1,0] = @osc12amp coeff[2,1,1] = @osc12freq coeff[2,2,0] = @osc13amp coeff[2,2,1] = @osc13freq coeff[2,3,0] = @osc14amp coeff[2,3,1] = @osc14freq offset[2] = @o1offset absoluteangle[2] = @o1absangle absoluteresult[2] = @o1absresult oscreciprocal[2,0] = @oscrecip11 oscreciprocal[2,1] = @oscrecip12 oscreciprocal[2,2] = @oscrecip13 oscreciprocal[2,3] = @oscrecip14 oscsetrecip[2] = @oscsetreciprocal1 oscpower[2,0] = @oscpower11 oscpower[2,1] = @oscpower12 oscpower[2,2] = @oscpower13 oscpower[2,3] = @oscpower14 oscexponent[2,0] = @oscexponent11 oscexponent[2,1] = @oscexponent12 oscexponent[2,2] = @oscexponent13 oscexponent[2,3] = @oscexponent14 oscselector[2,0] = @osc11sin oscselector[2,1] = @osc12sin oscselector[2,2] = @osc13sin oscselector[2,3] = @osc14sin oscfunction[2,0] = @oscfunc11 oscfunction[2,1] = @oscfunc12 oscfunction[2,2] = @oscfunc13 oscfunction[2,3] = @oscfunc14 oscoperator[2,0] = @oscoperation11 oscoperator[2,1] = @oscoperation12 oscoperator[2,2] = @oscoperation13 oscoperator[2,3] = @oscoperation14 numberoffuncs = 2 numberofoscsets = 1 endif ; @traptype endif ; @coordtype if @texture texfunc[0] = @texfunc1 tex2powers[0] = @tex2power texfunc[1] = @texfunc2 tex2powers[1] = @tex2power2 texfunc[2] = @texfunc3 tex2powers[2] = @tex2power3 texfunc[3] = @texfunc4 tex2powers[3] = @tex2power4 endif ; @texture if ( (@func1 == "polygon") || (@func2 == "polygon") || (@func3 == "polygon") || (@func4 == "polygon") ) gtempindex1 = 0 gtempindex2 = @polygonsides+1 while gtempindex1 < gtempindex2 polyvertexangles[gtempindex1] = gtempindex1*polygonincrement gtempindex1 = gtempindex1+1 endwhile ; gtempindex1 endif ; @func1 if ( (@func1 == "star") || (@func2 == "star") || (@func3 == "star") || (@func4 == "star") ) gtempindex1 = 0 while gtempindex1 <= polystarmax polystarangles[gtempindex1] = gtempindex1*polystarincrement gtempindex1 = gtempindex1+1 endwhile ; gtempindex1 endif ; @func1 if ( (@func1 == "curved polygon") || (@func2 == "curved polygon") || (@func3 == \ "curved polygon") || (@func4 == "curved polygon") ) gtempindex1 = 0 gtempindex2 = @polygoncusps+1 while gtempindex1 < gtempindex2 polycuspangles[gtempindex1] = gtempindex1*polycuspincrement gtempindex1 = gtempindex1+1 endwhile ; gtempindex1 endif ; @func1 init: ; New or newly defined variables complex ztemp = complex ztemp2 = (0,0) ; various uses; generally holds modifed #z complex tempc = (0,0) ; the trapped trap point complex traptemp = complex traptemp2 = (0,0) float tempangle = float tempangle2 = 0.0 ; angle of transformed, centered, etc., z float originalangle = 0.0 ; used for alternate form of spreadangle option float ftemp = float ftemp2 = float ftemp3 = 0.0 ; various uses; scratchpad variables float texadjust = 0.0 int maxindex = 0 int index = 0 ; outer/main loop variable int index2 = 0 ; pointer to array index within main loops int index3 = 0 ; inner loop variable ; int tempint = 0 ; scratchpad integer variable int itercount = 0 ; for trapping the Nth z iterate bool solidset = bool maskAset = bool maskBset = FALSE ; flags used for masking float bfreq = @bbfreq ; Initialize periodicity variables bool periodflag = TRUE ; default setting so that main iter routine in 'loop:' section ; will execute even if periodicity is not enabled int periodcount = 0 ; for tracking the number of monitored iterations in the alternative periodicity style bool monitorperiod = TRUE ; always start out in iter monitoring mode ; Angle restriction variables bool anglerestriction = TRUE float tempangle = 0.0 ; This array holds the result of each of the r, x, or y calculations float result[4] ; initialize arrays maxindex = 4 while index < maxindex result[index] = 0.0 index = index + 1 endwhile ; index ; For history options; initialize history arrays complex zhist[2,10] ; for storing past generations of #z (zhist[0,i]), zinput (zhist[1,i]) index2 = 0 while index2 < 2 index = 0, maxindex = 10 while index < maxindex zhist[index2,index] = ztemp index = index + 1 endwhile ; index index2 = index2 + 1 endwhile ; index2 complex thist[2,10] ; for storing past generations of the trap point before (thist[0,i]) & after (thist[1,i]) modulations index2 = 0 while index2 < 2 index = 0, maxindex = 10 while index < maxindex thist[index2,index] = tempc index = index + 1 endwhile ; index index2 = index2 + 1 endwhile ; index2 ; Old variables ; Change and scale variables to facilitate variation, if enabled float thresh = @threshold, float threshstep = 0.05 * @threshstp float scale = 0.1 * @overallscale, float scalestep = 0.05 * @scalestp float rwidth = @ringwidth, float ringstep = 0.05 * @ringstp float rotation = @rotate * degconversion, float rotationstep = 0.05 * @rotationstp complex center = @centr, float centerstep = @centerstp ; For fBm computation variation option float fBmmamount = @fBmamount, float fBmadjust = 0.0, float tempcolor = 0.0 float fBmstep = @fBmstp ; General variables and options if ( rotation < 0 ) rotation = rotation + twopi endif ; rotation float sign = 0.0 bool trapped = FALSE bool vary = TRUE float innerradius = thresh - @ringwidth if (@whattotrap > 11) && (@whattotrap != 26) innerradius = thresh + @ringwidth ; innerradius is really an outerradius if we are exceeding limits endif ; @whattotrap int iter = 0, int count = 0, int hitcount = 0 complex zinput = (0,0) ; holds the transformed/rotated etc #z; actual input to the trap float tempx = 0.0, float tempy = 0.0 ; misc. float vars ; More general options, mostly relating to trapped values float test = 0.0 ; this will hold the value being checked for min, max, etc. float tvtrapped = float tvtrapped2 = float tvtrapped3 = float tvtrapped4 = 1e9 ; trapped test values int itrapped = int itrapped2 = int itrapped3 = int itrapped4 = 0 ; trapped iterations float zangle = float tangle = 0.0 ; angle of #z, trap point float zatrapped = float zatrapped2 = float zatrapped3 = float zatrapped4 = 0.0 ; trapped z angles float tatrapped = float tatrapped2 = float tatrapped3 = float tatrapped4 = 0.0 ; trapped trap pt angles float ziatrapped = float ziatrapped2 = float ziatrapped3 = float ziatrapped4 = 0.0 ; trapped zinput angles complex ztrapped = complex ztrapped2 = complex ztrapped3 = complex ztrapped4 = (0,0) ; trapped z values complex zitrapped = complex zitrapped2 = complex zitrapped3 = complex zitrapped4 = (0,0) ; trapped zinputs complex ttrapped = complex ttrapped2 = complex ttrapped3 = complex ttrapped4 = (0,0) ; trapped trap pts ; If we're trapping something big, initialize small if (( @whattotrap == 1 ) || ( @whattotrap == 5 ) || ( @whattotrap == 6 ) \ || ( @whattotrap == 7 )) tvtrapped = tvtrapped2 = tvtrapped3 = tvtrapped4 = -1e9 elseif (@whattotrap > 16) && (@whattotrap != 26) tvtrapped2 = -1e9 ; used to store the max when looking for min-max, min+max, etc. endif ; trapmode loop: iter = iter + 1 ztemp = #z if @periodicity if !@altperiodstyle if (iter % @period) == periodphase periodflag = TRUE else periodflag = FALSE endif ; iter if @reversephase periodflag = !periodflag endif ; @reversephase else periodcount = periodcount + 1 if monitorperiod if periodcount > @monitorlimit periodcount = 1 ; reset monitor counter, remembering that this iteration is the first in the now toggled mode monitorperiod = !monitorperiod ; toggle current mode flag periodflag = FALSE endif ; periodcount else if periodcount > @skiplimit periodcount = 1 monitorperiod = !monitorperiod periodflag = TRUE endif ; periodcount endif ; monitorperiod endif ; @altperiodstyle endif ; @periodicity if @anglerestrict anglerestriction = FALSE tempangle = atan2(#z) if tempangle < 0 tempangle = tempangle + twopi endif ; tempangle if tempangle >= anglelowbound if tempangle <= anglehighbound anglerestriction = TRUE endif ; tempangle endif ; tempangle endif ; @anglerestrict if @initialbias ztemp = (@ibprod*(ztemp + @ibaddend))^@ibexponent endif ; @initialbias if @history maxindex = 0, index = 9 while index > maxindex index2 = index-1 zhist[0,index] = zhist[0,index2] index = index2 endwhile ; index zhist[0,0] = ztemp endif ; @history if ( iter > @skippediters ) && ( iter <= watch ) && periodflag && anglerestriction; finished skipping --- start testing for trap if @history if @hismode == "original" || @hismode == "both" if @histype == 1 ztemp = zhist[@zmixmatch2,1] elseif @histype == 2 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,1])) elseif @histype == 3 ztemp = real(zhist[@zmixmatch2,1]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 4 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,1] elseif @histype == 5 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,1]) elseif @histype == 6 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,1])) elseif @histype == 7 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,1] elseif @histype == 8 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,1]) elseif @histype == 9 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,1])) elseif @histype == 10 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,1] elseif @histype == 11 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,1]) elseif @histype == 12 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,1])) elseif @histype == 13 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,1] elseif @histype == 14 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,1] elseif @histype == 15 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,1] elseif @histype == 16 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,1] elseif @histype == 17 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,1] elseif @histype == 18 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,1] elseif @histype == 19 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,1])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,1]))) elseif @histype == 20 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,1])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,1]))) elseif @histype == 21 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,1])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,1]))) elseif @histype == 22 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,1])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,1]))) elseif @histype == 23 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,1])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,1]))) elseif @histype == 24 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,1])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,1]))) elseif @histype == 25 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,1])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,1]))) elseif @histype == 26 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,1])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,1]))) elseif @histype == 27 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,1])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,1]))) elseif @histype == 28 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,1])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,1]))) elseif @histype == 29 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,1])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,1]))) elseif @histype == 30 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,1])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,1]))) elseif @histype == 31 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,1])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,1]))) elseif @histype == 32 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,1])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,1]))) elseif @histype == 33 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,1])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,1]))) elseif @histype == 34 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,1])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,1]))) elseif @histype == 35 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,1])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,1]))) elseif @histype == 36 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,1])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,1]))) elseif @histype == 37 ztemp = zhist[@zmixmatch2,2] elseif @histype == 38 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,2])) elseif @histype == 39 ztemp = real(zhist[@zmixmatch2,2]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 40 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,2] elseif @histype == 41 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,2]) elseif @histype == 42 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,2])) elseif @histype == 43 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,2] elseif @histype == 44 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,2]) elseif @histype == 45 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,2])) elseif @histype == 46 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,2] elseif @histype == 47 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,2]) elseif @histype == 48 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,2])) elseif @histype == 49 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,2] elseif @histype == 50 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,2] elseif @histype == 51 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,2] elseif @histype == 52 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,2] elseif @histype == 53 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,2] elseif @histype == 54 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,2] elseif @histype == 55 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,2])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,2]))) elseif @histype == 56 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,2])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,2]))) elseif @histype == 57 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,2])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,2]))) elseif @histype == 58 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,2])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,2]))) elseif @histype == 59 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,2])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,2]))) elseif @histype == 60 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,2])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,2]))) elseif @histype == 61 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,2])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,2]))) elseif @histype == 62 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,2])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,2]))) elseif @histype == 63 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,2])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,2]))) elseif @histype == 64 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,2])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,2]))) elseif @histype == 65 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,2])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,2]))) elseif @histype == 66 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,2])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,2]))) elseif @histype == 67 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,2])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,2]))) elseif @histype == 68 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,2])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,2]))) elseif @histype == 69 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,2])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,2]))) elseif @histype == 70 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,2])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,2]))) elseif @histype == 71 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,2])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,2]))) elseif @histype == 72 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,2])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,2]))) elseif @histype == 73 ztemp = zhist[@zmixmatch2,3] elseif @histype == 74 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,3])) elseif @histype == 75 ztemp = real(zhist[@zmixmatch2,3]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 76 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,3] elseif @histype == 77 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,3]) elseif @histype == 78 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,3])) elseif @histype == 79 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,3] elseif @histype == 80 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,3]) elseif @histype == 81 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,3])) elseif @histype == 82 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,3] elseif @histype == 83 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,3]) elseif @histype == 84 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,3])) elseif @histype == 85 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,3] elseif @histype == 86 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,3] elseif @histype == 87 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,3] elseif @histype == 88 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,3] elseif @histype == 89 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,3] elseif @histype == 90 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,3] elseif @histype == 91 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,3])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,3]))) elseif @histype == 92 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,3])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,3]))) elseif @histype == 93 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,3])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,3]))) elseif @histype == 94 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,3])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,3]))) elseif @histype == 95 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,3])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,3]))) elseif @histype == 96 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,3])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,3]))) elseif @histype == 97 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,3])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,3]))) elseif @histype == 98 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,3])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,3]))) elseif @histype == 99 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,3])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,3]))) elseif @histype == 100 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,3])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,3]))) elseif @histype == 101 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,3])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,3]))) elseif @histype == 102 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,3])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,3]))) elseif @histype == 103 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,3])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,3]))) elseif @histype == 104 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,3])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,3]))) elseif @histype == 105 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,3])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,3]))) elseif @histype == 106 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,3])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,3]))) elseif @histype == 107 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,3])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,3]))) elseif @histype == 108 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,3])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,3]))) elseif @histype == 109 ztemp = zhist[@zmixmatch2,4] elseif @histype == 110 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,4])) elseif @histype == 111 ztemp = real(zhist[@zmixmatch2,4]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 112 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,4] elseif @histype == 113 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,4]) elseif @histype == 114 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,4])) elseif @histype == 115 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,4] elseif @histype == 116 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,4]) elseif @histype == 117 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,4])) elseif @histype == 118 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,4] elseif @histype == 119 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,4]) elseif @histype == 120 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,4])) elseif @histype == 121 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,4] elseif @histype == 122 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,4] elseif @histype == 123 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,4] elseif @histype == 124 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,4] elseif @histype == 125 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,4] elseif @histype == 126 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,4] elseif @histype == 127 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,4])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,4]))) elseif @histype == 128 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,4])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,4]))) elseif @histype == 129 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,4])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,4]))) elseif @histype == 130 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,4])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,4]))) elseif @histype == 131 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,4])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,4]))) elseif @histype == 132 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,4])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,4]))) elseif @histype == 133 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,4])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,4]))) elseif @histype == 134 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,4])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,4]))) elseif @histype == 135 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,4])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,4]))) elseif @histype == 136 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,4])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,4]))) elseif @histype == 137 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,4])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,4]))) elseif @histype == 138 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,4])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,4]))) elseif @histype == 139 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,4])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,4]))) elseif @histype == 140 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,4])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,4]))) elseif @histype == 141 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,4])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,4]))) elseif @histype == 142 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,4])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,4]))) elseif @histype == 143 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,4])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,4]))) elseif @histype == 144 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,4])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,4]))) elseif @histype == 145 ztemp = zhist[@zmixmatch2,5] elseif @histype == 146 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,5])) elseif @histype == 147 ztemp = real(zhist[@zmixmatch2,5]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 148 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,5] elseif @histype == 149 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,5]) elseif @histype == 150 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,5])) elseif @histype == 151 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,5] elseif @histype == 152 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,5]) elseif @histype == 153 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,5])) elseif @histype == 154 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,5] elseif @histype == 155 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,5]) elseif @histype == 156 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,5])) elseif @histype == 157 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,5] elseif @histype == 158 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,5] elseif @histype == 159 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,5] elseif @histype == 160 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,5] elseif @histype == 161 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,5] elseif @histype == 162 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,5] elseif @histype == 163 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,5])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,5]))) elseif @histype == 164 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,5])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,5]))) elseif @histype == 165 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,5])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,5]))) elseif @histype == 166 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,5])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,5]))) elseif @histype == 167 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,5])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,5]))) elseif @histype == 168 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,5])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,5]))) elseif @histype == 169 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,5])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,5]))) elseif @histype == 170 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,5])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,5]))) elseif @histype == 171 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,5])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,5]))) elseif @histype == 172 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,5])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,5]))) elseif @histype == 173 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,5])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,5]))) elseif @histype == 174 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,5])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,5]))) elseif @histype == 175 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,5])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,5]))) elseif @histype == 176 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,5])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,5]))) elseif @histype == 177 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,5])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,5]))) elseif @histype == 178 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,5])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,5]))) elseif @histype == 179 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,5])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,5]))) elseif @histype == 180 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,5])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,5]))) elseif @histype == 181 ztemp = zhist[@zmixmatch2,6] elseif @histype == 182 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,6])) elseif @histype == 183 ztemp = real(zhist[@zmixmatch2,6]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 184 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,6] elseif @histype == 185 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,6]) elseif @histype == 186 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,6])) elseif @histype == 187 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,6] elseif @histype == 188 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,6]) elseif @histype == 189 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,6])) elseif @histype == 190 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,6] elseif @histype == 191 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,6]) elseif @histype == 192 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,6])) elseif @histype == 193 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,6] elseif @histype == 194 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,6] elseif @histype == 195 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,6] elseif @histype == 196 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,6] elseif @histype == 197 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,6] elseif @histype == 198 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,6] elseif @histype == 199 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,6])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,6]))) elseif @histype == 200 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,6])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,6]))) elseif @histype == 201 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,6])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,6]))) elseif @histype == 202 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,6])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,6]))) elseif @histype == 203 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,6])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,6]))) elseif @histype == 204 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,6])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,6]))) elseif @histype == 205 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,6])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,6]))) elseif @histype == 206 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,6])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,6]))) elseif @histype == 207 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,6])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,6]))) elseif @histype == 208 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,6])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,6]))) elseif @histype == 209 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,6])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,6]))) elseif @histype == 210 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,6])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,6]))) elseif @histype == 211 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,6])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,6]))) elseif @histype == 212 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,6])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,6]))) elseif @histype == 213 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,6])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,6]))) elseif @histype == 214 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,6])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,6]))) elseif @histype == 215 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,6])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,6]))) elseif @histype == 216 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,6])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,6]))) elseif @histype == 217 ztemp = zhist[@zmixmatch2,7] elseif @histype == 218 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,7])) elseif @histype == 219 ztemp = real(zhist[@zmixmatch2,7]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 220 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,7] elseif @histype == 221 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,7]) elseif @histype == 222 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,7])) elseif @histype == 223 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,7] elseif @histype == 224 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,7]) elseif @histype == 225 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,7])) elseif @histype == 226 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,7] elseif @histype == 227 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,7]) elseif @histype == 228 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,7])) elseif @histype == 229 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,7] elseif @histype == 230 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,7] elseif @histype == 231 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,7] elseif @histype == 232 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,7] elseif @histype == 233 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,7] elseif @histype == 234 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,7] elseif @histype == 235 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,7])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,7]))) elseif @histype == 236 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,7])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,7]))) elseif @histype == 237 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,7])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,7]))) elseif @histype == 238 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,7])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,7]))) elseif @histype == 239 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,7])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,7]))) elseif @histype == 240 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,7])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,7]))) elseif @histype == 241 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,7])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,7]))) elseif @histype == 242 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,7])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,7]))) elseif @histype == 243 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,7])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,7]))) elseif @histype == 244 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,7])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,7]))) elseif @histype == 245 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,7])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,7]))) elseif @histype == 246 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,7])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,7]))) elseif @histype == 247 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,7])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,7]))) elseif @histype == 248 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,7])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,7]))) elseif @histype == 249 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,7])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,7]))) elseif @histype == 250 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,7])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,7]))) elseif @histype == 251 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,7])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,7]))) elseif @histype == 252 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,7])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,7]))) elseif @histype == 253 ztemp = zhist[@zmixmatch2,8] elseif @histype == 254 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,8])) elseif @histype == 255 ztemp = real(zhist[@zmixmatch2,8]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 256 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,8] elseif @histype == 257 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,8]) elseif @histype == 258 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,8])) elseif @histype == 259 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,8] elseif @histype == 260 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,8]) elseif @histype == 261 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,8])) elseif @histype == 262 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,8] elseif @histype == 263 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,8]) elseif @histype == 264 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,8])) elseif @histype == 265 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,8] elseif @histype == 266 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,8] elseif @histype == 267 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,8] elseif @histype == 268 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,8] elseif @histype == 269 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,8] elseif @histype == 270 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,8] elseif @histype == 271 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,8])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,8]))) elseif @histype == 272 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,8])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,8]))) elseif @histype == 273 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,8])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,8]))) elseif @histype == 274 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,8])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,8]))) elseif @histype == 275 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,8])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,8]))) elseif @histype == 276 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,8])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,8]))) elseif @histype == 277 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,8])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,8]))) elseif @histype == 278 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,8])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,8]))) elseif @histype == 279 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,8])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,8]))) elseif @histype == 280 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,8])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,8]))) elseif @histype == 281 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,8])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,8]))) elseif @histype == 282 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,8])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,8]))) elseif @histype == 283 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,8])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,8]))) elseif @histype == 284 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,8])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,8]))) elseif @histype == 285 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,8])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,8]))) elseif @histype == 286 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,8])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,8]))) elseif @histype == 287 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,8])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,8]))) elseif @histype == 288 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,8])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,8]))) elseif @histype == 289 ztemp = zhist[@zmixmatch2,9] elseif @histype == 290 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,9])) elseif @histype == 291 ztemp = real(zhist[@zmixmatch2,9]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 292 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,9] elseif @histype == 293 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,9]) elseif @histype == 294 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,9])) elseif @histype == 295 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,9] elseif @histype == 296 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,9]) elseif @histype == 297 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,9])) elseif @histype == 298 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,9] elseif @histype == 299 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,9]) elseif @histype == 300 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,9])) elseif @histype == 301 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,9] elseif @histype == 302 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,9] elseif @histype == 303 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,9] elseif @histype == 304 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,9] elseif @histype == 305 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,9] elseif @histype == 306 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,9] elseif @histype == 307 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,9])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,9]))) elseif @histype == 308 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,9])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,9]))) elseif @histype == 309 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,9])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,9]))) elseif @histype == 310 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,9])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,9]))) elseif @histype == 311 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,9])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,9]))) elseif @histype == 312 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,9])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,9]))) elseif @histype == 313 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,9])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,9]))) elseif @histype == 314 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,9])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,9]))) elseif @histype == 315 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,9])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,9]))) elseif @histype == 316 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,9])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,9]))) elseif @histype == 317 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,9])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,9]))) elseif @histype == 318 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,9])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,9]))) elseif @histype == 319 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,9])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,9]))) elseif @histype == 320 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,9])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,9]))) elseif @histype == 321 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,9])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,9]))) elseif @histype == 322 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,9])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,9]))) elseif @histype == 323 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,9])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,9]))) elseif @histype == 324 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,9])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,9]))) elseif @histype == 325 ztemp = zhist[@zmixmatch1,@histype1index]/zhist[@zmixmatch2,1] elseif @histype == 326 ztemp = zhist[@zmixmatch2,1]/zhist[@zmixmatch1,@histype1index] elseif @histype == 327 ztemp = zhist[@zmixmatch1,@histype1index]^zhist[@zmixmatch2,1] elseif @histype == 328 ztemp = zhist[@zmixmatch2,1]^zhist[@zmixmatch1,@histype1index] elseif @histype == 329 ztemp = zhist[@zmixmatch1,@histype1index]/real(zhist[@zmixmatch2,1]) elseif @histype == 330 ztemp = zhist[@zmixmatch1,@histype1index]/imag(zhist[@zmixmatch2,1]) elseif @histype == 331 ztemp = zhist[@zmixmatch2,1]/real(zhist[@zmixmatch1,@histype1index]) elseif @histype == 332 ztemp = zhist[@zmixmatch2,1]/imag(zhist[@zmixmatch1,@histype1index]) elseif @histype == 333 ztemp = zhist[@zmixmatch1,@histype1index]^real(zhist[@zmixmatch2,1]) elseif @histype == 334 ztemp = zhist[@zmixmatch1,@histype1index]^imag(zhist[@zmixmatch2,1]) elseif @histype == 335 ztemp = zhist[@zmixmatch2,1]^real(zhist[@zmixmatch1,@histype1index]) elseif @histype == 336 ztemp = zhist[@zmixmatch2,1]^imag(zhist[@zmixmatch1,@histype1index]) elseif @histype == 337 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,1] + zhist[@zmixmatch2,2] elseif @histype == 338 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,1] + zhist[@zmixmatch2,2] elseif @histype == 339 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,1] - zhist[@zmixmatch2,2] elseif @histype == 340 ztemp = -zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,1] + zhist[@zmixmatch2,2] elseif @histype == 341 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,1] - zhist[@zmixmatch2,2] elseif @histype == 342 ztemp = zhist[@zmixmatch1,@histype1index] + (zhist[@zmixmatch2,1] * zhist[@zmixmatch2,2]) elseif @histype == 343 ztemp = zhist[@zmixmatch1,@histype1index] - (zhist[@zmixmatch2,1] * zhist[@zmixmatch2,2]) elseif @histype == 344 ztemp = zhist[@zmixmatch2,1] + (zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,2]) elseif @histype == 345 ztemp = zhist[@zmixmatch2,1] - (zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,2]) elseif @histype == 346 ztemp = zhist[@zmixmatch2,2] + (zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,1]) elseif @histype == 347 ztemp = zhist[@zmixmatch2,2] - (zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,1]) elseif @histype == 348 ztemp = zhist[@zmixmatch1,@histype1index]/zhist[@zmixmatch2,2] elseif @histype == 349 ztemp = zhist[@zmixmatch2,2]/zhist[@zmixmatch1,@histype1index] elseif @histype == 350 ztemp = zhist[@zmixmatch1,@histype1index]^zhist[@zmixmatch2,2] elseif @histype == 351 ztemp = zhist[@zmixmatch2,2]^zhist[@zmixmatch1,@histype1index] elseif @histype == 352 ztemp = zhist[@zmixmatch1,@histype1index]/real(zhist[@zmixmatch2,2]) elseif @histype == 353 ztemp = zhist[@zmixmatch1,@histype1index]/imag(zhist[@zmixmatch2,2]) elseif @histype == 354 ztemp = zhist[@zmixmatch2,2]/real(zhist[@zmixmatch1,@histype1index]) elseif @histype == 355 ztemp = zhist[@zmixmatch2,2]/imag(zhist[@zmixmatch1,@histype1index]) elseif @histype == 356 ztemp = zhist[@zmixmatch1,@histype1index]^real(zhist[@zmixmatch2,2]) elseif @histype == 357 ztemp = zhist[@zmixmatch1,@histype1index]^imag(zhist[@zmixmatch2,2]) elseif @histype == 358 ztemp = zhist[@zmixmatch2,2]^real(zhist[@zmixmatch1,@histype1index]) elseif @histype == 359 ztemp = zhist[@zmixmatch2,2]^imag(zhist[@zmixmatch1,@histype1index]) elseif @histype == 360 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,2] + zhist[@zmixmatch2,3] elseif @histype == 361 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,2] + zhist[@zmixmatch2,3] elseif @histype == 362 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,2] - zhist[@zmixmatch2,3] elseif @histype == 363 ztemp = -zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,2] + zhist[@zmixmatch2,3] elseif @histype == 364 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,2] - zhist[@zmixmatch2,3] elseif @histype == 365 ztemp = zhist[@zmixmatch1,@histype1index] + (zhist[@zmixmatch2,2] * zhist[@zmixmatch2,3]) elseif @histype == 366 ztemp = zhist[@zmixmatch1,@histype1index] - (zhist[@zmixmatch2,2] * zhist[@zmixmatch2,3]) elseif @histype == 367 ztemp = zhist[@zmixmatch2,2] + (zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,3]) elseif @histype == 368 ztemp = zhist[@zmixmatch2,2] - (zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,3]) elseif @histype == 369 ztemp = zhist[@zmixmatch2,3] + (zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,2]) elseif @histype == 370 ztemp = zhist[@zmixmatch2,3] - (zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,2]) else ztemp = #z endif ; histype if @zhist1blend ztemp = @zhist1fraction*ztemp + zhist1comp*#z endif ; @zhist1blend else if @fixaltbug ztemp = #z endif ; @fixaltbug endif ; @hismode ; else ; ztemp = #z endif ; history if @absolutez ztemp = abs(ztemp) endif ; @absolutez if @absoluter ztemp = abs(real(ztemp)) + flip(imag(ztemp)) endif ; @absoluter if @absolutei ztemp = real(ztemp) + flip(abs(imag(ztemp))) endif ; @absolutei zangle = atan2(#z) if zangle < 0 zangle = zangle + twopi endif ; zangle if @frontendbias ztemp = (@febprod*(ztemp + @febaddend))^@febexponent endif ; @frontendbias ; Initialize front end real, front end imag, if desired ftemp = @rfscale * real(ztemp) if @absoluter2 ftemp = abs(ftemp) endif ; @absoluter2 if ( @realfront == 0 ) tempx = ftemp elseif ( @realfront == 1 ) tempx = 1/ftemp elseif ( @realfront == 2 ) tempx = ftemp * ftemp elseif ( @realfront == 3 ) tempx = 1 / ( ftemp * ftemp ) elseif ( @realfront == 4 ) tempx = log(ftemp) elseif ( @realfront == 5 ) tempx = exp( ftemp) elseif ( @realfront == 6 ) tempx = ftemp^ftemp elseif ( @realfront == 7 ) tempx = sin( ftemp ) elseif ( @realfront == 8 ) tempx = cos( ftemp ) elseif ( @realfront == 9 ) tempx = tan( ftemp ) elseif ( @realfront == 10 ) tempx = asin( ftemp ) elseif ( @realfront == 11 ) tempx = acos( ftemp ) elseif ( @realfront == 12 ) tempx = atan( ftemp ) elseif ( @realfront == 13 ) tempx = sinh( ftemp ) elseif ( @realfront == 14 ) tempx = cosh( ftemp ) elseif ( @realfront == 15 ) tempx = tanh( ftemp ) elseif ( @realfront == 16 ) tempx = asinh( ftemp ) elseif ( @realfront == 17 ) tempx = acosh( ftemp ) elseif ( @realfront == 18 ) tempx = atanh( ftemp ) elseif ( @realfront == 19 ) tempx = log( 1/ftemp ) elseif ( @realfront == 20 ) tempx = log( log( ftemp )) elseif ( @realfront == 21 ) tempx = exp( -ftemp ) elseif ( @realfront == 22 ) tempx = exp( 1/ftemp ) elseif ( @realfront == 23 ) tempx = ftemp^(-ftemp) elseif ( @realfront == 24 ) tempx = sin( ftemp ) tempx = tempx * tempx elseif ( @realfront == 25 ) tempx = cos( ftemp ) tempx = tempx * tempx elseif ( @realfront == 26 ) tempx = tan( ftemp ) tempx = tempx * tempx elseif ( @realfront == 27 ) tempx = cotan( ftemp ) elseif ( @realfront == 28 ) tempx = 1/cos( ftemp ) elseif ( @realfront == 29 ) tempx = 1/sin( ftemp ) elseif ( @realfront == 30 ) tempx = cotan( ftemp ) tempx = tempx * tempx elseif ( @realfront == 31 ) tempx = 1/cos( ftemp ) tempx = tempx * tempx elseif ( @realfront == 32 ) tempx = 1/sin( ftemp ) tempx = tempx * tempx elseif ( @realfront == 33 ) tempx = ftemp^(ftemp) tempx = ftemp^tempx elseif ( @realfront == 34 ) tempx = ftemp^(ftemp) tempx = 1/( ftemp^tempx ) elseif ( @realfront == 35 ) tempx = log(-ftemp) elseif ( @realfront == 36 ) tempx = 1/log( ftemp ) elseif ( @realfront == 37 ) tempx = ftemp * log( ftemp ) elseif ( @realfront == 38 ) tempx = sin( ftemp ) / ftemp elseif ( @realfront == 39 ) tempx = cos( ftemp ) / ftemp elseif ( @realfront == 40 ) tempx = sin( ftemp ) * cos( ftemp ) elseif ( @realfront == 41 ) tempx = sin( ftemp^2 ) elseif ( @realfront == 42 ) tempx = exp( -1/ftemp ) elseif ( @realfront == 43 ) tempx = ftemp * exp( ftemp ) elseif ( @realfront == 44 ) tempx = ftemp * exp( -ftemp ) elseif ( @realfront == 45 ) tempx = ftemp * exp( 1/ftemp ) elseif ( @realfront == 46 ) tempx = ftemp * exp( -1/ftemp ) elseif ( @realfront == 47 ) tempx = ftemp * ftemp * ftemp elseif ( @realfront == 48 ) tempx = 1 / ( ftemp * ftemp * ftemp ) elseif ( @realfront == 49 ) tempx = atan( 1 / ftemp ) elseif ( @realfront == 50 ) tempx = acos( 1 / ftemp ) elseif ( @realfront == 51 ) tempx = asin( 1 / ftemp ) elseif ( @realfront == 52 ) tempx = tan( ftemp ) / ftemp elseif ( @realfront == 53 ) tempx = cotan( ftemp ) / ftemp elseif ( @realfront == 54 ) tempx = 1 / ( ftemp * cos( ftemp )) elseif ( @realfront == 55 ) tempx = 1 / ( ftemp * sin( ftemp )) elseif ( @realfront == 56 ) tempx = ftemp * sin( ftemp ) elseif ( @realfront == 57 ) tempx = ftemp * cos( ftemp ) elseif ( @realfront == 58 ) tempx = ftemp * tan( ftemp ) elseif ( @realfront == 59 ) tempx = ftemp * cotan( ftemp ) elseif ( @realfront == 60 ) tempx = ftemp/cos( ftemp ) elseif ( @realfront == 61 ) tempx = ftemp/sin( ftemp ) elseif ( @realfront == 62 ) tempx = sin( 1/ftemp ) elseif ( @realfront == 63 ) tempx = cos( 1/ftemp ) elseif ( @realfront == 64 ) tempx = tan( 1/ftemp ) elseif ( @realfront == 65 ) tempx = cotan( 1/ftemp ) elseif ( @realfront == 66 ) tempx = 1/cos( 1/ftemp ) elseif ( @realfront == 67 ) tempx = 1/sin( 1/ftemp ) elseif ( @realfront == 68 ) tempx = cotanh( ftemp ) elseif ( @realfront == 69 ) tempx = 1/cosh( ftemp ) elseif ( @realfront == 70 ) tempx = 1/sinh( ftemp ) elseif ( @realfront == 71 ) tempx = atanh( 1/ftemp ) elseif ( @realfront == 72 ) tempx = acosh( 1/ftemp ) elseif ( @realfront == 73 ) tempx = asinh( 1/ftemp ) elseif @realfront == 74 tempx = ftemp^@rfpower elseif @realfront == 75 tempx = sinh(ftemp) tempx = tempx * tempx elseif @realfront == 76 tempx = cosh( ftemp ) tempx = tempx * tempx elseif @realfront == 77 tempx = tanh(ftemp) tempx = tempx * tempx elseif @realfront == 78 tempx = cotanh( ftemp ) tempx = tempx * tempx elseif @realfront == 79 tempx = 1/cosh(ftemp) tempx = tempx * tempx elseif @realfront == 80 tempx = 1 / sinh( ftemp ) tempx = tempx * tempx elseif @realfront == 81 tempx = sinh(1/ftemp) elseif @realfront == 82 tempx = cosh(1/ftemp) elseif @realfront == 83 tempx = tanh(1/ftemp) elseif @realfront == 84 tempx = cotanh(1/ftemp) elseif @realfront == 85 tempx = 1/cosh(1/ftemp) elseif @realfront == 86 tempx = 1/sinh(1/ftemp) elseif @realfront == 87 tempx = sin( ftemp ) * tan(ftemp) elseif @realfront == 88 tempx = sinh(ftemp) * tanh(ftemp) elseif @realfront == 89 tempx = sinh(ftemp) * cosh(ftemp) elseif @realfront == 90 tempx = sinh(ftemp), ftemp2 = cosh(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realfront == 91 tempx = sin(ftemp), ftemp2 = cos(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realfront == 92 tempx = 1/ftemp tempx = sin(tempx)*cos(tempx) elseif @realfront == 93 tempx = sin( 1/ftemp ) tempx = tempx*tempx elseif @realfront == 94 tempx = sin(ftemp) * cos(1/ftemp) elseif @realfront == 95 tempx = sin(ftemp) * sin(1/ftemp) elseif @realfront == 96 tempx = log(ftemp) tempx = tempx*tempx elseif @realfront == 97 tempx = sin(ftemp) * sin(2*ftemp) elseif @realfront == 98 tempx = exp(2*ftemp) elseif @realfront == 99 tempx = exp(-2*ftemp) elseif @realfront == 100 tempx = 1/ftemp tempx = sinh(tempx)*cosh(tempx) elseif @realfront == 101 tempx = sinh( 1/ftemp ) tempx = tempx*tempx elseif @realfront == 102 tempx = sinh(ftemp) * cosh(1/ftemp) elseif @realfront == 103 tempx = sinh(ftemp) * sinh(1/ftemp) elseif @realfront == 104 tempx = sin(ftemp) * sinh(ftemp) elseif @realfront == 105 tempx = sin(ftemp) * cosh(ftemp) elseif @realfront == 106 tempx = sin(ftemp), ftemp2 = sinh(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realfront == 107 tempx = sin(ftemp)*exp(ftemp) elseif @realfront == 108 tempx = cos(ftemp)*exp(ftemp) elseif @realfront == 109 tempx = sinh(ftemp)*exp(ftemp) elseif @realfront == 110 tempx = cosh(ftemp)*exp(ftemp) elseif @realfront == 111 tempx = sin(ftemp)*log(ftemp) elseif @realfront == 112 tempx = cos(ftemp)*log(ftemp) elseif @realfront == 113 tempx = sinh(ftemp)*log(ftemp) elseif @realfront == 114 tempx = cosh(ftemp)*log(ftemp) elseif @realfront == 115 tempx = exp(ftemp^2) elseif @realfront == 116 tempx = exp(1/(ftemp^2)) elseif @realfront == 117 tempx = abs(ftemp) elseif @realfront == 118 tempx = round(ftemp) elseif @realfront == 119 tempx = trunc(ftemp) elseif @realfront == 120 tempx = ceil(ftemp) elseif @realfront == 121 tempx = floor(ftemp) elseif @realfront == 122 tempx = ftemp/log(ftemp) elseif @realfront == 123 tempx = log(ftemp)/ftemp elseif @realfront == 124 tempx = exp(ftemp)/ftemp elseif @realfront == 125 tempx = exp(1/ftemp)/ftemp elseif @realfront == 126 tempx = exp(ftemp^2)/ftemp elseif @realfront == 127 tempx = exp(1/(ftemp^2))/ftemp elseif @realfront == 128 tempx = ftemp * exp(ftemp^2) elseif @realfront == 129 tempx = ftemp * exp(1/(ftemp^2)) elseif @realfront == 130 tempx = exp(-(ftemp^2)) elseif @realfront == 131 tempx = exp(-1/(ftemp^2)) elseif @realfront == 132 tempx = exp(-(ftemp^2))/ftemp elseif @realfront == 133 tempx = exp(-1/(ftemp^2))/ftemp elseif @realfront == 134 tempx = ftemp * exp(-(ftemp^2)) elseif @realfront == 135 tempx = ftemp * exp(-1/(ftemp^2)) elseif @realfront == 136 tempx = log(1+ftemp) elseif @realfront == 137 tempx = log(1+log(1+ftemp)) elseif @realfront == 138 tempx = sin(ftemp^@rfpower) endif ; realfront if @realfront != 0 tempx = @rfpostscale * tempx endif ; @realfront if @absoluter3 tempx = abs(tempx) endif ; @absoluter3 if @rfperturb tempx = @rfblend * tempx + rfbcomp * real(ztemp) endif ; @rfperturb ftemp = @ifscale * imag(ztemp) if @absolutei2 ftemp = abs(ftemp) endif ; @absolutei2 if ( @imagfront == 0 ) tempy = ftemp elseif ( @imagfront == 1 ) tempy = 1/ftemp elseif ( @imagfront == 2 ) tempy = ftemp * ftemp elseif ( @imagfront == 3 ) tempy = 1 / ( ftemp * ftemp ) elseif ( @imagfront == 4 ) tempy = log(ftemp) elseif ( @imagfront == 5 ) tempy = exp( ftemp) elseif ( @imagfront == 6 ) tempy = ftemp^ftemp elseif ( @imagfront == 7 ) tempy = sin( ftemp ) elseif ( @imagfront == 8 ) tempy = cos( ftemp ) elseif ( @imagfront == 9 ) tempy = tan( ftemp ) elseif ( @imagfront == 10 ) tempy = asin( ftemp ) elseif ( @imagfront == 11 ) tempy = acos( ftemp ) elseif ( @imagfront == 12 ) tempy = atan( ftemp ) elseif ( @imagfront == 13 ) tempy = sinh( ftemp ) elseif ( @imagfront == 14 ) tempy = cosh( ftemp ) elseif ( @imagfront == 15 ) tempy = tanh( ftemp ) elseif ( @imagfront == 16 ) tempy = asinh( ftemp ) elseif ( @imagfront == 17 ) tempy = acosh( ftemp ) elseif ( @imagfront == 18 ) tempy = atanh( ftemp ) elseif ( @imagfront == 19 ) tempy = log( 1/ftemp ) elseif ( @imagfront == 20 ) tempy = log( log( ftemp )) elseif ( @imagfront == 21 ) tempy = exp( -ftemp ) elseif ( @imagfront == 22 ) tempy = exp( 1/ftemp ) elseif ( @imagfront == 23 ) tempy = ftemp^(-ftemp) elseif ( @imagfront == 24 ) tempy = sin( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 25 ) tempy = cos( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 26 ) tempy = tan( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 27 ) tempy = cotan( ftemp ) elseif ( @imagfront == 28 ) tempy = 1/cos( ftemp ) elseif ( @imagfront == 29 ) tempy = 1/sin( ftemp ) elseif ( @imagfront == 30 ) tempy = cotan( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 31 ) tempy = 1/cos( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 32 ) tempy = 1/sin( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 33 ) tempy = ftemp^(ftemp) tempy = ftemp^tempy elseif ( @imagfront == 34 ) tempy = ftemp^(ftemp) tempy = 1/( ftemp^tempy ) elseif ( @imagfront == 35 ) tempy = log(-ftemp) elseif ( @imagfront == 36 ) tempy = 1/log( ftemp ) elseif ( @imagfront == 37 ) tempy = ftemp * log( ftemp ) elseif ( @imagfront == 38 ) tempy = sin( ftemp ) / ftemp elseif ( @imagfront == 39 ) tempy = cos( ftemp ) / ftemp elseif ( @imagfront == 40 ) tempy = sin( ftemp ) * cos( ftemp ) elseif ( @imagfront == 41 ) tempy = sin( ftemp^2 ) elseif ( @imagfront == 42 ) tempy = exp( -1/ftemp ) elseif ( @imagfront == 43 ) tempy = ftemp * exp( ftemp ) elseif ( @imagfront == 44 ) tempy = ftemp * exp( -ftemp ) elseif ( @imagfront == 45 ) tempy = ftemp * exp( 1/ftemp ) elseif ( @imagfront == 46 ) tempy = ftemp * exp( -1/ftemp ) elseif ( @imagfront == 47 ) tempy = ftemp * ftemp * ftemp elseif ( @imagfront == 48 ) tempy = 1 / ( ftemp * ftemp * ftemp ) elseif ( @imagfront == 49 ) tempy = atan( 1 / ftemp ) elseif ( @imagfront == 50 ) tempy = acos( 1 / ftemp ) elseif ( @imagfront == 51 ) tempy = asin( 1 / ftemp ) elseif ( @imagfront == 52 ) tempy = tan( ftemp ) / ftemp elseif ( @imagfront == 53 ) tempy = cotan( ftemp ) / ftemp elseif ( @imagfront == 54 ) tempy = 1 / ( ftemp * cos( ftemp )) elseif ( @imagfront == 55 ) tempy = 1 / ( ftemp * sin( ftemp )) elseif ( @imagfront == 56 ) tempy = ftemp * sin( ftemp ) elseif ( @imagfront == 57 ) tempy = ftemp * cos( ftemp ) elseif ( @imagfront == 58 ) tempy = ftemp * tan( ftemp ) elseif ( @imagfront == 59 ) tempy = ftemp * cotan( ftemp ) elseif ( @imagfront == 60 ) tempy = ftemp/cos( ftemp ) elseif ( @imagfront == 61 ) tempy = ftemp/sin( ftemp ) elseif ( @imagfront == 62 ) tempy = sin( 1/ftemp ) elseif ( @imagfront == 63 ) tempy = cos( 1/ftemp ) elseif ( @imagfront == 64 ) tempy = tan( 1/ftemp ) elseif ( @imagfront == 65 ) tempy = cotan( 1/ftemp ) elseif ( @imagfront == 66 ) tempy = 1/cos( 1/ftemp ) elseif ( @imagfront == 67 ) tempy = 1/sin( 1/ftemp ) elseif ( @imagfront == 68 ) tempy = cotanh( ftemp ) elseif ( @imagfront == 69 ) tempy = 1/cosh( ftemp ) elseif ( @imagfront == 70 ) tempy = 1/sinh( ftemp ) elseif ( @imagfront == 71 ) tempy = atanh( 1/ftemp ) elseif ( @imagfront == 72 ) tempy = acosh( 1/ftemp ) elseif ( @imagfront == 73 ) tempy = asinh( 1/ftemp ) elseif @imagfront == 74 tempy = ftemp^@ifpower elseif @imagfront == 75 tempy = sinh(ftemp) tempy = tempy * tempy elseif @imagfront == 76 tempy = cosh( ftemp ) tempy = tempy * tempy elseif @imagfront == 77 tempy = tanh(ftemp) tempy = tempy * tempy elseif @imagfront == 78 tempy = cotanh( ftemp ) tempy = tempy * tempy elseif @imagfront == 79 tempy = 1/cosh(ftemp) tempy = tempy * tempy elseif @imagfront == 80 tempy = 1 / sinh( ftemp ) tempy = tempy * tempy elseif @imagfront == 81 tempy = sinh(1/ftemp) elseif @imagfront == 82 tempy = cosh(1/ftemp) elseif @imagfront == 83 tempy = tanh(1/ftemp) elseif @imagfront == 84 tempy = cotanh(1/ftemp) elseif @imagfront == 85 tempy = 1/cosh(1/ftemp) elseif @imagfront == 86 tempy = 1/sinh(1/ftemp) elseif @imagfront == 87 tempy = sin( ftemp ) * tan(ftemp) elseif @imagfront == 88 tempy = sinh(ftemp) * tanh(ftemp) elseif @imagfront == 89 tempy = sinh(ftemp) * cosh(ftemp) elseif @imagfront == 90 tempy = sinh(ftemp), ftemp2 = cosh(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagfront == 91 tempy = sin(ftemp), ftemp2 = cos(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagfront == 92 tempy = 1/ftemp tempy = sin(tempy)*cos(tempy) elseif @imagfront == 93 tempy = sin( 1/ftemp ) tempy = tempy*tempy elseif @imagfront == 94 tempy = sin(ftemp) * cos(1/ftemp) elseif @imagfront == 95 tempy = sin(ftemp) * sin(1/ftemp) elseif @imagfront == 96 tempy = log(ftemp) tempy = tempy*tempy elseif @imagfront == 97 tempy = sin(ftemp) * sin(2*ftemp) elseif @imagfront == 98 tempy = exp(2*ftemp) elseif @imagfront == 99 tempy = exp(-2*ftemp) elseif @imagfront == 100 tempy = 1/ftemp tempy = sinh(tempy)*cosh(tempy) elseif @imagfront == 101 tempy = sinh( 1/ftemp ) tempy = tempy*tempy elseif @imagfront == 102 tempy = sinh(ftemp) * cosh(1/ftemp) elseif @imagfront == 103 tempy = sinh(ftemp) * sinh(1/ftemp) elseif @imagfront == 104 tempy = sin(ftemp) * sinh(ftemp) elseif @imagfront == 105 tempy = sin(ftemp) * cosh(ftemp) elseif @imagfront == 106 tempy = sin(ftemp), ftemp2 = sinh(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagfront == 107 tempy = sin(ftemp)*exp(ftemp) elseif @imagfront == 108 tempy = cos(ftemp)*exp(ftemp) elseif @imagfront == 109 tempy = sinh(ftemp)*exp(ftemp) elseif @imagfront == 110 tempy = cosh(ftemp)*exp(ftemp) elseif @imagfront == 111 tempy = sin(ftemp)*log(ftemp) elseif @imagfront == 112 tempy = cos(ftemp)*log(ftemp) elseif @imagfront == 113 tempy = sinh(ftemp)*log(ftemp) elseif @imagfront == 114 tempy = cosh(ftemp)*log(ftemp) elseif @imagfront == 115 tempy = exp(ftemp^2) elseif @imagfront == 116 tempy = exp(1/(ftemp^2)) elseif @imagfront == 117 tempy = abs(ftemp) elseif @imagfront == 118 tempy = round(ftemp) elseif @imagfront == 119 tempy = trunc(ftemp) elseif @imagfront == 120 tempy = ceil(ftemp) elseif @imagfront == 121 tempy = floor(ftemp) elseif @imagfront == 122 tempy = ftemp/log(ftemp) elseif @imagfront == 123 tempy = log(ftemp)/ftemp elseif @imagfront == 124 tempy = exp(ftemp)/ftemp elseif @imagfront == 125 tempy = exp(1/ftemp)/ftemp elseif @imagfront == 126 tempy = exp(ftemp^2)/ftemp elseif @imagfront == 127 tempy = exp(1/(ftemp^2))/ftemp elseif @imagfront == 128 tempy = ftemp * exp(ftemp^2) elseif @imagfront == 129 tempy = ftemp * exp(1/(ftemp^2)) elseif @imagfront == 130 tempy = exp(-(ftemp^2)) elseif @imagfront == 131 tempy = exp(-1/(ftemp^2)) elseif @imagfront == 132 tempy = exp(-(ftemp^2))/ftemp elseif @imagfront == 133 tempy = exp(-1/(ftemp^2))/ftemp elseif @imagfront == 134 tempy = ftemp * exp(-(ftemp^2)) elseif @imagfront == 135 tempy = ftemp * exp(-1/(ftemp^2)) elseif @imagfront == 136 tempy = log(1+ftemp) elseif @imagfront == 137 tempy = log(1+log(1+ftemp)) elseif @imagfront == 138 tempy = sin(ftemp^@ifpower) endif ; imagfront if @imagfront != 0 tempy = @ifpostscale * tempy endif ; @imagfront if @absolutei3 tempy = abs(tempy) endif ; @absolutei3 if @ifperturb tempy = @ifblend * tempy + ifbcomp * imag(ztemp) endif ; @ifperturb ztemp = tempx + flip(tempy) if @zinitbias ztemp = (@zibprod*(ztemp + @zibaddend))^@zibexponent endif ; @zinitbias ; Initialize z, if desired ztemp = @ziscale * ztemp if ( @initialization == 0 ) zinput = ztemp elseif ( @initialization == 1 ) zinput = 1/ztemp elseif ( @initialization == 2 ) zinput = ztemp * ztemp elseif ( @initialization == 3 ) zinput = 1 / ( ztemp * ztemp ) elseif ( @initialization == 4 ) zinput = log(ztemp) elseif ( @initialization == 5 ) zinput = exp( ztemp) elseif ( @initialization == 6 ) zinput = ztemp^ztemp elseif ( @initialization == 7 ) zinput = sin( ztemp ) elseif ( @initialization == 8 ) zinput = cos( ztemp ) elseif ( @initialization == 9 ) zinput = tan( ztemp ) elseif ( @initialization == 10 ) zinput = asin( ztemp ) elseif ( @initialization == 11 ) zinput = acos( ztemp ) elseif ( @initialization == 12 ) zinput = atan( ztemp ) elseif ( @initialization == 13 ) zinput = sinh( ztemp ) elseif ( @initialization == 14 ) zinput = cosh( ztemp ) elseif ( @initialization == 15 ) zinput = tanh( ztemp ) elseif ( @initialization == 16 ) zinput = asinh( ztemp ) elseif ( @initialization == 17 ) zinput = acosh( ztemp ) elseif ( @initialization == 18 ) zinput = atanh( ztemp ) elseif ( @initialization == 19 ) zinput = log( 1/ztemp ) elseif ( @initialization == 20 ) zinput = log( log( ztemp )) elseif ( @initialization == 21 ) zinput = exp( -ztemp ) elseif ( @initialization == 22 ) zinput = exp( 1/ztemp ) elseif ( @initialization == 23 ) zinput = ztemp^(-ztemp) elseif ( @initialization == 24 ) zinput = sin( ztemp ) zinput = zinput * zinput elseif ( @initialization == 25 ) zinput = cos( ztemp ) zinput = zinput * zinput elseif ( @initialization == 26 ) zinput = tan( ztemp ) zinput = zinput * zinput elseif ( @initialization == 27 ) zinput = cotan( ztemp ) elseif ( @initialization == 28 ) zinput = 1/cos( ztemp ) elseif ( @initialization == 29 ) zinput = 1/sin( ztemp ) elseif ( @initialization == 30 ) zinput = cotan( ztemp ) zinput = zinput * zinput elseif ( @initialization == 31 ) zinput = 1/cos( ztemp ) zinput = zinput * zinput elseif ( @initialization == 32 ) zinput = 1/sin( ztemp ) zinput = zinput * zinput elseif ( @initialization == 33 ) zinput = ztemp^(ztemp) zinput = ztemp^zinput elseif ( @initialization == 34 ) zinput = ztemp^(ztemp) zinput = 1/( ztemp^zinput ) elseif ( @initialization == 35 ) zinput = log(-ztemp) elseif ( @initialization == 36 ) zinput = 1/log( ztemp ) elseif ( @initialization == 37 ) zinput = ztemp * log( ztemp ) elseif ( @initialization == 38 ) zinput = sin( ztemp ) / ztemp elseif ( @initialization == 39 ) zinput = cos( ztemp ) / ztemp elseif ( @initialization == 40 ) zinput = sin( ztemp ) * cos( ztemp ) elseif ( @initialization == 41 ) zinput = sin( ztemp^2 ) elseif ( @initialization == 42 ) zinput = exp( -1/ztemp ) elseif ( @initialization == 43 ) zinput = ztemp * exp( ztemp ) elseif ( @initialization == 44 ) zinput = ztemp * exp( -ztemp ) elseif ( @initialization == 45 ) zinput = ztemp * exp( 1/ztemp ) elseif ( @initialization == 46 ) zinput = ztemp * exp( -1/ztemp ) elseif ( @initialization == 47 ) zinput = ztemp * ztemp * ztemp elseif ( @initialization == 48 ) zinput = 1 / ( ztemp * ztemp * ztemp ) elseif ( @initialization == 49 ) zinput = atan( 1 / ztemp ) elseif ( @initialization == 50 ) zinput = acos( 1 / ztemp ) elseif ( @initialization == 51 ) zinput = asin( 1 / ztemp ) elseif ( @initialization == 52 ) zinput = tan( ztemp ) / ztemp elseif ( @initialization == 53 ) zinput = cotan( ztemp ) / ztemp elseif ( @initialization == 54 ) zinput = 1 / ( ztemp * cos( ztemp )) elseif ( @initialization == 55 ) zinput = 1 / ( ztemp * sin( ztemp )) elseif ( @initialization == 56 ) zinput = ztemp * sin( ztemp ) elseif ( @initialization == 57 ) zinput = ztemp * cos( ztemp ) elseif ( @initialization == 58 ) zinput = ztemp * tan( ztemp ) elseif ( @initialization == 59 ) zinput = ztemp * cotan( ztemp ) elseif ( @initialization == 60 ) zinput = ztemp/cos( ztemp ) elseif ( @initialization == 61 ) zinput = ztemp/sin( ztemp ) elseif ( @initialization == 62 ) zinput = sin( 1/ztemp ) elseif ( @initialization == 63 ) zinput = cos( 1/ztemp ) elseif ( @initialization == 64 ) zinput = tan( 1/ztemp ) elseif ( @initialization == 65 ) zinput = cotan( 1/ztemp ) elseif ( @initialization == 66 ) zinput = 1/cos( 1/ztemp ) elseif ( @initialization == 67 ) zinput = 1/sin( 1/ztemp ) elseif ( @initialization == 68 ) zinput = cotanh( ztemp ) elseif ( @initialization == 69 ) zinput = 1/cosh( ztemp ) elseif ( @initialization == 70 ) zinput = 1/sinh( ztemp ) elseif ( @initialization == 71 ) zinput = atanh( 1/ztemp ) elseif ( @initialization == 72 ) zinput = acosh( 1/ztemp ) elseif ( @initialization == 73 ) zinput = asinh( 1/ztemp ) elseif @initialization == 74 zinput = ztemp^@zpower elseif @initialization == 75 zinput = sinh(ztemp) zinput = zinput * zinput elseif @initialization == 76 zinput = cosh( ztemp ) zinput = zinput * zinput elseif @initialization == 77 zinput = tanh(ztemp) zinput = zinput * zinput elseif @initialization == 78 zinput = cotanh( ztemp ) zinput = zinput * zinput elseif @initialization == 79 zinput = 1/cosh(ztemp) zinput = zinput * zinput elseif @initialization == 80 zinput = 1 / sinh( ztemp ) zinput = zinput * zinput elseif @initialization == 81 zinput = sinh(1/ztemp) elseif @initialization == 82 zinput = cosh(1/ztemp) elseif @initialization == 83 zinput = tanh(1/ztemp) elseif @initialization == 84 zinput = cotanh(1/ztemp) elseif @initialization == 85 zinput = 1/cosh(1/ztemp) elseif @initialization == 86 zinput = 1/sinh(1/ztemp) elseif @initialization == 87 zinput = sin( ztemp ) * tan(ztemp) elseif @initialization == 88 zinput = sinh(ztemp) * tanh(ztemp) elseif @initialization == 89 zinput = sinh(ztemp) * cosh(ztemp) elseif @initialization == 90 zinput = sinh(ztemp), ztemp2 = cosh(ztemp) zinput = zinput*zinput*ztemp2*ztemp2 elseif @initialization == 91 zinput = sin(ztemp), ztemp2 = cos(ztemp) zinput = zinput*zinput*ztemp2*ztemp2 elseif @initialization == 92 zinput = 1/ztemp zinput = sin(zinput)*cos(zinput) elseif @initialization == 93 zinput = sin( 1/ztemp ) zinput = zinput*zinput elseif @initialization == 94 zinput = sin(ztemp) * cos(1/ztemp) elseif @initialization == 95 zinput = sin(ztemp) * sin(1/ztemp) elseif @initialization == 96 zinput = log(ztemp) zinput = zinput*zinput elseif @initialization == 97 zinput = sin(ztemp) * sin(2*ztemp) elseif @initialization == 98 zinput = exp(2*ztemp) elseif @initialization == 99 zinput = exp(-2*ztemp) elseif @initialization == 100 zinput = 1/ztemp zinput = sinh(zinput)*cosh(zinput) elseif @initialization == 101 zinput = sinh( 1/ztemp ) zinput = zinput*zinput elseif @initialization == 102 zinput = sinh(ztemp) * cosh(1/ztemp) elseif @initialization == 103 zinput = sinh(ztemp) * sinh(1/ztemp) elseif @initialization == 104 zinput = sin(ztemp) * sinh(ztemp) elseif @initialization == 105 zinput = sin(ztemp) * cosh(ztemp) elseif @initialization == 106 zinput = sin(ztemp), ztemp2 = sinh(ztemp) zinput = zinput*zinput*ztemp2*ztemp2 elseif @initialization == 107 zinput = sin(ztemp)*exp(ztemp) elseif @initialization == 108 zinput = cos(ztemp)*exp(ztemp) elseif @initialization == 109 zinput = sinh(ztemp)*exp(ztemp) elseif @initialization == 110 zinput = cosh(ztemp)*exp(ztemp) elseif @initialization == 111 zinput = sin(ztemp)*log(ztemp) elseif @initialization == 112 zinput = cos(ztemp)*log(ztemp) elseif @initialization == 113 zinput = sinh(ztemp)*log(ztemp) elseif @initialization == 114 zinput = cosh(ztemp)*log(ztemp) elseif @initialization == 115 zinput = exp(ztemp^2) elseif @initialization == 116 zinput = exp(1/(ztemp^2)) elseif @initialization == 117 zinput = abs(ztemp) elseif @initialization == 118 zinput = round(ztemp) elseif @initialization == 119 zinput = trunc(ztemp) elseif @initialization == 120 zinput = ceil(ztemp) elseif @initialization == 121 zinput = floor(ztemp) elseif @initialization == 122 zinput = ztemp/log(ztemp) elseif @initialization == 123 zinput = log(ztemp)/ztemp elseif @initialization == 124 zinput = exp(ztemp)/ztemp elseif @initialization == 125 zinput = exp(1/ztemp)/ztemp elseif @initialization == 126 zinput = exp(ztemp^2)/ztemp elseif @initialization == 127 zinput = exp(1/(ztemp^2))/ztemp elseif @initialization == 128 zinput = ztemp * exp(ztemp^2) elseif @initialization == 129 zinput = ztemp * exp(1/(ztemp^2)) elseif @initialization == 130 zinput = exp(-(ztemp^2)) elseif @initialization == 131 zinput = exp(-1/(ztemp^2)) elseif @initialization == 132 zinput = exp(-(ztemp^2))/ztemp elseif @initialization == 133 zinput = exp(-1/(ztemp^2))/ztemp elseif @initialization == 134 zinput = ztemp * exp(-(ztemp^2)) elseif @initialization == 135 zinput = ztemp * exp(-1/(ztemp^2)) elseif @initialization == 136 zinput = log(1+ztemp) elseif @initialization == 137 zinput = log(1+log(1+ztemp)) elseif @initialization == 138 zinput = sin(ztemp^@zpower) endif ; initialization if @absolutez2 zinput = abs(zinput) endif ; @absolutez2 if @absoluter4 zinput = abs(real(zinput)) + flip(imag(zinput)) endif ; @absoluter4 if @absolutei4 zinput = real(zinput) + flip(abs(imag(zinput))) endif ; @absolutei4 if @initperturb zinput = @initblend * zinput + initbcomp * ztemp endif ; @ifperturb if @trapvariant != 0 if @swaporder if @trapvariant == 1 ; flip zinput = flip(zinput) elseif @trapvariant == 2 ; conjugate zinput = conj(zinput) elseif @trapvariant == 3 ; flip conjugate zinput = flip(conj(zinput)) elseif @trapvariant == 4 ; negate zinput = -zinput elseif @trapvariant == 5 ; negate flip zinput = -flip(zinput) elseif @trapvariant == 6 ; negate conjugate zinput = -conj(zinput) elseif @trapvariant == 7 ; negate flip conj = conj flip zinput = -flip(conj(zinput)) endif ; trapvariant2 endif ; swaporder endif ; trapvariant1 if @operator != 0 if @operator == 1 ; multiplication zinput = zinput * @operatee elseif @operator == 2 ; addition zinput = zinput + @operatee elseif @operator == 3 ; subtraction zinput = zinput - @operatee elseif @operator == 4 ; division zinput = zinput / @operatee elseif @operator == 5 ; exponentiation zinput = zinput ^ @operatee elseif @operator == 6 ; subtraction2 zinput = @operatee - zinput elseif @operator == 7 ; division2 zinput = @operatee / zinput elseif @operator == 8 ; exponential2 zinput = @operatee ^ zinput elseif @operator == 9 ; logarithm zinput = log(zinput) / log(@operatee) elseif @operator == 10 ; logarithm2 zinput = log(@operatee) / log(zinput) endif ; operator2 endif ; operator1 if @trapvariant != 0 if !@swaporder if @trapvariant == 1 ; flip zinput = flip(zinput) elseif @trapvariant == 2 ; conjugate zinput = conj(zinput) elseif @trapvariant == 3 ; flip conjugate zinput = flip(conj(zinput)) elseif @trapvariant == 4 ; negate zinput = -zinput elseif @trapvariant == 5 ; negate flip zinput = -flip(zinput) elseif @trapvariant == 6 ; negate conjugate zinput = -conj(zinput) elseif @trapvariant == 7 ; negate flip conj = conj flip zinput = -flip(conj(zinput)) endif ; trapvariant2 endif ; swaporder endif ; trapvariant1 if @operator2 != 0 if @operator2 == 1 ; multiplication zinput = zinput * @operatee2 elseif @operator2 == 2 ; addition zinput = zinput + @operatee2 elseif @operator2 == 3 ; subtraction zinput = zinput - @operatee2 elseif @operator2 == 4 ; division zinput = zinput / @operatee2 elseif @operator2 == 5 ; exponentiation zinput = zinput ^ @operatee2 elseif @operator2 == 6 ; subtraction2 zinput = @operatee2 - zinput elseif @operator2 == 7 ; division2 zinput = @operatee2 / zinput elseif @operator2 == 8 ; exponential2 zinput = @operatee2 ^ zinput elseif @operator2 == 9 ; logarithm zinput = log(zinput) / log(@operatee2) elseif @operator2 == 10 ; logarithm2 zinput = log(@operatee2) / log(zinput) endif ; operator22 endif ; operator21 if @history if @hismode == "alternative" || @hismode == "both" maxindex = 0, index = 9 while index > maxindex index2 = index-1 zhist[1,index] = zhist[1,index2] index = index2 endwhile ; index zhist[1,0] = zinput if @histype2 == 1 zinput = zhist[@zmixmatch3,1] elseif @histype2 == 2 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,1])) elseif @histype2 == 3 zinput = real(zhist[@zmixmatch3,1]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 4 zinput = zinput - zhist[@zmixmatch3,1] elseif @histype2 == 5 zinput = zinput - real(zhist[@zmixmatch3,1]) elseif @histype2 == 6 zinput = zinput - flip(imag(zhist[@zmixmatch3,1])) elseif @histype2 == 7 zinput = zinput + zhist[@zmixmatch3,1] elseif @histype2 == 8 zinput = zinput + real(zhist[@zmixmatch3,1]) elseif @histype2 == 9 zinput = zinput + flip(imag(zhist[@zmixmatch3,1])) elseif @histype2 == 10 zinput = zinput * zhist[@zmixmatch3,1] elseif @histype2 == 11 zinput = zinput * real(zhist[@zmixmatch3,1]) elseif @histype2 == 12 zinput = zinput * flip(imag(zhist[@zmixmatch3,1])) elseif @histype2 == 13 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,1] elseif @histype2 == 14 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,1] elseif @histype2 == 15 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,1] elseif @histype2 == 16 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,1] elseif @histype2 == 17 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,1] elseif @histype2 == 18 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,1] elseif @histype2 == 19 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,1])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,1]))) elseif @histype2 == 20 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,1])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,1]))) elseif @histype2 == 21 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,1])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,1]))) elseif @histype2 == 22 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,1])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 23 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,1])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 24 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,1])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 25 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,1])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,1]))) elseif @histype2 == 26 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,1])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,1]))) elseif @histype2 == 27 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,1])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,1]))) elseif @histype2 == 28 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,1])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 29 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,1])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 30 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,1])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 31 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,1])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,1]))) elseif @histype2 == 32 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,1])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,1]))) elseif @histype2 == 33 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,1])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,1]))) elseif @histype2 == 34 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,1])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 35 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,1])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 36 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,1])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 37 zinput = zhist[@zmixmatch3,2] elseif @histype2 == 38 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,2])) elseif @histype2 == 39 zinput = real(zhist[@zmixmatch3,2]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 40 zinput = zinput - zhist[@zmixmatch3,2] elseif @histype2 == 41 zinput = zinput - real(zhist[@zmixmatch3,2]) elseif @histype2 == 42 zinput = zinput - flip(imag(zhist[@zmixmatch3,2])) elseif @histype2 == 43 zinput = zinput + zhist[@zmixmatch3,2] elseif @histype2 == 44 zinput = zinput + real(zhist[@zmixmatch3,2]) elseif @histype2 == 45 zinput = zinput + flip(imag(zhist[@zmixmatch3,2])) elseif @histype2 == 46 zinput = zinput * zhist[@zmixmatch3,2] elseif @histype2 == 47 zinput = zinput * real(zhist[@zmixmatch3,2]) elseif @histype2 == 48 zinput = zinput * flip(imag(zhist[@zmixmatch3,2])) elseif @histype2 == 49 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,2] elseif @histype2 == 50 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,2] elseif @histype2 == 51 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,2] elseif @histype2 == 52 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,2] elseif @histype2 == 53 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,2] elseif @histype2 == 54 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,2] elseif @histype2 == 55 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,2])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,2]))) elseif @histype2 == 56 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,2])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,2]))) elseif @histype2 == 57 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,2])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,2]))) elseif @histype2 == 58 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,2])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 59 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,2])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 60 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,2])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 61 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,2])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,2]))) elseif @histype2 == 62 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,2])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,2]))) elseif @histype2 == 63 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,2])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,2]))) elseif @histype2 == 64 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,2])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 65 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,2])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 66 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,2])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 67 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,2])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,2]))) elseif @histype2 == 68 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,2])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,2]))) elseif @histype2 == 69 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,2])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,2]))) elseif @histype2 == 70 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,2])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 71 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,2])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 72 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,2])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 73 zinput = zhist[@zmixmatch3,3] elseif @histype2 == 74 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,3])) elseif @histype2 == 75 zinput = real(zhist[@zmixmatch3,3]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 76 zinput = zinput - zhist[@zmixmatch3,3] elseif @histype2 == 77 zinput = zinput - real(zhist[@zmixmatch3,3]) elseif @histype2 == 78 zinput = zinput - flip(imag(zhist[@zmixmatch3,3])) elseif @histype2 == 79 zinput = zinput + zhist[@zmixmatch3,3] elseif @histype2 == 80 zinput = zinput + real(zhist[@zmixmatch3,3]) elseif @histype2 == 81 zinput = zinput + flip(imag(zhist[@zmixmatch3,3])) elseif @histype2 == 82 zinput = zinput * zhist[@zmixmatch3,3] elseif @histype2 == 83 zinput = zinput * real(zhist[@zmixmatch3,3]) elseif @histype2 == 84 zinput = zinput * flip(imag(zhist[@zmixmatch3,3])) elseif @histype2 == 85 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,3] elseif @histype2 == 86 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,3] elseif @histype2 == 87 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,3] elseif @histype2 == 88 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,3] elseif @histype2 == 89 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,3] elseif @histype2 == 90 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,3] elseif @histype2 == 91 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,3])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,3]))) elseif @histype2 == 92 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,3])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,3]))) elseif @histype2 == 93 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,3])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,3]))) elseif @histype2 == 94 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,3])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 95 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,3])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 96 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,3])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 97 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,3])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,3]))) elseif @histype2 == 98 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,3])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,3]))) elseif @histype2 == 99 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,3])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,3]))) elseif @histype2 == 100 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,3])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 101 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,3])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 102 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,3])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 103 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,3])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,3]))) elseif @histype2 == 104 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,3])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,3]))) elseif @histype2 == 105 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,3])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,3]))) elseif @histype2 == 106 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,3])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 107 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,3])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 108 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,3])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 109 zinput = zhist[@zmixmatch3,4] elseif @histype2 == 110 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,4])) elseif @histype2 == 111 zinput = real(zhist[@zmixmatch3,4]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 112 zinput = zinput - zhist[@zmixmatch3,4] elseif @histype2 == 113 zinput = zinput - real(zhist[@zmixmatch3,4]) elseif @histype2 == 114 zinput = zinput - flip(imag(zhist[@zmixmatch3,4])) elseif @histype2 == 115 zinput = zinput + zhist[@zmixmatch3,4] elseif @histype2 == 116 zinput = zinput + real(zhist[@zmixmatch3,4]) elseif @histype2 == 117 zinput = zinput + flip(imag(zhist[@zmixmatch3,4])) elseif @histype2 == 118 zinput = zinput * zhist[@zmixmatch3,4] elseif @histype2 == 119 zinput = zinput * real(zhist[@zmixmatch3,4]) elseif @histype2 == 120 zinput = zinput * flip(imag(zhist[@zmixmatch3,4])) elseif @histype2 == 121 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,4] elseif @histype2 == 122 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,4] elseif @histype2 == 123 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,4] elseif @histype2 == 124 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,4] elseif @histype2 == 125 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,4] elseif @histype2 == 126 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,4] elseif @histype2 == 127 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,4])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,4]))) elseif @histype2 == 128 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,4])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,4]))) elseif @histype2 == 129 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,4])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,4]))) elseif @histype2 == 130 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,4])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 131 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,4])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 132 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,4])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 133 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,4])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,4]))) elseif @histype2 == 134 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,4])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,4]))) elseif @histype2 == 135 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,4])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,4]))) elseif @histype2 == 136 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,4])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 137 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,4])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 138 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,4])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 139 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,4])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,4]))) elseif @histype2 == 140 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,4])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,4]))) elseif @histype2 == 141 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,4])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,4]))) elseif @histype2 == 142 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,4])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 143 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,4])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 144 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,4])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 145 zinput = zhist[@zmixmatch3,5] elseif @histype2 == 146 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,5])) elseif @histype2 == 147 zinput = real(zhist[@zmixmatch3,5]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 148 zinput = zinput - zhist[@zmixmatch3,5] elseif @histype2 == 149 zinput = zinput - real(zhist[@zmixmatch3,5]) elseif @histype2 == 150 zinput = zinput - flip(imag(zhist[@zmixmatch3,5])) elseif @histype2 == 151 zinput = zinput + zhist[@zmixmatch3,5] elseif @histype2 == 152 zinput = zinput + real(zhist[@zmixmatch3,5]) elseif @histype2 == 153 zinput = zinput + flip(imag(zhist[@zmixmatch3,5])) elseif @histype2 == 154 zinput = zinput * zhist[@zmixmatch3,5] elseif @histype2 == 155 zinput = zinput * real(zhist[@zmixmatch3,5]) elseif @histype2 == 156 zinput = zinput * flip(imag(zhist[@zmixmatch3,5])) elseif @histype2 == 157 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,5] elseif @histype2 == 158 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,5] elseif @histype2 == 159 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,5] elseif @histype2 == 160 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,5] elseif @histype2 == 161 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,5] elseif @histype2 == 162 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,5] elseif @histype2 == 163 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,5])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,5]))) elseif @histype2 == 164 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,5])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,5]))) elseif @histype2 == 165 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,5])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,5]))) elseif @histype2 == 166 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,5])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 167 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,5])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 168 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,5])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 169 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,5])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,5]))) elseif @histype2 == 170 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,5])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,5]))) elseif @histype2 == 171 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,5])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,5]))) elseif @histype2 == 172 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,5])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 173 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,5])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 174 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,5])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 175 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,5])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,5]))) elseif @histype2 == 176 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,5])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,5]))) elseif @histype2 == 177 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,5])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,5]))) elseif @histype2 == 178 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,5])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 179 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,5])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 180 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,5])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 181 zinput = zhist[@zmixmatch3,6] elseif @histype2 == 182 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,6])) elseif @histype2 == 183 zinput = real(zhist[@zmixmatch3,6]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 184 zinput = zinput - zhist[@zmixmatch3,6] elseif @histype2 == 185 zinput = zinput - real(zhist[@zmixmatch3,6]) elseif @histype2 == 186 zinput = zinput - flip(imag(zhist[@zmixmatch3,6])) elseif @histype2 == 187 zinput = zinput + zhist[@zmixmatch3,6] elseif @histype2 == 188 zinput = zinput + real(zhist[@zmixmatch3,6]) elseif @histype2 == 189 zinput = zinput + flip(imag(zhist[@zmixmatch3,6])) elseif @histype2 == 190 zinput = zinput * zhist[@zmixmatch3,6] elseif @histype2 == 191 zinput = zinput * real(zhist[@zmixmatch3,6]) elseif @histype2 == 192 zinput = zinput * flip(imag(zhist[@zmixmatch3,6])) elseif @histype2 == 193 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,6] elseif @histype2 == 194 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,6] elseif @histype2 == 195 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,6] elseif @histype2 == 196 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,6] elseif @histype2 == 197 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,6] elseif @histype2 == 198 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,6] elseif @histype2 == 199 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,6])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,6]))) elseif @histype2 == 200 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,6])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,6]))) elseif @histype2 == 201 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,6])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,6]))) elseif @histype2 == 202 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,6])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 203 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,6])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 204 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,6])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 205 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,6])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,6]))) elseif @histype2 == 206 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,6])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,6]))) elseif @histype2 == 207 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,6])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,6]))) elseif @histype2 == 208 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,6])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 209 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,6])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 210 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,6])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 211 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,6])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,6]))) elseif @histype2 == 212 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,6])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,6]))) elseif @histype2 == 213 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,6])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,6]))) elseif @histype2 == 214 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,6])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 215 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,6])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 216 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,6])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 217 zinput = zhist[@zmixmatch3,7] elseif @histype2 == 218 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,7])) elseif @histype2 == 219 zinput = real(zhist[@zmixmatch3,7]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 220 zinput = zinput - zhist[@zmixmatch3,7] elseif @histype2 == 221 zinput = zinput - real(zhist[@zmixmatch3,7]) elseif @histype2 == 222 zinput = zinput - flip(imag(zhist[@zmixmatch3,7])) elseif @histype2 == 223 zinput = zinput + zhist[@zmixmatch3,7] elseif @histype2 == 224 zinput = zinput + real(zhist[@zmixmatch3,7]) elseif @histype2 == 225 zinput = zinput + flip(imag(zhist[@zmixmatch3,7])) elseif @histype2 == 226 zinput = zinput * zhist[@zmixmatch3,7] elseif @histype2 == 227 zinput = zinput * real(zhist[@zmixmatch3,7]) elseif @histype2 == 228 zinput = zinput * flip(imag(zhist[@zmixmatch3,7])) elseif @histype2 == 229 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,7] elseif @histype2 == 230 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,7] elseif @histype2 == 231 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,7] elseif @histype2 == 232 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,7] elseif @histype2 == 233 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,7] elseif @histype2 == 234 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,7] elseif @histype2 == 235 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,7])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,7]))) elseif @histype2 == 236 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,7])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,7]))) elseif @histype2 == 237 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,7])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,7]))) elseif @histype2 == 238 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,7])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 239 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,7])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 240 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,7])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 241 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,7])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,7]))) elseif @histype2 == 242 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,7])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,7]))) elseif @histype2 == 243 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,7])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,7]))) elseif @histype2 == 244 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,7])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 245 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,7])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 246 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,7])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 247 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,7])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,7]))) elseif @histype2 == 248 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,7])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,7]))) elseif @histype2 == 249 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,7])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,7]))) elseif @histype2 == 250 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,7])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 251 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,7])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 252 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,7])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 253 zinput = zhist[@zmixmatch3,8] elseif @histype2 == 254 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,8])) elseif @histype2 == 255 zinput = real(zhist[@zmixmatch3,8]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 256 zinput = zinput - zhist[@zmixmatch3,8] elseif @histype2 == 257 zinput = zinput - real(zhist[@zmixmatch3,8]) elseif @histype2 == 258 zinput = zinput - flip(imag(zhist[@zmixmatch3,8])) elseif @histype2 == 259 zinput = zinput + zhist[@zmixmatch3,8] elseif @histype2 == 260 zinput = zinput + real(zhist[@zmixmatch3,8]) elseif @histype2 == 261 zinput = zinput + flip(imag(zhist[@zmixmatch3,8])) elseif @histype2 == 262 zinput = zinput * zhist[@zmixmatch3,8] elseif @histype2 == 263 zinput = zinput * real(zhist[@zmixmatch3,8]) elseif @histype2 == 264 zinput = zinput * flip(imag(zhist[@zmixmatch3,8])) elseif @histype2 == 265 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,8] elseif @histype2 == 266 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,8] elseif @histype2 == 267 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,8] elseif @histype2 == 268 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,8] elseif @histype2 == 269 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,8] elseif @histype2 == 270 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,8] elseif @histype2 == 271 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,8])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,8]))) elseif @histype2 == 272 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,8])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,8]))) elseif @histype2 == 273 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,8])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,8]))) elseif @histype2 == 274 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,8])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 275 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,8])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 276 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,8])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 277 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,8])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,8]))) elseif @histype2 == 278 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,8])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,8]))) elseif @histype2 == 279 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,8])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,8]))) elseif @histype2 == 280 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,8])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 281 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,8])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 282 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,8])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 283 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,8])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,8]))) elseif @histype2 == 284 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,8])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,8]))) elseif @histype2 == 285 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,8])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,8]))) elseif @histype2 == 286 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,8])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 287 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,8])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 288 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,8])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 289 zinput = zhist[@zmixmatch3,9] elseif @histype2 == 290 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,9])) elseif @histype2 == 291 zinput = real(zhist[@zmixmatch3,9]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 292 zinput = zinput - zhist[@zmixmatch3,9] elseif @histype2 == 293 zinput = zinput - real(zhist[@zmixmatch3,9]) elseif @histype2 == 294 zinput = zinput - flip(imag(zhist[@zmixmatch3,9])) elseif @histype2 == 295 zinput = zinput + zhist[@zmixmatch3,9] elseif @histype2 == 296 zinput = zinput + real(zhist[@zmixmatch3,9]) elseif @histype2 == 297 zinput = zinput + flip(imag(zhist[@zmixmatch3,9])) elseif @histype2 == 298 zinput = zinput * zhist[@zmixmatch3,9] elseif @histype2 == 299 zinput = zinput * real(zhist[@zmixmatch3,9]) elseif @histype2 == 300 zinput = zinput * flip(imag(zhist[@zmixmatch3,9])) elseif @histype2 == 301 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,9] elseif @histype2 == 302 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,9] elseif @histype2 == 303 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,9] elseif @histype2 == 304 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,9] elseif @histype2 == 305 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,9] elseif @histype2 == 306 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,9] elseif @histype2 == 307 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,9])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,9]))) elseif @histype2 == 308 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,9])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,9]))) elseif @histype2 == 309 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,9])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,9]))) elseif @histype2 == 310 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,9])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 311 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,9])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 312 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,9])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 313 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,9])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,9]))) elseif @histype2 == 314 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,9])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,9]))) elseif @histype2 == 315 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,9])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,9]))) elseif @histype2 == 316 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,9])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 317 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,9])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 318 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,9])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 319 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,9])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,9]))) elseif @histype2 == 320 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,9])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,9]))) elseif @histype2 == 321 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,9])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,9]))) elseif @histype2 == 322 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,9])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 323 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,9])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 324 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,9])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 325 zinput = zhist[@zmixmatch4,@histype2index]/zhist[@zmixmatch3,1] elseif @histype2 == 326 zinput = zhist[@zmixmatch3,1]/zhist[@zmixmatch4,@histype2index] elseif @histype2 == 327 zinput = zhist[@zmixmatch4,@histype2index]^zhist[@zmixmatch3,1] elseif @histype2 == 328 zinput = zhist[@zmixmatch3,1]^zhist[@zmixmatch4,@histype2index] elseif @histype2 == 329 zinput = zhist[@zmixmatch4,@histype2index]/real(zhist[@zmixmatch3,1]) elseif @histype2 == 330 zinput = zhist[@zmixmatch4,@histype2index]/imag(zhist[@zmixmatch3,1]) elseif @histype2 == 331 zinput = zhist[@zmixmatch3,1]/real(zhist[@zmixmatch4,@histype2index]) elseif @histype2 == 332 zinput = zhist[@zmixmatch3,1]/imag(zhist[@zmixmatch4,@histype2index]) elseif @histype2 == 333 zinput = zhist[@zmixmatch4,@histype2index]^real(zhist[@zmixmatch3,1]) elseif @histype2 == 334 zinput = zhist[@zmixmatch4,@histype2index]^imag(zhist[@zmixmatch3,1]) elseif @histype2 == 335 zinput = zhist[@zmixmatch3,1]^real(zhist[@zmixmatch4,@histype2index]) elseif @histype2 == 336 zinput = zhist[@zmixmatch3,1]^imag(zhist[@zmixmatch4,@histype2index]) elseif @histype2 == 337 zinput = zhist[@zmixmatch4,@histype2index] + zhist[@zmixmatch3,1] + zhist[@zmixmatch3,2] elseif @histype2 == 338 zinput = zhist[@zmixmatch4,@histype2index] - zhist[@zmixmatch3,1] + zhist[@zmixmatch3,2] elseif @histype2 == 339 zinput = zhist[@zmixmatch4,@histype2index] + zhist[@zmixmatch3,1] - zhist[@zmixmatch3,2] elseif @histype2 == 340 zinput = -zhist[@zmixmatch4,@histype2index] + zhist[@zmixmatch3,1] + zhist[@zmixmatch3,2] elseif @histype2 == 341 zinput = zhist[@zmixmatch4,@histype2index] - zhist[@zmixmatch3,1] - zhist[@zmixmatch3,2] elseif @histype2 == 342 zinput = zhist[@zmixmatch4,@histype2index] + (zhist[@zmixmatch3,1] * zhist[@zmixmatch3,2]) elseif @histype2 == 343 zinput = zhist[@zmixmatch4,@histype2index] - (zhist[@zmixmatch3,1] * zhist[@zmixmatch3,2]) elseif @histype2 == 344 zinput = zhist[@zmixmatch3,1] + (zhist[@zmixmatch4,@histype2index] * zhist[@zmixmatch3,2]) elseif @histype2 == 345 zinput = zhist[@zmixmatch3,1] - (zhist[@zmixmatch4,@histype2index] * zhist[@zmixmatch3,2]) elseif @histype2 == 346 zinput = zhist[@zmixmatch3,2] + (zhist[@zmixmatch4,@histype2index] * zhist[@zmixmatch3,1]) elseif @histype2 == 347 zinput = zhist[@zmixmatch3,2] - (zhist[@zmixmatch4,@histype2index] * zhist[@zmixmatch3,1]) elseif @histype2 == 348 zinput = zhist[@zmixmatch4,@histype2index]/zhist[@zmixmatch3,2] elseif @histype2 == 349 zinput = zhist[@zmixmatch3,2]/zhist[@zmixmatch4,@histype2index] elseif @histype2 == 350 zinput = zhist[@zmixmatch4,@histype2index]^zhist[@zmixmatch3,2] elseif @histype2 == 351 zinput = zhist[@zmixmatch3,2]^zhist[@zmixmatch4,@histype2index] elseif @histype2 == 352 zinput = zhist[@zmixmatch4,@histype2index]/real(zhist[@zmixmatch3,2]) elseif @histype2 == 353 zinput = zhist[@zmixmatch4,@histype2index]/imag(zhist[@zmixmatch3,2]) elseif @histype2 == 354 zinput = zhist[@zmixmatch3,2]/real(zhist[@zmixmatch4,@histype2index]) elseif @histype2 == 355 zinput = zhist[@zmixmatch3,2]/imag(zhist[@zmixmatch4,@histype2index]) elseif @histype2 == 356 zinput = zhist[@zmixmatch4,@histype2index]^real(zhist[@zmixmatch3,2]) elseif @histype2 == 357 zinput = zhist[@zmixmatch4,@histype2index]^imag(zhist[@zmixmatch3,2]) elseif @histype2 == 358 zinput = zhist[@zmixmatch3,2]^real(zhist[@zmixmatch4,@histype2index]) elseif @histype2 == 359 zinput = zhist[@zmixmatch3,2]^imag(zhist[@zmixmatch4,@histype2index]) elseif @histype2 == 360 zinput = zhist[@zmixmatch4,@histype2index] + zhist[@zmixmatch3,2] + zhist[@zmixmatch3,3] elseif @histype2 == 361 zinput = zhist[@zmixmatch4,@histype2index] - zhist[@zmixmatch3,2] + zhist[@zmixmatch3,3] elseif @histype2 == 362 zinput = zhist[@zmixmatch4,@histype2index] + zhist[@zmixmatch3,2] - zhist[@zmixmatch3,3] elseif @histype2 == 363 zinput = -zhist[@zmixmatch4,@histype2index] + zhist[@zmixmatch3,2] + zhist[@zmixmatch3,3] elseif @histype2 == 364 zinput = zhist[@zmixmatch4,@histype2index] - zhist[@zmixmatch3,2] - zhist[@zmixmatch3,3] elseif @histype2 == 365 zinput = zhist[@zmixmatch4,@histype2index] + (zhist[@zmixmatch3,2] * zhist[@zmixmatch3,3]) elseif @histype2 == 366 zinput = zhist[@zmixmatch4,@histype2index] - (zhist[@zmixmatch3,2] * zhist[@zmixmatch3,3]) elseif @histype2 == 367 zinput = zhist[@zmixmatch3,2] + (zhist[@zmixmatch4,@histype2index] * zhist[@zmixmatch3,3]) elseif @histype2 == 368 zinput = zhist[@zmixmatch3,2] - (zhist[@zmixmatch4,@histype2index] * zhist[@zmixmatch3,3]) elseif @histype2 == 369 zinput = zhist[@zmixmatch3,3] + (zhist[@zmixmatch4,@histype2index] * zhist[@zmixmatch3,2]) elseif @histype2 == 370 zinput = zhist[@zmixmatch3,3] - (zhist[@zmixmatch4,@histype2index] * zhist[@zmixmatch3,2]) else zinput = zhist[1,0] endif ; histype if @zhist2blend zinput = @zhist2fraction*zinput + zhist2comp*zhist[1,0] endif ; @zhist2blend endif ; @hismode endif ; history if @zalthisbias zinput = (@zahbprod*(zinput + @zahbaddend))^@zahbexponent endif ; @zalthisbias ; Finished front end modulating initializations ; Find coordinates and angle of point on trap graph closest to zinput (i.e., modified #z) ; First, center zinput on the trap center zinput = zinput - center ; Compute rotated zinput if rotation != 0.0 zinput = zinput * exp(flip(rotation)) endif ; rotation if @absolutez3 zinput = abs(zinput) endif ; @absolutez3 if @absoluter5 zinput = abs(real(zinput)) + flip(imag(zinput)) endif ; @absoluter5 if @absolutei5 zinput = real(zinput) + flip(abs(imag(zinput))) endif ; @absolutei5 ; 1st attractor routine (z attractors) if @zattractor if @zattractmartin ztemp2 = zinput tempx = real(zinput) * real(@zmartinscale) tempy = imag(zinput) * imag(@zmartinscale) ftemp = tempx index = 0 while index < @zmartiniters tempx = tempy - sin(tempx) tempy = @zmartinparam - ftemp index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzmartin zinput = @zmartinfraction * zinput + zmartincomp * ztemp2 endif ; @blendzmartin endif ; @zattractmartin if @zattractcosmartin ztemp2 = zinput tempx = real(zinput) * real(@zcosmartinscale) tempy = imag(zinput) * imag(@zcosmartinscale) ftemp = tempx index = 0 while index < @zcosmartiniters tempx = tempy - sin(tempx) tempy = @zcosmartinparam - ftemp index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzcosmartin zinput = @zcosmartinfraction * zinput + zcosmartincomp * ztemp2 endif ; @blendzcosmartin endif ; @zattractcosmartin if @zattractpopcorn ztemp2 = zinput tempx = real(zinput) * real(@zpopcornscale) tempy = imag(zinput) * imag(@zpopcornscale) ftemp = tempx index = 0 while index < @zpopcorniters tempx = tempx - real(@zpopcornparam1)*sin(tempy + tan(real(@zpopcornparam2)*tempy)) tempy = tempy - imag(@zpopcornparam1)*sin(ftemp + tan(imag(@zpopcornparam2)*ftemp)) index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzpopcorn zinput = @zpopcornfraction * zinput + zpopcorncomp * ztemp2 endif ; @blendzpopcorn endif ; @zattractpopcorn if @zattractvine ztemp2 = zinput tempx = real(zinput) * real(@zvinescale) tempy = imag(zinput) * imag(@zvinescale) ftemp = tempx index = 0 while index < @zvineiters tempx = tempx - real(@zvineparam1)*sin(tempy + sin(real(@zvineparam2)*tempy)) tempy = tempy + imag(@zvineparam1)*sin(ftemp + sin(imag(@zvineparam2)*ftemp)) index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzvine zinput = @zvinefraction * zinput + zvinecomp * ztemp2 endif ; @blendzvine endif ; @zattractvine if @zattractvine2 ztemp2 = zinput tempx = real(zinput) * real(@zvine2scale) tempy = imag(zinput) * imag(@zvine2scale) ftemp = tempx index = 0 while index < @zvine2iters tempx = tempx - real(@zvine2param1)*sin(tempy^real(@zvine2exp1) + sin(real(@zvine2param2)*tempy)) tempy = tempy + imag(@zvine2param1)*sin(ftemp^imag(@zvine2exp1) + sin(imag(@zvine2param2)*ftemp)) index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzvine2 zinput = @zvine2fraction * zinput + zvine2comp * ztemp2 endif ; @blendzvine2 endif ; @zattractvine2 if @zattractquadruptwo ztemp2 = zinput tempx = real(zinput) * real(@zquadruptwoscale) tempy = imag(zinput) * imag(@zquadruptwoscale) ftemp = tempx index = 0 while index < @zquadruptwoiters if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * sin(log(abs(imag(@zquadruptwoparam1)*tempx-real(@zquadruptwoparam2)))) \ * atan((log(abs(real(@zquadruptwoparam2)*tempx-imag(@zquadruptwoparam1)))^(imag(@zquadruptwoparam2)))) tempy = real(@zquadruptwoparam1) - ftemp else tempx = tempy - sin(log(abs(imag(@zquadruptwoparam1)*tempx-real(@zquadruptwoparam2)))) \ * atan((log(abs(real(@zquadruptwoparam2)*tempx-imag(@zquadruptwoparam1)))^(imag(@zquadruptwoparam2)))) tempy = real(@zquadruptwoparam1) - ftemp endif ; tempx index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzquadruptwo zinput = @zquadruptwofraction * zinput + zquadruptwocomp * ztemp2 endif ; @blendzquadruptwo endif ; @zattractquadruptwo if @zattractthreeply ztemp2 = zinput tempx = real(zinput) * real(@zthreeplyscale) tempy = imag(zinput) * imag(@zthreeplyscale) ftemp = tempx index = 0 while index < @zthreeplyiters if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * (abs(sin(tempx)*cos(imag(@zthreeplyparam1)) + real(@zthreeplyparam2) \ - tempx*sin(real(@zthreeplyparam1)+imag(@zthreeplyparam1)+real(@zthreeplyparam2)))) tempy = real(@zthreeplyparam1) - imag(@zthreeplyparam2)*ftemp else tempx = tempy - (abs(sin(tempx)*cos(imag(@zthreeplyparam1)) + real(@zthreeplyparam2) \ - tempx*sin(real(@zthreeplyparam1)+imag(@zthreeplyparam1)+real(@zthreeplyparam2)))) tempy = real(@zthreeplyparam1) - imag(@zthreeplyparam2)*ftemp endif ; tempx index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzthreeply zinput = @zthreeplyfraction * zinput + zthreeplycomp * ztemp2 endif ; @blendzthreeply endif ; @zattractthreeply if @zattracthenon ztemp2 = zinput tempx = real(zinput) * real(@zhenonscale) tempy = imag(zinput) * imag(@zhenonscale) ftemp = tempx index = 0 while index < @zhenoniters tempx = 1.0 + tempy - real(@zhenonparam1)*tempx tempy = imag(@zhenonparam1)*ftemp index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzhenon zinput = @zhenonfraction * zinput + zhenoncomp * ztemp2 endif ; @blendzhenon endif ; @zattracthenon if @zattracthopalong ztemp2 = zinput tempx = real(zinput) * real(@zhopalongscale) tempy = imag(zinput) * imag(@zhopalongscale) ftemp = tempx index = 0 while index < @zhopalongiters if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * (abs(tempx*imag(@zhopalongparam1) - real(@zhopalongparam2)))^ \ imag(@zhopalongparam2) tempy = real(@zhopalongparam1) - ftemp else tempx = tempy - (abs(tempx*imag(@zhopalongparam1) - real(@zhopalongparam2)))^ \ imag(@zhopalongparam2) tempy = real(@zhopalongparam1) - ftemp endif ; tempx index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzhopalong zinput = @zhopalongfraction * zinput + zhopalongcomp * ztemp2 endif ; @blendzhopalong endif ; @zattracthopalong if @zattractchip ztemp2 = zinput tempx = real(zinput) * real(@zchipscale) tempy = imag(zinput) * imag(@zchipscale) ftemp = tempx index = 0 while index < @zchipiters if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * cos((log(abs(tempx*imag(@zchipparam1) - real(@zchipparam2)))^ \ imag(@zchipparam2))) tempy = real(@zchipparam1) - ftemp else tempx = tempy - cos((log(abs(tempx*imag(@zchipparam1) - real(@zchipparam2)))^ \ imag(@zchipparam2))) tempy = real(@zchipparam1) - ftemp endif ; tempx index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzchip zinput = @zchipfraction * zinput + zchipcomp * ztemp2 endif ; @blendzchip endif ; @zattractchip if @zattractliar ztemp2 = zinput tempx = real(zinput) * real(@zliarscale) tempy = imag(zinput) * imag(@zliarscale) ftemp = tempx index = 0 while index < @zliariters if (real(tempx+flip(zinput))) < real(@zliarparam1) tempx = imag(@zliarparam1) - abs(tempy-tempx) tempy = imag(@zliarparam2)*abs(real(@zliarparam2)-ftemp-tempy) endif ; real() index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzliar zinput = @zliarfraction * zinput + zliarcomp * ztemp2 endif ; @blendzliar endif ; @zattractliar if @zattractgingerbread ztemp2 = zinput tempx = real(zinput) * real(@zgingerbreadscale) tempy = imag(zinput) * imag(@zgingerbreadscale) ftemp = tempx index = 0 while index < @zgingerbreaditers tempx = 1.0 - tempy + real(@zgingerbreadparam1)*abs(tempx) tempy = imag(@zgingerbreadparam1)*ftemp index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzgingerbread zinput = @zgingerbreadfraction * zinput + zgingerbreadcomp * ztemp2 endif ; @blendzgingerbread endif ; @zattractgingerbread endif ; @zattractor ; Now find angle of 'rotated' zinput tempangle = atan2( zinput ) if ( tempangle < 0 ) tempangle = tempangle + twopi ; 0 <= tempangle <= two pi endif ; tempangle ; Spread out and offset angle of zinput, if desired ; Note that, with the offset, we can no longer count on non-negative angles originalangle = tempangle ; save original value for 'Alternate Spread Style' mode if @offsetangle tempangle = tempangle + @offsetfactor endif ; @offsetangle if @sprangle tempangle = tempangle*@sprangfactor endif ; @sprangle if @recipangle tempangle = 1/tempangle endif; @recipangle if @screwmode != 0 ftemp = tempangle if @weirdness if @weirdtype == "z only" ztemp = #z elseif @weirdtype == "z+z'" ztemp = #z+zinput elseif @weirdtype == "z-z'" ztemp = #z-zinput elseif @weirdtype == "z'-z" ztemp = zinput-#z elseif @weirdtype == "z*z'" ztemp = #z*zinput elseif @weirdtype == "z/z'" ztemp = #z/zinput elseif @weirdtype == "z'/z" ztemp = zinput/#z elseif @weirdtype == "z^z'" ztemp = #z^zinput elseif @weirdtype == "z'^z" ztemp = zinput^#z elseif @weirdtype == "average" ztemp = 0.5*(#z+zinput) elseif @weirdtype == "geometric mean" ztemp = sqrt(#z*zinput) endif; @weirdtype if @blendweirdness ztemp = @weirdfraction*ztemp + weirdcomplement*zinput endif ; @blendweirdness else ztemp = zinput endif ; weirdness if @absolutelyscrewy ztemp = abs(ztemp) endif ; @absolutelyscrewy ftemp2 = real(ztemp), ftemp3 = imag(ztemp) if @recipreal ftemp2 = 1/ftemp2 endif ; @recipreal if @recipimag ftemp3 = 1/ftemp3 endif ; @recipimag tempx = cabs(ztemp) ; for magnitude modes tempy = tempx ; save the value for later if @recipmagn tempx = 1/tempx endif ; @recipmagn if @screwmode == 1 tempangle = tempangle*ftemp2 elseif @screwmode == 2 tempangle = tempangle*ftemp3 elseif @screwmode == 3 tempangle = ftemp2 elseif @screwmode == 4 tempangle = ftemp3 elseif @screwmode == 5 tempangle = tempangle + ftemp2 elseif @screwmode == 6 tempangle = tempangle + ftemp3 elseif @screwmode == 7 tempangle = ftemp2 - tempangle elseif @screwmode == 8 tempangle = ftemp3 - tempangle elseif @screwmode == 9 tempangle = tempangle*ftemp2*ftemp3 elseif @screwmode == 10 tempangle = tempangle+ftemp2+ftemp3 elseif @screwmode == 11 tempangle = tempangle+ftemp2-ftemp3 elseif @screwmode == 12 tempangle = tempangle-ftemp2+ftemp3 elseif @screwmode == 13 tempangle = tempangle-ftemp2-ftemp3 elseif @screwmode == 14 tempangle = ftemp2+ftemp3 elseif @screwmode == 15 tempangle = ftemp2-ftemp3 elseif @screwmode == 16 tempangle = ftemp2*ftemp3 elseif @screwmode == 17 tempangle = (tempangle+ftemp2)*ftemp3 elseif @screwmode == 18 tempangle = ftemp2*(tempangle+ftemp3) elseif @screwmode == 19 tempangle = (tempangle-ftemp2)*ftemp3 elseif @screwmode == 20 tempangle = ftemp2*(tempangle-ftemp3) elseif @screwmode == 21 tempangle = tempangle*(ftemp2+ftemp3) elseif @screwmode == 22 tempangle = tempangle*(ftemp2-ftemp3) elseif @screwmode == 23 tempangle = tempangle*(ftemp2-ftemp3) elseif @screwmode == 24 tempangle = tempx + tempangle elseif @screwmode == 25 tempangle = tempx - tempangle elseif @screwmode == 26 tempangle = tempx + ftemp2 elseif @screwmode == 27 tempangle = tempx - ftemp2 elseif @screwmode == 28 tempangle = tempx + ftemp3 elseif @screwmode == 29 tempangle = tempx - ftemp3 elseif @screwmode == 30 tempangle = tempangle/tempx elseif @screwmode == 31 tempangle = ftemp2/tempx elseif @screwmode == 32 tempangle = ftemp3/tempx elseif @screwmode == 33 tempangle = tempangle*(ftemp2+tempx) elseif @screwmode == 34 tempangle = tempangle*(tempx+ftemp3) elseif @screwmode == 35 tempangle = tempangle*(tempx-ftemp2) elseif @screwmode == 36 tempangle = tempangle*(tempx-ftemp3) elseif @screwmode == 37 tempangle = tempangle/ftemp2 elseif @screwmode == 38 tempangle = tempangle/ftemp3 endif ; @screwmode if @negatescrew tempangle = -tempangle endif ; @negatescrew if @dividebymagn tempangle = tempangle/tempy endif ; @dividebyangle if @blendscrewiness tempangle = @screwyfraction*tempangle + screwycomplement*ftemp endif; @blendscrewiness if @postrecipangle tempangle = 1/tempangle endif; @postrecipangle endif ; @screwmode if @anglebias tempc = zinput ; tempc is needed for scratchpad variable; doesn't relate to trap point tempc = (@abprod*(tempc + @abaddend))^@abexponent tempangle = tempangle + atan2(tempc) endif ; @anglebias ; Big trap loop begins here!!! index = 0 ; this var tracks how many times through each of the two subloops (func & osc set loops) index2 = 0 ; this var is a pointer into the various func/osc/result arrays while index < numberoffuncs if absoluteangle[index2] tempangle2 = abs(tempangle) else tempangle2 = tempangle endif ; absoluteangle[] ; ##jj ; Find trap function values ; Broken into ranges to keep the number of comparisons manageable regardless of ; the value of trapfunc[] if trapfunc[index2] < 32 if trapfunc[index2] == 0 ; nothing but optional scaling result[index2] = tempangle2 elseif trapfunc[index2] == 1 ; reciprocal result[index2] = 1/tempangle2 elseif trapfunc[index2] == 2 ;square result[index2] = tempangle2*tempangle2 elseif trapfunc[index2] == 3 ; recip sqr result[index2] = 1 / (tempangle2*tempangle2) elseif trapfunc[index2] == 4 ; log result[index2] = log(const[index2,0]*tempangle2) elseif trapfunc[index2] == 5 ; e^angle result[index2] = exp(const[index2,0]* tempangle2) elseif trapfunc[index2] == 6 ; angle^angle result[index2] = tempangle2^(const[index2,0]*tempangle2) elseif trapfunc[index2] == 7 ; sine result[index2] = sin( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 8 ; cosine result[index2] = cos( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 9 ; tangent result[index2] = tan( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 10 ; arcsine result[index2] = asin( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 11 ; arccosine result[index2] = acos( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 12 ; arctangent result[index2] = atan( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 13 ; hyperbolic sine result[index2] = sinh( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 14 ; hyperbolic cosine result[index2] = cosh( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 15 ; hyp tangent result[index2] = tanh( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 16 ; hyperbolic arcsin result[index2] = asinh( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 17 ; arccosh result[index2] = acosh( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 18 ; arctanh result[index2] = atanh( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 19 ; log(recip angle) result[index2] = (log( const[index2,0]/tempangle2 ))^const[index2,1] elseif trapfunc[index2] == 20 ; log(log) result[index2] = (log( const[index2,1] * log( const[index2,0]*tempangle2 )))^const[index2,2] elseif trapfunc[index2] == 21 ; e^(recip angle) result[index2] = exp( const[index2,0]/tempangle2 ) elseif trapfunc[index2] == 22 ; sine ^ power result[index2] = sin( const[index2,0]*tempangle2 ) ^ const[index2,1] elseif trapfunc[index2] == 23 ; cos ^ power result[index2] = cos( const[index2,0]*tempangle2 ) ^ const[index2,1] elseif trapfunc[index2] == 24 ; tan ^ power result[index2] = tan( const[index2,0]*tempangle2 ) ^ const[index2,1] elseif trapfunc[index2] == 25 ; cotangent result[index2] = cotan( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 26 ; secant result[index2] = 1/cos( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 27 ; cosecant result[index2] = 1/sin( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 28 ;cotan ^ power result[index2] = cotan( const[index2,0]*tempangle2 ) ^ const[index2,1] elseif trapfunc[index2] == 29 ; sec ^ power result[index2] = (1/cos( const[index2,0]*tempangle2 )) ^ const[index2,1] elseif trapfunc[index2] == 30 ; cosec ^ power result[index2] = (1/sin( const[index2,0]*tempangle2 )) ^ const[index2,1] else ; trapfunc[index2] == 31 ; a^a^a ftemp = tempangle2^(const[index2,0]*tempangle2) result[index2] = tempangle2^(const[index2,1]*ftemp) endif ; trapfunc[index2] == 0 elseif trapfunc[index2] < 64 if trapfunc[index2] == 32 ; recip a^a^a ftemp = tempangle2^(const[index2,0]*tempangle2) result[index2] = 1/( tempangle2^(const[index2,1]*ftemp) ) elseif trapfunc[index2] == 33 ; recip log result[index2] = 1/log( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 34 ; angle*log(angle) result[index2] = tempangle2 * log( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 35 ; sin(a)/a result[index2] = sin( const[index2,0]*tempangle2 ) / tempangle2 elseif trapfunc[index2] == 36 ; cos(a)/a result[index2] = cos( const[index2,0]*tempangle2 ) / tempangle2 elseif trapfunc[index2] == 37 ; sin*cos result[index2] = sin( const[index2,0]*tempangle2 ) * cos( const[index2,1]*tempangle2+const[index2,2] ) elseif trapfunc[index2] == 38 ; sin( a^n ) result[index2] = sin(const[index2,1]*(tempangle2^const[index2,0])) elseif trapfunc[index2] == 39 ; a* e^a result[index2] = tempangle2 * exp( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 40 ; a* e^(recip a) result[index2] = tempangle2 * exp( const[index2,0]/tempangle2 ) elseif trapfunc[index2] == 41 ; arccotan result[index2] = atan( const[index2,0] / tempangle2 ) elseif trapfunc[index2] == 42 ; arcsecant result[index2] = acos( const[index2,0] / tempangle2 ) elseif trapfunc[index2] == 43 ; arccosecant result[index2] = asin( const[index2,0] / tempangle2 ) elseif trapfunc[index2] == 44 ; tan(a)/a result[index2] = tan( const[index2,0]*tempangle2 ) /tempangle2 elseif trapfunc[index2] == 45 ; cotan(a)/a result[index2] = cotan( const[index2,0]*tempangle2 ) /tempangle2 elseif trapfunc[index2] == 46 ; secant(a)/a result[index2] = 1 / ( tempangle2 * cos( const[index2,0]*tempangle2 )) elseif trapfunc[index2] == 47 ; cosecant(a)/a result[index2] = 1 / ( tempangle2 * sin( const[index2,0]*tempangle2 )) elseif trapfunc[index2] == 48 ; a*sin(a) result[index2] = tempangle2 * sin( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 49 ; a*cos(a) result[index2] = tempangle2 * cos( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 50 ; a*tan(a) result[index2] = tempangle2 * tan( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 51 ; a*cotan(a) result[index2] = tempangle2 * cotan( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 52 ; a*secant(a) result[index2] = tempangle2/cos( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 53 ; a*cosecant(a) result[index2] = tempangle2/sin( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 54 ; sin(recip a) result[index2] = sin( const[index2,0]/tempangle2 ) elseif trapfunc[index2] == 55 ; cos(recip a) result[index2] = cos( const[index2,0]/tempangle2 ) elseif trapfunc[index2] == 56 ; tan(recip a) result[index2] = tan( const[index2,0]/tempangle2 ) elseif trapfunc[index2] == 57 ; cotan(recip a) result[index2] = cotan( const[index2,0]/tempangle2 ) elseif trapfunc[index2] == 58 ; sec(recip a) result[index2] = 1/cos( const[index2,0]/tempangle2 ) elseif trapfunc[index2] == 59 ; cosec(recip a) result[index2] = 1/sin( const[index2,0]/tempangle2 ) elseif trapfunc[index2] == 60 ; hyp cotan(a) result[index2] = cotanh( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 61 ; hyp sec result[index2] = 1/cosh( const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 62 ; hyp csc result[index2] = 1/sinh( const[index2,0]*tempangle2 ) else ; trapfunc[index2] == 63 ; hyp arccot result[index2] = atanh( const[index2,0]/tempangle2 ) endif ; trapfunc[index2] == 32 elseif trapfunc[index2] < 96 if trapfunc[index2] == 64 ; hyp arcsec result[index2] = acosh( const[index2,0]/tempangle2 ) elseif trapfunc[index2] == 65 ; hyp arccosec result[index2] = asinh( const[index2,0]/tempangle2 ) elseif trapfunc[index2] == 66 ; a^n result[index2] = tempangle2^const[index2,0] elseif trapfunc[index2] == 67 ; sinh ^ power result[index2] = (sinh(const[index2,0]*tempangle2)) ^ const[index2,1] elseif trapfunc[index2] == 68 ; cosh ^ power result[index2] = (cosh( const[index2,0]*tempangle2 )) ^ const[index2,1] elseif trapfunc[index2] == 69 ; tanh ^ power result[index2] = (tanh(const[index2,0]*tempangle2)) ^ const[index2,1] elseif trapfunc[index2] == 70 ; cotanh ^ power result[index2] = (cotanh( const[index2,0]*tempangle2 )) ^ const[index2,1] elseif trapfunc[index2] == 71 ; sech ^ power result[index2] = (1/cosh(const[index2,0]*tempangle2)) ^ const[index2,1] elseif trapfunc[index2] == 72 ; csch ^ power result[index2] = (1 / sinh( const[index2,0]*tempangle2 )) ^ const[index2,1] elseif trapfunc[index2] == 73 ; sinh (recip a) result[index2] = sinh(const[index2,0]/tempangle2) elseif trapfunc[index2] == 74 ; cosh(1/a) result[index2] = cosh(const[index2,0]/tempangle2) elseif trapfunc[index2] == 75 ; tanh(1/a) result[index2] = tanh(const[index2,0]/tempangle2) elseif trapfunc[index2] == 76 ; coth(1/a) result[index2] = cotanh(const[index2,0]/tempangle2) elseif trapfunc[index2] == 77 ; sech(1/a) result[index2] = 1/cosh(const[index2,0]/tempangle2) elseif trapfunc[index2] == 78 ; csch(1/a) result[index2] = 1/sinh(const[index2,0]/tempangle2) elseif trapfunc[index2] == 79 ; sin * tan result[index2] = sin(const[index2,0]*tempangle2+const[index2,2]) * tan(const[index2,1]*tempangle2+const[index2,3]) elseif trapfunc[index2] == 80 ; sinh * tanh result[index2] = sinh(const[index2,0]*tempangle2+const[index2,2]) * tanh(const[index2,1]*tempangle2+const[index2,3]) elseif trapfunc[index2] == 81 ; sinh * cosh result[index2] = sinh(const[index2,0]*tempangle2) * cosh(const[index2,1]*tempangle2+const[index2,2]) elseif trapfunc[index2] == 82 ; sinh^m * cosh^n ftemp2 = sinh(const[index2,0]*tempangle2), ftemp = cosh(const[index2,1]*tempangle2) result[index2] = (ftemp2^const[index2,2])*(ftemp^const[index2,3]) elseif trapfunc[index2] == 83 ; sin^n * cos^n ftemp2 = sin(const[index2,0]*tempangle2), ftemp = cos(const[index2,1]*tempangle2+const[index2,3]) result[index2] = (ftemp2*ftemp)^const[index2,2] elseif trapfunc[index2] == 84 ; sin(1/a) * cos(1/a) ftemp = 1/tempangle2 result[index2] = sin(const[index2,0]*ftemp)*cos(const[index2,1]*ftemp+const[index2,2]) elseif trapfunc[index2] == 85 ; sin(1/a) ^ power result[index2] = sin( const[index2,0]/tempangle2 ) ^ const[index2,1] elseif trapfunc[index2] == 86 ; sin(a) * cos(1/a) result[index2] = sin(const[index2,0]*tempangle2+const[index2,2]) * cos(const[index2,1]/tempangle2) elseif trapfunc[index2] == 87 ; sin(a) * sin(1/a) result[index2] = sin(const[index2,0]*tempangle2+const[index2,2]) * sin(const[index2,1]/tempangle2) elseif trapfunc[index2] == 88 ; log ^ power result[index2] = log(const[index2,0]*tempangle2) ^ const[index2,1] elseif trapfunc[index2] == 89 ; sine * sine result[index2] = sin(const[index2,0]*tempangle2) * sin(const[index2,1]*tempangle2+const[index2,2]) elseif trapfunc[index2] == 90 ; sinh(recip a)*cosh(recip a) ftemp = 1/tempangle2 result[index2] = sinh(const[index2,0]*ftemp)*cosh(const[index2,1]*ftemp+const[index2,2]) elseif trapfunc[index2] == 91 ; sinh(recip a) ^ power result[index2] = sinh( const[index2,0]/tempangle2 ) ^ const[index2,1] elseif trapfunc[index2] == 92 ; sinh(a) * cosh( recip a) result[index2] = sinh(const[index2,0]*tempangle2+const[index2,2]) * cosh(const[index2,1]/tempangle2) elseif trapfunc[index2] == 93 ; sinh(a) * sinh(recip a) result[index2] = sinh(const[index2,0]*tempangle2) * sinh(const[index2,1]/tempangle2+const[index2,2]) elseif trapfunc[index2] == 94 ; sin * sinh result[index2] = sin(const[index2,0]*tempangle2+const[index2,2]) * sinh(const[index2,1]*tempangle2) else ; trapfunc[index2] == 95 ; sin * cosh result[index2] = sin(const[index2,0]*tempangle2+const[index2,2]) * cosh(const[index2,1]*tempangle2+const[index2,3]) endif ; trapfunc[index2] == 64 elseif trapfunc[index2] < 128 if trapfunc[index2] == 96 ; sin^m * sinh^n ftemp2 = sin(const[index2,0]*tempangle2), ftemp = sinh(const[index2,1]*tempangle2) result[index2] = (ftemp2^const[index2,2])*(ftemp^const[index2,3]) elseif trapfunc[index2] == 97 ; sin * exp result[index2] = sin(const[index2,0]*tempangle2)*exp(const[index2,1]*tempangle2) elseif trapfunc[index2] == 98 ; cos * exp result[index2] = cos(const[index2,0]*tempangle2+const[index2,2])*exp(const[index2,1]*tempangle2) elseif trapfunc[index2] == 99 ; sinh * exp result[index2] = sinh(const[index2,0]*tempangle2)*exp(const[index2,1]*tempangle2) elseif trapfunc[index2] == 100 ; cosh * exp result[index2] = cosh(const[index2,0]*tempangle2+const[index2,2])*exp(const[index2,1]*tempangle2) elseif trapfunc[index2] == 101 ; sin * log result[index2] = sin(const[index2,0]*tempangle2)*log(const[index2,1]*tempangle2) elseif trapfunc[index2] == 102 ; cos * log result[index2] = cos(const[index2,0]*tempangle2+const[index2,2])*log(const[index2,1]*tempangle2) elseif trapfunc[index2] == 103 ; sinh * log result[index2] = sinh(const[index2,0]*tempangle2)*log(const[index2,1]*tempangle2) elseif trapfunc[index2] == 104 ; cosh * log result[index2] = cosh(const[index2,0]*tempangle2+const[index2,2])*log(const[index2,1]*tempangle2) elseif trapfunc[index2] == 105 ; e^(a^power) result[index2] = exp(const[index2,0]*(tempangle2^const[index2,1])) elseif trapfunc[index2] == 106 ; e^(1/(a^power)) result[index2] = exp(const[index2,0]/(tempangle2^(const[index2,1]))) elseif trapfunc[index2] == 107 ; absolute value result[index2] = abs(tempangle2) elseif trapfunc[index2] == 108 ; rounding result[index2] = round(const[index2,0]*tempangle2) elseif trapfunc[index2] == 109 ; truncation result[index2] = trunc(const[index2,0]*tempangle2) elseif trapfunc[index2] == 110 ; ceiling result[index2] = ceil(const[index2,0]*tempangle2) elseif trapfunc[index2] == 111 ; floor result[index2] = floor(const[index2,0]*tempangle2) elseif trapfunc[index2] == 112 ; bifolium ftemp = cos(const[index2,1]*tempangle2) result[index2] = sin(const[index2,0]*tempangle2)*ftemp*ftemp elseif trapfunc[index2] == 113 ; cardioid result[index2] = cos(const[index2,0]*tempangle2) + const[index2,1] elseif trapfunc[index2] == 114 ; circle result[index2] = const[index2,0] elseif trapfunc[index2] == 115 ; cissoid of Diocles result[index2] = sin(const[index2,0]*tempangle2)*tan(const[index2,1]*tempangle2) elseif trapfunc[index2] == 116 ; cochleoid result[index2] = sin(const[index2,0]*tempangle2)/tempangle2 elseif trapfunc[index2] == 117 ; companion to the cycloid (x-coordinate) result[index2] = const[index2,0]*tempangle2 elseif trapfunc[index2] == 118 ; companion to the cycloid (y-coordinate) result[index2] = const[index2,1]-cos(const[index2,0]*tempangle2) elseif trapfunc[index2] == 119 ; conchoid of Nicomedes result[index2] = 1/sin(const[index2,0]*tempangle2) + const[index2,1] elseif trapfunc[index2] == 120 ; cycloid 1 (x-coord) result[index2] = const[index2,1]*tempangle2 - const[index2,2]*sin(const[index2,0]*tempangle2) elseif trapfunc[index2] == 121 ; cycloid 1 (y-coord) result[index2] = const[index2,1] - const[index2,2]*cos(const[index2,0]*tempangle2) elseif trapfunc[index2] == 122 ; cycloid 2 (x-coord) result[index2] = const[index2,1]*tempangle2 + sin(const[index2,0]*tempangle2) elseif trapfunc[index2] == 123 ; cycloid 2 (y-coord) result[index2] = const[index2,1] - cos(const[index2,0]*tempangle2) elseif trapfunc[index2] == 124 ; curtate cycloid (x-coord) result[index2] = const[index2,1]*tempangle2 - const[index2,2]*sin(const[index2,0]*tempangle2) elseif trapfunc[index2] == 125 ; curtate cycloid (y-coord) result[index2] = const[index2,1] - const[index2,2]*cos(const[index2,0]*tempangle2) elseif trapfunc[index2] == 126 ; ellipse (x-coord) result[index2] = const[index2,1]*cos(const[index2,0]*tempangle2) else ; trapfunc[index2] == 127 ; ellipse (y-coord) result[index2] = const[index2,1]*sin(const[index2,0]*tempangle2) endif ; trapfunc[index2] == 96 elseif trapfunc[index2] < 160 if trapfunc[index2] == 128 ; epicycloid (x-coord) ftemp = const[index2,0]+const[index2,1] ftemp2 = ftemp/const[index2,1] result[index2] = ftemp*cos(const[index2,2]*tempangle2) - const[index2,1]*cos(const[index2,3]*ftemp2*tempangle2) elseif trapfunc[index2] == 129 ; epicycloid (y-coord) ftemp = const[index2,0]+const[index2,1] ftemp2 = ftemp/const[index2,1] result[index2] = ftemp*sin(const[index2,2]*tempangle2) - const[index2,1]*sin(const[index2,3]*ftemp2*tempangle2) elseif trapfunc[index2] == 130 ; evolute of ellipse (x-coord) ftemp = cos(const[index2,0]*tempangle2) result[index2] = ftemp*ftemp*ftemp elseif trapfunc[index2] == 131 ; evolute of ellipse (y-coord) ftemp = sin(const[index2,0]*tempangle2) result[index2] = ftemp*ftemp*ftemp elseif trapfunc[index2] == 132 ; folium of Descartes ftemp = sin(const[index2,0]*tempangle2) ftemp2 = cos(const[index2,1]*tempangle2) result[index2] = sin(const[index2,2]*tempangle2)*cos(tempangle2)/(ftemp*ftemp*ftemp+ftemp2*ftemp2*ftemp2) elseif trapfunc[index2] == 133 ; hyperbola (x-coord) result[index2] = const[index2,1]/cos(const[index2,0]*tempangle2) elseif trapfunc[index2] == 134 ; hyperbola (y-coord) result[index2] = const[index2,1]*tan(const[index2,0]*tempangle2) elseif trapfunc[index2] == 135 ; involute of circle (x-coord) result[index2] = const[index2,2]*cos(const[index2,0]*tempangle2) + tempangle2*sin(const[index2,1]*tempangle2) elseif trapfunc[index2] == 136 ; involute of circle (y-coord) result[index2] = const[index2,2]*sin(const[index2,0]*tempangle2) - tempangle2*cos(const[index2,1]*tempangle2) elseif trapfunc[index2] == 137 ; lemniscate of Bernoulli result[index2] = sqrt(cos(2*const[index2,0]*tempangle2)) elseif trapfunc[index2] == 138 ; limacon of Pascal result[index2] = const[index2,1] + const[index2,2]*cos(const[index2,0]*tempangle2) elseif trapfunc[index2] == 139 ; lituus result[index2] = 1/sqrt(const[index2,0]*tempangle2) elseif trapfunc[index2] == 140 ; nephroid (x-coord) result[index2] = 3*const[index2,2]*cos(const[index2,0]*tempangle2) - cos(3*const[index2,1]*tempangle2) elseif trapfunc[index2] == 141 ; nephroid (y-coord) result[index2] = 3*const[index2,2]*sin(const[index2,0]*tempangle2) - sin(3*const[index2,1]*tempangle2) elseif trapfunc[index2] == 142 ; parabola --- 1,1,1 result[index2] = 1/(const[index2,1] - const[index2,2]*cos(const[index2,0]*tempangle2)) elseif trapfunc[index2] == 143 ; rose result[index2] = sin(const[index2,0]*tempangle2) elseif trapfunc[index2] == 144 ; semicubical parabola --- 1,1 ftemp = tan(const[index2,0]*tempangle2) result[index2] = ftemp*ftemp/cos(const[index2,1]*tempangle2) elseif trapfunc[index2] == 145 ; serpentine (x-coord) result[index2] = cotan(const[index2,0]*tempangle2) elseif trapfunc[index2] == 146 ; serpentine (y-coord) result[index2] = const[index2,2]*sin(const[index2,0]*tempangle2)*cos(const[index2,1]*tempangle2) elseif trapfunc[index2] == 147 ; spiral of Archimedes result[index2] = const[index2,0]*tempangle2 elseif trapfunc[index2] == 148 ; hyperbolic spiral result[index2] = const[index2,0]/tempangle2 elseif trapfunc[index2] == 149 ; logarithmic spiral result[index2] = exp(const[index2,0]*tempangle2) elseif trapfunc[index2] == 150 ; parabolic spiral result[index2] = sqrt(const[index2,0]*const[index2,1]*tempangle2) + const[index2,0] elseif trapfunc[index2] == 151 ; strophoid result[index2] = cos(const[index2,0]*tempangle2)/cos(const[index2,1]*tempangle2) elseif trapfunc[index2] == 152 ; tractrix (x-coord) result[index2] = const[index2,1]*tempangle2 - const[index2,0]*tanh(tempangle2/const[index2,0]) elseif trapfunc[index2] == 153 ; tractrix (y-coord) result[index2] = const[index2,0]/cosh(tempangle2/const[index2,0]) elseif trapfunc[index2] == 154 ; witch of Agnesi (x-coord) result[index2] = cotan(const[index2,0]*tempangle2) elseif trapfunc[index2] == 155 ; witch of Agnesi (y-coord) ftemp = sin(const[index2,0]*tempangle2) result[index2] = const[index2,1]*ftemp*ftemp elseif trapfunc[index2] == 156 ; cubical parabola ftemp = 1/cos(const[index2,0]*tempangle2) result[index2] = sqrt(ftemp*ftemp*tan(const[index2,1]*tempangle2)) elseif trapfunc[index2] == 157 ; lissajous (x-coord) result[index2] = sin(const[index2,0]*tempangle2 + const[index2,1]) elseif trapfunc[index2] == 158 ; lissajous (y-coord) result[index2] = cos(const[index2,0]*tempangle2 + const[index2,1]) else ; trapfunc[index2] == 159 ; hypocycloid (x-coord) ftemp = const[index2,0]-const[index2,1] ftemp2 = const[index2,0]/const[index2,1] - const[index2,2] result[index2] = ftemp*cos(tempangle2) + const[index2,1]*cos(ftemp2*tempangle2) endif ; trapfunc[index2] == 128 elseif trapfunc[index2] < 192 if trapfunc[index2] == 160 ; hypocycloid (y-coord) ftemp = const[index2,0]-const[index2,1] ftemp2 = const[index2,0]/const[index2,1] - const[index2,2] result[index2] = ftemp*sin(tempangle2) - const[index2,1]*sin(ftemp2*tempangle2) elseif trapfunc[index2] == 161 ; circle 2 result[index2] = const[index2,1]*cos(const[index2,0]*tempangle2) elseif trapfunc[index2] == 162 ; conchoid 2 result[index2] = const[index2,2] + const[index2,1]/cos(const[index2,0]*tempangle2) elseif trapfunc[index2] == 163 ; conchoid of De Sluze result[index2] = cos(const[index2,0]*tempangle2)/const[index2,2] + const[index2,2]/cos(const[index2,1]*tempangle2) elseif trapfunc[index2] == 164 ; ellipse 2 ftemp = abs(tan(tempangle2)) result[index2] = const[index2,0]*const[index2,1]*sqrt(1+ftemp*ftemp)/(const[index2,1]^const[index2,2] + \ ((const[index2,0]*ftemp)^const[index2,2]))^(1/const[index2,2]) elseif trapfunc[index2] == 165 ; folium of Descartes 2 (x-coord) result[index2] = 3*const[index2,0]*tempangle2/(const[index2,1]+const[index2,2]*tempangle2*tempangle2*tempangle2) elseif trapfunc[index2] == 166 ; folium of Descartes 2 (y-coord) result[index2] = 3*const[index2,0]*tempangle2*tempangle2/(const[index2,1]+const[index2,2]* \ tempangle2*tempangle2*tempangle2) elseif trapfunc[index2] == 167 ; kampyle of Eudoxus ftemp = cos(const[index2,0]*tempangle2) result[index2] = const[index2,1]/ftemp*ftemp elseif trapfunc[index2] == 168 ; kappa curve result[index2] = cotan(const[index2,0]*tempangle2) elseif trapfunc[index2] == 169 ; wavy circle (x) ftemp = const[index2,2] + 0.1 * const[index2,1]*sin(20*const[index2,0]*tempangle2) result[index2] = ftemp * cos(tempangle2) elseif trapfunc[index2] == 170 ; wavy circle (y) ftemp = const[index2,2] + 0.1 * const[index2,1]*sin(20*const[index2,0]*tempangle2) result[index2] = ftemp * sin(tempangle2) elseif trapfunc[index2] == 171 ; a/log(a) result[index2] = tempangle2/log(const[index2,0]*tempangle2) elseif trapfunc[index2] == 172 ; log(a)/a result[index2] = log(const[index2,0]*tempangle2)/tempangle2 elseif trapfunc[index2] == 173 ; e^a / a result[index2] = exp(const[index2,0]*tempangle2)/tempangle2 elseif trapfunc[index2] == 174 ; e^(1/a) / a result[index2] = exp(const[index2,0]/tempangle2)/tempangle2 elseif trapfunc[index2] == 175 ; e^(a^n) / a result[index2] = exp(const[index2,0]*(tempangle2^const[index2,1]))/tempangle2 elseif trapfunc[index2] == 176 ; e^(1/(a^n)) / a result[index2] = exp(const[index2,0]/(tempangle2^const[index2,1]))/tempangle2 elseif trapfunc[index2] == 177 ; a*e^(a^n) result[index2] = tempangle2 * exp(const[index2,0]*(tempangle2^const[index2,1])) elseif trapfunc[index2] == 178 ; a*e^(1/(a^n)) result[index2] = tempangle2 * exp(const[index2,0]/(tempangle2^const[index2,1])) elseif trapfunc[index2] == 179 ; log(a) B result[index2] = log( 1 + const[index2,0]*tempangle2 ) elseif trapfunc[index2] == 180 ; log(log(a)) B result[index2] = log( 1 + const[index2,1] * log( 1 + const[index2,0]*tempangle2 )) elseif trapfunc[index2] == 181 ; Xarctangent if @weirdness ztemp2 = tempangle2*ztemp/cabs(ztemp) else ztemp2 = tempangle2*zinput/cabs(zinput) endif ; @weirdness result[index2] = atan(const[index2,0]*real(ztemp2))^const[index2,1] - const[index2,2]*imag(ztemp2) ; result[index2] = atan(const[index2,0]*real(zinput))^const[index2,1] - const[index2,2]*imag(zinput) elseif trapfunc[index2] == 182 ; Xsine if @weirdness ztemp2 = tempangle2*ztemp/cabs(ztemp) else ztemp2 = tempangle2*zinput/cabs(zinput) endif ; @weirdness result[index2] = sin(const[index2,0]*real(ztemp2)+ const[index2,1])^const[index2,2] - imag(ztemp2) ; result[index2] = sin(const[index2,0]*real(zinput)+ const[index2,1])^const[index2,2] - imag(zinput) elseif trapfunc[index2] == 183 ; Xparabola if @weirdness ztemp2 = tempangle2*ztemp/cabs(ztemp) else ztemp2 = tempangle2*zinput/cabs(zinput) endif ; @weirdness result[index2] = (const[index2,0]*real(ztemp2))^const[index2,1] - const[index2,2]*imag(ztemp2) ; result[index2] = (const[index2,0]*real(zinput))^const[index2,1] - const[index2,2]*imag(zinput) elseif trapfunc[index2] == 184 ; Xampersand. const should = 1,4,2 if @weirdness ztemp2 = tempangle2*ztemp/cabs(ztemp) else ztemp2 = tempangle2*zinput/cabs(zinput) endif ; @weirdness ftemp = real(ztemp2) ftemp2 = imag(ztemp2) result[index2] = abs(const[index2,0]*(ftemp2*ftemp2-ftemp*ftemp)*(ftemp-1)*(2*ftemp-3)- \ const[index2,1]*(ftemp*ftemp+ftemp2*ftemp2-2*ftemp)^const[index2,2]) ; ftemp = real(zinput) ; ftemp2 = imag(zinput) ; result[index2] = abs(const[index2,0]*(ftemp2*ftemp2-ftemp*ftemp)*(ftemp-1)*(ftemp-1)- \ ; const[index2,1]*(ftemp*ftemp+ftemp2*ftemp2-2*ftemp)^const[index2,2]) elseif trapfunc[index2] == 185 ; Xampersand2 ftemp = abs(real(zinput)) ftemp2 = imag(zinput) result[index2] = abs(const[index2,0]*(ftemp2*ftemp2-ftemp*ftemp)*(ftemp-1)*(ftemp-1)- \ const[index2,1]*(ftemp*ftemp+ftemp2*ftemp2-2*ftemp)^const[index2,2]) elseif trapfunc[index2] == 186 ; Xhyperbola. const = 1,1,1 if @weirdness ztemp2 = tempangle2*ztemp/cabs(ztemp) else ztemp2 = tempangle2*zinput/cabs(zinput) endif ; @weirdness ftemp = real(ztemp2) ftemp2 = imag(ztemp2) result[index2] = abs(const[index2,0]*ftemp*ftemp-const[index2,1]*ftemp2*ftemp2-const[index2,2]) ; result[index2] = abs(const[index2,0]*ftemp*ftemp-const[index2,1]*ftemp2*ftemp2+const[index2,2]) elseif trapfunc[index2] == 187 ; Xbifolium. const = 1,1,0 if @weirdness ztemp2 = tempangle2*ztemp/cabs(ztemp) else ztemp2 = tempangle2*zinput/cabs(zinput) endif ; @weirdness ftemp = sqr(real(ztemp2)) ftemp2 = imag(ztemp2) result[index2] = const[index2,0]*sqr(ftemp+ftemp2*ftemp2)-const[index2,1]*ftemp*ftemp2+const[index2,2] ; result[index2] = abs(const[index2,0]*ftemp^4+const[index2,1]*ftemp2^4-const[index2,2]*abs(ftemp)*ftemp2*ftemp2) elseif trapfunc[index2] == 188 ; Xbow. const = 1,1,1 if @weirdness ztemp2 = tempangle2*ztemp/cabs(ztemp) else ztemp2 = tempangle2*zinput/cabs(zinput) endif ; @weirdness ftemp = sqr(real(ztemp2)) ftemp2 = imag(ztemp2) result[index2] = const[index2,0]*ftemp*ftemp-const[index2,1]*ftemp*ftemp2+const[index2,2]*ftemp2^3 ; result[index2] = abs(const[index2,0]*ftemp^4-const[index2,1]*ftemp*ftemp*ftemp2+const[index2,2]*ftemp2^3) elseif trapfunc[index2] == 189 ; Xbean. const = 4,2,1 if @weirdness ztemp2 = tempangle2*ztemp/cabs(ztemp) else ztemp2 = tempangle2*zinput/cabs(zinput) endif ; @weirdness ftemp = abs(real(ztemp2)) ftemp2 = imag(ztemp2) result[index2] = ftemp^const[index2,0] + (ftemp^const[index2,1])*(ftemp2^const[index2,1]) + \ ftemp2^const[index2,0] - const[index2,2]*ftemp*(ftemp*ftemp+ftemp2*ftemp2) elseif trapfunc[index2] == 190 ; Xdulcimer. const = 1,1,1 if @weirdness ztemp2 = tempangle2*ztemp/cabs(ztemp) else ztemp2 = tempangle2*zinput/cabs(zinput) endif ; @weirdness ftemp = sqr(real(ztemp2)) ftemp2 = imag(ztemp2) result[index2] = const[index2,0]*(ftemp+sqr(ftemp2))*sqr(ftemp2) - const[index2,1]*abs(ftemp2^const[index2,2]) ; result[index2] = (ftemp+ftemp2)*imag(zinput)^const[index2,1] - const[index2,2]*abs(imag(zinput)) else ; trapfunc[index2] == 191 ; sin+tan result[index2] = sin(const[index2,0]*tempangle2+const[index2,3]) + const[index2,2]*tan(const[index2,1]*tempangle2) endif ; trapfunc[index2] == 160 elseif trapfunc[index2] < 224 if trapfunc[index2] == 192 ; sin+cot result[index2] = sin(const[index2,0]*tempangle2+const[index2,3]) + const[index2,2]*cotan(const[index2,1]*tempangle2) elseif trapfunc[index2] == 193 ; sin+sec result[index2] = sin(const[index2,0]*tempangle2+const[index2,3]) + const[index2,2]/cos(const[index2,1]*tempangle2) elseif trapfunc[index2] == 194 ; sin+csc result[index2] = sin(const[index2,0]*tempangle2+const[index2,3]) + const[index2,2]/sin(const[index2,1]*tempangle2) elseif trapfunc[index2] == 195 ; cos+tan result[index2] = cos(const[index2,0]*tempangle2) + const[index2,2]*tan(const[index2,1]*tempangle2+const[index2,3]) elseif trapfunc[index2] == 196 ; cos+cot result[index2] = cos(const[index2,0]*tempangle2) + const[index2,2]*cotan(const[index2,1]*tempangle2+const[index2,3]) elseif trapfunc[index2] == 197 ; cos+sec result[index2] = cos(const[index2,0]*tempangle2) + const[index2,2]/cos(const[index2,1]*tempangle2+const[index2,3]) elseif trapfunc[index2] == 198 ; cos+csc result[index2] = cos(const[index2,0]*tempangle2) + const[index2,2]/sin(const[index2,1]*tempangle2+const[index2,3]) elseif trapfunc[index2] == 199 ; cos*cot result[index2] = cos(const[index2,0]*tempangle2+const[index2,2])*cotan(const[index2,1]*tempangle2+const[index2,3]) elseif trapfunc[index2] == 200 ; sec*csc result[index2] = 1/(cos(const[index2,0]*tempangle2+const[index2,2]) * sin(const[index2,1]*tempangle2+const[index2,3])) elseif trapfunc[index2] == 201 ; sin^n*cos^m result[index2] = (sin(const[index2,0]*tempangle2))^const[index2,1] * (cos(const[index2,3]*tempangle2))^const[index2,2] elseif trapfunc[index2] == 202 ; sin^n+cos^m result[index2] = (sin(const[index2,0]*tempangle2))^const[index2,1] + (cos(const[index2,3]*tempangle2))^const[index2,2] elseif trapfunc[index2] == 203 ; sin^n+cos^n result[index2] = (sin(const[index2,0]*tempangle2))^const[index2,2] + (cos(const[index2,1]*tempangle2+const[index2,3]))^const[index2,2] elseif trapfunc[index2] == 204 ; cos(1/a)^n result[index2] = (cos(const[index2,0]/tempangle2+const[index2,2]))^const[index2,1] elseif trapfunc[index2] == 205 ; sin+sin(1/a) result[index2] = sin(const[index2,0]*tempangle2+const[index2,3]) + const[index2,2]*sin(const[index2,1]/tempangle2) elseif trapfunc[index2] == 206 ; log*exp result[index2] = (log(const[index2,0]*tempangle2) + const[index2,2])*exp(const[index2,1]*tempangle2) elseif trapfunc[index2] == 207 ; log*exp B result[index2] = (log(1+const[index2,0]*tempangle2) + const[index2,2])*exp(const[index2,1]*tempangle2) elseif trapfunc[index2] == 208 ; log(1/a) B result[index2] = (log(1+const[index2,0]/tempangle2))^const[index2,1] + const[index2,2] elseif trapfunc[index2] == 209 ; 1/log B result[index2] = (1/log(1+const[index2,0]*tempangle2))^const[index2,1] + const[index2,2] elseif trapfunc[index2] == 210 ; alog B result[index2] = tempangle2 * (log(1+const[index2,0]*tempangle2))^const[index2,1] + const[index2,2] elseif trapfunc[index2] == 211 ; log^n B result[index2] = (log(1+const[index2,0]*tempangle2))^const[index2,1] + const[index2,2] elseif trapfunc[index2] == 212 ; sin*log B result[index2] = sin(const[index2,0]*tempangle2+const[index2,2]) * log(const[index2,3]+const[index2,1]*tempangle2) elseif trapfunc[index2] == 213 ; cos*log B result[index2] = cos(const[index2,0]*tempangle2+const[index2,3]) * log(const[index2,3]+const[index2,1]*tempangle2) elseif trapfunc[index2] == 214 ; a/log B result[index2] = tempangle2 / (log(1+const[index2,0]*tempangle2))^const[index2,1] + const[index2,2] elseif trapfunc[index2] == 215 ; log/a B result[index2] = ((log(1+const[index2,0]*tempangle2))^const[index2,1])/tempangle2 + const[index2,2] elseif trapfunc[index2] == 216 ; tan*log result[index2] = tan(const[index2,0]*tempangle2+const[index2,2]) * log(const[index2,1]*tempangle2+const[index2,3]) elseif trapfunc[index2] == 217 ; tan*log B result[index2] = tan(const[index2,0]*tempangle2+const[index2,2]) * (log(1+const[index2,1]*tempangle2) + const[index2,3]) elseif trapfunc[index2] == 218 ; e^(sin+cos) result[index2] = exp(const[index2,0]*sin(const[index2,1]*tempangle2) + const[index2,2]* \ cos(const[index2,3]*tempangle2)) elseif trapfunc[index2] == 219 ; e^(sin+tan) result[index2] = exp(const[index2,0]*sin(const[index2,1]*tempangle2) + const[index2,2]* \ tan(const[index2,3]*tempangle2)) elseif trapfunc[index2] == 220 ; sin+e^sin result[index2] = sin(const[index2,0]*tempangle2) + const[index2,1]*exp(const[index2,2]* \ sin(const[index2,3]*tempangle2)) elseif trapfunc[index2] == 221 ; log(sin+cos) result[index2] = log(1+abs(const[index2,0]*sin(const[index2,1]*tempangle2) + const[index2,2]* \ cos(const[index2,3]*tempangle2))) elseif trapfunc[index2] == 222 ; sin(sin) result[index2] = sin(const[index2,0]*sin(const[index2,1]*tempangle2+const[index2,2])+const[index2,3]) else ; trapfunc[index2] == 223 ; sin+tan(sin) result[index2] = sin(const[index2,0]*tempangle2) + const[index2,1]*tan(const[index2,2]* \ sin(const[index2,3]*tempangle2)) endif ; trapfunc[index2] == 192 else ; trapfunc[index2] >= 224 if trapfunc[index2] == 224 ; Gielis' curve ftemp = 0.25*const[index2,0]*tempangle2 ftemp2 = abs(cos(ftemp))^const[index2,1] + abs(sin(ftemp))^const[index2,2] result[index2] = ftemp2^(-1.0/const[index2,3]) elseif trapfunc[index2] == 225 ; sin+e^tan result[index2] = sin(const[index2,0]*tempangle2) + const[index2,1]*exp(const[index2,2]* \ tan(const[index2,3]*tempangle2)) elseif trapfunc[index2] == 226 ; tan+e^sin result[index2] = tan(const[index2,0]*tempangle2) + const[index2,1]*exp(const[index2,2]* \ sin(const[index2,3]*tempangle2)) elseif trapfunc[index2] == 227 ; tan+e^tan result[index2] = tan(const[index2,0]*tempangle2) + const[index2,1]*exp(const[index2,2]* \ tan(const[index2,3]*tempangle2)) elseif trapfunc[index2] == 228 ; tan+tan(sin) result[index2] = tan(const[index2,0]*tempangle2) + const[index2,1]*tan(const[index2,2]* \ sin(const[index2,3]*tempangle2)) elseif trapfunc[index2] == 229 ; tan+sin(tan) result[index2] = tan(const[index2,0]*tempangle2) + const[index2,1]*sin(const[index2,2]* \ tan(const[index2,3]*tempangle2)) elseif trapfunc[index2] == 230 ; sin+sin(tan) result[index2] = sin(const[index2,0]*tempangle2) + const[index2,1]*sin(const[index2,2]* \ tan(const[index2,3]*tempangle2)) elseif trapfunc[index2] == 231 ; sin^m+tan^n result[index2] = (sin(const[index2,0]*tempangle2))^const[index2,1] + (tan(const[index2,2]*tempangle2))^const[index2,3] elseif trapfunc[index2] == 232 ; hyperbola 2 --- 0.5,2,1,1 result[index2] = const[index2,0]*(const[index2,1]*const[index2,1]-1)/(const[index2,2]-const[index2,1]* \ cos(const[index2,3]*tempangle2)) elseif trapfunc[index2] == 233 ; semicubical parabola 2 --- 1,1,0,1 ftemp = cotan(const[index2,0]*tempangle2) ftemp2 = cotan(const[index2,1]*tempangle2) result[index2] = (ftemp*ftemp2 + const[index2,2])/sin(const[index2,3]*tempangle2) elseif trapfunc[index2] == 234 ; cubical parabola 2 --- 1,1,0,0.5 ftemp = cos(const[index2,0]*tempangle2) ftemp2 = sin(const[index2,1]*tempangle2 + const[index2,2]) result[index2] = (ftemp/(ftemp2*ftemp2*ftemp2))^const[index2,3] elseif trapfunc[index2] == 235 ; bean curve --- 1,1,1,1 ftemp = cos(const[index2,0]*tempangle2)^const[index2,1] ftemp2 = sqr(sin(const[index2,2]*tempangle2)^const[index2,3]) ftemp3 = sqr(ftemp) result[index2] = ftemp/(sqr(ftemp3)+ftemp2*ftemp3+sqr(ftemp2)) elseif trapfunc[index2] == 236 ; butterfly curve 1 --- 1,1,3,0.5 ftemp = sqr(cos(const[index2,0]*tempangle2)) ftemp2 = sqr(sin(const[index2,1]*tempangle2)) result[index2] = (abs(sqrt(ftemp/(ftemp^const[index2,2] + ftemp2^const[index2,2]))))^const[index2,3] elseif trapfunc[index2] == 237 ; butterfly curve 2 --- 1,4,2,5 result[index2] = exp(sin(const[index2,0]*tempangle2)) - 2*cos(const[index2,1]*tempangle2) + \ (sin(const[index2,2]*(0.041666666666666666666666666666667)*tempangle2 - \ (0.13089969389957471826927680763665)))^const[index2,3] elseif trapfunc[index2] == 238 ; teardrop curve (x) --- 1,0,1,0 result[index2] = (cos(const[index2,0]*tempangle2+const[index2,1]))^const[index2,2] + const[index2,3] elseif trapfunc[index2] == 239 ; teardrop curve (y) --- 1,1,0.5,5 result[index2] = ((sin(const[index2,0]*tempangle2))^const[index2,1])* \ ((sin(const[index2,2]*tempangle2))^const[index2,3]) elseif trapfunc[index2] == 240 ; Ddumbbell --- const = 1,2,3,1 if @weirdness ztemp2 = ztemp else ztemp2 = zinput endif ; @weirdness ftemp = sqr(real(ztemp2)) ftemp2 = sqr(imag(ztemp2)) result[index2] = const[index2,0]*((ftemp^const[index2,1])-(ftemp^const[index2,2])) - ftemp2^const[index2,3] elseif trapfunc[index2] == 241 ; Drose --- const = 1,n,0,1 if @weirdness ztemp2 = ztemp else ztemp2 = zinput endif ; @weirdness ftemp = cabs(ztemp2) result[index2] = const[index2,0]*(sin(const[index2,1]*tempangle2+const[index2,2])) - const[index2,3]*ftemp elseif trapfunc[index2] == 242 ; Plateau curve x-coord; const = 1,a,1,a, -1= 224 endif ; trapfunc[index2] if absoluteresult[index2] result[index2] = abs(result[index2]) endif ; absoluteresult[] ; Perform any appropriate scaling (including overall)and offsetting result[index2] = scale*(coeff[index2,0,0] * result[index2] + offset[index2]) index = index + 1 index2 = index2 + 1 endwhile ; index index = 0 ; reset index for oscillator loop, but not index2 ; Find trap oscillator values while index < numberofoscsets if absoluteangle[index2] tempangle2 = abs(tempangle) else tempangle2 = tempangle endif ; absoluteangle[] ; Calculate the first oscillator of each set if oscreciprocal[index2,0] ftemp = 1/tempangle2 else ftemp = tempangle2 endif ; oscreciprocal if !oscselector[index2,0] result[index2] = cos(coeff[index2,0,1]*ftemp) else if oscfunction[index2,0] == 0 ; sine result[index2] = sin(coeff[index2,0,1]*ftemp) elseif oscfunction[index2,0] == 1 ; tan result[index2] = tan(coeff[index2,0,1]*ftemp) elseif oscfunction[index2,0] == 2 ; exp result[index2] = exp(coeff[index2,0,1]*ftemp) elseif oscfunction[index2,0] == 3 ; sec result[index2] = 1/cos(coeff[index2,0,1]*ftemp) elseif oscfunction[index2,0] == 4 ; csc result[index2] = 1/sin(coeff[index2,0,1]*ftemp) elseif oscfunction[index2,0] == 5 ; cot result[index2] = cotan(coeff[index2,0,1]*ftemp) elseif oscfunction[index2,0] == 6 ; log result[index2] = log(coeff[index2,0,1]*ftemp) elseif oscfunction[index2,0] == 7 ; angle only result[index2] = ftemp endif ; oscfunction endif ; oscselector if oscpower[index2,0] if oscexponent[index2,0] == 2 result[index2] = result[index2]*result[index2] elseif oscexponent[index2,0] == 3 result[index2] = result[index2]*result[index2]*result[index2] elseif oscexponent[index2,0] == 5 ftemp = result[index2]*result[index2] result[index2] = result[index2]*result[index2]*result[index2]*ftemp elseif oscexponent[index2,0] == 7 ftemp = result[index2]*result[index2]*result[index2] result[index2] = result[index2]*ftemp*ftemp else result[index2] = result[index2]^oscexponent[index2,0] endif ; oscexponent endif ; oscpower result[index2] = coeff[index2,0,0]*result[index2] ; Now add any other oscillators of that set that have a non-zero amplitude index3 = 1 while index3 < 4 if coeff[index2, index3, 0] != 0.0 if oscreciprocal[index2,index3] ftemp = 1/tempangle2 else ftemp = tempangle2 endif ; oscreciprocal if !oscselector[index2,index3] ftemp2 = cos(coeff[index2,index3,1]*ftemp) else if oscfunction[index2,index3] == 0 ; sine ftemp2 = sin(coeff[index2,index3,1]*ftemp) elseif oscfunction[index2,index3] == 1 ; tan ftemp2 = tan(coeff[index2,index3,1]*ftemp) elseif oscfunction[index2,index3] == 2 ; exp ftemp2 = exp(coeff[index2,index3,1]*ftemp) elseif oscfunction[index2,index3] == 3 ; sec ftemp2 = 1/cos(coeff[index2,index3,1]*ftemp) elseif oscfunction[index2,index3] == 4 ; csc ftemp2 = 1/sin(coeff[index2,index3,1]*ftemp) elseif oscfunction[index2,index3] == 5 ; cot ftemp2 = cotan(coeff[index2,index3,1]*ftemp) elseif oscfunction[index2,index3] == 6 ; log ftemp2 = log(coeff[index2,index3,1]*ftemp) elseif oscfunction[index2,index3] == 7 ; angle only ftemp2 = ftemp endif ; oscfunction endif ; oscselector if oscpower[index2,index3] if oscexponent[index2,index3] == 2 ftemp2 = ftemp2*ftemp2 elseif oscexponent[index2,index3] == 3 ftemp2 = ftemp2*ftemp2*ftemp2 elseif oscexponent[index2,index3] == 5 ftemp = ftemp2*ftemp2 ftemp2 = ftemp2*ftemp2*ftemp2*ftemp elseif oscexponent[index2,index3] == 7 ftemp = ftemp2*ftemp2*ftemp2 ftemp2 = ftemp2*ftemp*ftemp else ftemp2 = ftemp2^oscexponent[index2,index3] endif ; oscexponent endif ; oscpower ftemp2 = coeff[index2,index3,0]*ftemp2 if oscoperator[index2, index3] == 0 result[index2] = result[index2] + ftemp2 elseif oscoperator[index2, index3] == 1 result[index2] = result[index2] - ftemp2 elseif oscoperator[index2, index3] == 2 result[index2] = result[index2] * ftemp2 elseif oscoperator[index2, index3] == 3 result[index2] = result[index2] / ftemp2 elseif oscoperator[index2, index3] == 4 result[index2] = result[index2] ^ ftemp2 elseif oscoperator[index2, index3] == 5 result[index2] = ftemp2 - result[index2] elseif oscoperator[index2, index3] == 6 result[index2] = ftemp2 / result[index2] elseif oscoperator[index2, index3] == 7 result[index2] = ftemp2 ^ result[index2] endif ; oscoperator else index3 = 4 ; stop computing oscillators if we find one in a set that is set to zero endif ; coeff[] index3 = index3 + 1 endwhile ; index3 if absoluteresult[index2] result[index2] = abs(result[index2]) endif ; absoluteresult[] if oscsetrecip[index2] == TRUE result[index2] = 1/result[index2] endif ; oscsetrecip[] ; Perform offset and overall scaling result[index2] = scale*(result[index2] + offset[index2]) index = index + 1 index2 = index2 + 1 endwhile ; index ; Use result to calculate the trap point(s) that was(were) identified if @alternatespread if ((@screwmode != 0) || @sprangle || @offsetangle) tempangle = originalangle endif ; @screwmode... endif ; @alternatespread if twotraps if @altcombo if @coordtype == "Polar" if @alttrapcombo == "average" result[0] = onehalf*(result[0]+result[1]) elseif @alttrapcombo == "sum" result[0] = result[0]+result[1] elseif @alttrapcombo == "difference" result[0] = result[0]-result[1] elseif @alttrapcombo == "difference2" result[0] = result[1]-result[0] elseif @alttrapcombo == "product" result[0] = result[0]*result[1] elseif @alttrapcombo == "geom. mean" result[0] = sqrt(abs(result[0]*result[1])) elseif @alttrapcombo == "quotient" result[0] = result[0]/result[1] elseif @alttrapcombo == "quotient2" result[0] = result[1]/result[0] elseif @alttrapcombo == "exponential" result[0] = result[0]^result[1] elseif @alttrapcombo == "exponential2" result[0] = result[1]^result[0] elseif @alttrapcombo == "splice1" result[0] = abs(result[0]+result[1]) elseif @alttrapcombo == "splice2" result[0] = abs(result[0]-result[1]) elseif @alttrapcombo == "splice3" result[0] = abs(result[0]*result[1]) elseif @alttrapcombo == "splice4" result[0] = abs(result[0]/result[1]) elseif @alttrapcombo == "splice5" result[0] = abs(result[1]/result[0]) elseif @alttrapcombo == "splice6" result[0] = abs(result[0]^result[1]) elseif @alttrapcombo == "smallest" if abs(result[1])abs(result[0]) result[0] = result[1] endif ; result[1] endif ; @alttrapcombo elseif @coordtype == "Parametric" if @alttrapcombo == "average" result[0] = onehalf*(result[0]+result[2]) result[1] = onehalf*(result[1]+result[3]) elseif @alttrapcombo == "sum" result[0] = result[0]+result[2] result[1] = result[1]+result[3] elseif @alttrapcombo == "difference" result[0] = result[0]-result[2] result[1] = result[1]-result[3] elseif @alttrapcombo == "difference2" result[0] = result[2]-result[0] result[1] = result[3]-result[1] elseif @alttrapcombo == "product" result[0] = result[0]*result[2] result[1] = result[1]*result[3] elseif @alttrapcombo == "geom. mean" result[0] = sqrt(abs(result[0]*result[2])) result[1] = sqrt(abs(result[1]*result[3])) elseif @alttrapcombo == "quotient" result[0] = result[0]/result[2] result[1] = result[1]/result[3] elseif @alttrapcombo == "quotient2" result[0] = result[2]/result[0] result[1] = result[3]/result[1] elseif @alttrapcombo == "exponential" result[0] = result[0]^result[2] result[1] = result[1]^result[3] elseif @alttrapcombo == "exponential2" result[0] = result[2]^result[0] result[1] = result[3]^result[1] elseif @alttrapcombo == "splice1" result[1] = result[3] elseif @alttrapcombo == "splice2" result[0] = result[2] elseif @alttrapcombo == "splice3" result[1] = result[2] elseif @alttrapcombo == "splice4" result[0] = result[1] result[1] = result[3] elseif @alttrapcombo == "splice5" result[0] = abs(result[0]+result[2]) result[1] = abs(result[1]+result[3]) elseif @alttrapcombo == "splice6" result[0] = result[0]+result[3] result[1] = result[1]+result[2] elseif @alttrapcombo == "smallest" if abs(result[2])abs(result[0]) result[0] = result[2] endif ; result[2] if abs(result[3])>abs(result[1]) result[1] = result[3] endif ; result[3] endif ; @alttrapcombo elseif @coordtype == "Mixed" if @traptype != "mixed 2" if @alttrapcombo == "average" result[0] = onethird*(result[0]+result[1]+result[2]) elseif @alttrapcombo == "sum" result[0] = result[0]+result[1]+result[2] elseif @alttrapcombo == "difference" result[0] = result[0]-result[1]-result[2] elseif @alttrapcombo == "difference2" result[0] = result[1]+result[2]-result[0] elseif @alttrapcombo == "product" result[0] = result[0]*result[1]*result[2] elseif @alttrapcombo == "geom. mean" result[0] = (abs(result[0]*result[1]*result[2]))^onethird elseif @alttrapcombo == "quotient" result[0] = result[0]/(result[1]*result[2]) elseif @alttrapcombo == "quotient2" result[0] = result[1]*result[2]/result[0] elseif @alttrapcombo == "exponential" result[0] = result[0]^(result[1]^result[2]) elseif @alttrapcombo == "exponential2" result[0] = (result[1]+result[2])^result[0] elseif @alttrapcombo == "splice1" result[0] = result[0]-result[1]+result[2] elseif @alttrapcombo == "splice2" result[0] = result[0]+result[1]-result[2] elseif @alttrapcombo == "splice3" result[0] = abs(result[0]+result[1]+result[2]) elseif @alttrapcombo == "splice4" result[0] = abs(result[0]-result[1]-result[2]) elseif @alttrapcombo == "splice5" result[0] = abs(result[0]+result[1]-result[2]) elseif @alttrapcombo == "splice6" result[0] = abs(result[0]-result[1]+result[2]) elseif @alttrapcombo == "smallest" if abs(result[1])abs(result[0]) if abs(result[2])>abs(result[1]) result[0] = result[2] else result[0] = result[1] endif ; abs(result[2]) else if abs(result[2])>abs(result[0]) result[0] = result[2] endif ; abs(result[2]) endif ; abs(result[1]) endif ; @alttrapcombo elseif @traptype == "mixed 2" if @alttrapcombo == "average" result[0] = onehalf*(result[0]+result[2]) result[1] = onehalf*(result[1]+result[2]) elseif @alttrapcombo == "sum" result[0] = result[0]+result[2] result[1] = result[1]+result[2] elseif @alttrapcombo == "difference" result[0] = result[0]-result[2] result[1] = result[1]-result[2] elseif @alttrapcombo == "difference2" result[0] = result[2]-result[0] result[1] = result[2]-result[1] elseif @alttrapcombo == "product" result[0] = result[0]*result[2] result[1] = result[1]*result[2] elseif @alttrapcombo == "geom. mean" result[0] = sqrt(abs(result[0]*result[2])) result[1] = sqrt(abs(result[1]*result[2])) elseif @alttrapcombo == "quotient" result[0] = result[0]/result[2] result[1] = result[1]/result[2] elseif @alttrapcombo == "quotient2" result[0] = result[2]/result[0] result[1] = result[2]/result[1] elseif @alttrapcombo == "exponential" result[0] = result[0]^result[2] result[1] = result[1]^result[2] elseif @alttrapcombo == "exponential2" result[0] = result[2]^result[0] result[1] = result[2]^result[1] elseif @alttrapcombo == "splice1" result[0] = result[2] elseif @alttrapcombo == "splice2" result[1] = result[2] elseif @alttrapcombo == "splice3" result[0] = abs(result[0]+result[2]) result[1] = abs(result[1]+result[2]) elseif @alttrapcombo == "splice4" result[0] = abs(result[0]-result[2]) result[1] = abs(result[1]-result[2]) elseif @alttrapcombo == "splice5" result[0] = abs(result[0]*result[2]) result[1] = abs(result[1]*result[2]) elseif @alttrapcombo == "splice6" result[0] = abs(result[0]/result[2]) result[1] = abs(result[1]/result[2]) elseif @alttrapcombo == "smallest" if abs(result[2])abs(result[0]) result[0] = result[2] endif ; result[2] if abs(result[2])>abs(result[1]) result[1] = result[2] endif ; result[2] endif ; @alttrapcombo endif ; @traptype endif ; @coordtype endif ; @altcombo endif ; twotraps if @coordtype == "Polar" traptemp = result[0] * exp(flip(tempangle)) if twotraps traptemp2 = result[1] * exp(flip(tempangle)) endif ; twotraps elseif @coordtype == "Parametric" traptemp = result[0] + flip(result[1]) if twotraps traptemp2 = result[2] + flip(result[3]) endif ; twotraps else ; @coordtype == "Mixed" if @traptype == "mixed 2" traptemp = result[0] + flip(result[1]) traptemp2 = result[2] * exp(flip(tempangle)) else traptemp = result[0] * exp(flip(tempangle)) traptemp2 = result[1] + flip(result[2]) endif ; @traptype endif ; @coordtype ; If more than one trap was employed, combine the points appropriately, as specified if twotraps if @altcombo tempc = traptemp else if @twotrapsblend traptemp = @trap1weight*traptemp traptemp2 = @trap2weight*traptemp2 endif ; @trapblend if @trapcombo == "average" tempc = 0.5 * (traptemp + traptemp2) elseif @trapcombo == "sum" tempc = traptemp + traptemp2 elseif @trapcombo == "difference" tempc = traptemp - traptemp2 elseif @trapcombo == "product" tempc = traptemp * traptemp2 elseif @trapcombo == "geom. mean" tempc = sqrt(traptemp * traptemp2) elseif @trapcombo == "difference 2" tempc = traptemp2 - traptemp elseif @trapcombo == "quotient" tempc = traptemp / traptemp2 elseif @trapcombo == "quotient 2" tempc = traptemp2 / traptemp elseif @trapcombo == "exponential 1" tempc = traptemp ^ traptemp2 elseif @trapcombo == "exponential 2" tempc = traptemp2 ^ traptemp elseif @trapcombo == "splice 1" tempc = real(traptemp) + flip(imag(traptemp2)) elseif @trapcombo == "splice 2" tempc = real(traptemp2) + flip(imag(traptemp)) elseif @trapcombo == "product 2" tempc = real(traptemp)*real(traptemp2) + flip(imag(traptemp)*imag(traptemp2)) elseif @trapcombo == "quotient 3" tempc = real(traptemp)/real(traptemp2) + flip(imag(traptemp)/imag(traptemp2)) elseif @trapcombo == "splice 3" tempc = real(traptemp)*imag(traptemp) + flip(real(traptemp2)*imag(traptemp2)) elseif @trapcombo == "splice 4" tempc = real(traptemp)*imag(traptemp2) + flip(real(traptemp2)*imag(traptemp)) elseif @trapcombo == "splice 5" tempc = real(traptemp2)*imag(traptemp2) + flip(real(traptemp)*imag(traptemp)) elseif @trapcombo == "splice 6" tempc = real(traptemp2)*imag(traptemp) + flip(real(traptemp)*imag(traptemp2)) elseif @trapcombo == "splice 7" tempc = real(traptemp)*real(traptemp) + flip(imag(traptemp2)) elseif @trapcombo == "splice 8" tempc = real(traptemp2)*real(traptemp2) + flip(imag(traptemp)) elseif @trapcombo == "splice 9" tempc = real(traptemp) + flip(imag(traptemp2)*imag(traptemp2)) elseif @trapcombo == "splice 10" tempc = real(traptemp2) + flip(imag(traptemp)*imag(traptemp)) elseif @trapcombo == "splice 11" tempc = real(traptemp)*real(traptemp) + flip(imag(traptemp2)*imag(traptemp2)) elseif @trapcombo == "splice 12" tempc = real(traptemp2)*real(traptemp2) + flip(imag(traptemp)*imag(traptemp)) elseif @trapcombo == "nearest" if cabs(traptemp - zinput) < cabs(traptemp2 - zinput) tempc = traptemp else tempc = traptemp2 endif ; cabs() elseif @trapcombo == "farthest" if cabs(traptemp - zinput) > cabs(traptemp2 - zinput) tempc = traptemp else tempc = traptemp2 endif ; cabs() elseif @trapcombo == "nearest 2" if cabs(traptemp - #z) < cabs(traptemp2 - #z) tempc = traptemp else tempc = traptemp2 endif ; cabs() elseif @trapcombo == "farthest 2" if cabs(traptemp - #z) > cabs(traptemp2 - #z) tempc = traptemp else tempc = traptemp2 endif ; cabs() elseif @trapcombo == "largest" if cabs(traptemp) > cabs(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; cabs() elseif @trapcombo == "smallest" if cabs(traptemp) < cabs(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; cabs() elseif @trapcombo == "A^2+B^2" tempc = traptemp*traptemp + traptemp2*traptemp2 elseif @trapcombo == "A^2-B^2" tempc = traptemp*traptemp - traptemp2*traptemp2 elseif @trapcombo == "B^2-A^2" tempc = traptemp2*traptemp2 - traptemp*traptemp elseif @trapcombo == "A^3+B^3" tempc = traptemp*traptemp*traptemp + traptemp2*traptemp2*traptemp2 elseif @trapcombo == "A^3-B^3" tempc = traptemp*traptemp*traptemp - traptemp2*traptemp2*traptemp2 elseif @trapcombo == "B^3-A^3" tempc = traptemp2*traptemp2*traptemp2 - traptemp*traptemp*traptemp elseif @trapcombo == "cyclical" if iter % @trapcycle == 0 tempc = traptemp2 else tempc = traptemp endif ; iter elseif @trapcombo == "cyclical 2" if iter % @trapcycle == 0 tempc = traptemp else tempc = traptemp2 endif ; iter elseif @trapcombo == "|A+B|" tempc = abs(traptemp+traptemp2) elseif @trapcombo == "|A-B|" tempc = abs(traptemp-traptemp2) elseif @trapcombo == "|A^2+B^2|" tempc = abs(traptemp*traptemp + traptemp2*traptemp2) elseif @trapcombo == "|A^2-B^2|" tempc = abs(traptemp*traptemp - traptemp2*traptemp2) elseif @trapcombo == "|A^3+B^3|" tempc = abs(traptemp*traptemp*traptemp + traptemp2*traptemp2*traptemp2) elseif @trapcombo == "|A^3-B^3|" tempc = abs(traptemp*traptemp*traptemp - traptemp2*traptemp2*traptemp2) elseif @trapcombo == "real(z)" if real(zinput) > 0 tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "real(z) 2" if real(zinput) > 0 tempc = traptemp2 else tempc = traptemp endif ; real() elseif @trapcombo == "real(z) 3" if real(#z) > 0 tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "real(z) 4" if real(#z) > 0 tempc = traptemp2 else tempc = traptemp endif ; real() elseif @trapcombo == "imag(z)" if imag(zinput) > 0 tempc = traptemp else tempc = traptemp2 endif ; imag() elseif @trapcombo == "imag(z) 2" if imag(zinput) > 0 tempc = traptemp2 else tempc = traptemp endif ; imag() elseif @trapcombo == "imag(z) 3" if imag(#z) > 0 tempc = traptemp else tempc = traptemp2 endif ; imag() elseif @trapcombo == "imag(z) 4" if imag(#z) > 0 tempc = traptemp2 else tempc = traptemp endif ; imag() elseif @trapcombo == "quotient 4" tempc = real(traptemp2)/real(traptemp) + flip(imag(traptemp2)/imag(traptemp)) elseif @trapcombo == "quotient 5" tempc = real(traptemp)/imag(traptemp) + flip(real(traptemp2)/imag(traptemp2)) elseif @trapcombo == "quotient 6" tempc = imag(traptemp)/real(traptemp) + flip(imag(traptemp2)/real(traptemp2)) elseif @trapcombo == "quotient 7" tempc = real(traptemp)/imag(traptemp2) + flip(real(traptemp2)/imag(traptemp)) elseif @trapcombo == "quotient 8" tempc = imag(traptemp2)/real(traptemp) + flip(imag(traptemp)/real(traptemp2)) elseif @trapcombo == "quotient 9" tempc = real(traptemp)/real(traptemp2) + flip(imag(traptemp2)/imag(traptemp)) elseif @trapcombo == "quotient 10" tempc = real(traptemp2)/real(traptemp) + flip(imag(traptemp)/imag(traptemp2)) elseif @trapcombo == "quotient 11" tempc = real(traptemp)/imag(traptemp) + flip(imag(traptemp2)/real(traptemp2)) elseif @trapcombo == "quotient 12" tempc = imag(traptemp)/real(traptemp) + flip(real(traptemp2)/imag(traptemp2)) elseif @trapcombo == "quotient 13" tempc = real(traptemp)/imag(traptemp2) + flip(imag(traptemp)/real(traptemp2)) elseif @trapcombo == "quotient 14" tempc = imag(traptemp2)/real(traptemp) + flip(real(traptemp2)/imag(traptemp)) elseif @trapcombo == "exponential 3" tempc = real(traptemp)^real(traptemp2) + flip(imag(traptemp)^imag(traptemp2)) elseif @trapcombo == "exponential 4" tempc = real(traptemp2)^real(traptemp) + flip(imag(traptemp2)^imag(traptemp)) elseif @trapcombo == "exponential 5" tempc = real(traptemp)^imag(traptemp) + flip(real(traptemp2)^imag(traptemp2)) elseif @trapcombo == "exponential 6" tempc = imag(traptemp)^real(traptemp) + flip(imag(traptemp2)^real(traptemp2)) elseif @trapcombo == "exponential 7" tempc = real(traptemp)^imag(traptemp2) + flip(real(traptemp2)^imag(traptemp)) elseif @trapcombo == "exponential 8" tempc = imag(traptemp2)^real(traptemp) + flip(imag(traptemp)^real(traptemp2)) elseif @trapcombo == "exponential 9" tempc = real(traptemp)^real(traptemp2) + flip(imag(traptemp2)^imag(traptemp)) elseif @trapcombo == "exponential 10" tempc = real(traptemp2)^real(traptemp) + flip(imag(traptemp)^imag(traptemp2)) elseif @trapcombo == "exponential 11" tempc = real(traptemp)^imag(traptemp) + flip(imag(traptemp2)^real(traptemp2)) elseif @trapcombo == "exponential 12" tempc = imag(traptemp)^real(traptemp) + flip(real(traptemp2)^imag(traptemp2)) elseif @trapcombo == "exponential 13" tempc = real(traptemp)^imag(traptemp2) + flip(imag(traptemp)^real(traptemp2)) elseif @trapcombo == "exponential 14" tempc = imag(traptemp2)^real(traptemp) + flip(real(traptemp2)^imag(traptemp)) elseif @trapcombo == "trap 1 only" tempc = traptemp elseif @trapcombo == "trap 2 only" tempc = traptemp2 endif ; @trapcombo endif ; @altcombo else tempc = traptemp endif ; twotraps if @tattractbias tempc = (@tattrprod*(tempc + @tattraddend))^@tattrexponent endif ; @trapbias ; 2nd attractor routine (trap attractors) if @tattractor if @tattractmartin ztemp2 = tempc tempx = real(tempc) * real(@tmartinscale) tempy = imag(tempc) * imag(@tmartinscale) ftemp = tempx index = 0 while index < @tmartiniters tempx = tempy - sin(tempx) tempy = @tmartinparam - ftemp index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtmartin tempc = @tmartinfraction * tempc + tmartincomp * ztemp2 endif ; @blendtmartin endif ; @tattractmartin if @tattractcosmartin ztemp2 = tempc tempx = real(tempc) * real(@tcosmartinscale) tempy = imag(tempc) * imag(@tcosmartinscale) ftemp = tempx index = 0 while index < @tcosmartiniters tempx = tempy - sin(tempx) tempy = @tcosmartinparam - ftemp index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtcosmartin tempc = @tcosmartinfraction * tempc + tcosmartincomp * ztemp2 endif ; @blendtcosmartin endif ; @tattractcosmartin if @tattractpopcorn ztemp2 = tempc tempx = real(tempc) * real(@tpopcornscale) tempy = imag(tempc) * imag(@tpopcornscale) ftemp = tempx index = 0 while index < @tpopcorniters tempx = tempx - real(@tpopcornparam1)*sin(tempy + tan(real(@tpopcornparam2)*tempy)) tempy = tempy - imag(@tpopcornparam1)*sin(ftemp + tan(imag(@tpopcornparam2)*ftemp)) index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtpopcorn tempc = @tpopcornfraction * tempc + tpopcorncomp * ztemp2 endif ; @blendtpopcorn endif ; @tattractpopcorn if @tattractvine ztemp2 = tempc tempx = real(tempc) * real(@tvinescale) tempy = imag(tempc) * imag(@tvinescale) ftemp = tempx index = 0 while index < @tvineiters tempx = tempx - real(@tvineparam1)*sin(tempy + sin(real(@tvineparam2)*tempy)) tempy = tempy + imag(@tvineparam1)*sin(ftemp + sin(imag(@tvineparam2)*ftemp)) index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtvine tempc = @tvinefraction * tempc + tvinecomp * ztemp2 endif ; @blendtvine endif ; @tattractvine if @tattractvine2 ztemp2 = tempc tempx = real(tempc) * real(@tvine2scale) tempy = imag(tempc) * imag(@tvine2scale) ftemp = tempx index = 0 while index < @tvine2iters tempx = tempx - real(@tvine2param1)*sin(tempy^real(@tvine2exp1) + sin(real(@tvine2param2)*tempy)) tempy = tempy + imag(@tvine2param1)*sin(ftemp^imag(@tvine2exp1) + sin(imag(@tvine2param2)*ftemp)) index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtvine2 tempc = @tvine2fraction * tempc + tvine2comp * ztemp2 endif ; @blendtvine2 endif ; @tattractvine2 if @tattractquadruptwo ztemp2 = tempc tempx = real(tempc) * real(@tquadruptwoscale) tempy = imag(tempc) * imag(@tquadruptwoscale) ftemp = tempx index = 0 while index < @tquadruptwoiters if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * sin(log(abs(imag(@tquadruptwoparam1)*tempx-real(@tquadruptwoparam2)))) \ * atan((log(abs(real(@tquadruptwoparam2)*tempx-imag(@tquadruptwoparam1)))^(imag(@tquadruptwoparam2)))) tempy = real(@tquadruptwoparam1) - ftemp else tempx = tempy - sin(log(abs(imag(@tquadruptwoparam1)*tempx-real(@tquadruptwoparam2)))) \ * atan((log(abs(real(@tquadruptwoparam2)*tempx-imag(@tquadruptwoparam1)))^(imag(@tquadruptwoparam2)))) tempy = real(@tquadruptwoparam1) - ftemp endif ; tempx index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtquadruptwo tempc = @tquadruptwofraction * tempc + tquadruptwocomp * ztemp2 endif ; @blendtquadruptwo endif ; @tattractquadruptwo if @tattractthreeply ztemp2 = tempc tempx = real(tempc) * real(@tthreeplyscale) tempy = imag(tempc) * imag(@tthreeplyscale) ftemp = tempx index = 0 while index < @tthreeplyiters if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * (abs(sin(tempx)*cos(imag(@tthreeplyparam1)) + real(@tthreeplyparam2) \ - tempx*sin(real(@tthreeplyparam1)+imag(@tthreeplyparam1)+real(@tthreeplyparam2)))) tempy = real(@tthreeplyparam1) - imag(@tthreeplyparam2)*ftemp else tempx = tempy - (abs(sin(tempx)*cos(imag(@tthreeplyparam1)) + real(@tthreeplyparam2) \ - tempx*sin(real(@tthreeplyparam1)+imag(@tthreeplyparam1)+real(@tthreeplyparam2)))) tempy = real(@tthreeplyparam1) - imag(@tthreeplyparam2)*ftemp endif ; tempx index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtthreeply tempc = @tthreeplyfraction * tempc + tthreeplycomp * ztemp2 endif ; @blendtthreeply endif ; @tattractthreeply if @tattracthenon ztemp2 = tempc tempx = real(tempc) * real(@thenonscale) tempy = imag(tempc) * imag(@thenonscale) ftemp = tempx index = 0 while index < @thenoniters tempx = 1.0 + tempy - real(@thenonparam1)*tempx tempy = imag(@thenonparam1)*ftemp index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendthenon tempc = @thenonfraction * tempc + thenoncomp * ztemp2 endif ; @blendthenon endif ; @tattracthenon if @tattracthopalong ztemp2 = tempc tempx = real(tempc) * real(@thopalongscale) tempy = imag(tempc) * imag(@thopalongscale) ftemp = tempx index = 0 while index < @thopalongiters if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * (abs(tempx*imag(@thopalongparam1) - real(@thopalongparam2)))^ \ imag(@thopalongparam2) tempy = real(@thopalongparam1) - ftemp else tempx = tempy - (abs(tempx*imag(@thopalongparam1) - real(@thopalongparam2)))^ \ imag(@thopalongparam2) tempy = real(@thopalongparam1) - ftemp endif ; tempx index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendthopalong tempc = @thopalongfraction * tempc + thopalongcomp * ztemp2 endif ; @blendthopalong endif ; @tattracthopalong if @tattractchip ztemp2 = tempc tempx = real(tempc) * real(@tchipscale) tempy = imag(tempc) * imag(@tchipscale) ftemp = tempx index = 0 while index < @tchipiters if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * cos((log(abs(tempx*imag(@tchipparam1) - real(@tchipparam2)))^ \ imag(@tchipparam2))) tempy = real(@tchipparam1) - ftemp else tempx = tempy - cos((log(abs(tempx*imag(@tchipparam1) - real(@tchipparam2)))^ \ imag(@tchipparam2))) tempy = real(@tchipparam1) - ftemp endif ; tempx index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtchip tempc = @tchipfraction * tempc + tchipcomp * ztemp2 endif ; @blendtchip endif ; @tattractchip if @tattractliar ztemp2 = tempc tempx = real(tempc) * real(@tliarscale) tempy = imag(tempc) * imag(@tliarscale) ftemp = tempx index = 0 while index < @tliariters if (real(tempx+flip(tempc))) < real(@tliarparam1) tempx = imag(@tliarparam1) - abs(tempy-tempx) tempy = imag(@tliarparam2)*abs(real(@tliarparam2)-ftemp-tempy) endif ; real() index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtliar tempc = @tliarfraction * tempc + tliarcomp * ztemp2 endif ; @blendtliar endif ; @tattractliar if @tattractgingerbread ztemp2 = tempc tempx = real(tempc) * real(@tgingerbreadscale) tempy = imag(tempc) * imag(@tgingerbreadscale) ftemp = tempx index = 0 while index < @tgingerbreaditers tempx = 1.0 - tempy + real(@tgingerbreadparam1)*abs(tempx) tempy = imag(@tgingerbreadparam1)*ftemp index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtgingerbread tempc = @tgingerbreadfraction * tempc + tgingerbreadcomp * ztemp2 endif ; @blendtgingerbread endif ; @tattractgingerbread endif ; @tattractor if @trapbias tempc = (@tbprod*(tempc + @tbaddend))^@tbexponent endif ; @trapbias ; trap history code, part 1 if @thistory ; update original trap history array with the new trap point maxindex = 0, index = 9 while index > maxindex index2 = index-1 thist[0,index] = thist[0,index2] index = index2 endwhile ; index thist[0,0] = tempc if (@thismode == "alternative") || (@thismode == "both") if @thistype2 == 1 tempc = thist[@trapmixmatch3,1] elseif @thistype2 == 2 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,1])) elseif @thistype2 == 3 tempc = real(thist[@trapmixmatch3,1]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 4 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,1] elseif @thistype2 == 5 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,1]) elseif @thistype2 == 6 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,1])) elseif @thistype2 == 7 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,1] elseif @thistype2 == 8 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,1]) elseif @thistype2 == 9 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,1])) elseif @thistype2 == 10 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,1] elseif @thistype2 == 11 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,1]) elseif @thistype2 == 12 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,1])) elseif @thistype2 == 13 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,1] elseif @thistype2 == 14 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,1] elseif @thistype2 == 15 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,1] elseif @thistype2 == 16 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,1] elseif @thistype2 == 17 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,1] elseif @thistype2 == 18 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,1] elseif @thistype2 == 19 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,1])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 20 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,1])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 21 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,1])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 22 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,1])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 23 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,1])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 24 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,1])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 25 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,1])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 26 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,1])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 27 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,1])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 28 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,1])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 29 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,1])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 30 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,1])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 31 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,1])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 32 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,1])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 33 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,1])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 34 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,1])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 35 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,1])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 36 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,1])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 37 tempc = thist[@trapmixmatch3,2] elseif @thistype2 == 38 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,2])) elseif @thistype2 == 39 tempc = real(thist[@trapmixmatch3,2]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 40 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,2] elseif @thistype2 == 41 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,2]) elseif @thistype2 == 42 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,2])) elseif @thistype2 == 43 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,2] elseif @thistype2 == 44 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,2]) elseif @thistype2 == 45 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,2])) elseif @thistype2 == 46 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,2] elseif @thistype2 == 47 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,2]) elseif @thistype2 == 48 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,2])) elseif @thistype2 == 49 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,2] elseif @thistype2 == 50 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,2] elseif @thistype2 == 51 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,2] elseif @thistype2 == 52 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,2] elseif @thistype2 == 53 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,2] elseif @thistype2 == 54 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,2] elseif @thistype2 == 55 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,2])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 56 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,2])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 57 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,2])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 58 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,2])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 59 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,2])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 60 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,2])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 61 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,2])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 62 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,2])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 63 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,2])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 64 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,2])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 65 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,2])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 66 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,2])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 67 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,2])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 68 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,2])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 69 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,2])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 70 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,2])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 71 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,2])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 72 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,2])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 73 tempc = thist[@trapmixmatch3,3] elseif @thistype2 == 74 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,3])) elseif @thistype2 == 75 tempc = real(thist[@trapmixmatch3,3]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 76 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,3] elseif @thistype2 == 77 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,3]) elseif @thistype2 == 78 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,3])) elseif @thistype2 == 79 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,3] elseif @thistype2 == 80 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,3]) elseif @thistype2 == 81 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,3])) elseif @thistype2 == 82 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,3] elseif @thistype2 == 83 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,3]) elseif @thistype2 == 84 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,3])) elseif @thistype2 == 85 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,3] elseif @thistype2 == 86 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,3] elseif @thistype2 == 87 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,3] elseif @thistype2 == 88 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,3] elseif @thistype2 == 89 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,3] elseif @thistype2 == 90 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,3] elseif @thistype2 == 91 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,3])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 92 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,3])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 93 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,3])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 94 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,3])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 95 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,3])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 96 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,3])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 97 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,3])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 98 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,3])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 99 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,3])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 100 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,3])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 101 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,3])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 102 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,3])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 103 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,3])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 104 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,3])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 105 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,3])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 106 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,3])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 107 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,3])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 108 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,3])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 109 tempc = thist[@trapmixmatch3,4] elseif @thistype2 == 110 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,4])) elseif @thistype2 == 111 tempc = real(thist[@trapmixmatch3,4]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 112 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,4] elseif @thistype2 == 113 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,4]) elseif @thistype2 == 114 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,4])) elseif @thistype2 == 115 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,4] elseif @thistype2 == 116 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,4]) elseif @thistype2 == 117 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,4])) elseif @thistype2 == 118 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,4] elseif @thistype2 == 119 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,4]) elseif @thistype2 == 120 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,4])) elseif @thistype2 == 121 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,4] elseif @thistype2 == 122 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,4] elseif @thistype2 == 123 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,4] elseif @thistype2 == 124 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,4] elseif @thistype2 == 125 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,4] elseif @thistype2 == 126 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,4] elseif @thistype2 == 127 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,4])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 128 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,4])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 129 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,4])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 130 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,4])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 131 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,4])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 132 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,4])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 133 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,4])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 134 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,4])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 135 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,4])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 136 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,4])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 137 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,4])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 138 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,4])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 139 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,4])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 140 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,4])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 141 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,4])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 142 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,4])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 143 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,4])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 144 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,4])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 145 tempc = thist[@trapmixmatch3,5] elseif @thistype2 == 146 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,5])) elseif @thistype2 == 147 tempc = real(thist[@trapmixmatch3,5]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 148 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,5] elseif @thistype2 == 149 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,5]) elseif @thistype2 == 150 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,5])) elseif @thistype2 == 151 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,5] elseif @thistype2 == 152 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,5]) elseif @thistype2 == 153 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,5])) elseif @thistype2 == 154 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,5] elseif @thistype2 == 155 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,5]) elseif @thistype2 == 156 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,5])) elseif @thistype2 == 157 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,5] elseif @thistype2 == 158 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,5] elseif @thistype2 == 159 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,5] elseif @thistype2 == 160 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,5] elseif @thistype2 == 161 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,5] elseif @thistype2 == 162 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,5] elseif @thistype2 == 163 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,5])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 164 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,5])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 165 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,5])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 166 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,5])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 167 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,5])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 168 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,5])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 169 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,5])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 170 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,5])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 171 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,5])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 172 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,5])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 173 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,5])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 174 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,5])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 175 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,5])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 176 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,5])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 177 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,5])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 178 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,5])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 179 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,5])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 180 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,5])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 181 tempc = thist[@trapmixmatch3,6] elseif @thistype2 == 182 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,6])) elseif @thistype2 == 183 tempc = real(thist[@trapmixmatch3,6]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 184 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,6] elseif @thistype2 == 185 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,6]) elseif @thistype2 == 186 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,6])) elseif @thistype2 == 187 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,6] elseif @thistype2 == 188 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,6]) elseif @thistype2 == 189 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,6])) elseif @thistype2 == 190 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,6] elseif @thistype2 == 191 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,6]) elseif @thistype2 == 192 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,6])) elseif @thistype2 == 193 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,6] elseif @thistype2 == 194 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,6] elseif @thistype2 == 195 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,6] elseif @thistype2 == 196 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,6] elseif @thistype2 == 197 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,6] elseif @thistype2 == 198 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,6] elseif @thistype2 == 199 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,6])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 200 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,6])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 201 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,6])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 202 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,6])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 203 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,6])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 204 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,6])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 205 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,6])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 206 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,6])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 207 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,6])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 208 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,6])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 209 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,6])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 210 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,6])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 211 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,6])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 212 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,6])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 213 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,6])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 214 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,6])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 215 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,6])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 216 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,6])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 217 tempc = thist[@trapmixmatch3,7] elseif @thistype2 == 218 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,7])) elseif @thistype2 == 219 tempc = real(thist[@trapmixmatch3,7]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 220 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,7] elseif @thistype2 == 221 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,7]) elseif @thistype2 == 222 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,7])) elseif @thistype2 == 223 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,7] elseif @thistype2 == 224 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,7]) elseif @thistype2 == 225 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,7])) elseif @thistype2 == 226 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,7] elseif @thistype2 == 227 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,7]) elseif @thistype2 == 228 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,7])) elseif @thistype2 == 229 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,7] elseif @thistype2 == 230 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,7] elseif @thistype2 == 231 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,7] elseif @thistype2 == 232 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,7] elseif @thistype2 == 233 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,7] elseif @thistype2 == 234 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,7] elseif @thistype2 == 235 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,7])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 236 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,7])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 237 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,7])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 238 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,7])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 239 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,7])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 240 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,7])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 241 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,7])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 242 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,7])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 243 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,7])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 244 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,7])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 245 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,7])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 246 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,7])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 247 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,7])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 248 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,7])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 249 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,7])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 250 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,7])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 251 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,7])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 252 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,7])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 253 tempc = thist[@trapmixmatch3,8] elseif @thistype2 == 254 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,8])) elseif @thistype2 == 255 tempc = real(thist[@trapmixmatch3,8]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 256 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,8] elseif @thistype2 == 257 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,8]) elseif @thistype2 == 258 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,8])) elseif @thistype2 == 259 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,8] elseif @thistype2 == 260 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,8]) elseif @thistype2 == 261 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,8])) elseif @thistype2 == 262 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,8] elseif @thistype2 == 263 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,8]) elseif @thistype2 == 264 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,8])) elseif @thistype2 == 265 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,8] elseif @thistype2 == 266 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,8] elseif @thistype2 == 267 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,8] elseif @thistype2 == 268 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,8] elseif @thistype2 == 269 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,8] elseif @thistype2 == 270 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,8] elseif @thistype2 == 271 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,8])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 272 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,8])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 273 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,8])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 274 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,8])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 275 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,8])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 276 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,8])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 277 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,8])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 278 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,8])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 279 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,8])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 280 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,8])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 281 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,8])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 282 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,8])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 283 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,8])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 284 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,8])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 285 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,8])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 286 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,8])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 287 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,8])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 288 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,8])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 289 tempc = thist[@trapmixmatch3,9] elseif @thistype2 == 290 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,9])) elseif @thistype2 == 291 tempc = real(thist[@trapmixmatch3,9]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 292 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,9] elseif @thistype2 == 293 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,9]) elseif @thistype2 == 294 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,9])) elseif @thistype2 == 295 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,9] elseif @thistype2 == 296 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,9]) elseif @thistype2 == 297 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,9])) elseif @thistype2 == 298 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,9] elseif @thistype2 == 299 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,9]) elseif @thistype2 == 300 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,9])) elseif @thistype2 == 301 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,9] elseif @thistype2 == 302 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,9] elseif @thistype2 == 303 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,9] elseif @thistype2 == 304 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,9] elseif @thistype2 == 305 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,9] elseif @thistype2 == 306 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,9] elseif @thistype2 == 307 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,9])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 308 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,9])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 309 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,9])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 310 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,9])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 311 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,9])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 312 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,9])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 313 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,9])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 314 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,9])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 315 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,9])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 316 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,9])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 317 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,9])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 318 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,9])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 319 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,9])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 320 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,9])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 321 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,9])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 322 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,9])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 323 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,9])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 324 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,9])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 325 tempc = thist[@trapmixmatch4,@traphisindex2]/thist[@trapmixmatch3,1] elseif @thistype2 == 326 tempc = thist[@trapmixmatch3,1]/thist[@trapmixmatch4,@traphisindex2] elseif @thistype2 == 327 tempc = thist[@trapmixmatch4,@traphisindex2]^thist[@trapmixmatch3,1] elseif @thistype2 == 328 tempc = thist[@trapmixmatch3,1]^thist[@trapmixmatch4,@traphisindex2] elseif @thistype2 == 329 tempc = thist[@trapmixmatch4,@traphisindex2]/real(thist[@trapmixmatch3,1]) elseif @thistype2 == 330 tempc = thist[@trapmixmatch4,@traphisindex2]/imag(thist[@trapmixmatch3,1]) elseif @thistype2 == 331 tempc = thist[@trapmixmatch3,1]/real(thist[@trapmixmatch4,@traphisindex2]) elseif @thistype2 == 332 tempc = thist[@trapmixmatch3,1]/imag(thist[@trapmixmatch4,@traphisindex2]) elseif @thistype2 == 333 tempc = thist[@trapmixmatch4,@traphisindex2]^real(thist[@trapmixmatch3,1]) elseif @thistype2 == 334 tempc = thist[@trapmixmatch4,@traphisindex2]^imag(thist[@trapmixmatch3,1]) elseif @thistype2 == 335 tempc = thist[@trapmixmatch3,1]^real(thist[@trapmixmatch4,@traphisindex2]) elseif @thistype2 == 336 tempc = thist[@trapmixmatch3,1]^imag(thist[@trapmixmatch4,@traphisindex2]) elseif @thistype2 == 337 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,1] + thist[@trapmixmatch3,2] elseif @thistype2 == 338 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,1] + thist[@trapmixmatch3,2] elseif @thistype2 == 339 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,1] - thist[@trapmixmatch3,2] elseif @thistype2 == 340 tempc = -thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,1] + thist[@trapmixmatch3,2] elseif @thistype2 == 341 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,1] - thist[@trapmixmatch3,2] elseif @thistype2 == 342 tempc = thist[@trapmixmatch4,@traphisindex2] + (thist[@trapmixmatch3,1] * thist[@trapmixmatch3,2]) elseif @thistype2 == 343 tempc = thist[@trapmixmatch4,@traphisindex2] - (thist[@trapmixmatch3,1] * thist[@trapmixmatch3,2]) elseif @thistype2 == 344 tempc = thist[@trapmixmatch3,1] + (thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,2]) elseif @thistype2 == 345 tempc = thist[@trapmixmatch3,1] - (thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,2]) elseif @thistype2 == 346 tempc = thist[@trapmixmatch3,2] + (thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,1]) elseif @thistype2 == 347 tempc = thist[@trapmixmatch3,2] - (thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,1]) elseif @thistype2 == 348 tempc = thist[@trapmixmatch4,@traphisindex2]/thist[@trapmixmatch3,2] elseif @thistype2 == 349 tempc = thist[@trapmixmatch3,2]/thist[@trapmixmatch4,@traphisindex2] elseif @thistype2 == 350 tempc = thist[@trapmixmatch4,@traphisindex2]^thist[@trapmixmatch3,2] elseif @thistype2 == 351 tempc = thist[@trapmixmatch3,2]^thist[@trapmixmatch4,@traphisindex2] elseif @thistype2 == 352 tempc = thist[@trapmixmatch4,@traphisindex2]/real(thist[@trapmixmatch3,2]) elseif @thistype2 == 353 tempc = thist[@trapmixmatch4,@traphisindex2]/imag(thist[@trapmixmatch3,2]) elseif @thistype2 == 354 tempc = thist[@trapmixmatch3,2]/real(thist[@trapmixmatch4,@traphisindex2]) elseif @thistype2 == 355 tempc = thist[@trapmixmatch3,2]/imag(thist[@trapmixmatch4,@traphisindex2]) elseif @thistype2 == 356 tempc = thist[@trapmixmatch4,@traphisindex2]^real(thist[@trapmixmatch3,2]) elseif @thistype2 == 357 tempc = thist[@trapmixmatch4,@traphisindex2]^imag(thist[@trapmixmatch3,2]) elseif @thistype2 == 358 tempc = thist[@trapmixmatch3,2]^real(thist[@trapmixmatch4,@traphisindex2]) elseif @thistype2 == 359 tempc = thist[@trapmixmatch3,2]^imag(thist[@trapmixmatch4,@traphisindex2]) elseif @thistype2 == 360 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,2] + thist[@trapmixmatch3,3] elseif @thistype2 == 361 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,2] + thist[@trapmixmatch3,3] elseif @thistype2 == 362 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,2] - thist[@trapmixmatch3,3] elseif @thistype2 == 363 tempc = -thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,2] + thist[@trapmixmatch3,3] elseif @thistype2 == 364 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,2] - thist[@trapmixmatch3,3] elseif @thistype2 == 365 tempc = thist[@trapmixmatch4,@traphisindex2] + (thist[@trapmixmatch3,2] * thist[@trapmixmatch3,3]) elseif @thistype2 == 366 tempc = thist[@trapmixmatch4,@traphisindex2] - (thist[@trapmixmatch3,2] * thist[@trapmixmatch3,3]) elseif @thistype2 == 367 tempc = thist[@trapmixmatch3,2] + (thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,3]) elseif @thistype2 == 368 tempc = thist[@trapmixmatch3,2] - (thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,3]) elseif @thistype2 == 369 tempc = thist[@trapmixmatch3,3] + (thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,2]) elseif @thistype2 == 370 tempc = thist[@trapmixmatch3,3] - (thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,2]) else tempc = tempc endif ; thistype2 if @thist2blend tempc = @thist2fraction*tempc + thist2comp*thist[0,0] endif ; @thist2blend endif ; @thismode endif ; @thistory ; end trap history code, part 1 if @absolutet tempc = abs(tempc) endif ; @absolutet if @absoluter6 tempc = abs(real(tempc)) + flip(imag(tempc)) endif ; @absoluter6 if @absolutei6 tempc = real(tempc) + flip(abs(imag(tempc))) endif ; @absolutei6 if @transmutebias tempc = (@tmbprod*(tempc + @tmbaddend))^@tmbexponent endif ; @transmutebias ; Temporarily save untransmuted trap value for possible perturbation traptemp = tempc ; Now transmute the trapped point of the trapping curve if desired tempc = @tiscale * tempc if @transmogrify != 0 if ( @transmogrify == 1 ) tempc = 1/tempc elseif ( @transmogrify == 2 ) tempc = tempc * tempc elseif ( @transmogrify == 3 ) tempc = 1 / ( tempc * tempc ) elseif ( @transmogrify == 4 ) tempc = log(tempc) elseif ( @transmogrify == 5 ) tempc = exp( tempc) elseif ( @transmogrify == 6 ) tempc = tempc^tempc elseif ( @transmogrify == 7 ) tempc = sin( tempc ) elseif ( @transmogrify == 8 ) tempc = cos( tempc ) elseif ( @transmogrify == 9 ) tempc = tan( tempc ) elseif ( @transmogrify == 10 ) tempc = asin( tempc ) elseif ( @transmogrify == 11 ) tempc = acos( tempc ) elseif ( @transmogrify == 12 ) tempc = atan( tempc ) elseif ( @transmogrify == 13 ) tempc = sinh( tempc ) elseif ( @transmogrify == 14 ) tempc = cosh( tempc ) elseif ( @transmogrify == 15 ) tempc = tanh( tempc ) elseif ( @transmogrify == 16 ) tempc = asinh( tempc ) elseif ( @transmogrify == 17 ) tempc = acosh( tempc ) elseif ( @transmogrify == 18 ) tempc = atanh( tempc ) elseif ( @transmogrify == 19 ) tempc = log( 1/tempc ) elseif ( @transmogrify == 20 ) tempc = log( log( tempc )) elseif ( @transmogrify == 21 ) tempc = exp( -tempc ) elseif ( @transmogrify == 22 ) tempc = exp( 1/tempc ) elseif ( @transmogrify == 23 ) tempc = tempc^(-tempc) elseif ( @transmogrify == 24 ) tempc = sin( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 25 ) tempc = cos( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 26 ) tempc = tan( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 27 ) tempc = cotan( tempc ) elseif ( @transmogrify == 28 ) tempc = 1/cos( tempc ) elseif ( @transmogrify == 29 ) tempc = 1/sin( tempc ) elseif ( @transmogrify == 30 ) tempc = cotan( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 31 ) tempc = 1/cos( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 32 ) tempc = 1/sin( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 33 ) tempc = tempc^(tempc) tempc = tempc^tempc elseif ( @transmogrify == 34 ) tempc = tempc^(tempc) tempc = 1/( tempc^tempc ) elseif ( @transmogrify == 35 ) tempc = log(-tempc) elseif ( @transmogrify == 36 ) tempc = 1/log( tempc ) elseif ( @transmogrify == 37 ) tempc = tempc * log( tempc ) elseif ( @transmogrify == 38 ) tempc = sin( tempc ) / tempc elseif ( @transmogrify == 39 ) tempc = cos( tempc ) / tempc elseif ( @transmogrify == 40 ) tempc = sin( tempc ) * cos( tempc ) elseif ( @transmogrify == 41 ) tempc = sin( tempc^2 ) elseif ( @transmogrify == 42 ) tempc = exp( -1/tempc ) elseif ( @transmogrify == 43 ) tempc = tempc * exp( tempc ) elseif ( @transmogrify == 44 ) tempc = tempc * exp( -tempc ) elseif ( @transmogrify == 45 ) tempc = tempc * exp( 1/tempc ) elseif ( @transmogrify == 46 ) tempc = tempc * exp( -1/tempc ) elseif ( @transmogrify == 47 ) tempc = tempc * tempc * tempc elseif ( @transmogrify == 48 ) tempc = 1 / ( tempc * tempc * tempc ) elseif ( @transmogrify == 49 ) tempc = atan( 1 / tempc ) elseif ( @transmogrify == 50 ) tempc = acos( 1 / tempc ) elseif ( @transmogrify == 51 ) tempc = asin( 1 / tempc ) elseif ( @transmogrify == 52 ) tempc = tan( tempc ) / tempc elseif ( @transmogrify == 53 ) tempc = cotan( tempc ) / tempc elseif ( @transmogrify == 54 ) tempc = 1 / ( tempc * cos( tempc )) elseif ( @transmogrify == 55 ) tempc = 1 / ( tempc * sin( tempc )) elseif ( @transmogrify == 56 ) tempc = tempc * sin( tempc ) elseif ( @transmogrify == 57 ) tempc = tempc * cos( tempc ) elseif ( @transmogrify == 58 ) tempc = tempc * tan( tempc ) elseif ( @transmogrify == 59 ) tempc = tempc * cotan( tempc ) elseif ( @transmogrify == 60 ) tempc = tempc/cos( tempc ) elseif ( @transmogrify == 61 ) tempc = tempc/sin( tempc ) elseif ( @transmogrify == 62 ) tempc = sin( 1/tempc ) elseif ( @transmogrify == 63 ) tempc = cos( 1/tempc ) elseif ( @transmogrify == 64 ) tempc = tan( 1/tempc ) elseif ( @transmogrify == 65 ) tempc = cotan( 1/tempc ) elseif ( @transmogrify == 66 ) tempc = 1/cos( 1/tempc ) elseif ( @transmogrify == 67 ) tempc = 1/sin( 1/tempc ) elseif ( @transmogrify == 68 ) tempc = cotanh( tempc ) elseif ( @transmogrify == 69 ) tempc = 1/cosh( tempc ) elseif ( @transmogrify == 70 ) tempc = 1/sinh( tempc ) elseif ( @transmogrify == 71 ) tempc = atanh( 1/tempc ) elseif ( @transmogrify == 72 ) tempc = acosh( 1/tempc ) elseif ( @transmogrify == 73 ) tempc = asinh( 1/tempc ) elseif @transmogrify == 74 tempc = tempc^@tpower elseif @transmogrify == 75 tempc = sinh(tempc) tempc = tempc * tempc elseif @transmogrify == 76 tempc = cosh( tempc ) tempc = tempc * tempc elseif @transmogrify == 77 tempc = tanh(tempc) tempc = tempc * tempc elseif @transmogrify == 78 tempc = cotanh( tempc ) tempc = tempc * tempc elseif @transmogrify == 79 tempc = 1/cosh(tempc) tempc = tempc * tempc elseif @transmogrify == 80 tempc = 1 / sinh( tempc ) tempc = tempc * tempc elseif @transmogrify == 81 tempc = sinh(1/tempc) elseif @transmogrify == 82 tempc = cosh(1/tempc) elseif @transmogrify == 83 tempc = tanh(1/tempc) elseif @transmogrify == 84 tempc = cotanh(1/tempc) elseif @transmogrify == 85 tempc = 1/cosh(1/tempc) elseif @transmogrify == 86 tempc = 1/sinh(1/tempc) elseif @transmogrify == 87 tempc = sin( tempc ) * tan(tempc) elseif @transmogrify == 88 tempc = sinh(tempc) * tanh(tempc) elseif @transmogrify == 89 tempc = sinh(tempc) * cosh(tempc) elseif @transmogrify == 90 ztemp = cosh(tempc) tempc = sinh(tempc) tempc = tempc*tempc*ztemp*ztemp elseif @transmogrify == 91 ztemp = cosh(tempc) tempc = sin(tempc) tempc = tempc*tempc*ztemp*ztemp elseif @transmogrify == 92 tempc = 1/tempc tempc = sin(tempc)*cos(tempc) elseif @transmogrify == 93 tempc = sin( 1/tempc ) tempc = tempc*tempc elseif @transmogrify == 94 tempc = sin(tempc) * cos(1/tempc) elseif @transmogrify == 95 tempc = sin(tempc) * sin(1/tempc) elseif @transmogrify == 96 tempc = log(tempc) tempc = tempc*tempc elseif @transmogrify == 97 tempc = sin(tempc) * sin(2*tempc) elseif @transmogrify == 98 tempc = exp(2*tempc) elseif @transmogrify == 99 tempc = exp(-2*tempc) elseif @transmogrify == 100 tempc = 1/tempc tempc = sinh(tempc)*cosh(tempc) elseif @transmogrify == 101 tempc = sinh( 1/tempc ) tempc = tempc*tempc elseif @transmogrify == 102 tempc = sinh(tempc) * cosh(1/tempc) elseif @transmogrify == 103 tempc = sinh(tempc) * sinh(1/tempc) elseif @transmogrify == 104 tempc = sin(tempc) * sinh(tempc) elseif @transmogrify == 105 tempc = sin(tempc) * cosh(tempc) elseif @transmogrify == 106 ztemp = sinh(tempc) tempc = sin(tempc) tempc = tempc*tempc*ztemp*ztemp elseif @transmogrify == 107 tempc = sin(tempc)*exp(tempc) elseif @transmogrify == 108 tempc = cos(tempc)*exp(tempc) elseif @transmogrify == 109 tempc = sinh(tempc)*exp(tempc) elseif @transmogrify == 110 tempc = cosh(tempc)*exp(tempc) elseif @transmogrify == 111 tempc = sin(tempc)*log(tempc) elseif @transmogrify == 112 tempc = cos(tempc)*log(tempc) elseif @transmogrify == 113 tempc = sinh(tempc)*log(tempc) elseif @transmogrify == 114 tempc = cosh(tempc)*log(tempc) elseif @transmogrify == 115 tempc = exp(tempc^2) elseif @transmogrify == 116 tempc = exp(1/(tempc^2)) elseif @transmogrify == 117 tempc = abs(tempc) elseif @transmogrify == 118 tempc = round(tempc) elseif @transmogrify == 119 tempc = trunc(tempc) elseif @transmogrify == 120 tempc = ceil(tempc) elseif @transmogrify == 121 tempc = floor(tempc) elseif @transmogrify == 122 tempc = tempc/log(tempc) elseif @transmogrify == 123 tempc = log(tempc)/tempc elseif @transmogrify == 124 tempc = exp(tempc)/tempc elseif @transmogrify == 125 tempc = exp(1/tempc)/tempc elseif @transmogrify == 126 tempc = exp(tempc^2)/tempc elseif @transmogrify == 127 tempc = exp(1/(tempc^2))/tempc elseif @transmogrify == 128 tempc = tempc * exp(tempc^2) elseif @transmogrify == 129 tempc = tempc * exp(1/(tempc^2)) elseif @transmogrify == 130 tempc = exp(-(tempc^2)) elseif @transmogrify == 131 tempc = exp(-1/(tempc^2)) elseif @transmogrify == 132 tempc = exp(-(tempc^2))/tempc elseif @transmogrify == 133 tempc = exp(-1/(tempc^2))/tempc elseif @transmogrify == 134 tempc = tempc * exp(-(tempc^2)) elseif @transmogrify == 135 tempc = tempc * exp(-1/(tempc^2)) elseif @transmogrify == 136 tempc = log(1+tempc) elseif @transmogrify == 137 tempc = log(1+log(1+tempc)) elseif @transmogrify == 138 tempc = sin(tempc^@tpower) endif ; transmogrify2 endif ; transmogrify1 if @trapperturb tempc = @trapblend * tempc + trapbcomp * traptemp endif ; @trapperturb if @backendbias tempc = (@bebprod*(tempc + @bebaddend))^@bebexponent endif ; @backendbias ; initialize back end real, back end imag, if desired ftemp = @rbscale * real(tempc) if ( @realback == 0 ) tempx = ftemp elseif ( @realback == 1 ) tempx = 1/ftemp elseif ( @realback == 2 ) tempx = ftemp * ftemp elseif ( @realback == 3 ) tempx = 1 / ( ftemp * ftemp ) elseif ( @realback == 4 ) tempx = log(ftemp) elseif ( @realback == 5 ) tempx = exp( ftemp) elseif ( @realback == 6 ) tempx = ftemp^ftemp elseif ( @realback == 7 ) tempx = sin( ftemp ) elseif ( @realback == 8 ) tempx = cos( ftemp ) elseif ( @realback == 9 ) tempx = tan( ftemp ) elseif ( @realback == 10 ) tempx = asin( ftemp ) elseif ( @realback == 11 ) tempx = acos( ftemp ) elseif ( @realback == 12 ) tempx = atan( ftemp ) elseif ( @realback == 13 ) tempx = sinh( ftemp ) elseif ( @realback == 14 ) tempx = cosh( ftemp ) elseif ( @realback == 15 ) tempx = tanh( ftemp ) elseif ( @realback == 16 ) tempx = asinh( ftemp ) elseif ( @realback == 17 ) tempx = acosh( ftemp ) elseif ( @realback == 18 ) tempx = atanh( ftemp ) elseif ( @realback == 19 ) tempx = log( 1/ftemp ) elseif ( @realback == 20 ) tempx = log( log( ftemp )) elseif ( @realback == 21 ) tempx = exp( -ftemp ) elseif ( @realback == 22 ) tempx = exp( 1/ftemp ) elseif ( @realback == 23 ) tempx = ftemp^(-ftemp) elseif ( @realback == 24 ) tempx = sin( ftemp ) tempx = tempx * tempx elseif ( @realback == 25 ) tempx = cos( ftemp ) tempx = tempx * tempx elseif ( @realback == 26 ) tempx = tan( ftemp ) tempx = tempx * tempx elseif ( @realback == 27 ) tempx = cotan( ftemp ) elseif ( @realback == 28 ) tempx = 1/cos( ftemp ) elseif ( @realback == 29 ) tempx = 1/sin( ftemp ) elseif ( @realback == 30 ) tempx = cotan( ftemp ) tempx = tempx * tempx elseif ( @realback == 31 ) tempx = 1/cos( ftemp ) tempx = tempx * tempx elseif ( @realback == 32 ) tempx = 1/sin( ftemp ) tempx = tempx * tempx elseif ( @realback == 33 ) tempx = ftemp^(ftemp) tempx = ftemp^tempx elseif ( @realback == 34 ) tempx = ftemp^(ftemp) tempx = 1/( ftemp^tempx ) elseif ( @realback == 35 ) tempx = log(-ftemp) elseif ( @realback == 36 ) tempx = 1/log( ftemp ) elseif ( @realback == 37 ) tempx = ftemp * log( ftemp ) elseif ( @realback == 38 ) tempx = sin( ftemp ) / ftemp elseif ( @realback == 39 ) tempx = cos( ftemp ) / ftemp elseif ( @realback == 40 ) tempx = sin( ftemp ) * cos( ftemp ) elseif ( @realback == 41 ) tempx = sin( ftemp^2 ) elseif ( @realback == 42 ) tempx = exp( -1/ftemp ) elseif ( @realback == 43 ) tempx = ftemp * exp( ftemp ) elseif ( @realback == 44 ) tempx = ftemp * exp( -ftemp ) elseif ( @realback == 45 ) tempx = ftemp * exp( 1/ftemp ) elseif ( @realback == 46 ) tempx = ftemp * exp( -1/ftemp ) elseif ( @realback == 47 ) tempx = ftemp * ftemp * ftemp elseif ( @realback == 48 ) tempx = 1 / ( ftemp * ftemp * ftemp ) elseif ( @realback == 49 ) tempx = atan( 1 / ftemp ) elseif ( @realback == 50 ) tempx = acos( 1 / ftemp ) elseif ( @realback == 51 ) tempx = asin( 1 / ftemp ) elseif ( @realback == 52 ) tempx = tan( ftemp ) / ftemp elseif ( @realback == 53 ) tempx = cotan( ftemp ) / ftemp elseif ( @realback == 54 ) tempx = 1 / ( ftemp * cos( ftemp )) elseif ( @realback == 55 ) tempx = 1 / ( ftemp * sin( ftemp )) elseif ( @realback == 56 ) tempx = ftemp * sin( ftemp ) elseif ( @realback == 57 ) tempx = ftemp * cos( ftemp ) elseif ( @realback == 58 ) tempx = ftemp * tan( ftemp ) elseif ( @realback == 59 ) tempx = ftemp * cotan( ftemp ) elseif ( @realback == 60 ) tempx = ftemp/cos( ftemp ) elseif ( @realback == 61 ) tempx = ftemp/sin( ftemp ) elseif ( @realback == 62 ) tempx = sin( 1/ftemp ) elseif ( @realback == 63 ) tempx = cos( 1/ftemp ) elseif ( @realback == 64 ) tempx = tan( 1/ftemp ) elseif ( @realback == 65 ) tempx = cotan( 1/ftemp ) elseif ( @realback == 66 ) tempx = 1/cos( 1/ftemp ) elseif ( @realback == 67 ) tempx = 1/sin( 1/ftemp ) elseif ( @realback == 68 ) tempx = cotanh( ftemp ) elseif ( @realback == 69 ) tempx = 1/cosh( ftemp ) elseif ( @realback == 70 ) tempx = 1/sinh( ftemp ) elseif ( @realback == 71 ) tempx = atanh( 1/ftemp ) elseif ( @realback == 72 ) tempx = acosh( 1/ftemp ) elseif ( @realback == 73 ) tempx = asinh( 1/ftemp ) elseif @realback == 74 tempx = ftemp^@rbpower elseif @realback == 75 tempx = sinh(ftemp) tempx = tempx * tempx elseif @realback == 76 tempx = cosh( ftemp ) tempx = tempx * tempx elseif @realback == 77 tempx = tanh(ftemp) tempx = tempx * tempx elseif @realback == 78 tempx = cotanh( ftemp ) tempx = tempx * tempx elseif @realback == 79 tempx = 1/cosh(ftemp) tempx = tempx * tempx elseif @realback == 80 tempx = 1 / sinh( ftemp ) tempx = tempx * tempx elseif @realback == 81 tempx = sinh(1/ftemp) elseif @realback == 82 tempx = cosh(1/ftemp) elseif @realback == 83 tempx = tanh(1/ftemp) elseif @realback == 84 tempx = cotanh(1/ftemp) elseif @realback == 85 tempx = 1/cosh(1/ftemp) elseif @realback == 86 tempx = 1/sinh(1/ftemp) elseif @realback == 87 tempx = sin( ftemp ) * tan(ftemp) elseif @realback == 88 tempx = sinh(ftemp) * tanh(ftemp) elseif @realback == 89 tempx = sinh(ftemp) * cosh(ftemp) elseif @realback == 90 tempx = sinh(ftemp), ftemp2 = cosh(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realback == 91 tempx = sin(ftemp), ftemp2 = cos(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realback == 92 tempx = 1/ftemp tempx = sin(tempx)*cos(tempx) elseif @realback == 93 tempx = sin( 1/ftemp ) tempx = tempx*tempx elseif @realback == 94 tempx = sin(ftemp) * cos(1/ftemp) elseif @realback == 95 tempx = sin(ftemp) * sin(1/ftemp) elseif @realback == 96 tempx = log(ftemp) tempx = tempx*tempx elseif @realback == 97 tempx = sin(ftemp) * sin(2*ftemp) elseif @realback == 98 tempx = exp(2*ftemp) elseif @realback == 99 tempx = exp(-2*ftemp) elseif @realback == 100 tempx = 1/ftemp tempx = sinh(tempx)*cosh(tempx) elseif @realback == 101 tempx = sinh( 1/ftemp ) tempx = tempx*tempx elseif @realback == 102 tempx = sinh(ftemp) * cosh(1/ftemp) elseif @realback == 103 tempx = sinh(ftemp) * sinh(1/ftemp) elseif @realback == 104 tempx = sin(ftemp) * sinh(ftemp) elseif @realback == 105 tempx = sin(ftemp) * cosh(ftemp) elseif @realback == 106 tempx = sin(ftemp), ftemp2 = sinh(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realback == 107 tempx = sin(ftemp)*exp(ftemp) elseif @realback == 108 tempx = cos(ftemp)*exp(ftemp) elseif @realback == 109 tempx = sinh(ftemp)*exp(ftemp) elseif @realback == 110 tempx = cosh(ftemp)*exp(ftemp) elseif @realback == 111 tempx = sin(ftemp)*log(ftemp) elseif @realback == 112 tempx = cos(ftemp)*log(ftemp) elseif @realback == 113 tempx = sinh(ftemp)*log(ftemp) elseif @realback == 114 tempx = cosh(ftemp)*log(ftemp) elseif @realback == 115 tempx = exp(ftemp^2) elseif @realback == 116 tempx = exp(1/(ftemp^2)) elseif @realback == 117 tempx = abs(ftemp) elseif @realback == 118 tempx = round(ftemp) elseif @realback == 119 tempx = trunc(ftemp) elseif @realback == 120 tempx = ceil(ftemp) elseif @realback == 121 tempx = floor(ftemp) elseif @realback == 122 tempx = ftemp/log(ftemp) elseif @realback == 123 tempx = log(ftemp)/ftemp elseif @realback == 124 tempx = exp(ftemp)/ftemp elseif @realback == 125 tempx = exp(1/ftemp)/ftemp elseif @realback == 126 tempx = exp(ftemp^2)/ftemp elseif @realback == 127 tempx = exp(1/(ftemp^2))/ftemp elseif @realback == 128 tempx = ftemp * exp(ftemp^2) elseif @realback == 129 tempx = ftemp * exp(1/(ftemp^2)) elseif @realback == 130 tempx = exp(-(ftemp^2)) elseif @realback == 131 tempx = exp(-1/(ftemp^2)) elseif @realback == 132 tempx = exp(-(ftemp^2))/ftemp elseif @realback == 133 tempx = exp(-1/(ftemp^2))/ftemp elseif @realback == 134 tempx = ftemp * exp(-(ftemp^2)) elseif @realback == 135 tempx = ftemp * exp(-1/(ftemp^2)) elseif @realback == 136 tempx = log(1+ftemp) elseif @realback == 137 tempx = log(1+log(1+ftemp)) elseif @realback == 138 tempx = sin(ftemp^@rbpower) endif ; realback if @realback != 0 tempx = @rbpostscale * tempx endif ; @realback if @rbperturb tempx = @rbblend * tempx + rbbcomp * real(tempc) endif ; @rbperturb ftemp = @ibscale * imag(tempc) if ( @imagback == 0 ) tempy = ftemp elseif ( @imagback == 1 ) tempy = 1/ftemp elseif ( @imagback == 2 ) tempy = ftemp * ftemp elseif ( @imagback == 3 ) tempy = 1 / ( ftemp * ftemp ) elseif ( @imagback == 4 ) tempy = log(ftemp) elseif ( @imagback == 5 ) tempy = exp( ftemp) elseif ( @imagback == 6 ) tempy = ftemp^ftemp elseif ( @imagback == 7 ) tempy = sin( ftemp ) elseif ( @imagback == 8 ) tempy = cos( ftemp ) elseif ( @imagback == 9 ) tempy = tan( ftemp ) elseif ( @imagback == 10 ) tempy = asin( ftemp ) elseif ( @imagback == 11 ) tempy = acos( ftemp ) elseif ( @imagback == 12 ) tempy = atan( ftemp ) elseif ( @imagback == 13 ) tempy = sinh( ftemp ) elseif ( @imagback == 14 ) tempy = cosh( ftemp ) elseif ( @imagback == 15 ) tempy = tanh( ftemp ) elseif ( @imagback == 16 ) tempy = asinh( ftemp ) elseif ( @imagback == 17 ) tempy = acosh( ftemp ) elseif ( @imagback == 18 ) tempy = atanh( ftemp ) elseif ( @imagback == 19 ) tempy = log( 1/ftemp ) elseif ( @imagback == 20 ) tempy = log( log( ftemp )) elseif ( @imagback == 21 ) tempy = exp( -ftemp ) elseif ( @imagback == 22 ) tempy = exp( 1/ftemp ) elseif ( @imagback == 23 ) tempy = ftemp^(-ftemp) elseif ( @imagback == 24 ) tempy = sin( ftemp ) tempy = tempy * tempy elseif ( @imagback == 25 ) tempy = cos( ftemp ) tempy = tempy * tempy elseif ( @imagback == 26 ) tempy = tan( ftemp ) tempy = tempy * tempy elseif ( @imagback == 27 ) tempy = cotan( ftemp ) elseif ( @imagback == 28 ) tempy = 1/cos( ftemp ) elseif ( @imagback == 29 ) tempy = 1/sin( ftemp ) elseif ( @imagback == 30 ) tempy = cotan( ftemp ) tempy = tempy * tempy elseif ( @imagback == 31 ) tempy = 1/cos( ftemp ) tempy = tempy * tempy elseif ( @imagback == 32 ) tempy = 1/sin( ftemp ) tempy = tempy * tempy elseif ( @imagback == 33 ) tempy = ftemp^(ftemp) tempy = ftemp^tempy elseif ( @imagback == 34 ) tempy = ftemp^(ftemp) tempy = 1/( ftemp^tempy ) elseif ( @imagback == 35 ) tempy = log(-ftemp) elseif ( @imagback == 36 ) tempy = 1/log( ftemp ) elseif ( @imagback == 37 ) tempy = ftemp * log( ftemp ) elseif ( @imagback == 38 ) tempy = sin( ftemp ) / ftemp elseif ( @imagback == 39 ) tempy = cos( ftemp ) / ftemp elseif ( @imagback == 40 ) tempy = sin( ftemp ) * cos( ftemp ) elseif ( @imagback == 41 ) tempy = sin( ftemp^2 ) elseif ( @imagback == 42 ) tempy = exp( -1/ftemp ) elseif ( @imagback == 43 ) tempy = ftemp * exp( ftemp ) elseif ( @imagback == 44 ) tempy = ftemp * exp( -ftemp ) elseif ( @imagback == 45 ) tempy = ftemp * exp( 1/ftemp ) elseif ( @imagback == 46 ) tempy = ftemp * exp( -1/ftemp ) elseif ( @imagback == 47 ) tempy = ftemp * ftemp * ftemp elseif ( @imagback == 48 ) tempy = 1 / ( ftemp * ftemp * ftemp ) elseif ( @imagback == 49 ) tempy = atan( 1 / ftemp ) elseif ( @imagback == 50 ) tempy = acos( 1 / ftemp ) elseif ( @imagback == 51 ) tempy = asin( 1 / ftemp ) elseif ( @imagback == 52 ) tempy = tan( ftemp ) / ftemp elseif ( @imagback == 53 ) tempy = cotan( ftemp ) / ftemp elseif ( @imagback == 54 ) tempy = 1 / ( ftemp * cos( ftemp )) elseif ( @imagback == 55 ) tempy = 1 / ( ftemp * sin( ftemp )) elseif ( @imagback == 56 ) tempy = ftemp * sin( ftemp ) elseif ( @imagback == 57 ) tempy = ftemp * cos( ftemp ) elseif ( @imagback == 58 ) tempy = ftemp * tan( ftemp ) elseif ( @imagback == 59 ) tempy = ftemp * cotan( ftemp ) elseif ( @imagback == 60 ) tempy = ftemp/cos( ftemp ) elseif ( @imagback == 61 ) tempy = ftemp/sin( ftemp ) elseif ( @imagback == 62 ) tempy = sin( 1/ftemp ) elseif ( @imagback == 63 ) tempy = cos( 1/ftemp ) elseif ( @imagback == 64 ) tempy = tan( 1/ftemp ) elseif ( @imagback == 65 ) tempy = cotan( 1/ftemp ) elseif ( @imagback == 66 ) tempy = 1/cos( 1/ftemp ) elseif ( @imagback == 67 ) tempy = 1/sin( 1/ftemp ) elseif ( @imagback == 68 ) tempy = cotanh( ftemp ) elseif ( @imagback == 69 ) tempy = 1/cosh( ftemp ) elseif ( @imagback == 70 ) tempy = 1/sinh( ftemp ) elseif ( @imagback == 71 ) tempy = atanh( 1/ftemp ) elseif ( @imagback == 72 ) tempy = acosh( 1/ftemp ) elseif ( @imagback == 73 ) tempy = asinh( 1/ftemp ) elseif @imagback == 74 tempy = ftemp^@ibpower elseif @imagback == 75 tempy = sinh(ftemp) tempy = tempy * tempy elseif @imagback == 76 tempy = cosh( ftemp ) tempy = tempy * tempy elseif @imagback == 77 tempy = tanh(ftemp) tempy = tempy * tempy elseif @imagback == 78 tempy = cotanh( ftemp ) tempy = tempy * tempy elseif @imagback == 79 tempy = 1/cosh(ftemp) tempy = tempy * tempy elseif @imagback == 80 tempy = 1 / sinh( ftemp ) tempy = tempy * tempy elseif @imagback == 81 tempy = sinh(1/ftemp) elseif @imagback == 82 tempy = cosh(1/ftemp) elseif @imagback == 83 tempy = tanh(1/ftemp) elseif @imagback == 84 tempy = cotanh(1/ftemp) elseif @imagback == 85 tempy = 1/cosh(1/ftemp) elseif @imagback == 86 tempy = 1/sinh(1/ftemp) elseif @imagback == 87 tempy = sin( ftemp ) * tan(ftemp) elseif @imagback == 88 tempy = sinh(ftemp) * tanh(ftemp) elseif @imagback == 89 tempy = sinh(ftemp) * cosh(ftemp) elseif @imagback == 90 tempy = sinh(ftemp), ftemp2 = cosh(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagback == 91 tempy = sin(ftemp), ftemp2 = cos(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagback == 92 tempy = 1/ftemp tempy = sin(tempy)*cos(tempy) elseif @imagback == 93 tempy = sin( 1/ftemp ) tempy = tempy*tempy elseif @imagback == 94 tempy = sin(ftemp) * cos(1/ftemp) elseif @imagback == 95 tempy = sin(ftemp) * sin(1/ftemp) elseif @imagback == 96 tempy = log(ftemp) tempy = tempy*tempy elseif @imagback == 97 tempy = sin(ftemp) * sin(2*ftemp) elseif @imagback == 98 tempy = exp(2*ftemp) elseif @imagback == 99 tempy = exp(-2*ftemp) elseif @imagback == 100 tempy = 1/ftemp tempy = sinh(tempy)*cosh(tempy) elseif @imagback == 101 tempy = sinh( 1/ftemp ) tempy = tempy*tempy elseif @imagback == 102 tempy = sinh(ftemp) * cosh(1/ftemp) elseif @imagback == 103 tempy = sinh(ftemp) * sinh(1/ftemp) elseif @imagback == 104 tempy = sin(ftemp) * sinh(ftemp) elseif @imagback == 105 tempy = sin(ftemp) * cosh(ftemp) elseif @imagback == 106 tempy = sin(ftemp), ftemp2 = sinh(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagback == 107 tempy = sin(ftemp)*exp(ftemp) elseif @imagback == 108 tempy = cos(ftemp)*exp(ftemp) elseif @imagback == 109 tempy = sinh(ftemp)*exp(ftemp) elseif @imagback == 110 tempy = cosh(ftemp)*exp(ftemp) elseif @imagback == 111 tempy = sin(ftemp)*log(ftemp) elseif @imagback == 112 tempy = cos(ftemp)*log(ftemp) elseif @imagback == 113 tempy = sinh(ftemp)*log(ftemp) elseif @imagback == 114 tempy = cosh(ftemp)*log(ftemp) elseif @imagback == 115 tempy = exp(ftemp^2) elseif @imagback == 116 tempy = exp(1/(ftemp^2)) elseif @imagback == 117 tempy = abs(ftemp) elseif @imagback == 118 tempy = round(ftemp) elseif @imagback == 119 tempy = trunc(ftemp) elseif @imagback == 120 tempy = ceil(ftemp) elseif @imagback == 121 tempy = floor(ftemp) elseif @imagback == 122 tempy = ftemp/log(ftemp) elseif @imagback == 123 tempy = log(ftemp)/ftemp elseif @imagback == 124 tempy = exp(ftemp)/ftemp elseif @imagback == 125 tempy = exp(1/ftemp)/ftemp elseif @imagback == 126 tempy = exp(ftemp^2)/ftemp elseif @imagback == 127 tempy = exp(1/(ftemp^2))/ftemp elseif @imagback == 128 tempy = ftemp * exp(ftemp^2) elseif @imagback == 129 tempy = ftemp * exp(1/(ftemp^2)) elseif @imagback == 130 tempy = exp(-(ftemp^2)) elseif @imagback == 131 tempy = exp(-1/(ftemp^2)) elseif @imagback == 132 tempy = exp(-(ftemp^2))/ftemp elseif @imagback == 133 tempy = exp(-1/(ftemp^2))/ftemp elseif @imagback == 134 tempy = ftemp * exp(-(ftemp^2)) elseif @imagback == 135 tempy = ftemp * exp(-1/(ftemp^2)) elseif @imagback == 136 tempy = log(1+ftemp) elseif @imagback == 137 tempy = log(1+log(1+ftemp)) elseif @imagback == 138 tempy = sin(ftemp^@ibpower) endif ; imagback if @imagback != 0 tempy = @ibpostscale * tempy endif ; @imagback if @ibperturb tempy = @ibblend * tempy + ibbcomp * imag(tempc) endif ; @ibperturb tempc = tempx + flip(tempy) if @absolutet2 tempc = abs(tempc) endif ; @absolutet2 if @absoluter7 tempc = abs(real(tempc)) + flip(imag(tempc)) endif ; @absoluter7 if @absolutei7 tempc = real(tempc) + flip(abs(imag(tempc))) endif ; @absolutei7 if @tvariantbias tempc = (@tvbprod*(tempc + @tvbaddend))^@tvbexponent endif ; @tvariantbias tangle = atan2( tempc ) if ( tangle < 0 ) tangle = tangle + twopi endif ; tangle if @twavy ftemp = ftemp2 = cabs( tempc ) if @twavmode == 0 ; radial mode ftemp = ftemp + @twavamp * ftemp * sin( @twavfreq * tangle ) ; vary radius tempc = ftemp * exp( flip( tangle )) ; compute new tempc elseif @twavmode == 1 ; tangential mode tangle = tangle + @twavamp * tangle * sin( @twavfreq * ftemp ) ; vary azimuth tempc = ftemp * exp( flip( tangle )) ; compute new tempc else ; both radial and tangential ftemp = ftemp + @twavamp * ftemp * sin( @twavfreq * tangle ) ; vary radius tangle = tangle + @twavamp2 * tangle * sin( @twavfreq2 * ftemp2 ) ; vary azimuth tempc = ftemp * exp( flip( tangle )) ; compute new tempc endif ; @twavmode endif ; @twavy if @varytraptype != 0 if @varytraptype == 1 ; flip tempc = flip(tempc) elseif @varytraptype == 2 ; conjugate tempc = conj(tempc) elseif @varytraptype == 3 ; flip conjugate tempc = flip(conj(tempc)) elseif @varytraptype == 4 ; negate tempc = -tempc elseif @varytraptype == 5 ; negate flip tempc = -flip(tempc) elseif @varytraptype == 6 ; negate conjugate tempc = -conj(tempc) elseif @varytraptype == 7 ; negate flip conj = conj flip tempc = -flip(conj(tempc)) endif ; @varytraptype endif ; @varytraptype if @toperator != 0 if @toperator == 1 ; multiplication tempc = tempc * @toperatee elseif @toperator == 2 ; addition tempc = tempc + @toperatee elseif @toperator == 3 ; subtraction tempc = tempc - @toperatee elseif @toperator == 4 ; division tempc = tempc / @toperatee elseif @toperator == 5 ; exponentiation tempc = tempc ^ @toperatee elseif @toperator == 6 ; subtraction2 tempc = @toperatee - tempc elseif @toperator == 7 ; division2 tempc = @toperatee / tempc elseif @toperator == 8 ; exponential2 tempc = @toperatee ^ tempc elseif @toperator == 9 ; logarithm tempc = log(tempc) / log(@toperatee) elseif @toperator == 10 ; logarithm2 tempc = log(@toperatee) / log(tempc) endif ; toperator2 endif ; toperator1 if @thisbias tempc = (@thbprod*(tempc + @thbaddend))^@thbexponent endif ; @thisbias ; trap history code, part 2 if @thistory ; update new, alternative trap history array with the new trap point maxindex = 0, index = 9 while index > maxindex index2 = index-1 thist[1,index] = thist[1,index2] index = index2 endwhile ; index thist[1,0] = tempc if (@thismode == "original") || (@thismode == "both") if @thistype == 1 tempc = thist[@trapmixmatch2,1] elseif @thistype == 2 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,1])) elseif @thistype == 3 tempc = real(thist[@trapmixmatch2,1]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 4 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,1] elseif @thistype == 5 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,1]) elseif @thistype == 6 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,1])) elseif @thistype == 7 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,1] elseif @thistype == 8 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,1]) elseif @thistype == 9 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,1])) elseif @thistype == 10 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,1] elseif @thistype == 11 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,1]) elseif @thistype == 12 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,1])) elseif @thistype == 13 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,1] elseif @thistype == 14 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,1] elseif @thistype == 15 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,1] elseif @thistype == 16 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,1] elseif @thistype == 17 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,1] elseif @thistype == 18 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,1] elseif @thistype == 19 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,1])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,1]))) elseif @thistype == 20 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,1])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,1]))) elseif @thistype == 21 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,1])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,1]))) elseif @thistype == 22 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,1])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,1]))) elseif @thistype == 23 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,1])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,1]))) elseif @thistype == 24 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,1])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,1]))) elseif @thistype == 25 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,1])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,1]))) elseif @thistype == 26 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,1])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,1]))) elseif @thistype == 27 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,1])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,1]))) elseif @thistype == 28 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,1])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,1]))) elseif @thistype == 29 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,1])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,1]))) elseif @thistype == 30 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,1])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,1]))) elseif @thistype == 31 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,1])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,1]))) elseif @thistype == 32 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,1])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,1]))) elseif @thistype == 33 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,1])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,1]))) elseif @thistype == 34 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,1])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,1]))) elseif @thistype == 35 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,1])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,1]))) elseif @thistype == 36 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,1])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,1]))) elseif @thistype == 37 tempc = thist[@trapmixmatch2,2] elseif @thistype == 38 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,2])) elseif @thistype == 39 tempc = real(thist[@trapmixmatch2,2]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 40 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,2] elseif @thistype == 41 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,2]) elseif @thistype == 42 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,2])) elseif @thistype == 43 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,2] elseif @thistype == 44 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,2]) elseif @thistype == 45 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,2])) elseif @thistype == 46 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,2] elseif @thistype == 47 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,2]) elseif @thistype == 48 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,2])) elseif @thistype == 49 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,2] elseif @thistype == 50 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,2] elseif @thistype == 51 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,2] elseif @thistype == 52 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,2] elseif @thistype == 53 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,2] elseif @thistype == 54 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,2] elseif @thistype == 55 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,2])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,2]))) elseif @thistype == 56 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,2])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,2]))) elseif @thistype == 57 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,2])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,2]))) elseif @thistype == 58 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,2])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,2]))) elseif @thistype == 59 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,2])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,2]))) elseif @thistype == 60 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,2])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,2]))) elseif @thistype == 61 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,2])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,2]))) elseif @thistype == 62 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,2])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,2]))) elseif @thistype == 63 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,2])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,2]))) elseif @thistype == 64 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,2])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,2]))) elseif @thistype == 65 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,2])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,2]))) elseif @thistype == 66 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,2])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,2]))) elseif @thistype == 67 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,2])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,2]))) elseif @thistype == 68 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,2])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,2]))) elseif @thistype == 69 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,2])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,2]))) elseif @thistype == 70 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,2])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,2]))) elseif @thistype == 71 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,2])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,2]))) elseif @thistype == 72 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,2])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,2]))) elseif @thistype == 73 tempc = thist[@trapmixmatch2,3] elseif @thistype == 74 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,3])) elseif @thistype == 75 tempc = real(thist[@trapmixmatch2,3]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 76 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,3] elseif @thistype == 77 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,3]) elseif @thistype == 78 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,3])) elseif @thistype == 79 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,3] elseif @thistype == 80 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,3]) elseif @thistype == 81 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,3])) elseif @thistype == 82 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,3] elseif @thistype == 83 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,3]) elseif @thistype == 84 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,3])) elseif @thistype == 85 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,3] elseif @thistype == 86 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,3] elseif @thistype == 87 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,3] elseif @thistype == 88 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,3] elseif @thistype == 89 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,3] elseif @thistype == 90 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,3] elseif @thistype == 91 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,3])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,3]))) elseif @thistype == 92 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,3])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,3]))) elseif @thistype == 93 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,3])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,3]))) elseif @thistype == 94 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,3])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,3]))) elseif @thistype == 95 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,3])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,3]))) elseif @thistype == 96 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,3])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,3]))) elseif @thistype == 97 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,3])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,3]))) elseif @thistype == 98 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,3])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,3]))) elseif @thistype == 99 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,3])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,3]))) elseif @thistype == 100 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,3])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,3]))) elseif @thistype == 101 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,3])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,3]))) elseif @thistype == 102 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,3])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,3]))) elseif @thistype == 103 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,3])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,3]))) elseif @thistype == 104 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,3])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,3]))) elseif @thistype == 105 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,3])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,3]))) elseif @thistype == 106 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,3])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,3]))) elseif @thistype == 107 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,3])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,3]))) elseif @thistype == 108 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,3])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,3]))) elseif @thistype == 109 tempc = thist[@trapmixmatch2,4] elseif @thistype == 110 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,4])) elseif @thistype == 111 tempc = real(thist[@trapmixmatch2,4]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 112 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,4] elseif @thistype == 113 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,4]) elseif @thistype == 114 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,4])) elseif @thistype == 115 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,4] elseif @thistype == 116 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,4]) elseif @thistype == 117 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,4])) elseif @thistype == 118 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,4] elseif @thistype == 119 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,4]) elseif @thistype == 120 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,4])) elseif @thistype == 121 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,4] elseif @thistype == 122 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,4] elseif @thistype == 123 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,4] elseif @thistype == 124 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,4] elseif @thistype == 125 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,4] elseif @thistype == 126 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,4] elseif @thistype == 127 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,4])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,4]))) elseif @thistype == 128 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,4])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,4]))) elseif @thistype == 129 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,4])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,4]))) elseif @thistype == 130 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,4])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,4]))) elseif @thistype == 131 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,4])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,4]))) elseif @thistype == 132 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,4])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,4]))) elseif @thistype == 133 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,4])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,4]))) elseif @thistype == 134 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,4])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,4]))) elseif @thistype == 135 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,4])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,4]))) elseif @thistype == 136 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,4])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,4]))) elseif @thistype == 137 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,4])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,4]))) elseif @thistype == 138 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,4])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,4]))) elseif @thistype == 139 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,4])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,4]))) elseif @thistype == 140 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,4])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,4]))) elseif @thistype == 141 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,4])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,4]))) elseif @thistype == 142 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,4])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,4]))) elseif @thistype == 143 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,4])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,4]))) elseif @thistype == 144 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,4])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,4]))) elseif @thistype == 145 tempc = thist[@trapmixmatch2,5] elseif @thistype == 146 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,5])) elseif @thistype == 147 tempc = real(thist[@trapmixmatch2,5]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 148 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,5] elseif @thistype == 149 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,5]) elseif @thistype == 150 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,5])) elseif @thistype == 151 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,5] elseif @thistype == 152 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,5]) elseif @thistype == 153 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,5])) elseif @thistype == 154 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,5] elseif @thistype == 155 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,5]) elseif @thistype == 156 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,5])) elseif @thistype == 157 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,5] elseif @thistype == 158 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,5] elseif @thistype == 159 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,5] elseif @thistype == 160 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,5] elseif @thistype == 161 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,5] elseif @thistype == 162 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,5] elseif @thistype == 163 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,5])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,5]))) elseif @thistype == 164 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,5])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,5]))) elseif @thistype == 165 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,5])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,5]))) elseif @thistype == 166 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,5])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,5]))) elseif @thistype == 167 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,5])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,5]))) elseif @thistype == 168 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,5])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,5]))) elseif @thistype == 169 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,5])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,5]))) elseif @thistype == 170 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,5])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,5]))) elseif @thistype == 171 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,5])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,5]))) elseif @thistype == 172 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,5])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,5]))) elseif @thistype == 173 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,5])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,5]))) elseif @thistype == 174 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,5])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,5]))) elseif @thistype == 175 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,5])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,5]))) elseif @thistype == 176 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,5])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,5]))) elseif @thistype == 177 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,5])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,5]))) elseif @thistype == 178 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,5])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,5]))) elseif @thistype == 179 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,5])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,5]))) elseif @thistype == 180 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,5])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,5]))) elseif @thistype == 181 tempc = thist[@trapmixmatch2,6] elseif @thistype == 182 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,6])) elseif @thistype == 183 tempc = real(thist[@trapmixmatch2,6]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 184 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,6] elseif @thistype == 185 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,6]) elseif @thistype == 186 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,6])) elseif @thistype == 187 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,6] elseif @thistype == 188 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,6]) elseif @thistype == 189 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,6])) elseif @thistype == 190 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,6] elseif @thistype == 191 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,6]) elseif @thistype == 192 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,6])) elseif @thistype == 193 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,6] elseif @thistype == 194 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,6] elseif @thistype == 195 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,6] elseif @thistype == 196 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,6] elseif @thistype == 197 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,6] elseif @thistype == 198 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,6] elseif @thistype == 199 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,6])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,6]))) elseif @thistype == 200 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,6])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,6]))) elseif @thistype == 201 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,6])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,6]))) elseif @thistype == 202 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,6])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,6]))) elseif @thistype == 203 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,6])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,6]))) elseif @thistype == 204 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,6])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,6]))) elseif @thistype == 205 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,6])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,6]))) elseif @thistype == 206 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,6])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,6]))) elseif @thistype == 207 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,6])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,6]))) elseif @thistype == 208 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,6])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,6]))) elseif @thistype == 209 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,6])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,6]))) elseif @thistype == 210 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,6])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,6]))) elseif @thistype == 211 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,6])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,6]))) elseif @thistype == 212 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,6])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,6]))) elseif @thistype == 213 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,6])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,6]))) elseif @thistype == 214 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,6])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,6]))) elseif @thistype == 215 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,6])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,6]))) elseif @thistype == 216 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,6])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,6]))) elseif @thistype == 217 tempc = thist[@trapmixmatch2,7] elseif @thistype == 218 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,7])) elseif @thistype == 219 tempc = real(thist[@trapmixmatch2,7]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 220 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,7] elseif @thistype == 221 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,7]) elseif @thistype == 222 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,7])) elseif @thistype == 223 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,7] elseif @thistype == 224 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,7]) elseif @thistype == 225 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,7])) elseif @thistype == 226 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,7] elseif @thistype == 227 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,7]) elseif @thistype == 228 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,7])) elseif @thistype == 229 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,7] elseif @thistype == 230 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,7] elseif @thistype == 231 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,7] elseif @thistype == 232 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,7] elseif @thistype == 233 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,7] elseif @thistype == 234 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,7] elseif @thistype == 235 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,7])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,7]))) elseif @thistype == 236 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,7])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,7]))) elseif @thistype == 237 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,7])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,7]))) elseif @thistype == 238 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,7])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,7]))) elseif @thistype == 239 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,7])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,7]))) elseif @thistype == 240 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,7])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,7]))) elseif @thistype == 241 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,7])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,7]))) elseif @thistype == 242 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,7])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,7]))) elseif @thistype == 243 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,7])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,7]))) elseif @thistype == 244 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,7])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,7]))) elseif @thistype == 245 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,7])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,7]))) elseif @thistype == 246 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,7])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,7]))) elseif @thistype == 247 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,7])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,7]))) elseif @thistype == 248 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,7])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,7]))) elseif @thistype == 249 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,7])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,7]))) elseif @thistype == 250 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,7])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,7]))) elseif @thistype == 251 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,7])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,7]))) elseif @thistype == 252 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,7])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,7]))) elseif @thistype == 253 tempc = thist[@trapmixmatch2,8] elseif @thistype == 254 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,8])) elseif @thistype == 255 tempc = real(thist[@trapmixmatch2,8]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 256 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,8] elseif @thistype == 257 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,8]) elseif @thistype == 258 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,8])) elseif @thistype == 259 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,8] elseif @thistype == 260 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,8]) elseif @thistype == 261 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,8])) elseif @thistype == 262 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,8] elseif @thistype == 263 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,8]) elseif @thistype == 264 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,8])) elseif @thistype == 265 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,8] elseif @thistype == 266 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,8] elseif @thistype == 267 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,8] elseif @thistype == 268 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,8] elseif @thistype == 269 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,8] elseif @thistype == 270 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,8] elseif @thistype == 271 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,8])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,8]))) elseif @thistype == 272 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,8])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,8]))) elseif @thistype == 273 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,8])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,8]))) elseif @thistype == 274 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,8])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,8]))) elseif @thistype == 275 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,8])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,8]))) elseif @thistype == 276 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,8])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,8]))) elseif @thistype == 277 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,8])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,8]))) elseif @thistype == 278 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,8])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,8]))) elseif @thistype == 279 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,8])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,8]))) elseif @thistype == 280 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,8])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,8]))) elseif @thistype == 281 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,8])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,8]))) elseif @thistype == 282 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,8])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,8]))) elseif @thistype == 283 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,8])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,8]))) elseif @thistype == 284 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,8])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,8]))) elseif @thistype == 285 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,8])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,8]))) elseif @thistype == 286 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,8])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,8]))) elseif @thistype == 287 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,8])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,8]))) elseif @thistype == 288 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,8])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,8]))) elseif @thistype == 289 tempc = thist[@trapmixmatch2,9] elseif @thistype == 290 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,9])) elseif @thistype == 291 tempc = real(thist[@trapmixmatch2,9]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 292 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,9] elseif @thistype == 293 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,9]) elseif @thistype == 294 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,9])) elseif @thistype == 295 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,9] elseif @thistype == 296 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,9]) elseif @thistype == 297 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,9])) elseif @thistype == 298 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,9] elseif @thistype == 299 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,9]) elseif @thistype == 300 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,9])) elseif @thistype == 301 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,9] elseif @thistype == 302 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,9] elseif @thistype == 303 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,9] elseif @thistype == 304 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,9] elseif @thistype == 305 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,9] elseif @thistype == 306 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,9] elseif @thistype == 307 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,9])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,9]))) elseif @thistype == 308 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,9])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,9]))) elseif @thistype == 309 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,9])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,9]))) elseif @thistype == 310 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,9])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,9]))) elseif @thistype == 311 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,9])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,9]))) elseif @thistype == 312 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,9])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,9]))) elseif @thistype == 313 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,9])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,9]))) elseif @thistype == 314 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,9])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,9]))) elseif @thistype == 315 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,9])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,9]))) elseif @thistype == 316 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,9])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,9]))) elseif @thistype == 317 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,9])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,9]))) elseif @thistype == 318 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,9])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,9]))) elseif @thistype == 319 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,9])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,9]))) elseif @thistype == 320 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,9])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,9]))) elseif @thistype == 321 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,9])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,9]))) elseif @thistype == 322 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,9])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,9]))) elseif @thistype == 323 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,9])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,9]))) elseif @thistype == 324 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,9])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,9]))) elseif @thistype == 325 tempc = thist[@trapmixmatch1,@traphisindex]/thist[@trapmixmatch2,1] elseif @thistype == 326 tempc = thist[@trapmixmatch2,1]/thist[@trapmixmatch1,@traphisindex] elseif @thistype == 327 tempc = thist[@trapmixmatch1,@traphisindex]^thist[@trapmixmatch2,1] elseif @thistype == 328 tempc = thist[@trapmixmatch2,1]^thist[@trapmixmatch1,@traphisindex] elseif @thistype == 329 tempc = thist[@trapmixmatch1,@traphisindex]/real(thist[@trapmixmatch2,1]) elseif @thistype == 330 tempc = thist[@trapmixmatch1,@traphisindex]/imag(thist[@trapmixmatch2,1]) elseif @thistype == 331 tempc = thist[@trapmixmatch2,1]/real(thist[@trapmixmatch1,@traphisindex]) elseif @thistype == 332 tempc = thist[@trapmixmatch2,1]/imag(thist[@trapmixmatch1,@traphisindex]) elseif @thistype == 333 tempc = thist[@trapmixmatch1,@traphisindex]^real(thist[@trapmixmatch2,1]) elseif @thistype == 334 tempc = thist[@trapmixmatch1,@traphisindex]^imag(thist[@trapmixmatch2,1]) elseif @thistype == 335 tempc = thist[@trapmixmatch2,1]^real(thist[@trapmixmatch1,@traphisindex]) elseif @thistype == 336 tempc = thist[@trapmixmatch2,1]^imag(thist[@trapmixmatch1,@traphisindex]) elseif @thistype == 337 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,1] + thist[@trapmixmatch2,2] elseif @thistype == 338 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,1] + thist[@trapmixmatch2,2] elseif @thistype == 339 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,1] - thist[@trapmixmatch2,2] elseif @thistype == 340 tempc = -thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,1] + thist[@trapmixmatch2,2] elseif @thistype == 341 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,1] - thist[@trapmixmatch2,2] elseif @thistype == 342 tempc = thist[@trapmixmatch1,@traphisindex] + (thist[@trapmixmatch2,1] * thist[@trapmixmatch2,2]) elseif @thistype == 343 tempc = thist[@trapmixmatch1,@traphisindex] - (thist[@trapmixmatch2,1] * thist[@trapmixmatch2,2]) elseif @thistype == 344 tempc = thist[@trapmixmatch2,1] + (thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,2]) elseif @thistype == 345 tempc = thist[@trapmixmatch2,1] - (thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,2]) elseif @thistype == 346 tempc = thist[@trapmixmatch2,2] + (thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,1]) elseif @thistype == 347 tempc = thist[@trapmixmatch2,2] - (thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,1]) elseif @thistype == 348 tempc = thist[@trapmixmatch1,@traphisindex]/thist[@trapmixmatch2,2] elseif @thistype == 349 tempc = thist[@trapmixmatch2,2]/thist[@trapmixmatch1,@traphisindex] elseif @thistype == 350 tempc = thist[@trapmixmatch1,@traphisindex]^thist[@trapmixmatch2,2] elseif @thistype == 351 tempc = thist[@trapmixmatch2,2]^thist[@trapmixmatch1,@traphisindex] elseif @thistype == 352 tempc = thist[@trapmixmatch1,@traphisindex]/real(thist[@trapmixmatch2,2]) elseif @thistype == 353 tempc = thist[@trapmixmatch1,@traphisindex]/imag(thist[@trapmixmatch2,2]) elseif @thistype == 354 tempc = thist[@trapmixmatch2,2]/real(thist[@trapmixmatch1,@traphisindex]) elseif @thistype == 355 tempc = thist[@trapmixmatch2,2]/imag(thist[@trapmixmatch1,@traphisindex]) elseif @thistype == 356 tempc = thist[@trapmixmatch1,@traphisindex]^real(thist[@trapmixmatch2,2]) elseif @thistype == 357 tempc = thist[@trapmixmatch1,@traphisindex]^imag(thist[@trapmixmatch2,2]) elseif @thistype == 358 tempc = thist[@trapmixmatch2,2]^real(thist[@trapmixmatch1,@traphisindex]) elseif @thistype == 359 tempc = thist[@trapmixmatch2,2]^imag(thist[@trapmixmatch1,@traphisindex]) elseif @thistype == 360 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,2] + thist[@trapmixmatch2,3] elseif @thistype == 361 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,2] + thist[@trapmixmatch2,3] elseif @thistype == 362 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,2] - thist[@trapmixmatch2,3] elseif @thistype == 363 tempc = -thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,2] + thist[@trapmixmatch2,3] elseif @thistype == 364 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,2] - thist[@trapmixmatch2,3] elseif @thistype == 365 tempc = thist[@trapmixmatch1,@traphisindex] + (thist[@trapmixmatch2,2] * thist[@trapmixmatch2,3]) elseif @thistype == 366 tempc = thist[@trapmixmatch1,@traphisindex] - (thist[@trapmixmatch2,2] * thist[@trapmixmatch2,3]) elseif @thistype == 367 tempc = thist[@trapmixmatch2,2] + (thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,3]) elseif @thistype == 368 tempc = thist[@trapmixmatch2,2] - (thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,3]) elseif @thistype == 369 tempc = thist[@trapmixmatch2,3] + (thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,2]) elseif @thistype == 370 tempc = thist[@trapmixmatch2,3] - (thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,2]) else tempc = tempc endif ; thistype if @thist1blend tempc = @thist1fraction*tempc + thist1comp*thist[1,0] endif ; @thist1blend endif ; @thismode else tempc = tempc endif ; @thistory ; end of trap history code, part 2 if @finalbias tempc = (@fbprod*(tempc + @fbaddend))^@fbexponent endif ; @finalbias if @modflavor ztemp = zinput else ztemp = #z endif ; @modflavor if ( @trapmode == 0 ) ; distance test = cabs( ztemp - tempc ) elseif ( @trapmode == 1 ) ; magnitude test = cabs( ztemp ) elseif ( @trapmode == 2 ) ; real test = abs( real( ztemp )) elseif ( @trapmode == 3 ) ; imaginary test = abs( imag( ztemp )) elseif ( @trapmode == 4 ) ; trap magnitude test = cabs( tempc ) elseif ( @trapmode == 5 ) ; angle test = tempangle elseif ( @trapmode == 6 ) ; trap angle test = tangle elseif ( @trapmode == 7 ) ; raw angle test = zangle elseif ( @trapmode == 8 ) ; difference angle test = abs( tempangle - tangle) elseif ( @trapmode == 9 ) ; difference angle 2 test = abs( zangle - tangle ) elseif ( @trapmode == 10 ) ; trap real test = abs( real( tempc )) elseif ( @trapmode == 11 ) ; trap imaginary test = abs( imag( tempc )) elseif ( @trapmode == 12 ) ; sum test = cabs( ztemp + tempc ) elseif ( @trapmode == 13 ) ; product test = cabs( ztemp * tempc ) elseif ( @trapmode == 14 ) ; quotient 1 test = cabs( ztemp / tempc ) elseif ( @trapmode == 15 ) ; quotient 2 test = cabs( tempc / ztemp ) elseif ( @trapmode == 16 ) ; power 1 test = cabs( ztemp ^ tempc ) elseif ( @trapmode == 17 ) ; power 2 test = cabs( tempc ^ ztemp ) elseif ( @trapmode == 18 ) ; arithmetic mean test = cabs( (ztemp + tempc)/2 ) elseif ( @trapmode == 19 ) ; geometric mean test = cabs( sqrt( ztemp * tempc )) elseif ( @trapmode == 20 ) ; angle 2 test = atan2( ztemp - tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 21 ) ; angle 3 test = atan2( ztemp + tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 22 ) ; angle 4 test = atan2( ztemp * tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 23 ) ; angle 5 test = atan2( ztemp / tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 24 ) ; angle 6 test = atan2( tempc / ztemp ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 25 ) ; angle 7 test = atan2( ztemp ^ tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 26 ) ; angle 8 test = atan2( tempc ^ ztemp ) if ( test < 0 ) test = test + twopi endif ; test elseif ( @trapmode == 27 ) ; real 2 test = abs( real( ztemp - tempc )) elseif ( @trapmode == 28 ) ; real 3 test = abs( real( ztemp + tempc )) elseif ( @trapmode == 29 ) ; real 4 test = abs( real( ztemp * tempc )) elseif ( @trapmode == 30 ) ; real 5 test = abs( real( ztemp / tempc )) elseif ( @trapmode == 31 ) ; real 6 test = abs( real( tempc / ztemp )) elseif ( @trapmode == 32 ) ; real 7 test = abs( real( ztemp ^ tempc )) elseif ( @trapmode == 33 ) ; real 8 test = abs( real( tempc ^ ztemp )) elseif ( @trapmode == 34 ) ; imag 2 test = abs( imag( ztemp - tempc )) elseif ( @trapmode == 35 ) ; imag 3 test = abs( imag( ztemp + tempc )) elseif ( @trapmode == 36 ) ; imag 4 test = abs( imag( ztemp * tempc )) elseif ( @trapmode == 37 ) ; imag 5 test = abs( imag( ztemp / tempc )) elseif ( @trapmode == 38 ) ; imag 6 test = abs( imag( tempc / ztemp )) elseif ( @trapmode == 39 ) ; imag 7 test = abs( imag( ztemp ^ tempc )) elseif ( @trapmode == 40 ) ; imag 8 test = abs( imag( tempc ^ ztemp )) elseif ( @trapmode == 41 ) ; product 2 test = cabs(real(ztemp)*real(tempc)+flip(imag(ztemp)*imag(tempc))) elseif ( @trapmode == 42 ) ; quotient 3 test = cabs(real(ztemp)/real(tempc)+flip(imag(ztemp)/imag(tempc))) elseif ( @trapmode == 43 ) ; quotient 4 test = cabs(real(tempc)/real(ztemp)+flip(imag(tempc)/imag(ztemp))) elseif ( @trapmode == 44 ) ; power 3 test = cabs(real(ztemp)^real(tempc)+flip(imag(ztemp)^imag(tempc))) elseif ( @trapmode == 45 ) ; power 4 test = cabs(real(tempc)^real(ztemp)+flip(imag(tempc)^imag(ztemp))) elseif ( @trapmode == 46 ) ; crossproduct test = cabs(real(ztemp)*imag(tempc)+flip(imag(ztemp)*real(tempc))) elseif ( @trapmode == 47 ) ; crossquotient 1 test = cabs(real(ztemp)/imag(tempc)+flip(imag(ztemp)/real(tempc))) elseif ( @trapmode == 48 ) ; crossquotient 2 test = cabs(real(tempc)/imag(ztemp)+flip(imag(tempc)/real(ztemp))) elseif ( @trapmode == 49 ) ; crosspower 1 test = cabs(real(ztemp)^imag(tempc)+flip(imag(ztemp)^real(tempc))) elseif ( @trapmode == 50 ) ; crosspower 2 test = cabs(real(tempc)^imag(ztemp)+flip(imag(tempc)^real(ztemp))) elseif ( @trapmode == 51 ) ; crosssum test = cabs(real(ztemp)+imag(tempc)+flip(imag(ztemp)+real(tempc))) elseif ( @trapmode == 52 ) ; crossdifference 1 test = cabs(real(ztemp)-imag(tempc)+flip(imag(ztemp)-real(tempc))) elseif ( @trapmode == 53 ) ; crossdifference 2 test = cabs(real(ztemp)+imag(tempc)+flip(imag(ztemp)-real(tempc))) elseif ( @trapmode == 54 ) ; manhattan metric test = abs(real(ztemp)-real(tempc))+abs(imag(ztemp)-imag(tempc)) elseif ( @trapmode == 55 ) ; cubic metric test = ((abs(real(ztemp)-real(tempc))^3) + (abs(imag(ztemp)-imag(tempc))^3))^onethird elseif ( @trapmode == 56 ) ; cubic2 test = abs((real(ztemp)-real(tempc))^3 + (imag(ztemp)-imag(tempc))^3)^onethird elseif ( @trapmode == 57 ) ; inverted test = sqrt(abs((real(ztemp)+real(tempc))^2 - (imag(ztemp)+imag(tempc))^2)) elseif ( @trapmode == 58 ) ; quartic metric test = ((real(ztemp)-real(tempc))^4 + (imag(ztemp)-imag(tempc))^4)^onefourth elseif ( @trapmode == 59 ) ; warp1 test = sqrt(abs((real(ztemp))^2-(real(tempc))^2)) + sqrt(abs((imag(ztemp))^2-(imag(tempc))^2)) elseif ( @trapmode == 60 ) ; warp2 test = abs((real(ztemp))^4-(real(tempc))^4 + (imag(ztemp))^4-(imag(tempc))^4)^onefourth elseif ( @trapmode == 61 ) ; warp3 test = log(exp(abs(real(ztemp)-real(tempc))) + exp(abs(imag(ztemp)-imag(tempc)))) elseif ( @trapmode == 62 ) ; warp4 test = exp(log(abs(real(ztemp)-real(tempc))+1) + log(abs(imag(ztemp)-imag(tempc))+1))-1 elseif ( @trapmode == 63 ) ; warp5 test = exp(log(abs(real(ztemp)-real(tempc))) + log(abs(imag(ztemp)-imag(tempc)))) elseif ( @trapmode == 64 ) ; warp6 test = abs(real(ztemp)*real(ztemp)*real(ztemp)-real(tempc)*real(tempc)*real(tempc) + \ imag(ztemp)*imag(ztemp)*imag(ztemp)-imag(tempc)*imag(tempc)*imag(tempc))^onethird elseif ( @trapmode == 65 ) ; warp7 ftemp = real(ztemp) - real(tempc) ftemp2 = imag(ztemp) - imag(tempc) test = sqrt(abs(ftemp*ftemp*ftemp + ftemp2*ftemp2*ftemp2)) endif ; trapmode if ( @whattotrap == 0 ) ; minimum if ( test < tvtrapped ) tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle endif ; test elseif ( @whattotrap == 1 ) ; maximum if ( test > tvtrapped ) tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle endif ; test elseif ( @whattotrap == 2 ) ; 2nd minimum if ( test < tvtrapped ) tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 3 ) ; 3rd minimum if ( test < tvtrapped ) tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped3 = ziatrapped2, ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 4 ) ; 4th minimum if ( test < tvtrapped ) tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped4 = ziatrapped3, ziatrapped3 = ziatrapped2, ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 5 ) ; 2nd maximum if ( test > tvtrapped ) tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 6 ) ; 3rd maximum if ( test > tvtrapped ) tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped3 = ziatrapped2, ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 7 ) ; 4th maximum if ( test > tvtrapped ) tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped4 = ziatrapped3, ziatrapped3 = ziatrapped2, ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 8 ) ; 1st to dip below threshold value if ( itrapped == 0 ) ; nothing trapped yet if ( test < thresh ) if !@ringstyle tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle elseif test > innerradius tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle endif ; ringstyle endif ; test endif ; itrapped elseif ( @whattotrap == 9 ) ; last to dip below threshold --- just store them all if ( test < thresh ) if !@ringstyle tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle elseif test > innerradius tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle endif ; ringstyle endif ; test elseif ( @whattotrap == 10 ) ; count dips below threshold --- store the last if ( test < thresh ) count = count + 1 if !@ringstyle tvtrapped = count * test, itrapped = count * iter zatrapped = count * zangle, tatrapped = count * tangle ztrapped = count * #z, zitrapped = count * zinput ttrapped = count * tempc, trapped = TRUE ziatrapped = tempangle elseif test > innerradius tvtrapped = count * test, itrapped = count * iter zatrapped = count * zangle, tatrapped = count * tangle ztrapped = count * #z, zitrapped = count * zinput ttrapped = count * tempc, trapped = TRUE ziatrapped = tempangle endif ; ringstyle endif ; test elseif ( @whattotrap == 11 ) ; 2nd to dip below threshold value if ( test < thresh ) if ( itrapped == 0 ) ; nothing trapped yet, set flag for next time itrapped = -1, trapped = TRUE elseif itrapped == -1 ; must be the 2nd threshold value if !@ringstyle tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle elseif test > innerradius tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle endif ; ringstyle endif ; itrapped endif ; test elseif ( @whattotrap == 12 ) ; 1st to exceed threshold limit if ( itrapped == 0 ) ; nothing trapped yet if ( test > thresh ) if !@ringstyle tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle elseif test < innerradius ; really an outer radius for limits tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle endif ; ringstyle endif ; test endif ; itrapped elseif ( @whattotrap == 13 ) ; 2nd to exceed threshold limit if ( test > thresh ) if ( itrapped == 0 ) ; nothing trapped yet, set flag for next time itrapped = -1, trapped = TRUE elseif itrapped == -1 ; must be the 2nd threshold value if !@ringstyle tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle elseif test < innerradius ; really an outer radius tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle endif ; ringstyle endif ; itrapped endif ; test elseif ( @whattotrap == 14 ) ; last to exceed threshold --- just store them all if ( test > thresh ) if !@ringstyle tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle elseif test < innerradius ; really an outer radius for limits tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle endif ; ringstyle endif ; test elseif ( @whattotrap == 15 ) ; Nth #z iterate itercount = itercount + 1 if itercount == @nthiterate tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle endif ; itercount elseif ( @whattotrap == 16 ) ; last #z iterate; just store them all tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle elseif (@whattotrap > 16) && (@whattotrap != 26) ; maximum/minimum combos; need to find & store both ; trapped2 will hold he max, tvtrapped the min if test < tvtrapped ; is it a new min? tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle elseif test > tvtrapped2 ; is it a new max? tvtrapped2 = test, itrapped2 = iter, zatrapped2 = zangle, tatrapped2 = tangle ztrapped2 = #z, zitrapped2 = zinput, ttrapped2 = tempc, trapped = TRUE ziatrapped2 = tempangle endif ; test elseif ( @whattotrap == 26 ) ; count dips below threshold value if ( test < thresh ) if !@ringstyle tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle, hitcount = hitcount+1 elseif test > innerradius tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle, hitcount = hitcount+1 endif ; ringstyle endif ; test elseif ( @whattotrap == 27 ) ; average tvtrapped = test+tvtrapped, itrapped = iter+itrapped, zatrapped = zangle+zatrapped, tatrapped = tangle+tatrapped ztrapped = #z+ztrapped, zitrapped = zinput+zitrapped, ttrapped = tempc+ttrapped, trapped = TRUE ziatrapped = tempangle+ziatrapped endif ; whattotrap if ( @varymode == 0 ) ; feedback only on iterations where something was trapped vary = trapped elseif ( @varymode == 1 ) ; feedback when nothing was trapped vary = !trapped else ; feedback on each iteration, if enabled for a given parameter vary = TRUE endif ; varymode trapped = FALSE ; reset flag for next iteration if vary ; vary chosen parameter if set ftemp = cabs(zinput) sign = real(zinput)/abs(real(zinput)) if @varyrotation rotation = rotation + rotationstep * rotation * ftemp * sign endif ; varyrotation if @varyscale scale = scale + scalestep * scale * ftemp * sign endif ; varyscale if @varythresh thresh = thresh + threshstep * thresh * ftemp * sign if @ringstyle if @whattotrap < 12 innerradius = thresh - rwidth else innerradius = thresh + rwidth endif ; whattotrap endif ; ringstyle endif ; varythresh if @varyrwidth rwidth = rwidth + ringstep * rwidth * ftemp * sign if @whattotrap < 12 innerradius = thresh - rwidth else innerradius = thresh + rwidth endif ; whattotrap endif ; varyrwidth if @varycenter tempx = real(center) + centerstep * real(center) * ftemp * sign tempy = imag(center) + centerstep * imag(center) * ftemp * sign center = tempx + flip( tempy ) endif ; varycenter if @varyfBm fBmmamount = fBmmamount + fBmstep * fBmmamount * ftemp * sign endif ; varyfBm endif ; vary endif ; iter final: if ( itrapped != 0 ) ; something has been trapped if (( @whattotrap == 2 ) || ( @whattotrap == 5 )) ; we need to swap some values ; so we will plot the right thing tvtrapped = tvtrapped2, itrapped = itrapped2, zatrapped = zatrapped2, tatrapped = tatrapped2 ztrapped = ztrapped2, zitrapped = zitrapped2, ttrapped = ttrapped2, ziatrapped = ziatrapped2 elseif (( @whattotrap == 3 ) || ( @whattotrap == 6 )) tvtrapped = tvtrapped3, itrapped = itrapped3, zatrapped = zatrapped3, tatrapped = tatrapped3 ztrapped = ztrapped3, zitrapped = zitrapped3, ttrapped = ttrapped3, ziatrapped = ziatrapped3 elseif (( @whattotrap == 4 ) || ( @whattotrap == 7 )) tvtrapped = tvtrapped4, itrapped = itrapped4, zatrapped = zatrapped4, tatrapped = tatrapped4 ztrapped = ztrapped4, zitrapped = zitrapped4, ttrapped = ttrapped4, ziatrapped = ziatrapped4 elseif @whattotrap == 17 ; max-min tvtrapped = tvtrapped2-tvtrapped, itrapped = itrapped2-itrapped zatrapped = zatrapped2-zatrapped, tatrapped = tatrapped2-tatrapped ztrapped = ztrapped2-ztrapped, zitrapped = zitrapped2-zitrapped ttrapped = ttrapped2-ttrapped, ziatrapped = ziatrapped2-ziatrapped elseif @whattotrap == 18 ; max+min tvtrapped = tvtrapped2+tvtrapped, itrapped = itrapped2+itrapped zatrapped = zatrapped2+zatrapped, tatrapped = tatrapped2+tatrapped ztrapped = ztrapped2+ztrapped, zitrapped = zitrapped2+zitrapped ttrapped = ttrapped2+ttrapped, ziatrapped = ziatrapped2+ziatrapped elseif @whattotrap == 19 ; max*min tvtrapped = tvtrapped2*tvtrapped, itrapped = itrapped2*itrapped zatrapped = zatrapped2*zatrapped, tatrapped = tatrapped2*tatrapped ztrapped = ztrapped2*ztrapped, zitrapped = zitrapped2*zitrapped ttrapped = ttrapped2*ttrapped, ziatrapped = ziatrapped2*ziatrapped elseif @whattotrap == 20 ; max/min tvtrapped = tvtrapped2/tvtrapped, itrapped = round(itrapped2/itrapped) zatrapped = zatrapped2/zatrapped, tatrapped = tatrapped2/tatrapped ztrapped = ztrapped2/ztrapped, zitrapped = zitrapped2/zitrapped ttrapped = ttrapped2/ttrapped, ziatrapped = ziatrapped2/ziatrapped elseif @whattotrap == 21 ; max^min tvtrapped = tvtrapped2^tvtrapped, itrapped = round(itrapped2^itrapped) zatrapped = zatrapped2^zatrapped, tatrapped = tatrapped2^tatrapped ztrapped = ztrapped2^ztrapped, zitrapped = zitrapped2^zitrapped ttrapped = ttrapped2^ttrapped, ziatrapped = ziatrapped2^ziatrapped elseif @whattotrap == 22 ; min-max tvtrapped = tvtrapped-tvtrapped2, itrapped = itrapped-itrapped2 zatrapped = zatrapped-zatrapped2, tatrapped = tatrapped-tatrapped2 ztrapped = ztrapped-ztrapped2, zitrapped = zitrapped-zitrapped2 ttrapped = ttrapped-ttrapped2, ziatrapped = ziatrapped-ziatrapped2 elseif @whattotrap == 23 ; min/max tvtrapped = tvtrapped/tvtrapped2, itrapped = round(itrapped/itrapped2) zatrapped = zatrapped/zatrapped2, tatrapped = tatrapped/tatrapped2 ztrapped = ztrapped/ztrapped2, zitrapped = zitrapped/zitrapped2 ttrapped = ttrapped/ttrapped2, ziatrapped = ziatrapped/ziatrapped2 elseif @whattotrap == 24 ; min^max tvtrapped = tvtrapped^tvtrapped2, itrapped = round(itrapped^itrapped2) zatrapped = zatrapped^zatrapped2, tatrapped = tatrapped^tatrapped2 ztrapped = ztrapped^ztrapped2, zitrapped = zitrapped^zitrapped2 ttrapped = ttrapped^ttrapped2, ziatrapped = ziatrapped^ziatrapped2 elseif @whattotrap == 25 ; average: (max+min)/2 tvtrapped = (tvtrapped+tvtrapped2)/2, itrapped = trunc((itrapped+itrapped2)/2) zatrapped = (zatrapped+zatrapped2)/2, tatrapped = (tatrapped+tatrapped2)/2 ztrapped = (ztrapped+ztrapped2)/2, zitrapped = (zitrapped+zitrapped2)/2 ttrapped = (ttrapped+ttrapped2)/2, ziatrapped = (ziatrapped2+ziatrapped)/2 elseif @whattotrap == 27 ; average ftemp = 1/(iter-@skippediters) tvtrapped = tvtrapped*ftemp, itrapped = round(itrapped*ftemp), zatrapped = zatrapped*ftemp tatrapped = tatrapped*ftemp, ztrapped = ztrapped*ftemp, zitrapped = zitrapped*ftemp ttrapped = ttrapped*ftemp, ziatrapped = ziatrapped*ftemp endif ; whattotrap ; If enabled, mask this point if @maskA ; check the first mask if ( @maskwhatA == 0 ) ; distance ftemp = cabs( ztrapped - ttrapped ) elseif ( @maskwhatA == 1 ) ; mod distance (distance to zinput, not #z) ftemp = cabs( zitrapped - ttrapped ) elseif ( @maskwhatA == 2 ) ; magnitude ftemp = cabs(ztrapped) elseif ( @maskwhatA == 3 ) ; modulated magnitude ftemp = cabs(zitrapped) elseif ( @maskwhatA == 4 ) ; flavor value (formerly called 'test') ftemp = tvtrapped if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 5 ) ; iteration ftemp = itrapped elseif ( @maskwhatA == 6 ) ; angle ftemp = zatrapped if @maskAmod ftemp = ftemp/twopi endif ; @maskAmod elseif ( @maskwhatA == 7 ) ; modulated angle ftemp = ziatrapped if @maskAmod ftemp = abs(ftemp)/twopi endif ; @maskAmod elseif ( @maskwhatA == 8 ) ; real ftemp = real( ztrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 9 ) ; modulated real ftemp = real( zitrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 10 ) ; imaginary ftemp = imag( ztrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 11 ) ; modulated imaginary ftemp = imag( zitrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 12 ) ; trap magnitude ftemp = cabs(ttrapped) elseif ( @maskwhatA == 13 ) ; trap angle ftemp = tatrapped if @maskAmod ftemp = abs(ftemp)/twopi endif ; @maskAmod elseif ( @maskwhatA == 14 ) ; trap real ftemp = real( ttrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 15 ) ; trap imaginary ftemp = imag( ttrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 16 ) ; difference angle ftemp = ziatrapped - tatrapped if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 17 ) ; difference angle 2 ftemp = zatrapped - tatrapped if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 18 ) ; sum if @maskAmod ftemp = cabs( zitrapped + ttrapped ) else ftemp = cabs( ztrapped + ttrapped ) endif ; @maskAmod elseif ( @maskwhatA == 19 ) ; product if @maskAmod ftemp = cabs( zitrapped * ttrapped ) else ftemp = cabs( ztrapped * ttrapped ) endif ; @maskAmod elseif ( @maskwhatA == 20 ) ; quotient 1 if @maskAmod ftemp = cabs( zitrapped / ttrapped ) else ftemp = cabs( ztrapped / ttrapped ) endif ; @maskAmod elseif ( @maskwhatA == 21 ) ; quotient 2 if @maskAmod ftemp = cabs( ttrapped / zitrapped ) else ftemp = cabs( ttrapped / ztrapped ) endif ; @maskAmod elseif ( @maskwhatA == 22 ) ; power 1 if @maskAmod ftemp = cabs( zitrapped ^ ttrapped ) else ftemp = cabs( ztrapped ^ ttrapped ) endif ; @maskAmod elseif ( @maskwhatA == 23 ) ; power 2 if @maskAmod ftemp = cabs( ttrapped ^ zitrapped ) else ftemp = cabs( ttrapped ^ ztrapped ) endif ; @maskAmod elseif ( @maskwhatA == 24 ) ; arithmetic mean if @maskAmod ftemp = cabs( (zitrapped + ttrapped)/2 ) else ftemp = cabs( (ztrapped + ttrapped)/2 ) endif ; @maskAmod elseif ( @maskwhatA == 25 ) ; geometric mean if @maskAmod ftemp = cabs( sqrt(zitrapped * ttrapped) ) else ftemp = cabs( sqrt(ztrapped * ttrapped) ) endif ; @maskAmod elseif ( @maskwhatA == 26 ) ; modulus iteration ftemp = itrapped % @itermaskmod elseif ( @maskwhatA == 27 ) ; modulus angle ftemp = zatrapped % @anglemaskmod endif ; @maskwhatA if @maskifA == "falls above" if ftemp > @maskAmin maskAset = TRUE endif ; ftemp elseif @maskifA == "falls below" if ftemp < @maskAmin maskAset = TRUE endif ; ftemp elseif @maskifA == "falls between" if (ftemp > @maskAmin) && (ftemp < @maskAmax) maskAset = TRUE endif ; ftemp elseif @maskifA == "falls outside" if (ftemp < @maskAmin) || (ftemp > @maskAmax) maskAset = TRUE endif ; ftemp elseif @maskifA == "equals" if ftemp == @maskAmin maskAset = TRUE endif ; ftemp elseif @maskifA == "not equal" if ftemp != @maskAmin maskAset = TRUE endif ; ftemp endif ; @maskifA endif ; maskA if @maskB ; check the second mask if ( @maskwhatB == 0 ) ; distance ftemp = cabs( ztrapped - ttrapped ) elseif ( @maskwhatB == 1 ) ; mod distance (distance to zinput, not #z) ftemp = cabs( zitrapped - ttrapped ) elseif ( @maskwhatB == 2 ) ; magnitude ftemp = cabs(ztrapped) elseif ( @maskwhatB == 3 ) ; modulated magnitude ftemp = cabs(zitrapped) elseif ( @maskwhatB == 4 ) ; flavor value (formerly called 'test') ftemp = tvtrapped if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 5 ) ; iteration ftemp = itrapped elseif ( @maskwhatB == 6 ) ; angle ftemp = zatrapped if @maskBmod ftemp = ftemp/twopi endif ; @maskBmod elseif ( @maskwhatB == 7 ) ; modulated angle ftemp = ziatrapped if @maskBmod ftemp = abs(ftemp)/twopi endif ; @maskBmod elseif ( @maskwhatB == 8 ) ; real ftemp = real( ztrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 9 ) ; modulated real ftemp = real( zitrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 10 ) ; imaginary ftemp = imag( ztrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 11 ) ; modulated imaginary ftemp = imag( zitrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 12 ) ; trap magnitude ftemp = cabs(ttrapped) elseif ( @maskwhatB == 13 ) ; trap angle ftemp = tatrapped if @maskBmod ftemp = abs(ftemp)/twopi endif ; @maskBmod elseif ( @maskwhatB == 14 ) ; trap real ftemp = real( ttrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 15 ) ; trap imaginary ftemp = imag( ttrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 16 ) ; difference angle ftemp = ziatrapped - tatrapped if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 17 ) ; difference angle 2 ftemp = zatrapped - tatrapped if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 18 ) ; sum if @maskBmod ftemp = cabs( zitrapped + ttrapped ) else ftemp = cabs( ztrapped + ttrapped ) endif ; @maskBmod elseif ( @maskwhatB == 19 ) ; product if @maskBmod ftemp = cabs( zitrapped * ttrapped ) else ftemp = cabs( ztrapped * ttrapped ) endif ; @maskBmod elseif ( @maskwhatB == 20 ) ; quotient 1 if @maskBmod ftemp = cabs( zitrapped / ttrapped ) else ftemp = cabs( ztrapped / ttrapped ) endif ; @maskBmod elseif ( @maskwhatB == 21 ) ; quotient 2 if @maskBmod ftemp = cabs( ttrapped / zitrapped ) else ftemp = cabs( ttrapped / ztrapped ) endif ; @maskBmod elseif ( @maskwhatB == 22 ) ; power 1 if @maskBmod ftemp = cabs( zitrapped ^ ttrapped ) else ftemp = cabs( ztrapped ^ ttrapped ) endif ; @maskBmod elseif ( @maskwhatB == 23 ) ; power 2 if @maskBmod ftemp = cabs( ttrapped ^ zitrapped ) else ftemp = cabs( ttrapped ^ ztrapped ) endif ; @maskBmod elseif ( @maskwhatB == 24 ) ; arithmetic mean if @maskBmod ftemp = cabs( (zitrapped + ttrapped)/2 ) else ftemp = cabs( (ztrapped + ttrapped)/2 ) endif ; @maskBmod elseif ( @maskwhatB == 25 ) ; geometric mean if @maskBmod ftemp = cabs( sqrt(zitrapped * ttrapped) ) else ftemp = cabs( sqrt(ztrapped * ttrapped) ) endif ; @maskBmod elseif ( @maskwhatB == 26 ) ; modulus iteration ftemp = itrapped % @itermaskmodB elseif ( @maskwhatB == 27 ) ; modulus angle ftemp = zatrapped % @anglemaskmodB endif ; @maskwhatB if @maskifB == "falls above" if ftemp > @maskBmin maskBset = TRUE endif ; ftemp elseif @maskifB == "falls below" if ftemp < @maskBmin maskBset = TRUE endif ; ftemp elseif @maskifB == "falls between" if (ftemp > @maskBmin) && (ftemp < @maskBmax) maskBset = TRUE endif ; ftemp elseif @maskifB == "falls outside" if (ftemp < @maskBmin) || (ftemp > @maskBmax) maskBset = TRUE endif ; ftemp elseif @maskifB == "equals" if ftemp == @maskBmin maskBset = TRUE endif ; ftemp elseif @maskifB == "not equal" if ftemp != @maskBmin maskBset = TRUE endif ; ftemp endif ; @maskifB endif ; maskB ; Mask combination logic if @maskA && @maskB if @maskcombo == "or" if maskAset || maskBset #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "and" if maskAset && maskBset #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "not" if maskAset && !maskBset #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "eor" if (maskAset && !maskBset) || (!maskAset && maskBset) #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "nor" if !(maskAset || maskBset) #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "nand" if !(maskAset && maskBset) #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "neor" if !((maskAset && !maskBset) || (!maskAset && maskBset)) #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "Aor!B" if maskAset || !maskBset #solid = TRUE solidset = TRUE endif ; maskAset endif ; @maskcombo elseif @maskA if maskAset #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskB if maskBset #solid = TRUE solidset = TRUE endif ; maskBset endif ; @maskA && @maskB ; Figure amount of texture ; Texture code adapted from code of ldm & reb if !solidset if @texture if @texinit == "z" ztemp2 = ztrapped elseif @texinit == "mod z" ztemp2 = zitrapped else ; @texinit == "trap" ztemp2 = ttrapped endif ; @texinit index = 0 ztemp2 = ztemp2*10^@texpower while index < 4 if ( texfunc[index] == 0 ) ztemp = ztemp2 elseif ( texfunc[index] == 1 ) ztemp = 1/ztemp2 elseif ( texfunc[index] == 2 ) ztemp = ztemp2 * ztemp2 elseif ( texfunc[index] == 3 ) ztemp = 1 / ( ztemp2 * ztemp2 ) elseif ( texfunc[index] == 4 ) ztemp = log(ztemp2) elseif ( texfunc[index] == 5 ) ztemp = exp( ztemp2) elseif ( texfunc[index] == 6 ) ztemp = ztemp2^ztemp2 elseif ( texfunc[index] == 7 ) ztemp = sin( ztemp2 ) elseif ( texfunc[index] == 8 ) ztemp = cos( ztemp2 ) elseif ( texfunc[index] == 9 ) ztemp = tan( ztemp2 ) elseif ( texfunc[index] == 10 ) ztemp = asin( ztemp2 ) elseif ( texfunc[index] == 11 ) ztemp = acos( ztemp2 ) elseif ( texfunc[index] == 12 ) ztemp = atan( ztemp2 ) elseif ( texfunc[index] == 13 ) ztemp = sinh( ztemp2 ) elseif ( texfunc[index] == 14 ) ztemp = cosh( ztemp2 ) elseif ( texfunc[index] == 15 ) ztemp = tanh( ztemp2 ) elseif ( texfunc[index] == 16 ) ztemp = asinh( ztemp2 ) elseif ( texfunc[index] == 17 ) ztemp = acosh( ztemp2 ) elseif ( texfunc[index] == 18 ) ztemp = atanh( ztemp2 ) elseif ( texfunc[index] == 19 ) ztemp = log( 1/ztemp2 ) elseif ( texfunc[index] == 20 ) ztemp = log( log( ztemp2 )) elseif ( texfunc[index] == 21 ) ztemp = exp( -ztemp2 ) elseif ( texfunc[index] == 22 ) ztemp = exp( 1/ztemp2 ) elseif ( texfunc[index] == 23 ) ztemp = ztemp2^(-ztemp2) elseif ( texfunc[index] == 24 ) ztemp = sin( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 25 ) ztemp = cos( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 26 ) ztemp = tan( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 27 ) ztemp = cotan( ztemp2 ) elseif ( texfunc[index] == 28 ) ztemp = 1/cos( ztemp2 ) elseif ( texfunc[index] == 29 ) ztemp = 1/sin( ztemp2 ) elseif ( texfunc[index] == 30 ) ztemp = cotan( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 31 ) ztemp = 1/cos( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 32 ) ztemp = 1/sin( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 33 ) ztemp = ztemp2^(ztemp2) ztemp = ztemp2^ztemp elseif ( texfunc[index] == 34 ) ztemp = ztemp2^(ztemp2) ztemp = 1/( ztemp2^ztemp ) elseif ( texfunc[index] == 35 ) ztemp = log(-ztemp2) elseif ( texfunc[index] == 36 ) ztemp = 1/log( ztemp2 ) elseif ( texfunc[index] == 37 ) ztemp = ztemp2 * log( ztemp2 ) elseif ( texfunc[index] == 38 ) ztemp = sin( ztemp2 ) / ztemp2 elseif ( texfunc[index] == 39 ) ztemp = cos( ztemp2 ) / ztemp2 elseif ( texfunc[index] == 40 ) ztemp = sin( ztemp2 ) * cos( ztemp2 ) elseif ( texfunc[index] == 41 ) ztemp = sin( ztemp2^2 ) elseif ( texfunc[index] == 42 ) ztemp = exp( -1/ztemp2 ) elseif ( texfunc[index] == 43 ) ztemp = ztemp2 * exp( ztemp2 ) elseif ( texfunc[index] == 44 ) ztemp = ztemp2 * exp( -ztemp2 ) elseif ( texfunc[index] == 45 ) ztemp = ztemp2 * exp( 1/ztemp2 ) elseif ( texfunc[index] == 46 ) ztemp = ztemp2 * exp( -1/ztemp2 ) elseif ( texfunc[index] == 47 ) ztemp = ztemp2 * ztemp2 * ztemp2 elseif ( texfunc[index] == 48 ) ztemp = 1 / ( ztemp2 * ztemp2 * ztemp2 ) elseif ( texfunc[index] == 49 ) ztemp = atan( 1 / ztemp2 ) elseif ( texfunc[index] == 50 ) ztemp = acos( 1 / ztemp2 ) elseif ( texfunc[index] == 51 ) ztemp = asin( 1 / ztemp2 ) elseif ( texfunc[index] == 52 ) ztemp = tan( ztemp2 ) / ztemp2 elseif ( texfunc[index] == 53 ) ztemp = cotan( ztemp2 ) / ztemp2 elseif ( texfunc[index] == 54 ) ztemp = 1 / ( ztemp2 * cos( ztemp2 )) elseif ( texfunc[index] == 55 ) ztemp = 1 / ( ztemp2 * sin( ztemp2 )) elseif ( texfunc[index] == 56 ) ztemp = ztemp2 * sin( ztemp2 ) elseif ( texfunc[index] == 57 ) ztemp = ztemp2 * cos( ztemp2 ) elseif ( texfunc[index] == 58 ) ztemp = ztemp2 * tan( ztemp2 ) elseif ( texfunc[index] == 59 ) ztemp = ztemp2 * cotan( ztemp2 ) elseif ( texfunc[index] == 60 ) ztemp = ztemp2/cos( ztemp2 ) elseif ( texfunc[index] == 61 ) ztemp = ztemp2/sin( ztemp2 ) elseif ( texfunc[index] == 62 ) ztemp = sin( 1/ztemp2 ) elseif ( texfunc[index] == 63 ) ztemp = cos( 1/ztemp2 ) elseif ( texfunc[index] == 64 ) ztemp = tan( 1/ztemp2 ) elseif ( texfunc[index] == 65 ) ztemp = cotan( 1/ztemp2 ) elseif ( texfunc[index] == 66 ) ztemp = 1/cos( 1/ztemp2 ) elseif ( texfunc[index] == 67 ) ztemp = 1/sin( 1/ztemp2 ) elseif ( texfunc[index] == 68 ) ztemp = cotanh( ztemp2 ) elseif ( texfunc[index] == 69 ) ztemp = 1/cosh( ztemp2 ) elseif ( texfunc[index] == 70 ) ztemp = 1/sinh( ztemp2 ) elseif ( texfunc[index] == 71 ) ztemp = atanh( 1/ztemp2 ) elseif ( texfunc[index] == 72 ) ztemp = acosh( 1/ztemp2 ) elseif ( texfunc[index] == 73 ) ztemp = asinh( 1/ztemp2 ) elseif texfunc[index] == 74 ztemp = ztemp2^tex2powers[index] elseif texfunc[index] == 75 ztemp = sinh(ztemp2) ztemp = ztemp * ztemp elseif texfunc[index] == 76 ztemp = cosh( ztemp2 ) ztemp = ztemp * ztemp elseif texfunc[index] == 77 ztemp = tanh(ztemp2) ztemp = ztemp * ztemp elseif texfunc[index] == 78 ztemp = cotanh( ztemp2 ) ztemp = ztemp * ztemp elseif texfunc[index] == 79 ztemp = 1/cosh(ztemp2) ztemp = ztemp * ztemp elseif texfunc[index] == 80 ztemp = 1 / sinh( ztemp2 ) ztemp = ztemp * ztemp elseif texfunc[index] == 81 ztemp = sinh(1/ztemp2) elseif texfunc[index] == 82 ztemp = cosh(1/ztemp2) elseif texfunc[index] == 83 ztemp = tanh(1/ztemp2) elseif texfunc[index] == 84 ztemp = cotanh(1/ztemp2) elseif texfunc[index] == 85 ztemp = 1/cosh(1/ztemp2) elseif texfunc[index] == 86 ztemp = 1/sinh(1/ztemp2) elseif texfunc[index] == 87 ztemp = sin( ztemp2 ) * tan(ztemp2) elseif texfunc[index] == 88 ztemp = sinh(ztemp2) * tanh(ztemp2) elseif texfunc[index] == 89 ztemp = sinh(ztemp2) * cosh(ztemp2) elseif texfunc[index] == 90 ztemp = sinh(ztemp2) ztemp2 = cosh(ztemp2) ztemp = ztemp*ztemp*ztemp2*ztemp2 elseif texfunc[index] == 91 ztemp = sin(ztemp2) ztemp2 = cos(ztemp2) ztemp = ztemp*ztemp*ztemp2*ztemp2 elseif texfunc[index] == 92 ztemp = 1/ztemp2 ztemp = sin(ztemp)*cos(ztemp) elseif texfunc[index] == 93 ztemp = sin( 1/ztemp2 ) ztemp = ztemp*ztemp elseif texfunc[index] == 94 ztemp = sin(ztemp2) * cos(1/ztemp2) elseif texfunc[index] == 95 ztemp = sin(ztemp2) * sin(1/ztemp2) elseif texfunc[index] == 96 ztemp = log(ztemp2) ztemp = ztemp*ztemp elseif texfunc[index] == 97 ztemp = sin(ztemp2) * sin(2*ztemp2) elseif texfunc[index] == 98 ztemp = exp(2*ztemp2) elseif texfunc[index] == 99 ztemp = exp(-2*ztemp2) elseif texfunc[index] == 100 ztemp = 1/ztemp2 ztemp = sinh(ztemp)*cosh(ztemp) elseif texfunc[index] == 101 ztemp = sinh( 1/ztemp2 ) ztemp = ztemp*ztemp elseif texfunc[index] == 102 ztemp = sinh(ztemp2) * cosh(1/ztemp2) elseif texfunc[index] == 103 ztemp = sinh(ztemp2) * sinh(1/ztemp2) elseif texfunc[index] == 104 ztemp = sin(ztemp2) * sinh(ztemp2) elseif texfunc[index] == 105 ztemp = sin(ztemp2) * cosh(ztemp2) elseif texfunc[index] == 106 ztemp = sin(ztemp2) ztemp2 = sinh(ztemp2) ztemp = ztemp*ztemp*ztemp2*ztemp2 elseif texfunc[index] == 107 ztemp = sin(ztemp2)*exp(ztemp2) elseif texfunc[index] == 108 ztemp = cos(ztemp2)*exp(ztemp2) elseif texfunc[index] == 109 ztemp = sinh(ztemp2)*exp(ztemp2) elseif texfunc[index] == 110 ztemp = cosh(ztemp2)*exp(ztemp2) elseif texfunc[index] == 111 ztemp = sin(ztemp2)*log(ztemp2) elseif texfunc[index] == 112 ztemp = cos(ztemp2)*log(ztemp2) elseif texfunc[index] == 113 ztemp = sinh(ztemp2)*log(ztemp2) elseif texfunc[index] == 114 ztemp = cosh(ztemp2)*log(ztemp2) elseif texfunc[index] == 115 ztemp = exp(ztemp2^2) elseif texfunc[index] == 116 ztemp = exp(1/(ztemp2^2)) elseif texfunc[index] == 117 ztemp = abs(ztemp2) elseif texfunc[index] == 118 ztemp = round(ztemp2) elseif texfunc[index] == 119 ztemp = trunc(ztemp2) elseif texfunc[index] == 120 ztemp = ceil(ztemp2) elseif texfunc[index] == 121 ztemp = floor(ztemp2) elseif texfunc[index] == 122 ztemp = ztemp2/log(ztemp2) elseif texfunc[index] == 123 ztemp = log(ztemp2)/ztemp2 elseif texfunc[index] == 124 ztemp = exp(ztemp2)/ztemp2 elseif texfunc[index] == 125 ztemp = exp(1/ztemp2)/ztemp2 elseif texfunc[index] == 126 ztemp = exp(ztemp2^2)/ztemp2 elseif texfunc[index] == 127 ztemp = exp(1/(ztemp2^2))/ztemp2 elseif texfunc[index] == 128 ztemp = ztemp2 * exp(ztemp2^2) elseif texfunc[index] == 129 ztemp = ztemp2 * exp(1/(ztemp2^2)) elseif texfunc[index] == 130 ztemp = exp(-(ztemp2^2)) elseif texfunc[index] == 131 ztemp = exp(-1/(ztemp2^2)) elseif texfunc[index] == 132 ztemp = exp(-(ztemp2^2))/ztemp2 elseif texfunc[index] == 133 ztemp = exp(-1/(ztemp2^2))/ztemp2 elseif texfunc[index] == 134 ztemp = ztemp2 * exp(-(ztemp2^2)) else ; texfunc[index] == 135 ztemp = ztemp2 * exp(-1/(ztemp2^2)) endif ; texfunc[] if index == 0 ztemp2 = (ztemp + @texf1offset) * @texf1multiplier elseif index == 1 ztemp2 = ztemp * @texscale ztemp2 = ztemp2 - round(ztemp2) + @texf2offset elseif index == 2 ztemp2 = (ztemp + @texf3offset) * @texf3multiplier elseif index == 3 ztemp2 = (ztemp + @texoffset) * @texf4offset endif ; index index = index + 1 endwhile ; index ftemp = cabs(ztemp2) * @texmod texadjust = (ftemp - trunc(ftemp)) * @texamount endif ; @texture endif ; solidset ; Figure amount of fBm ; fBm code adapted from code of dmj, mt, and others if !solidset if @fBm if @fbminit == "z" ztemp2 = ztrapped + @fbmcplxoffset elseif @fbminit == "mod z" ztemp2 = zitrapped + @fbmcplxoffset elseif @fbminit == "trap" ztemp2 = ttrapped + @fbmcplxoffset elseif @fbminit == "blend 1" ztemp2 = @fbmzweight*ztrapped + @fbmtrapweight*ttrapped + @fbmcplxoffset elseif @fbminit == "blend 2" ztemp2 = @fbmzweight*zitrapped + @fbmtrapweight*ttrapped + @fbmcplxoffset else ; @fbminit == "blend 3" ztemp2 = @fbmzweight*ztrapped + @fbmtrapweight*zitrapped + @fbmcplxoffset endif ; @fbminit complex br = (0,1) ^ (@bangle / 90.0) complex br2 = (0,1) ^ (@banglestep / 90.0) complex bp = ztemp2 * @bscale * br float bsum = 0.0 int bi = @boctaves while (bi > 0) float bx0 = floor(real(bp)) % 256 float by0 = floor(imag(bp)) % 256 if bx0 < 0 bx0 = bx0 + 256 endif ; bx0 if by0 < 0 by0 = by0 + 256 endif ; by0 float bx1 = (bx0 + 1) % 256 float by1 = (by0 + 1) % 256 float rx0 = real(bp) - floor(real(bp)) float ry0 = imag(bp) - floor(imag(bp)) float rx1 = rx0 - 1 float ry1 = ry0 - 1 float b00 = (bx0^@bpower % 65536 + by0)^@bpower % 65536 float b10 = (bx1^@bpower % 65536 + by0)^@bpower % 65536 float b01 = (bx0^@bpower % 65536 + by1)^@bpower % 65536 float b11 = (bx1^@bpower % 65536 + by1)^@bpower % 65536 float g_b00_0 = (b00)^@bpower*0.25 % 512 - 256 float g_b10_0 = (b10)^@bpower*0.25 % 512 - 256 float g_b01_0 = (b01)^@bpower*0.25 % 512 - 256 float g_b11_0 = (b11)^@bpower*0.25 % 512 - 256 float g_b00_1 = (b00+1)^@bpower*0.25 % 512 - 256 float g_b10_1 = (b10+1)^@bpower*0.25 % 512 - 256 float g_b01_1 = (b01+1)^@bpower*0.25 % 512 - 256 float g_b11_1 = (b11+1)^@bpower*0.25 % 512 - 256 float bd = 0.0 bd = 1 / sqrt(sqr(g_b00_0) + sqr(g_b00_1)) g_b00_0 = g_b00_0 * bd g_b00_1 = g_b00_1 * bd bd = 1 / sqrt(sqr(g_b10_0) + sqr(g_b10_1)) g_b10_0 = g_b10_0 * bd g_b10_1 = g_b10_1 * bd bd = 1 / sqrt(sqr(g_b01_0) + sqr(g_b01_1)) g_b01_0 = g_b01_0 * bd g_b01_1 = g_b01_1 * bd bd = 1 / sqrt(sqr(g_b11_0) + sqr(g_b11_1)) g_b11_0 = g_b11_0 * bd g_b11_1 = g_b11_1 * bd float u1 = rx0 * g_b00_0 + ry0 * g_b00_1 float v1 = rx1 * g_b10_0 + ry0 * g_b10_1 float u2 = rx0 * g_b01_0 + ry1 * g_b01_1 float v2 = rx1 * g_b11_0 + ry1 * g_b11_1 float sx = sqr(rx0) * (3 - rx0*2) float sy = sqr(ry0) * (3 - ry0*2) float ba = u1 + sx*(v1-u1) float bb = u2 + sx*(v2-u2) bsum = bsum + (ba + sy*(bb-ba))* bfreq bfreq = bfreq * @bstep bp = bp * br2 / @bstep bi = bi - 1 endwhile ; bi fBmadjust = fBmmamount * (bsum + 1) endif ; @fBm if ( @colorby == 0 ) ; distance tempcolor = cabs( ztrapped - ttrapped ) if @filledtrap ftemp = cabs(ztrapped), ftemp2 = cabs(ttrapped) if (ftemp - ftemp2 < 0) tempcolor = 0 endif ; ftemp endif ; @filledtrap elseif ( @colorby == 1 ) ; mod distance (distance to zinput, not #z) tempcolor = cabs( zitrapped - ttrapped ) if @filledtrap ftemp = cabs(zitrapped), ftemp2 = cabs(ttrapped) if (ftemp - ftemp2 < 0) tempcolor = 0 endif ; ftemp endif ; @filledtrap elseif ( @colorby == 2 ) ; magnitude tempcolor = log(cabs(ztrapped)) elseif ( @colorby == 3 ) ; modulated magnitude tempcolor = cabs(zitrapped) elseif ( @colorby == 4 ) ; flavor value (formerly called 'test') tempcolor = abs(tvtrapped) elseif ( @colorby == 5 ) ; iteration tempcolor = sqrt(log(itrapped)) elseif ( @colorby == 6 ) ; angle tempcolor = zatrapped / twopi elseif ( @colorby == 7 ) ; modulated angle tempcolor = abs(ziatrapped) / twopi elseif ( @colorby == 8 ) ; real tempcolor = abs( real( ztrapped )) elseif ( @colorby == 9 ) ; modulated real tempcolor = log(abs( real( zitrapped ))) elseif ( @colorby == 10 ) ; imaginary tempcolor = abs( imag( ztrapped )) elseif ( @colorby == 11 ) ; modulated imaginary tempcolor = log(abs( imag( zitrapped ))) elseif ( @colorby == 12 ) ; trap magnitude tempcolor = cabs(ttrapped) elseif ( @colorby == 13 ) ; trap angle tempcolor = abs(tatrapped) / twopi elseif ( @colorby == 14 ) ; trap real tempcolor = abs( real( ttrapped )) elseif ( @colorby == 15 ) ; trap imaginary tempcolor = abs( imag( ttrapped )) elseif ( @colorby == 16 ) ; fBm/texture only tempcolor = 0.5 elseif ( @colorby == 17 ) ; modulated iteration tempcolor = (sqrt(log(itrapped+1)) + (itrapped % @itermodulus)) / @itermodulus elseif ( @colorby == 18 ) ; modulated iteration 2 (discrete iter) tempcolor = (itrapped % @itermodulus) / @itermodulus elseif ( @colorby == 19 ) ; smooth moditer 1 tempcolor = (sqrt(log(1+log(itrapped+1))) + (itrapped % @itermodulus)) / @itermodulus elseif ( @colorby == 20 ) ; smooth moditer 2 tempcolor = (sqrt(log(1+log(itrapped+1)))/iter + (itrapped % @itermodulus)) / @itermodulus elseif ( @colorby == 21 ) ; count if @countmode == "raw" tempcolor = hitcount*iter/#maxiter elseif @countmode == "maxiter" tempcolor = log(log(iter)+1)*hitcount/log(#maxiter) elseif @countmode == "numiter" tempcolor = log(log(iter)*hitcount+1) elseif @countmode == "raw 2" tempcolor = log(hitcount+1)*log(iter) elseif @countmode == "raw 3" tempcolor = log(hitcount+1)*iter/#maxiter endif ; @countmode elseif ( @colorby == 22 ) ; modulus angle tempcolor = (zatrapped % @anglemodulus) / @anglemodulus endif ; colorby if @softendistance if tempcolor > @softdistamt ftemp = tempcolor - @softdistamt ftemp2 = ftemp + 1 tempcolor = ftemp2^(@softdistpwr+@softaccel*log(ftemp2)) - 1 + @softdistamt else tempcolor = @softdistamt endif ; tempcolor endif ; @softendistance if @enablestretch if @stretchtype == "linear" tempcolor = tempcolor * @stretchcolor elseif @stretchtype == "linear2" tempcolor = tempcolor*stretchconstant + stretchconstant2 elseif @stretchtype == "exponential" tempcolor = (stretchconstant*exp(stretchconstant2*tempcolor))-stretchconstant elseif @stretchtype == "quadratic" tempcolor = tempcolor*tempcolor*stretchconstant + tempcolor*stretchconstant2 elseif @stretchtype == "quadratic2" tempcolor = tempcolor*tempcolor*stretchconstant + tempcolor*stretchconstant2 elseif @stretchtype == "tanh" tempcolor = 1.0 + (tanh(@stretchtanhamount*(tempcolor/@stretchtanhfixedpt - 1.0))/stretchconstant) endif ; @stretchtype endif; @enablestretch if @offsetcolor tempcolor = abs(tempcolor - @coloroffset) endif ; @offsetcolor if @offsetcolor2 tempcolor = abs(abs(tempcolor - @coloroffset2) - @coloroffset2) endif ; @offsetcolor2 ; Soften coloring of maxima if ( (@whattotrap == 1) || (@whattotrap == 5) || (@whattotrap == 6) || \ (@whattotrap == 7) || (@whattotrap > 15) ) && ( (@colorby != 4) && \ (@colorby != 5) && (@colorby != 6) && (@colorby != 7) && (@colorby < 12) ) tempcolor = (log(abs(tempcolor)))^(@maxsoften) endif ; @whattotrap if @ranges == 1 tempcolor = tempcolor + fBmadjust + texadjust else if !@maskranges tempcolor = ((tempcolor + fBmadjust + texadjust) + (itrapped % @ranges) ) / @ranges else count = (itrapped % @ranges) + 1 if @whatrange == "<=" if count <= @rangemin #solid = TRUE solidset = TRUE endif ; count elseif @whatrange == ">=" if count >= @rangemin #solid = TRUE solidset = TRUE endif ; count elseif @whatrange == "=" if count == @rangemin #solid = TRUE solidset = TRUE endif ; count elseif @whatrange == "not =" if count != @rangemin #solid = TRUE solidset = TRUE endif ; count elseif @whatrange == "between" if (count >= @rangemin) && (count <= @rangemax) #solid = TRUE solidset = TRUE endif ; count else ; @whatrange == "outside" if ((count <= @rangemin) || (count >= @rangemax)) #solid = TRUE solidset = TRUE endif ; count endif ; @whatrange if solidset == FALSE tempcolor = ((tempcolor + fBmadjust + texadjust) + (itrapped % @ranges) ) / @ranges endif ; solidset endif ; maskranges endif ; ranges endif ; solidset if !solidset if ( @colorwarp == 0 ) ftemp = tempcolor elseif ( @colorwarp == 1 ) ftemp = 1/tempcolor elseif ( @colorwarp == 2 ) ftemp = tempcolor * tempcolor elseif ( @colorwarp == 3 ) ftemp = 1 / ( tempcolor * tempcolor ) elseif ( @colorwarp == 4 ) ftemp = log(tempcolor) elseif ( @colorwarp == 5 ) ftemp = exp( tempcolor) elseif ( @colorwarp == 6 ) ftemp = tempcolor^tempcolor elseif ( @colorwarp == 7 ) ftemp = sin( tempcolor ) elseif ( @colorwarp == 8 ) ftemp = cos( tempcolor ) elseif ( @colorwarp == 9 ) ftemp = tan( tempcolor ) elseif ( @colorwarp == 10 ) ftemp = asin( tempcolor ) elseif ( @colorwarp == 11 ) ftemp = acos( tempcolor ) elseif ( @colorwarp == 12 ) ftemp = atan( tempcolor ) elseif ( @colorwarp == 13 ) ftemp = sinh( tempcolor ) elseif ( @colorwarp == 14 ) ftemp = cosh( tempcolor ) elseif ( @colorwarp == 15 ) ftemp = tanh( tempcolor ) elseif ( @colorwarp == 16 ) ftemp = asinh( tempcolor ) elseif ( @colorwarp == 17 ) ftemp = acosh( tempcolor ) elseif ( @colorwarp == 18 ) ftemp = atanh( tempcolor ) elseif ( @colorwarp == 19 ) ftemp = log( 1/tempcolor ) elseif ( @colorwarp == 20 ) ftemp = log( log( tempcolor )) elseif ( @colorwarp == 21 ) ftemp = exp( -tempcolor ) elseif ( @colorwarp == 22 ) ftemp = exp( 1/tempcolor ) elseif ( @colorwarp == 23 ) ftemp = tempcolor^(-tempcolor) elseif ( @colorwarp == 24 ) ftemp = sin( tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 25 ) ftemp = cos( tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 26 ) ftemp = tan( tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 27 ) ftemp = cotan( tempcolor ) elseif ( @colorwarp == 28 ) ftemp = 1/cos( tempcolor ) elseif ( @colorwarp == 29 ) ftemp = 1/sin( tempcolor ) elseif ( @colorwarp == 30 ) ftemp = cotan( tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 31 ) ftemp = 1/cos( tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 32 ) ftemp = 1/sin( tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 33 ) ftemp = tempcolor^(tempcolor) ftemp = tempcolor^ftemp elseif ( @colorwarp == 34 ) ftemp = tempcolor^(tempcolor) ftemp = 1/( tempcolor^ftemp ) elseif ( @colorwarp == 35 ) ftemp = log(-tempcolor) elseif ( @colorwarp == 36 ) ftemp = 1/log( tempcolor ) elseif ( @colorwarp == 37 ) ftemp = tempcolor * log( tempcolor ) elseif ( @colorwarp == 38 ) ftemp = sin( tempcolor ) / tempcolor elseif ( @colorwarp == 39 ) ftemp = cos( tempcolor ) / tempcolor elseif ( @colorwarp == 40 ) ftemp = sin( tempcolor ) * cos( tempcolor ) elseif ( @colorwarp == 41 ) ftemp = sin( tempcolor^2 ) elseif ( @colorwarp == 42 ) ftemp = exp( -1/tempcolor ) elseif ( @colorwarp == 43 ) ftemp = tempcolor * exp( tempcolor ) elseif ( @colorwarp == 44 ) ftemp = tempcolor * exp( -tempcolor ) elseif ( @colorwarp == 45 ) ftemp = tempcolor * exp( 1/tempcolor ) elseif ( @colorwarp == 46 ) ftemp = tempcolor * exp( -1/tempcolor ) elseif ( @colorwarp == 47 ) ftemp = tempcolor * tempcolor * tempcolor elseif ( @colorwarp == 48 ) ftemp = 1 / ( tempcolor * tempcolor * tempcolor ) elseif ( @colorwarp == 49 ) ftemp = atan( 1 / tempcolor ) elseif ( @colorwarp == 50 ) ftemp = acos( 1 / tempcolor ) elseif ( @colorwarp == 51 ) ftemp = asin( 1 / tempcolor ) elseif ( @colorwarp == 52 ) ftemp = tan( tempcolor ) / tempcolor elseif ( @colorwarp == 53 ) ftemp = cotan( tempcolor ) / tempcolor elseif ( @colorwarp == 54 ) ftemp = 1 / ( tempcolor * cos( tempcolor )) elseif ( @colorwarp == 55 ) ftemp = 1 / ( tempcolor * sin( tempcolor )) elseif ( @colorwarp == 56 ) ftemp = tempcolor * sin( tempcolor ) elseif ( @colorwarp == 57 ) ftemp = tempcolor * cos( tempcolor ) elseif ( @colorwarp == 58 ) ftemp = tempcolor * tan( tempcolor ) elseif ( @colorwarp == 59 ) ftemp = tempcolor * cotan( tempcolor ) elseif ( @colorwarp == 60 ) ftemp = tempcolor/cos( tempcolor ) elseif ( @colorwarp == 61 ) ftemp = tempcolor/sin( tempcolor ) elseif ( @colorwarp == 62 ) ftemp = sin( 1/tempcolor ) elseif ( @colorwarp == 63 ) ftemp = cos( 1/tempcolor ) elseif ( @colorwarp == 64 ) ftemp = tan( 1/tempcolor ) elseif ( @colorwarp == 65 ) ftemp = cotan( 1/tempcolor ) elseif ( @colorwarp == 66 ) ftemp = 1/cos( 1/tempcolor ) elseif ( @colorwarp == 67 ) ftemp = 1/sin( 1/tempcolor ) elseif ( @colorwarp == 68 ) ftemp = cotanh( tempcolor ) elseif ( @colorwarp == 69 ) ftemp = 1/cosh( tempcolor ) elseif ( @colorwarp == 70 ) ftemp = 1/sinh( tempcolor ) elseif ( @colorwarp == 71 ) ftemp = atanh( 1/tempcolor ) elseif ( @colorwarp == 72 ) ftemp = acosh( 1/tempcolor ) elseif ( @colorwarp == 73 ) ftemp = asinh( 1/tempcolor ) elseif @colorwarp == 74 ftemp = tempcolor^@cpower elseif @colorwarp == 75 ftemp = sinh(tempcolor) ftemp = ftemp * ftemp elseif @colorwarp == 76 ftemp = cosh( tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == 77 ftemp = tanh(tempcolor) ftemp = ftemp * ftemp elseif @colorwarp == 78 ftemp = cotanh( tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == 79 ftemp = 1/cosh(tempcolor) ftemp = ftemp * ftemp elseif @colorwarp == 80 ftemp = 1 / sinh( tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == 81 ftemp = sinh(1/tempcolor) elseif @colorwarp == 82 ftemp = cosh(1/tempcolor) elseif @colorwarp == 83 ftemp = tanh(1/tempcolor) elseif @colorwarp == 84 ftemp = cotanh(1/tempcolor) elseif @colorwarp == 85 ftemp = 1/cosh(1/tempcolor) elseif @colorwarp == 86 ftemp = 1/sinh(1/tempcolor) elseif @colorwarp == 87 ftemp = sin( tempcolor ) * tan(tempcolor) elseif @colorwarp == 88 ftemp = sinh(tempcolor) * tanh(tempcolor) elseif @colorwarp == 89 ftemp = sinh(tempcolor) * cosh(tempcolor) elseif @colorwarp == 90 ftemp = sinh(tempcolor), ftemp2 = cosh(tempcolor) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == 91 ftemp = sin(tempcolor), ftemp2 = cos(tempcolor) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == 92 ftemp = 1/tempcolor ftemp = sin(ftemp)*cos(ftemp) elseif @colorwarp == 93 ftemp = sin( 1/tempcolor ) ftemp = ftemp*ftemp elseif @colorwarp == 94 ftemp = sin(tempcolor) * cos(1/tempcolor) elseif @colorwarp == 95 ftemp = sin(tempcolor) * sin(1/tempcolor) elseif @colorwarp == 96 ftemp = log(tempcolor) ftemp = ftemp*ftemp elseif @colorwarp == 97 ftemp = sin(tempcolor) * sin(2*tempcolor) elseif @colorwarp == 98 ftemp = exp(2*tempcolor) elseif @colorwarp == 99 ftemp = exp(-2*tempcolor) elseif @colorwarp == 100 ftemp = 1/tempcolor ftemp = sinh(ftemp)*cosh(ftemp) elseif @colorwarp == 101 ftemp = sinh( 1/tempcolor ) ftemp = ftemp*ftemp elseif @colorwarp == 102 ftemp = sinh(tempcolor) * cosh(1/tempcolor) elseif @colorwarp == 103 ftemp = sinh(tempcolor) * sinh(1/tempcolor) elseif @colorwarp == 104 ftemp = sin(tempcolor) * sinh(tempcolor) elseif @colorwarp == 105 ftemp = sin(tempcolor) * cosh(tempcolor) elseif @colorwarp == 106 ftemp = sin(tempcolor), ftemp2 = sinh(tempcolor) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == 107 ftemp = sin(tempcolor)*exp(tempcolor) elseif @colorwarp == 108 ftemp = cos(tempcolor)*exp(tempcolor) elseif @colorwarp == 109 ftemp = sinh(tempcolor)*exp(tempcolor) elseif @colorwarp == 110 ftemp = cosh(tempcolor)*exp(tempcolor) elseif @colorwarp == 111 ftemp = sin(tempcolor)*log(tempcolor) elseif @colorwarp == 112 ftemp = cos(tempcolor)*log(tempcolor) elseif @colorwarp == 113 ftemp = sinh(tempcolor)*log(tempcolor) elseif @colorwarp == 114 ftemp = cosh(tempcolor)*log(tempcolor) elseif @colorwarp == 115 ftemp = exp(tempcolor^2) elseif @colorwarp == 116 ftemp = exp(1/(tempcolor^2)) elseif @colorwarp == 117 ftemp = abs(tempcolor) elseif @colorwarp == 118 ftemp = round(tempcolor) elseif @colorwarp == 119 ftemp = trunc(tempcolor) elseif @colorwarp == 120 ftemp = ceil(tempcolor) elseif @colorwarp == 121 ftemp = floor(tempcolor) elseif @colorwarp == 122 ftemp = tempcolor/log(tempcolor) elseif @colorwarp == 123 ftemp = log(tempcolor)/tempcolor elseif @colorwarp == 124 ftemp = exp(tempcolor)/tempcolor elseif @colorwarp == 125 ftemp = exp(1/tempcolor)/tempcolor elseif @colorwarp == 126 ftemp = exp(tempcolor^2)/tempcolor elseif @colorwarp == 127 ftemp = exp(1/(tempcolor^2))/tempcolor elseif @colorwarp == 128 ftemp = tempcolor * exp(tempcolor^2) elseif @colorwarp == 129 ftemp = tempcolor * exp(1/(tempcolor^2)) elseif @colorwarp == 130 ftemp = exp(-(tempcolor^2)) elseif @colorwarp == 131 ftemp = exp(-1/(tempcolor^2)) elseif @colorwarp == 132 ftemp = exp(-(tempcolor^2))/tempcolor elseif @colorwarp == 133 ftemp = exp(-1/(tempcolor^2))/tempcolor elseif @colorwarp == 134 ftemp = tempcolor * exp(-(tempcolor^2)) elseif @colorwarp == 135 ftemp = tempcolor * exp(-1/(tempcolor^2)) elseif @colorwarp == 136 ftemp = log(1+tempcolor) else ; @colorwarp == 137 ftemp = log(1+log(1+tempcolor)) endif ; tempcolorwarp #index = abs(ftemp) endif ; solidset else if @coloruntrappedregion #index = @untrappedcolor else #solid = TRUE endif ; @coloruntrappedregion endif ; itrapped default: title = "Trapestry+" heading caption = "Primary Settings" $ifdef VER40 expanded = FALSE $endif endheading param whattotrap caption = "Trap What?" enum = "minimum" "maximum" "2nd minimum" "3rd minimum" "4th minimum" "2nd maximum" \ "3rd maximum" "4th maximum" "1st threshold" "last threshold" "threshold count" \ "2nd threshold" "1st limit" "2nd limit" "last limit" "Nth z iterate" "last z" \ "max-min" "max+min" "max*min" "max/min" "max^min" \ "min-max" "min/max" "min^max" "min,max avg" "count" "average" default = 0 hint = "What size of value will be trapped? 'Threshold' means first iterate value to \ fall below the 'Threshold Value' parameter; 'Limit' means the first iterate to \ exceed the 'Threshold Value'. Use 'count' with parameter 'Color By?' = 'count' too" visible = @showprimaries endparam param nthiterate caption = "Nth Iterate Value" default = 1 hint = "If 'Trap What' is set to 'Nth z iterate', then this is the value \ of 'N', the iteration that z will be trapped" visible = @showprimaries && (@whattotrap == 15) endparam param threshold caption = "Threshold Value" default = 0.5 hint = "Upper bound (maximum value that will be trapped) if one of the \ 'Threshold' options is chosen for param 'Trap What'; \ also, lower bound (minimum trapped value) if 'Trap What' is set to \ a 'Limit' option" visible = ((( @whattotrap > 7 ) && ( @whattotrap < 15 )) || (@whattotrap == 26)) && @showprimaries endparam param varythresh caption = "Vary Threshold?" default = FALSE hint = "If set, the value of the trap will modify the value of 'threshold' and \ 'limit' type traps each iteration; parameter \ 'ThreshFeedback' can be used to modulate the variation" visible = ((( @whattotrap > 7 ) && ( @whattotrap < 15 )) || (@whattotrap == 26)) && @showprimaries endparam param threshstp caption = "ThreshFeedback" default = 1.0 hint = "If 'Vary Threshold' is set, this setting adjusts the amount of variation" visible = @varythresh && ((( @whattotrap > 7 ) && ( @whattotrap < 15 )) || \ (@whattotrap == 26)) && @showprimaries endparam param ringstyle caption = "Enable Bands?" default = FALSE hint = "If 'Enable Bands' is active, AND if param 'Trap What' is set to a \ 'Threshold' or 'Limit' option, then trapping is limited to a narrow \ region near the 'Threshold Value'. \ 'Threshold Value' sets one band radius, and 'Band Width' sets the width \ of the trapping region" visible = ((( @whattotrap > 7 ) && ( @whattotrap < 15 )) || (@whattotrap == 26)) && @showprimaries endparam param ringwidth caption = "Band Width" default = 0.25 hint = "If 'Enable Bands' is TRUE and 'Trap What' is set to either a 'Threshold', \ or 'Limit' option, this parameter determines the width of the band trap" visible = @ringstyle && ((( @whattotrap > 7 ) && ( @whattotrap < 15 )) || \ (@whattotrap == 26)) && @showprimaries endparam param varyrwidth caption = "Vary Band Width?" default = FALSE hint = "If set, the value of the trap will modify the band width of 'threshold' \ and 'limit' band-type traps each iteration; parameter 'BandFeedback' can be \ used to modulate the variation" visible = @ringstyle && ((( @whattotrap > 7 ) && ( @whattotrap < 15 )) || \ (@whattotrap == 26)) && @showprimaries endparam param ringstp caption = "BandFeedback" default = 1.0 hint = "If 'Vary Band Width' is set, this setting adjusts the amount of variation" visible = @varyrwidth && @ringstyle && ((( @whattotrap > 7 ) && ( @whattotrap < 15 )) || \ (@whattotrap == 26)) && @showprimaries endparam param trapmode caption = "Trap Flavor" enum = "distance" "magnitude" "real" "imaginary" "trap magnitude" "angle" \ "trap angle" "raw angle" "difference angle" "diff. angle 2" \ "trap real" "trap imaginary" "sum" "product" \ "quotient 1" "quotient 2" "power 1" "power 2" "arith. mean" "geom. mean" \ "angle 2" "angle 3" "angle 4" "angle 5" "angle 6" "angle 7" "angle 8" \ "real 2" "real 3" "real 4" "real 5" "real 6" "real 7" "real 8" \ "imag 2" "imag 3" "imag 4" "imag 5" "imag 6" "imag 7" "imag 8" \ "product 2" "quotient 3" "quotient 4" "power 3" "power 4" \ "crossproduct" "crossquotient 1" "crossquotient 2" \ "crosspower 1" "crosspower 2" "crosssum" "crossdifference 1" \ "crossdifference 2" "manhattan metric" "cubic metric" \ "cubic2" "inverted" "quartic metric" "warp1" "warp2" "warp3" "warp4" \ "warp5" "warp6" "warp7" default = 0 hint = "What variable will be watched for possible trapping?" visible = @showprimaries endparam param @colorby caption = "Color By?" enum = "distance" "mod distance" "magnitude" "mod magnitude" "flavor value" \ "iteration" "angle" "mod angle" "real" "mod real" "imag" "mod imag" \ "trap magnitude" "trap angle" "trap real" "trap imag" "fBm/texture only" \ "mod iter" "discrete iter" "smooth moditer 1" "smooth moditer 2" "count" \ "modulus angle" default = 4 hint = "Criterion for computing color index; index will be based on the value of this variable. \ Use 'count' with parameter 'Trap What?' = 'count' too" visible = @showprimaries endparam param itermodulus caption = "Iteration Modulus" default = 5 min = 1 hint = "If 'Color By?' is set to 'mod iter' or 'discrete iter', than this parameter \ sets the modulus (number of color ranges for 'mod iter', number of individual \ colors for 'discrete iter')" visible = @showprimaries && (( @colorby == "mod iter" ) || ( @colorby == "discrete iter" ) \ || ( @colorby == "smooth moditer 1" ) || ( @colorby == "smooth moditer 2" )) endparam param anglemodulus caption = "Angle Modulus" default = 0.78539816339744830961566084581988 ; pi/4 min = 1.0e-9 hint = "If 'Color By?' is set to 'mod angle', than this parameter \ sets the modulus (number of color ranges)" visible = @showprimaries && ( @colorby == 22 ) endparam param countmode caption = "Count Mode" enum = "raw" "maxiter" "numiter" "raw 2" "raw 3" default = 2 hint = "If 'Color By?' is set to 'count', than this parameter \ determines how the hit count is normalized. Use with parameters 'Trap What?' \ and 'Color By?' set to 'count'" visible = @showprimaries && @colorby == "count" endparam param overallscale caption = "Overall Scale" default = 1.0 hint = "This parameter fixes the overall size of all traps" visible = @showprimaries endparam param showprimaries caption = "Show Primary Params?" default = TRUE endparam heading caption = "Trap Function Settings" $ifdef VER40 expanded = FALSE $endif endheading param coordtype caption = "Coordinate Type" enum = "Polar" "Parametric" "Mixed" default = 0 hint = "This setting determines how the trapping functions are interpreted. \ 'Mixed' means that one trap is computed using polar coordinates, and \ the second trap is calculated parametrically" visible = @showtrapfuncs endparam param traptype caption = "Trap Type" enum = "functions" "oscillators" "mixed 1" "mixed 2" default = 0 hint = "This setting determines which function sets are used for the trap. \ 'mixed 1' and 'mixed 2' are equivalent unless 'Coordinate Type' is also \ set to 'Mixed'. In that case, 'mixed 1' means that the first trap \ is computed in polar coords using functions, the second parametrically \ using oscillators; 'mixed 2' means that the polar trap is computed \ using oscillators, while the parametric trap is calculated using \ functions" visible = @showtrapfuncs endparam param trapcombo caption = "Trap Combination" default = 0 enum = "average" "sum" "difference" "product" "geom. mean" "difference 2" \ "quotient" "quotient 2" "exponential 1" "exponential 2" "splice 1" \ "splice 2" "product 2" "quotient 3" "splice 3" "splice 4" "splice 5" \ "splice 6" "splice 7" "splice 8" "splice 9" "splice 10" "splice 11" \ "splice 12" "nearest" "farthest" "nearest 2" "farthest 2" \ "largest" "smallest" "A^2+B^2" \ "A^2-B^2" "B^2-A^2" "A^3+B^3" "A^3-B^3" "B^3-A^3" "cyclical" \ "cyclical 2" "|A+B|" "|A-B|" "|A^2+B^2|" "|A^2-B^2|" \ "|A^3+B^3|" "|A^3-B^3|" "real(z)" "real(z) 2" "real(z) 3" \ "real(z) 4" "imag(z)" "imag(z) 2" "imag(z) 3" "imag(z) 4" \ "quotient 4" "quotient 5" "quotient 6" "quotient 7" "quotient 8" \ "quotient 9" "quotient 10" "quotient 11" "quotient 12" "quotient 13" \ "quotient 14" "exponential 3" "exponential 4" "exponential 5" \ "exponential 6" "exponential 7" "exponential 8" "exponential 9" "exponential 10" \ "exponential 11" "exponential 12" "exponential 13" "exponential 14" \ "trap 1 only" "trap 2 only" hint = "This setting determines how the two traps will be merged. Some of \ the mode differences only show up if at least some of the various Z or \ front end modifiers, modulator functions, or history settings are enabled" visible = @showtrapfuncs && (((@coordtype == "Polar") && (@traptype == "functions") && (@f2scale != 0.0)) || \ ((@coordtype == "Polar") && (@traptype == "oscillators") && (@osc21amp != 0.0)) || \ ((@coordtype == "Polar") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ ((@coordtype == "Parametric") && (@traptype == "functions") && ((@f3scale != 0.0) || (@f4scale != 0.0))) || \ ((@coordtype == "Parametric") && (@traptype == "oscillators") && ((@osc31amp != 0.0) || (@osc41amp != 0.0))) || \ ((@coordtype == "Parametric") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ @coordtype == "Mixed") && !@altcombo endparam param trapcycle caption = "Trap Cycle Length" default = 2 min = 2 hint = "If 'Trap Combination' is set to 'cyclical' or 'cyclical 2', then this \ parameter determines the cycle length. A cycle length of 2 means the traps \ alternate according to iteration" visible = @showtrapfuncs && (((@coordtype == "Polar") && (@traptype == "functions") && (@f2scale != 0.0)) || \ ((@coordtype == "Polar") && (@traptype == "oscillators") && (@osc21amp != 0.0)) || \ ((@coordtype == "Polar") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ ((@coordtype == "Parametric") && (@traptype == "functions") && ((@f3scale != 0.0) || (@f4scale != 0.0))) || \ ((@coordtype == "Parametric") && (@traptype == "oscillators") && ((@osc31amp != 0.0) || (@osc41amp != 0.0))) || \ ((@coordtype == "Parametric") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ @coordtype == "Mixed") && ((@trapcombo == "cyclical") || (@trapcombo == "cyclical 2")) && !@altcombo endparam param twotrapsblend caption = "Blend the Traps?" default = FALSE hint = "If enabled, then different weights can be assigned to the two trap functions \ that will affect the proportions in which they will be combined by 'Trap \ Combination'. Sometimes convenient so that all the different amplitudes/scales \ don't have to be individually adjusted" visible = @showtrapfuncs && (((@coordtype == "Polar") && (@traptype == "functions") && (@f2scale != 0.0)) || \ ((@coordtype == "Polar") && (@traptype == "oscillators") && (@osc21amp != 0.0)) || \ ((@coordtype == "Polar") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ ((@coordtype == "Parametric") && (@traptype == "functions") && ((@f3scale != 0.0) || (@f4scale != 0.0))) || \ ((@coordtype == "Parametric") && (@traptype == "oscillators") && ((@osc31amp != 0.0) || (@osc41amp != 0.0))) || \ ((@coordtype == "Parametric") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ @coordtype == "Mixed") && !@altcombo endparam param trap1weight caption = "Trap 1 Weight" default = 1.0 hint = "This value sets how much of Trap 1 will be combined by 'Trap Combination' \ if 'Enable Blending' is turned on" visible = @twotrapsblend && @showtrapfuncs && (((@coordtype == "Polar") && (@traptype == "functions") && (@f2scale != 0.0)) || \ ((@coordtype == "Polar") && (@traptype == "oscillators") && (@osc21amp != 0.0)) || \ ((@coordtype == "Polar") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ ((@coordtype == "Parametric") && (@traptype == "functions") && ((@f3scale != 0.0) || (@f4scale != 0.0))) || \ ((@coordtype == "Parametric") && (@traptype == "oscillators") && ((@osc31amp != 0.0) || (@osc41amp != 0.0))) || \ ((@coordtype == "Parametric") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ @coordtype == "Mixed") && !@altcombo endparam param trap2weight caption = "Trap 2 Weight" default = 1.0 hint = "This value sets how much of Trap 2 will be combined by 'Trap Combination' \ if 'Enable Blending' is turned on" visible = @twotrapsblend && @showtrapfuncs && (((@coordtype == "Polar") && (@traptype == "functions") && (@f2scale != 0.0)) || \ ((@coordtype == "Polar") && (@traptype == "oscillators") && (@osc21amp != 0.0)) || \ ((@coordtype == "Polar") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ ((@coordtype == "Parametric") && (@traptype == "functions") && ((@f3scale != 0.0) || (@f4scale != 0.0))) || \ ((@coordtype == "Parametric") && (@traptype == "oscillators") && ((@osc31amp != 0.0) || (@osc41amp != 0.0))) || \ ((@coordtype == "Parametric") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ @coordtype == "Mixed") && !@altcombo endparam param altcombo caption = "Alternative TrapCombos?" default = FALSE hint = "If enabled, then the selected trap combination mode operates on the individual \ distances, rather than the two trap points" visible = @showtrapfuncs && (((@coordtype == "Polar") && (@traptype == "functions") && (@f2scale != 0.0)) || \ ((@coordtype == "Polar") && (@traptype == "oscillators") && (@osc21amp != 0.0)) || \ ((@coordtype == "Polar") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ ((@coordtype == "Parametric") && (@traptype == "functions") && ((@f3scale != 0.0) || (@f4scale != 0.0))) || \ ((@coordtype == "Parametric") && (@traptype == "oscillators") && ((@osc31amp != 0.0) || (@osc41amp != 0.0))) || \ ((@coordtype == "Parametric") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ @coordtype == "Mixed") endparam param alttrapcombo caption = "Alt Combo Mode" enum = "average" "sum" "difference" "difference2" "product" "geom. mean" "quotient" \ "quotient2" "exponential" "exponential2" "splice1" "splice2" "splice3" \ "splice4" "splice5" "splice6" "smallest" "largest" default = 0 hint = "If 'Alternative TrapCombos' is enabled, then this setting determines how the two \ trap distances are combined" visible = @showtrapfuncs && (((@coordtype == "Polar") && (@traptype == "functions") && (@f2scale != 0.0)) || \ ((@coordtype == "Polar") && (@traptype == "oscillators") && (@osc21amp != 0.0)) || \ ((@coordtype == "Polar") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ ((@coordtype == "Parametric") && (@traptype == "functions") && ((@f3scale != 0.0) || (@f4scale != 0.0))) || \ ((@coordtype == "Parametric") && (@traptype == "oscillators") && ((@osc31amp != 0.0) || (@osc41amp != 0.0))) || \ ((@coordtype == "Parametric") && ((@traptype == "mixed 1") || (@traptype == "mixed 2"))) || \ @coordtype == "Mixed") && @altcombo endparam param func1 caption = "Function 1" enum = "a" "1/a" "a^2" "1/a^2" "log(a)" \ "e^a" "a^a" "sin(a)" "cos(a)" "tan(a)" \ "arcsin(a)" "arccos(a)" "arctan(a)" "sinh(a)" "cosh(a)" \ "tanh(a)" "arcsinh(a)" "arccosh(a)" "arctanh(a)" "log(1/a)" \ "log(log(a))" "e^(1/a)" "sin(a)^n" "cos(a)^n" "tan(a)^n" \ "cot(a)" "sec(a)" "csc(a)" "cot(a)^n" "sec(a)^n" \ "csc(a)^n" "a^a^a" "1/(a^a^a)" "1/log(a)" "a*log(a)" \ "sin(a)/a" "cos(a)/a" "sin(a)*cos(a)" "sin(a^n)" "a*e^a" \ "a*e^(1/a)" "arccot(a)" "arcsec(a)" "arccsc(a)" "tan(a)/a" \ "cot(a)/a" "sec(a)/a" "csc(a)/a" "a*sin(a)" "a*cos(a)" \ "a*tan(a)" "a*cot(a)" "a*sec(a)" "a*csc(a)" "sin(1/a)" \ "cos(1/a)" "tan(1/a)" "cot(1/a)" "sec(1/a)" "csc(1/a)" \ "cotanh(a)" "sech(a)" "cosech(a)" "arccoth(a)" "arcsech(a)" \ "arccosech(a)" "a^n" "sinh(a)^n" "cosh(a)^n" "tanh(a)^n" \ "cotanh(a)^n" "sech(a)^n" "cosech(a)^n" "sinh(1/a)" "cosh(1/a)" \ "tanh(1/a)" "cotanh(1/a)" "sech(1/a)" "cosech(1/a)" "sin(a)tan(a)" \ "sinh(a)tanh(a)" "sinh(a)cosh(a)" "sinh(a)^m*cosh(a)^n" "sin(a)^n*cos(a)^n" "sin(1/a)*cos(1/a)" \ "sin(1/a)^n" "sin(a)cos(1/a)" "sin(a)sin(1/a)" "log(a)^n" "sin(n*a)sin(m*a)" \ "sinh(1/a)cosh(1/a)" "sinh(1/a)^n" "sinh(a)cosh(1/a)" "sinh(a)sinh(1/a)" "sin(a)sinh(a)" \ "sin(a)cosh(a)" "sin(a)^n*sinh(a)^n" "sin(a)e^a" "cos(a)e^a" "sinh(a)e^a" \ "cosh(a)e^a" "sin(a)log(a)" "cos(a)log(a)" "sinh(a)log(a)" "cosh(a)log(a)" \ "e^(a^n)" "e^(1/(a^n))" "abs(a)" "round(a)" "trunc(a)" \ "ceil(a)" "floor(a)" "bifolium" "cardioid" "circle" \ "cissoid of Diocles" "cochleoid" "companion to cycloid (x)" "companion to cycloid (y)" "conchoid of Nicomedes" \ "cycloid 1 (x)" "cycloid 1 (y)" "cycloid 2 (x)" "cycloid 2 (y)" "curtate cycloid (x)" \ "curtate cycloid (y)" "ellipse (x)" "ellipse (y)" "epicycloid (x)" "epicycloid (y)" \ "evolute of ellipse (x)" "evolute of ellipse (y)" "folium of Descartes" "hyperbola (x)" "hyperbola (y)" \ "involute (x)" "involute (y)" "lemniscate of Bernoulli" "limacon of Pascal" "lituus" \ "nephroid (x)" "nephroid (y)" "parabola" "rose" "semicubical parabola" \ "serpentine (x)" "serpentine (y)" "spiral of Archimedes" "hyperbolic spiral" "logarithmic spiral" \ "parabolic spiral" "strophoid" "tractrix (x)" "tractrix (y)" "witch of Agnesi (x)" \ "witch of Agnesi (y)" "cubical parabola" "lissajous (x)" "lissajous (y)" "hypocycloid (x)" \ "hypocycloid (y)" "circle 2" "conchoid 2" "conchoid of de Sluze" "ellipse 2" \ "folium of Descartes 2 (x)" "folium of Descartes 2 (y)" "kampyle of Eudoxus" "kappa curve" "wavy circle (x)" \ "wavy circle (y)" "a/log(a)" "log(a)/a" "(e^a)/a" "(e^(1/a))/a" \ "(e^(a^n))/a" "(e^(1/(a^n))/a" "a*e^(a^n)" "a*e^(1/(a^n))" "log(a) B" \ "log(log(a)) B" "Xarctangent" "Xsine" "Xparabola" "Xampersand" \ "Xampersand2" "Xhyperbola" "Xbifolium" "Xbow" "Xbean" \ "Xdulcimer" "sin+tan" "sin+cot" "sin+sec" "sin+csc" \ "cos+tan" "cos+cot" "cos+sec" "cos+csc" "cos*cot" \ "sec*csc" "sin^n * cos^m" "sin^n + cos^m" "sin^n + cos^n" "cos(1/a)^n" \ "sin(a)+sin(1/a)" "log(a)e^a" "log(a)e^a B" "log(1/a) B" "1/log(a) B" \ "alog(a) B" "log(a)^n B" "sin(a)log(a) B" "cos*log B" "a/log(a) B" \ "log(a)/a B" "tan*log" "tan*log B" "e^(sin+cos)" "e^(sin+tan)" \ "sin+e^(sin)" "log(sin+cos)" "sin(sin)" "sin+tan(sin)" "Gielis' curve" \ "sin+e^tan" "tan+e^sin" "tan+e^tan" "tan+tan(sin)" "tan+sin(tan)" \ "sin+sin(tan)" "sin^m + tan^n" "hyperbola 2" "semicubical parabola 2" "cubical parabola 2" \ "bean curve" "butterfly 1" "butterfly 2" "teardrop (x)" "teardrop (y)" \ "Ddumbbell" "Drose" "Plateau curve (x)" "Plateau curve (y)" "hyperbola3 (x)" \ "hyperbola3 (y)" "Gielis 2" "polygon" "star" "curved polygon" default = 143 hint = "If 'Trap Type' is set to 'functions', 'mixed 1', or 'mixed 2', then \ this parameter sets the first function. The 'a' function argument \ represents the angle of the iterate, z. An '(x)' or '(y)' indicates \ that that equation is designed for parametric use, but obviously \ can be used as a polar function as well, with unpredictable results. \ If 'Coordinate Type' is 'Polar', this function calculates the first radius; \ if 'Parametric', this function computes the x-coord of the first (x,y) pair. \ For the 'Mixed/mixed 1' and 'Mixed/functions' combos, it calculates \ the radius; for the 'Mixed/mixed 2' combo, an x-coordinate" visible = @showtrapfuncs && \ ((@traptype == "functions") || (@traptype == "mixed 1") || (@traptype == "mixed 2")) \ && (@f1scale != 0) endparam param f1scale caption = "Func1 Scale" default = 1.0 hint = "This parameter can be used to selectively adjust the scale of the \ first function" visible = @showtrapfuncs && \ ((@traptype == "functions") || (@traptype == "mixed 1") || (@traptype == "mixed 2")) endparam param f1offset caption = "Func1 Offset" default = 0.0 hint = "This value is added to the unscaled result of the 'Function 1' calculation" visible = @showtrapfuncs && \ ((@traptype == "functions") || (@traptype == "mixed 1") || (@traptype == "mixed 2")) \ && (@f1scale != 0) endparam param const1f1 caption = "1st Func1 Constant" default = 3.0 hint = "In the function formulas, this parameter usually modifies the \ innermost function, or expression of highest precedence. Affects the shape \ of the trap" visible = @showtrapfuncs && \ ((@traptype == "functions") || (@traptype == "mixed 1") || (@traptype == "mixed 2")) && \ ((@func1 > 3) && (@func1 != 107)) \ && (@f1scale != 0) endparam param const2f1 caption = "2nd Func1 Constant" default = 1.0 hint = "In the function formulas, this parameter, if present, usually \ modifies an expression of lower precedence, but is often an exponent \ if one is needed. Affects the shape of the trap" visible = @showtrapfuncs && \ ((@traptype == "functions") || (@traptype == "mixed 1") || (@traptype == "mixed 2")) && \ ( (@func1 == 19) || (@func1 == 20) || ((@func1 >= 22) && (@func1 <= 24)) || ((@func1 >= 28) && (@func1 <= 32)) \ || (@func1 == 37) || ((@func1 >= 67) && (@func1 <= 72)) || ((@func1 >= 79) && (@func1 <= 106)) \ || (@func1 == 38) || ((@func1 >= 112) && (@func1 <= 113)) || (@func1 == 115) || \ ((@func1 >= 118) && (@func1 <= 129)) || ((@func1 >= 132) && (@func1 <= 136)) || (@func1 == 138) \ || ((@func1 >= 140) && (@func1 <= 142)) || (@func1 == 144) || (@func1 == 146) || \ ((@func1 >= 150) && (@func1 <= 152)) || ((@func1 >= 155) && (@func1 <= 167)) || \ ((@func1 >= 169) && (@func1 <= 170)) || (@func1 >= 175) ) \ && (@f1scale != 0) endparam param const3f1 caption = "3rd Func1 Constant" default = 1.0 hint = "If three constants are needed in a function formulas, this parameter \ sets the third one. Its use varies. In 'ellipse 2' this is the \ exponent. Affects the shape of the trap" visible = @showtrapfuncs && \ ((@traptype == "functions") || (@traptype == "mixed 1") || (@traptype == "mixed 2")) && \ ( (@func1 == 20) || (@func1 == 37) || ((@func1 >= 79) && (@func1 <= 84)) || \ (@func1 == 86) || (@func1 == 87) || (@func1 == 89) || (@func1 == 90) || \ ((@func1 >= 92) && (@func1 == 96)) || (@func1 == 98) || (@func1 == 100) || \ (@func1 == 102) || (@func1 == 104) || ((@func1 >=120) && (@func1 <= 125)) \ || ((@func1 >= 128) && (@func1 <= 129)) || ((@func1 >= 135) && (@func1 <= 136)) || (@func1 == 132) \ || (@func1 == 138) || ((@func1 >= 140) && (@func1 <= 142)) || \ (@func1 == 146) || ((@func1 >= 159) && (@func1 <= 160)) || \ ((@func1 >= 162) && (@func1 <= 166)) || ((@func1 >= 169) && (@func1 <= 170)) \ || ((@func1 >= 179)) ) && (@f1scale != 0) endparam param const4f1 caption = "4th Func1 Constant" default = 1.0 hint = "If four constants are needed in a function formula, this parameter \ sets the fourth one. Affects the shape of the trap" visible = @showtrapfuncs && \ ((@traptype == "functions") || (@traptype == "mixed 1") || (@traptype == "mixed 2")) && \ ( (@func1 == 79) || (@func1 == 80) || (@func1 == 82) || (@func1 == 83) || \ (@func1 == 95) || (@func1 == 96) || (@func1 == 128) || (@func1 == 129) || \ ((@func1 >= 191) && (@func1 <= 205)) || \ (@func1 == 212) || (@func1 == 213) || (@func1 >= 216) ) && (@f1scale != 0) endparam param f1absangle caption = "Func1 Abs Argument" default = FALSE hint = "If enabled, then the absolute value of the angle is used as the function \ argument, rather than the raw angle. Normally without affect unless the angle \ has been modified by 'Offset Angle', 'Spread Angle', or 'Screwiness Type'" visible = @showtrapfuncs && \ ((@traptype == "functions") || (@traptype == "mixed 1") || (@traptype == "mixed 2")) \ && (@f1scale != 0) endparam param f1absresult caption = "Func1 Abs Result" default = FALSE hint = "If enabled, then the absolute value of the function result is used to \ compute the trap point, rather than the raw result" visible = @showtrapfuncs && \ ((@traptype == "functions") || (@traptype == "mixed 1") || (@traptype == "mixed 2")) \ && (@f1scale != 0) endparam param func2 caption = "Function 2" enum = "a" "1/a" "a^2" "1/a^2" "log(a)" \ "e^a" "a^a" "sin(a)" "cos(a)" "tan(a)" \ "arcsin(a)" "arccos(a)" "arctan(a)" "sinh(a)" "cosh(a)" \ "tanh(a)" "arcsinh(a)" "arccosh(a)" "arctanh(a)" "log(1/a)" \ "log(log(a))" "e^(1/a)" "sin(a)^n" "cos(a)^n" "tan(a)^n" \ "cot(a)" "sec(a)" "csc(a)" "cot(a)^n" "sec(a)^n" \ "csc(a)^n" "a^a^a" "1/(a^a^a)" "1/log(a)" "a*log(a)" \ "sin(a)/a" "cos(a)/a" "sin(a)*cos(a)" "sin(a^n)" "a*e^a" \ "a*e^(1/a)" "arccot(a)" "arcsec(a)" "arccsc(a)" "tan(a)/a" \ "cot(a)/a" "sec(a)/a" "csc(a)/a" "a*sin(a)" "a*cos(a)" \ "a*tan(a)" "a*cot(a)" "a*sec(a)" "a*csc(a)" "sin(1/a)" \ "cos(1/a)" "tan(1/a)" "cot(1/a)" "sec(1/a)" "csc(1/a)" \ "cotanh(a)" "sech(a)" "cosech(a)" "arccoth(a)" "arcsech(a)" \ "arccosech(a)" "a^n" "sinh(a)^n" "cosh(a)^n" "tanh(a)^n" \ "cotanh(a)^n" "sech(a)^n" "cosech(a)^n" "sinh(1/a)" "cosh(1/a)" \ "tanh(1/a)" "cotanh(1/a)" "sech(1/a)" "cosech(1/a)" "sin(a)tan(a)" \ "sinh(a)tanh(a)" "sinh(a)cosh(a)" "sinh(a)^m*cosh(a)^n" "sin(a)^n*cos(a)^n" "sin(1/a)*cos(1/a)" \ "sin(1/a)^n" "sin(a)cos(1/a)" "sin(a)sin(1/a)" "log(a)^n" "sin(n*a)sin(m*a)" \ "sinh(1/a)cosh(1/a)" "sinh(1/a)^n" "sinh(a)cosh(1/a)" "sinh(a)sinh(1/a)" "sin(a)sinh(a)" \ "sin(a)cosh(a)" "sin(a)^n*sinh(a)^n" "sin(a)e^a" "cos(a)e^a" "sinh(a)e^a" \ "cosh(a)e^a" "sin(a)log(a)" "cos(a)log(a)" "sinh(a)log(a)" "cosh(a)log(a)" \ "e^(a^n)" "e^(1/(a^n))" "abs(a)" "round(a)" "trunc(a)" \ "ceil(a)" "floor(a)" "bifolium" "cardioid" "circle" \ "cissoid of Diocles" "cochleoid" "companion to cycloid (x)" "companion to cycloid (y)" "conchoid of Nicomedes" \ "cycloid 1 (x)" "cycloid 1 (y)" "cycloid 2 (x)" "cycloid 2 (y)" "curtate cycloid (x)" \ "curtate cycloid (y)" "ellipse (x)" "ellipse (y)" "epicycloid (x)" "epicycloid (y)" \ "evolute of ellipse (x)" "evolute of ellipse (y)" "folium of Descartes" "hyperbola (x)" "hyperbola (y)" \ "involute (x)" "involute (y)" "lemniscate of Bernoulli" "limacon of Pascal" "lituus" \ "nephroid (x)" "nephroid (y)" "parabola" "rose" "semicubical parabola" \ "serpentine (x)" "serpentine (y)" "spiral of Archimedes" "hyperbolic spiral" "logarithmic spiral" \ "parabolic spiral" "strophoid" "tractrix (x)" "tractrix (y)" "witch of Agnesi (x)" \ "witch of Agnesi (y)" "cubical parabola" "lissajous (x)" "lissajous (y)" "hypocycloid (x)" \ "hypocycloid (y)" "circle 2" "conchoid 2" "conchoid of de Sluze" "ellipse 2" \ "folium of Descartes 2 (x)" "folium of Descartes 2 (y)" "kampyle of Eudoxus" "kappa curve" "wavy circle (x)" \ "wavy circle (y)" "a/log(a)" "log(a)/a" "(e^a)/a" "(e^(1/a))/a" \ "(e^(a^n))/a" "(e^(1/(a^n))/a" "a*e^(a^n)" "a*e^(1/(a^n))" "log(a) B" \ "log(log(a)) B" "Xarctangent" "Xsine" "Xparabola" "Xampersand" \ "Xampersand2" "Xhyperbola" "Xbifolium" "Xbow" "Xbean" \ "Xdulcimer" "sin+tan" "sin+cot" "sin+sec" "sin+csc" \ "cos+tan" "cos+cot" "cos+sec" "cos+csc" "cos*cot" \ "sec*csc" "sin^n * cos^m" "sin^n + cos^m" "sin^n + cos^n" "cos(1/a)^n" \ "sin(a)+sin(1/a)" "log(a)e^a" "log(a)e^a B" "log(1/a) B" "1/log(a) B" \ "alog(a) B" "log(a)^n B" "sin(a)log(a) B" "cos*log B" "a/log(a) B" \ "log(a)/a B" "tan*log" "tan*log B" "e^(sin+cos)" "e^(sin+tan)" \ "sin+e^(sin)" "log(sin+cos)" "sin(sin)" "sin+tan(sin)" "Gielis' curve" \ "sin+e^tan" "tan+e^sin" "tan+e^tan" "tan+tan(sin)" "tan+sin(tan)" \ "sin+sin(tan)" "sin^m + tan^n" "hyperbola 2" "semicubical parabola 2" "cubical parabola 2" \ "bean curve" "butterfly 1" "butterfly 2" "teardrop (x)" "teardrop (y)" \ "Ddumbbell" "Drose" "Plateau curve (x)" "Plateau curve (y)" "hyperbola3 (x)" \ "hyperbola3 (y)" "Gielis 2" "polygon" "star" "curved polygon" default = 0 hint = "This parameter sets the second function; to inactivate it, \ set 'Func2 Scale' to zero. For the active combinations, \ this function calculates: 'Polar/functions', the second radius; \ 'Parametric/anything', the first y-coordinate; 'Mixed/functions', \ the x-coordinate; and 'Mixed/mixed 2', the y-coordinate" visible = @showtrapfuncs && \ ((@traptype == "functions") || ((@coordtype == "Parametric") && \ (@traptype != "oscillators")) || ((@coordtype == "Mixed") && (@traptype \ == "mixed 2")) ) && @f2scale != 0.0 endparam param f2scale caption = "Func2 Scale" default = 0.0 hint = "This parameter can be used to selectively adjust the scale of the \ second function, or to turn it off by setting the value to zero" visible = @showtrapfuncs && \ ((@traptype == "functions") || ((@coordtype == "Parametric") && \ (@traptype != "oscillators")) || ((@coordtype == "Mixed") && (@traptype \ == "mixed 2")) ) endparam param f2offset caption = "Func2 Offset" default = 0.0 hint = "This value is added to the unscaled result of the 'Function 2' calculation" visible = @showtrapfuncs && \ ((@traptype == "functions") || ((@coordtype == "Parametric") && \ (@traptype != "oscillators")) || ((@coordtype == "Mixed") && (@traptype \ == "mixed 2")) ) && @f2scale != 0.0 endparam param const1f2 caption = "1st Func2 Constant" default = 1.0 hint = "In the function formulas, this parameter usually modifies the \ innermost function, or expression of highest precedence. Affects \ the shape of the trap" visible = @showtrapfuncs && \ ((@traptype == "functions") || ((@coordtype == "Parametric") && \ (@traptype != "oscillators")) || ((@coordtype == "Mixed") && (@traptype \ == "mixed 2")) ) && \ ((@func2 > 3) && (@func2 != 107)) \ && (@f2scale != 0) endparam param const2f2 caption = "2nd Func2 Constant" default = 1.0 hint = "In the function formulas, this parameter, if present, usually \ modifies an expression of lower precedence, but is often an exponent \ if one is needed. Affects the shape of the trap" visible = @showtrapfuncs && \ ((@traptype == "functions") || ((@coordtype == "Parametric") && \ (@traptype != "oscillators")) || ((@coordtype == "Mixed") && (@traptype \ == "mixed 2")) ) && \ ( (@func2 == 19) || (@func2 == 20) || ((@func2 >= 22) && (@func2 <= 24)) || ((@func2 >= 28) && (@func2 <= 32)) \ || (@func2 == 37) || ((@func2 >= 67) && (@func2 <= 72)) || ((@func2 >= 79) && (@func2 <= 106)) \ || (@func2 == 38) || ((@func2 >= 112) && (@func2 <= 113)) || (@func2 == 115) || \ ((@func2 >= 118) && (@func2 <= 129)) || ((@func2 >= 132) && (@func2 <= 136)) || (@func2 == 138) \ || ((@func2 >= 140) && (@func2 <= 142)) || (@func2 == 144) || (@func2 == 146) || \ ((@func2 >= 150) && (@func2 <= 152)) || ((@func2 >= 155) && (@func2 <= 167)) || \ ((@func2 >= 169) && (@func2 <= 170)) || (@func2 >= 175) ) \ && (@f2scale != 0) endparam param const3f2 caption = "3rd Func2 Constant" default = 1.0 hint = "If three constants are needed in a function formulas, this parameter \ sets the third one. Its use varies. In 'ellipse 2' this is the \ exponent. Affects the shape of the trap" visible = @showtrapfuncs && \ ((@traptype == "functions") || ((@coordtype == "Parametric") && \ (@traptype != "oscillators")) || ((@coordtype == "Mixed") && (@traptype \ == "mixed 2")) ) && \ ( (@func2 == 20) || (@func2 == 37) || ((@func2 >= 79) && (@func2 <= 84)) || \ (@func2 == 86) || (@func2 == 87) || (@func2 == 89) || (@func2 == 90) || \ ((@func2 >= 92) && (@func2 == 96)) || (@func2 == 98) || (@func2 == 100) || \ (@func2 == 102) || (@func2 == 104) || ((@func2 >=120) && (@func2 <= 125)) \ || ((@func2 >= 128) && (@func2 <= 129)) || ((@func2 >= 135) && (@func2 <= 136)) || (@func2 == 132) \ || (@func2 == 138) || ((@func2 >= 140) && (@func2 <= 142)) || \ (@func2 == 146) || ((@func2 >= 159) && (@func2 <= 160)) || \ ((@func2 >= 162) && (@func2 <= 166)) || ((@func2 >= 169) && (@func2 <= 170)) \ || (@func2 >= 179) ) && (@f2scale != 0) endparam param const4f2 caption = "4th Func2 Constant" default = 1.0 hint = "If four constants are needed in a function formula, this parameter \ sets the fourth one. Affects the shape of the trap" visible = @showtrapfuncs && \ ((@traptype == "functions") || ((@coordtype == "Parametric") && \ (@traptype != "oscillators")) || ((@coordtype == "Mixed") && (@traptype \ == "mixed 2")) ) && ( (@func2 == 79) || (@func2 == 80) || (@func2 == 82) || (@func2 == 83) || \ (@func2 == 95) || (@func2 == 96) || (@func2 == 128) || (@func2 == 129) \ || ((@func2 >= 191) && (@func2 <= 205)) || \ (@func2 == 212) || (@func2 == 213) || (@func2 >= 216) ) && (@f2scale != 0) endparam param f2absangle caption = "Func2 Abs Argument" default = FALSE hint = "If enabled, then the absolute value of the angle is used as the function \ argument, rather than the raw angle. Normally without affect unless the angle \ has been modified by 'Offset Angle', 'Spread Angle', or 'Screwiness Type'" visible = @showtrapfuncs && \ ((@traptype == "functions") || ((@coordtype == "Parametric") && \ (@traptype != "oscillators")) || ((@coordtype == "Mixed") && (@traptype \ == "mixed 2")) ) && @f2scale != 0.0 endparam param f2absresult caption = "Func2 Abs Result" default = FALSE hint = "If enabled, then the absolute value of the function result is used to \ compute the trap point, rather than the raw result" visible = @showtrapfuncs && \ ((@traptype == "functions") || ((@coordtype == "Parametric") && \ (@traptype != "oscillators")) || ((@coordtype == "Mixed") && (@traptype \ == "mixed 2")) ) && @f2scale != 0.0 endparam param func3 caption = "Function 3" enum = "a" "1/a" "a^2" "1/a^2" "log(a)" \ "e^a" "a^a" "sin(a)" "cos(a)" "tan(a)" \ "arcsin(a)" "arccos(a)" "arctan(a)" "sinh(a)" "cosh(a)" \ "tanh(a)" "arcsinh(a)" "arccosh(a)" "arctanh(a)" "log(1/a)" \ "log(log(a))" "e^(1/a)" "sin(a)^n" "cos(a)^n" "tan(a)^n" \ "cot(a)" "sec(a)" "csc(a)" "cot(a)^n" "sec(a)^n" \ "csc(a)^n" "a^a^a" "1/(a^a^a)" "1/log(a)" "a*log(a)" \ "sin(a)/a" "cos(a)/a" "sin(a)*cos(a)" "sin(a^n)" "a*e^a" \ "a*e^(1/a)" "arccot(a)" "arcsec(a)" "arccsc(a)" "tan(a)/a" \ "cot(a)/a" "sec(a)/a" "csc(a)/a" "a*sin(a)" "a*cos(a)" \ "a*tan(a)" "a*cot(a)" "a*sec(a)" "a*csc(a)" "sin(1/a)" \ "cos(1/a)" "tan(1/a)" "cot(1/a)" "sec(1/a)" "csc(1/a)" \ "cotanh(a)" "sech(a)" "cosech(a)" "arccoth(a)" "arcsech(a)" \ "arccosech(a)" "a^n" "sinh(a)^n" "cosh(a)^n" "tanh(a)^n" \ "cotanh(a)^n" "sech(a)^n" "cosech(a)^n" "sinh(1/a)" "cosh(1/a)" \ "tanh(1/a)" "cotanh(1/a)" "sech(1/a)" "cosech(1/a)" "sin(a)tan(a)" \ "sinh(a)tanh(a)" "sinh(a)cosh(a)" "sinh(a)^m*cosh(a)^n" "sin(a)^n*cos(a)^n" "sin(1/a)*cos(1/a)" \ "sin(1/a)^n" "sin(a)cos(1/a)" "sin(a)sin(1/a)" "log(a)^n" "sin(n*a)sin(m*a)" \ "sinh(1/a)cosh(1/a)" "sinh(1/a)^n" "sinh(a)cosh(1/a)" "sinh(a)sinh(1/a)" "sin(a)sinh(a)" \ "sin(a)cosh(a)" "sin(a)^n*sinh(a)^n" "sin(a)e^a" "cos(a)e^a" "sinh(a)e^a" \ "cosh(a)e^a" "sin(a)log(a)" "cos(a)log(a)" "sinh(a)log(a)" "cosh(a)log(a)" \ "e^(a^n)" "e^(1/(a^n))" "abs(a)" "round(a)" "trunc(a)" \ "ceil(a)" "floor(a)" "bifolium" "cardioid" "circle" \ "cissoid of Diocles" "cochleoid" "companion to cycloid (x)" "companion to cycloid (y)" "conchoid of Nicomedes" \ "cycloid 1 (x)" "cycloid 1 (y)" "cycloid 2 (x)" "cycloid 2 (y)" "curtate cycloid (x)" \ "curtate cycloid (y)" "ellipse (x)" "ellipse (y)" "epicycloid (x)" "epicycloid (y)" \ "evolute of ellipse (x)" "evolute of ellipse (y)" "folium of Descartes" "hyperbola (x)" "hyperbola (y)" \ "involute (x)" "involute (y)" "lemniscate of Bernoulli" "limacon of Pascal" "lituus" \ "nephroid (x)" "nephroid (y)" "parabola" "rose" "semicubical parabola" \ "serpentine (x)" "serpentine (y)" "spiral of Archimedes" "hyperbolic spiral" "logarithmic spiral" \ "parabolic spiral" "strophoid" "tractrix (x)" "tractrix (y)" "witch of Agnesi (x)" \ "witch of Agnesi (y)" "cubical parabola" "lissajous (x)" "lissajous (y)" "hypocycloid (x)" \ "hypocycloid (y)" "circle 2" "conchoid 2" "conchoid of de Sluze" "ellipse 2" \ "folium of Descartes 2 (x)" "folium of Descartes 2 (y)" "kampyle of Eudoxus" "kappa curve" "wavy circle (x)" \ "wavy circle (y)" "a/log(a)" "log(a)/a" "(e^a)/a" "(e^(1/a))/a" \ "(e^(a^n))/a" "(e^(1/(a^n))/a" "a*e^(a^n)" "a*e^(1/(a^n))" "log(a) B" \ "log(log(a)) B" "Xarctangent" "Xsine" "Xparabola" "Xampersand" \ "Xampersand2" "Xhyperbola" "Xbifolium" "Xbow" "Xbean" \ "Xdulcimer" "sin+tan" "sin+cot" "sin+sec" "sin+csc" \ "cos+tan" "cos+cot" "cos+sec" "cos+csc" "cos*cot" \ "sec*csc" "sin^n * cos^m" "sin^n + cos^m" "sin^n + cos^n" "cos(1/a)^n" \ "sin(a)+sin(1/a)" "log(a)e^a" "log(a)e^a B" "log(1/a) B" "1/log(a) B" \ "alog(a) B" "log(a)^n B" "sin(a)log(a) B" "cos*log B" "a/log(a) B" \ "log(a)/a B" "tan*log" "tan*log B" "e^(sin+cos)" "e^(sin+tan)" \ "sin+e^(sin)" "log(sin+cos)" "sin(sin)" "sin+tan(sin)" "Gielis' curve" \ "sin+e^tan" "tan+e^sin" "tan+e^tan" "tan+tan(sin)" "tan+sin(tan)" \ "sin+sin(tan)" "sin^m + tan^n" "hyperbola 2" "semicubical parabola 2" "cubical parabola 2" \ "bean curve" "butterfly 1" "butterfly 2" "teardrop (x)" "teardrop (y)" \ "Ddumbbell" "Drose" "Plateau curve (x)" "Plateau curve (y)" "hyperbola3 (x)" \ "hyperbola3 (y)" "Gielis 2" "polygon" "star" "curved polygon" default = 0 hint = "This parameter sets the third function; to inactivate it, \ set 'Func3 Scale' to zero. For the active combinations, \ this function calculates: 'Parametric/functions', the second \ x-coordinate; 'Mixed/functions', \ the y-coordinate" visible = @showtrapfuncs && \ (((@coordtype == "Parametric") && \ (@traptype == "functions")) || ((@coordtype == "Mixed") && (@traptype \ == "functions")) ) && @f3scale != 0.0 endparam param f3scale caption = "Func3 Scale" default = 0.0 hint = "This parameter can be used to selectively adjust the scale of the \ third function, or to turn it off by setting the value to zero" visible = @showtrapfuncs && \ (((@coordtype == "Parametric") && \ (@traptype == "functions")) || ((@coordtype == "Mixed") && (@traptype \ == "functions"))) endparam param f3offset caption = "Func3 Offset" default = 0.0 hint = "This value is added to the unscaled result of the 'Function 3' calculation" visible = @showtrapfuncs && \ (((@coordtype == "Parametric") && \ (@traptype == "functions")) || ((@coordtype == "Mixed") && (@traptype \ == "functions")) ) && @f3scale != 0.0 endparam param const1f3 caption = "1st Func3 Constant" default = 1.0 hint = "In the function formulas, this parameter usually modifies the \ innermost function, or expression of highest precedence. Affects \ the shape of the trap" visible = @showtrapfuncs && \ (((@coordtype == "Parametric") && \ (@traptype == "functions")) || ((@coordtype == "Mixed") && (@traptype \ == "functions")) ) && \ ((@func3 > 3) && (@func3 != 107)) \ && (@f3scale != 0.0) endparam param const2f3 caption = "2nd Func3 Constant" default = 1.0 hint = "In the function formulas, this parameter, if present, usually \ modifies an expression of lower precedence, but is often an exponent \ if one is needed. Affects the shape of the trap" visible = @showtrapfuncs && \ (((@coordtype == "Parametric") && \ (@traptype == "functions")) || ((@coordtype == "Mixed") && (@traptype \ == "functions")) ) && \ ( (@func3 == 19) || (@func3 == 20) || ((@func3 >= 22) && (@func3 <= 24)) || ((@func3 >= 28) && (@func3 <= 32)) \ || (@func3 == 37) || ((@func3 >= 67) && (@func3 <= 72)) || ((@func3 >= 79) && (@func3 <= 106)) \ || (@func3 == 38) || ((@func3 >= 112) && (@func3 <= 113)) || (@func3 == 115) || \ ((@func3 >= 118) && (@func3 <= 129)) || ((@func3 >= 132) && (@func3 <= 136)) || (@func3 == 138) \ || ((@func3 >= 140) && (@func3 <= 142)) || (@func3 == 144) || (@func3 == 146) || \ ((@func3 >= 150) && (@func3 <= 152)) || ((@func3 >= 155) && (@func3 <= 167)) || \ ((@func3 >= 169) && (@func3 <= 170)) || (@func3 >= 175) ) \ && (@f3scale != 0) endparam param const3f3 caption = "3rd Func3 Constant" default = 1.0 hint = "If three constants are needed in a function formulas, this parameter \ sets the third one. Its use varies. In 'ellipse 2' this is the \ exponent. Affects the shape of the trap" visible = @showtrapfuncs && \ (((@coordtype == "Parametric") && \ (@traptype == "functions")) || ((@coordtype == "Mixed") && (@traptype \ == "functions")) ) && \ ( (@func3 == 20) || (@func3 == 37) || ((@func3 >= 79) && (@func3 <= 84)) || \ (@func3 == 86) || (@func3 == 87) || (@func3 == 89) || (@func3 == 90) || \ ((@func3 >= 92) && (@func3 == 96)) || (@func3 == 98) || (@func3 == 100) || \ (@func3 == 102) || (@func3 == 104) || ((@func3 >=120) && (@func3 <= 125)) \ || ((@func3 >= 128) && (@func3 <= 129)) || ((@func3 >= 135) && (@func3 <= 136)) || (@func3 == 132) \ || (@func3 == 138) || ((@func3 >= 140) && (@func3 <= 142)) || \ (@func3 == 146) || ((@func3 >= 159) && (@func3 <= 160)) || \ ((@func3 >= 162) && (@func3 <= 166)) || ((@func3 >= 169) && (@func3 <= 170)) \ || ((@func3 >= 179)) ) && (@f3scale != 0) endparam param const4f3 caption = "4th Func3 Constant" default = 1.0 hint = "If four constants are needed in a function formula, this parameter \ sets the fourth one. Affects the shape of the trap" visible = @showtrapfuncs && \ (((@coordtype == "Parametric") && \ (@traptype == "functions")) || ((@coordtype == "Mixed") && (@traptype \ == "functions")) ) && ( (@func3 == 79) || (@func3 == 80) || (@func3 == 82) || (@func3 == 83) || \ (@func3 == 95) || (@func3 == 96) || (@func3 == 128) || (@func3 == 129) \ || ((@func3 >= 191) && (@func3 <= 205)) || \ (@func3 == 212) || (@func3 == 213) || (@func3 >= 216) ) && (@f3scale != 0) endparam param f3absangle caption = "Func3 Abs Argument" default = FALSE hint = "If enabled, then the absolute value of the angle is used as the function \ argument, rather than the raw angle. Normally without affect unless the angle \ has been modified by 'Offset Angle', 'Spread Angle', or 'Screwiness Type'" visible = @showtrapfuncs && \ (((@coordtype == "Parametric") && \ (@traptype == "functions")) || ((@coordtype == "Mixed") && (@traptype \ == "functions")) ) && @f3scale != 0.0 endparam param f3absresult caption = "Func3 Abs Result" default = FALSE hint = "If enabled, then the absolute value of the function result is used to \ compute the trap point, rather than the raw result" visible = @showtrapfuncs && \ (((@coordtype == "Parametric") && \ (@traptype == "functions")) || ((@coordtype == "Mixed") && (@traptype \ == "functions")) ) && @f3scale != 0.0 endparam param func4 caption = "Function 4" enum = "a" "1/a" "a^2" "1/a^2" "log(a)" \ "e^a" "a^a" "sin(a)" "cos(a)" "tan(a)" \ "arcsin(a)" "arccos(a)" "arctan(a)" "sinh(a)" "cosh(a)" \ "tanh(a)" "arcsinh(a)" "arccosh(a)" "arctanh(a)" "log(1/a)" \ "log(log(a))" "e^(1/a)" "sin(a)^n" "cos(a)^n" "tan(a)^n" \ "cot(a)" "sec(a)" "csc(a)" "cot(a)^n" "sec(a)^n" \ "csc(a)^n" "a^a^a" "1/(a^a^a)" "1/log(a)" "a*log(a)" \ "sin(a)/a" "cos(a)/a" "sin(a)*cos(a)" "sin(a^n)" "a*e^a" \ "a*e^(1/a)" "arccot(a)" "arcsec(a)" "arccsc(a)" "tan(a)/a" \ "cot(a)/a" "sec(a)/a" "csc(a)/a" "a*sin(a)" "a*cos(a)" \ "a*tan(a)" "a*cot(a)" "a*sec(a)" "a*csc(a)" "sin(1/a)" \ "cos(1/a)" "tan(1/a)" "cot(1/a)" "sec(1/a)" "csc(1/a)" \ "cotanh(a)" "sech(a)" "cosech(a)" "arccoth(a)" "arcsech(a)" \ "arccosech(a)" "a^n" "sinh(a)^n" "cosh(a)^n" "tanh(a)^n" \ "cotanh(a)^n" "sech(a)^n" "cosech(a)^n" "sinh(1/a)" "cosh(1/a)" \ "tanh(1/a)" "cotanh(1/a)" "sech(1/a)" "cosech(1/a)" "sin(a)tan(a)" \ "sinh(a)tanh(a)" "sinh(a)cosh(a)" "sinh(a)^m*cosh(a)^n" "sin(a)^n*cos(a)^n" "sin(1/a)*cos(1/a)" \ "sin(1/a)^n" "sin(a)cos(1/a)" "sin(a)sin(1/a)" "log(a)^n" "sin(n*a)sin(m*a)" \ "sinh(1/a)cosh(1/a)" "sinh(1/a)^n" "sinh(a)cosh(1/a)" "sinh(a)sinh(1/a)" "sin(a)sinh(a)" \ "sin(a)cosh(a)" "sin(a)^n*sinh(a)^n" "sin(a)e^a" "cos(a)e^a" "sinh(a)e^a" \ "cosh(a)e^a" "sin(a)log(a)" "cos(a)log(a)" "sinh(a)log(a)" "cosh(a)log(a)" \ "e^(a^n)" "e^(1/(a^n))" "abs(a)" "round(a)" "trunc(a)" \ "ceil(a)" "floor(a)" "bifolium" "cardioid" "circle" \ "cissoid of Diocles" "cochleoid" "companion to cycloid (x)" "companion to cycloid (y)" "conchoid of Nicomedes" \ "cycloid 1 (x)" "cycloid 1 (y)" "cycloid 2 (x)" "cycloid 2 (y)" "curtate cycloid (x)" \ "curtate cycloid (y)" "ellipse (x)" "ellipse (y)" "epicycloid (x)" "epicycloid (y)" \ "evolute of ellipse (x)" "evolute of ellipse (y)" "folium of Descartes" "hyperbola (x)" "hyperbola (y)" \ "involute (x)" "involute (y)" "lemniscate of Bernoulli" "limacon of Pascal" "lituus" \ "nephroid (x)" "nephroid (y)" "parabola" "rose" "semicubical parabola" \ "serpentine (x)" "serpentine (y)" "spiral of Archimedes" "hyperbolic spiral" "logarithmic spiral" \ "parabolic spiral" "strophoid" "tractrix (x)" "tractrix (y)" "witch of Agnesi (x)" \ "witch of Agnesi (y)" "cubical parabola" "lissajous (x)" "lissajous (y)" "hypocycloid (x)" \ "hypocycloid (y)" "circle 2" "conchoid 2" "conchoid of de Sluze" "ellipse 2" \ "folium of Descartes 2 (x)" "folium of Descartes 2 (y)" "kampyle of Eudoxus" "kappa curve" "wavy circle (x)" \ "wavy circle (y)" "a/log(a)" "log(a)/a" "(e^a)/a" "(e^(1/a))/a" \ "(e^(a^n))/a" "(e^(1/(a^n))/a" "a*e^(a^n)" "a*e^(1/(a^n))" "log(a) B" \ "log(log(a)) B" "Xarctangent" "Xsine" "Xparabola" "Xampersand" \ "Xampersand2" "Xhyperbola" "Xbifolium" "Xbow" "Xbean" \ "Xdulcimer" "sin+tan" "sin+cot" "sin+sec" "sin+csc" \ "cos+tan" "cos+cot" "cos+sec" "cos+csc" "cos*cot" \ "sec*csc" "sin^n * cos^m" "sin^n + cos^m" "sin^n + cos^n" "cos(1/a)^n" \ "sin(a)+sin(1/a)" "log(a)e^a" "log(a)e^a B" "log(1/a) B" "1/log(a) B" \ "alog(a) B" "log(a)^n B" "sin(a)log(a) B" "cos*log B" "a/log(a) B" \ "log(a)/a B" "tan*log" "tan*log B" "e^(sin+cos)" "e^(sin+tan)" \ "sin+e^(sin)" "log(sin+cos)" "sin(sin)" "sin+tan(sin)" "Gielis' curve" \ "sin+e^tan" "tan+e^sin" "tan+e^tan" "tan+tan(sin)" "tan+sin(tan)" \ "sin+sin(tan)" "sin^m + tan^n" "hyperbola 2" "semicubical parabola 2" "cubical parabola 2" \ "bean curve" "butterfly 1" "butterfly 2" "teardrop (x)" "teardrop (y)" \ "Ddumbbell" "Drose" "Plateau curve (x)" "Plateau curve (y)" "hyperbola3 (x)" \ "hyperbola3 (y)" "Gielis 2" "polygon" "star" "curved polygon" default = 0 hint = "This parameter sets the fourth function; to inactivate it, \ set 'Func4 Scale' to zero. For the active combination, \ 'Parametric/functions', this function calculates the second \ y-coordinate" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "functions")) \ && @f4scale != 0.0 endparam param f4scale caption = "Func4 Scale" default = 0.0 hint = "This parameter can be used to selectively adjust the scale of the \ fourth function, or to turn it off by setting the value to zero" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "functions")) endparam param f4offset caption = "Func4 Offset" default = 0.0 hint = "This value is added to the unscaled result of the 'Function 4' calculation" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "functions")) \ && @f4scale != 0.0 endparam param const1f4 caption = "1st Func4 Constant" default = 1.0 hint = "In the function formulas, this parameter usually modifies the \ innermost function, or expression of highest precedence. Affects \ the shape of the trap" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "functions")) && \ ((@func4 > 3) && (@func4 != 107)) \ && (@f4scale != 0) endparam param const2f4 caption = "2nd Func4 Constant" default = 1.0 hint = "In the function formulas, this parameter, if present, usually \ modifies an expression of lower precedence, but is often an exponent \ if one is needed. Affects the shape of the trap" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "functions")) && \ ( (@func4 == 19) || (@func4 == 20) || ((@func4 >= 22) && (@func4 <= 24)) || ((@func4 >= 28) && (@func4 <= 32)) \ || (@func4 == 37) || ((@func4 >= 67) && (@func4 <= 72)) || ((@func4 >= 79) && (@func4 <= 106)) \ || (@func4 == 38) || ((@func4 >= 112) && (@func4 <= 113)) || (@func4 == 115) || \ ((@func4 >= 118) && (@func4 <= 129)) || ((@func4 >= 132) && (@func4 <= 136)) || (@func4 == 138) \ || ((@func4 >= 140) && (@func4 <= 142)) || (@func4 == 144) || (@func4 == 146) || \ ((@func4 >= 150) && (@func4 <= 152)) || ((@func4 >= 155) && (@func4 <= 167)) || \ ((@func4 >= 169) && (@func4 <= 170)) || (@func4 >= 175) ) \ && (@f4scale != 0) endparam param const3f4 caption = "3rd Func4 Constant" default = 1.0 hint = "If three constants are needed in a function formulas, this parameter \ sets the third one. Its use varies. In 'ellipse 2' this is the \ exponent. Affects the shape of the trap" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "functions")) && \ ( (@func4 == 20) || (@func4 == 37) || ((@func4 >= 79) && (@func4 <= 84)) || \ (@func4 == 86) || (@func4 == 87) || (@func4 == 89) || (@func4 == 90) || \ ((@func4 >= 92) && (@func4 == 96)) || (@func4 == 98) || (@func4 == 100) || \ (@func4 == 102) || (@func4 == 104) || ((@func4 >=120) && (@func4 <= 125)) \ || ((@func4 >= 128) && (@func4 <= 129)) || ((@func4 >= 135) && (@func4 <= 136)) || (@func4 == 132) \ || (@func4 == 138) || ((@func4 >= 140) && (@func4 <= 142)) || \ (@func4 == 146) || ((@func4 >= 159) && (@func4 <= 160)) || \ ((@func4 >= 162) && (@func4 <= 166)) || ((@func4 >= 169) && (@func4 <= 170)) \ || ((@func4 >= 179)) ) && (@f4scale != 0) endparam param const4f4 caption = "4th Func4 Constant" default = 1.0 hint = "If four constants are needed in a function formula, this parameter \ sets the fourth one. Affects the shape of the trap" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "functions")) && \ ( (@func1 == 79) || (@func1 == 80) || (@func1 == 82) || (@func1 == 83) || \ (@func1 == 95) || (@func1 == 96) || (@func4 == 128) || (@func4 == 129) \ || ((@func1 >= 191) && (@func1 <= 205)) || \ (@func1 == 212) || (@func1 == 213) || (@func1 >= 216) ) && (@f4scale != 0) endparam param f4absangle caption = "Func4 Abs Argument" default = FALSE hint = "If enabled, then the absolute value of the angle is used as the function \ argument, rather than the raw angle. Normally without affect unless the angle \ has been modified by 'Offset Angle', 'Spread Angle', or 'Screwiness Type'" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "functions")) \ && @f4scale != 0.0 endparam param f4absresult caption = "Func4 Abs Result" default = FALSE hint = "If enabled, then the absolute value of the function result is used to \ compute the trap point, rather than the raw result" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "functions")) \ && @f4scale != 0.0 endparam param gielisexponent caption = "Gielis 2 Exponent" default = 6.0 hint = "If any of functions 1-4 are set to 'Gielis 2', then this parameter \ sets the exponent for all of them" visible = @showtrapfuncs && ( (@f1scale != 0.0 && @func1 == 246) || \ (@f2scale != 0.0 && @func2 == 246) || (@f3scale != 0.0 && @func3 == 246) || \ (@f4scale != 0.0 && @func4 == 246) ) endparam param polygonsides caption = "Polygon Sides" default = 5 min = 3 max = 18 hint = "If any of functions 1-4 are set to 'polygon', then this parameter \ sets the number of sides for all of them" visible = @showtrapfuncs && ( (@f1scale != 0.0 && @func1 == 247) || \ (@f2scale != 0.0 && @func2 == 247) || (@f3scale != 0.0 && @func3 == 247) || \ (@f4scale != 0.0 && @func4 == 247) ) endparam param polygonradius caption = "Polygon Radius" default = 1.0 hint = "If any of functions 1-4 are set to 'polygon', then this parameter \ sets the overall size for all of them" visible = @showtrapfuncs && ( (@f1scale != 0.0 && @func1 == 247) || \ (@f2scale != 0.0 && @func2 == 247) || (@f3scale != 0.0 && @func3 == 247) || \ (@f4scale != 0.0 && @func4 == 247) ) endparam param polystarpoints caption = "Star Points" default = 7 min = 3 max = 18 hint = "If any of functions 1-4 are set to 'star', then this parameter \ sets the number of points for all of them" visible = @showtrapfuncs && ( (@f1scale != 0.0 && @func1 == 248) || \ (@f2scale != 0.0 && @func2 == 248) || (@f3scale != 0.0 && @func3 == 248) || \ (@f4scale != 0.0 && @func4 == 248) ) endparam param polystarradius caption = "Star Radius" default = 1.0 hint = "If any of functions 1-4 are set to 'star', then this parameter \ sets the overall size for all of them" visible = @showtrapfuncs && ( (@f1scale != 0.0 && @func1 == 248) || \ (@f2scale != 0.0 && @func2 == 248) || (@f3scale != 0.0 && @func3 == 248) || \ (@f4scale != 0.0 && @func4 == 248) ) endparam param polystarspikiness caption = "Star Spikiness" default = 2.0 hint = "If any of functions 1-4 are set to 'star', then this parameter \ sets the length of the points for all of them" visible = @showtrapfuncs && ( (@f1scale != 0.0 && @func1 == 248) || \ (@f2scale != 0.0 && @func2 == 248) || (@f3scale != 0.0 && @func3 == 248) || \ (@f4scale != 0.0 && @func4 == 248) ) endparam param polygoncusps caption = "Curved Poly Cusps" default = 5 min = 3 max = 18 hint = "Number of sides of the curved polygon (3-18). This setting affects \ any of functions 1 - 4 that are set to 'curved polygon'" visible = @showtrapfuncs && ( (@f1scale != 0.0 && @func1 == 249) || \ (@f2scale != 0.0 && @func2 == 249) || (@f3scale != 0.0 && @func3 == 249) || \ (@f4scale != 0.0 && @func4 == 249) ) endparam param polycuspradius caption = "Curved Poly Size" default = 0.1 hint = "Determines the overall size of the curved polygon; radius of \ circumscribing circle. This setting affects \ any of functions 1 - 4 that are set to 'curved polygon'" visible = @showtrapfuncs && ( (@f1scale != 0.0 && @func1 == 249) || \ (@f2scale != 0.0 && @func2 == 249) || (@f3scale != 0.0 && @func3 == 249) || \ (@f4scale != 0.0 && @func4 == 249) ) endparam param polycuspdepth caption = "Cusp Depth" default = 0.1 hint = "Determines the sharpness of the curved polygon cusps. This setting affects \ any of functions 1 - 4 that are set to 'curved polygon'" visible = @showtrapfuncs && ( (@f1scale != 0.0 && @func1 == 249) || \ (@f2scale != 0.0 && @func2 == 249) || (@f3scale != 0.0 && @func3 == 249) || \ (@f4scale != 0.0 && @func4 == 249) ) endparam param cuspexponent caption = "Cusp Adjustment" default = 0.333333333333333 hint = "Affects the curvature and sharpness of the curved polygon cusps" visible = @showtrapfuncs && ( (@f1scale != 0.0 && @func1 == 249) || \ (@f2scale != 0.0 && @func2 == 249) || (@f3scale != 0.0 && @func3 == 249) || \ (@f4scale != 0.0 && @func4 == 249) ) endparam param osc11amp caption = "SetA Osc1 Amplitude" default = 4.0 hint = "If the first oscillator set (Set A) is active, then this \ value is the amplitude of Set A's first oscillator. \ Osc Set A can be disabled by setting the amplitude of its first \ oscillator to zero. In the active \ combinations, Set A is used to compute the following: \ 'Polar/oscillators', the first radius; 'Polar/mixed1' and \ 'Polar/mixed 2', the second radius; 'Parametric/oscillator', the first \ x-ccordinate; 'Parametric/mixed 1' and 'Parametric/mixed 2', the second \ x-coord; 'Mixed/oscillator' and 'Mixed/mixed 2', the radius; and \ 'Mixed/mixed 1', the x-coord" visible = @showtrapfuncs && \ (@traptype != "functions") endparam param osc11freq caption = "SetA Osc1 Frequency" default = 1.0 hint = "If the first oscillator set (Set A) is active, then this \ value is the frequency of Set A's first oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") && \ (@osc11amp != 0.0) endparam param oscrecip11 caption = "Set A Osc 1 Reciprocal?" default = FALSE hint = "If enabled, Set A Oscillator 1 will use the reciprocal of the angular argument" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) endparam param oscpower11 caption = "Set A Osc 1 Power?" default = FALSE hint = "If enabled, Set A Oscillator 1 result will be raised to the power set by \ 'Set A Osc 1 Exponent' before being combined with the other oscillators" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) endparam param oscexponent11 caption = "Set A Osc 1 Exponent" default = 2.0 hint = "If 'Set A Osc 1 Power' is enabled, this parameter sets the exponent that will be used" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) && @oscpower11 endparam param osc11sin caption = "SetA Osc1 Sine?" default = FALSE hint = "If enabled, then functions other than cosine can be used \ for Set A's first oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) endparam param oscfunc11 caption = "Set A Osc 1 Function" enum = "sine" "tan" "exp" "sec" "csc" "cotan" "log" "none---angle only" default = 0 hint = "If 'Set A Osc 1 Sine' is enabled, than this parameter determines which \ function is used in place of the cosine function" visible = @showtrapfuncs && (@traptype != "functions") && (@osc11amp != 0.0) && @osc11sin endparam param oscoperation11 caption = "Set A Osc 1 Operator" enum = "+" "-" "*" "/" "^" "--" "//" "^^" default = 0 hint = "This parameter determines how this oscillator is combined with the previous \ oscillators" visible = FALSE ; the operator is irrelevant for the first oscillator of each set endparam param osc12amp caption = "SetA Osc2 Amplitude" default = 1.0 hint = "If the first oscillator set (Set A) is active, then this \ value is the amplitude of Set A's second oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") && \ (@osc11amp != 0.0) endparam param osc12freq caption = "SetA Osc2 Frequency" default = 4.0 hint = "If the first oscillator set (Set A) is active, then this \ value is the frequency of Set A's second oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") && \ (@osc11amp != 0.0) && (@osc12amp != 0.0) endparam param oscrecip12 caption = "Set A Osc 2 Reciprocal?" default = FALSE hint = "If enabled, Set A Oscillator 2 will use the reciprocal of the angular argument" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) endparam param oscpower12 caption = "Set A Osc 2 Power?" default = FALSE hint = "If enabled, Set A Oscillator 2 result will be raised to the power set by \ 'Set A Osc 2 Exponent' before being combined with the other oscillators" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) endparam param oscexponent12 caption = "Set A Osc 2 Exponent" default = 2.0 hint = "If 'Set A Osc 2 Power' is enabled, this parameter sets the exponent that will be used" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) && @oscpower12 endparam param osc12sin caption = "SetA Osc2 Sine?" default = FALSE hint = "If enabled, then functions other than cosine can be used \ for Set A's second oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) endparam param oscfunc12 caption = "Set A Osc 2 Function" enum = "sine" "tan" "exp" "sec" "csc" "cotan" "log" "none---angle only" default = 0 hint = "If 'Set A Osc 2 Sine' is enabled, than this parameter determines which \ function is used in place of the cosine function" visible = @showtrapfuncs && (@traptype != "functions") && (@osc12amp != 0.0) && @osc12sin \ && (@osc11amp != 0.0) endparam param oscoperation12 caption = "Set A Osc 2 Operator" enum = "+" "-" "*" "/" "^" "--" "//" "^^" default = 0 hint = "This parameter determines how this oscillator is combined with the previous \ oscillators of the current set" visible = @showtrapfuncs && (@traptype != "functions") && (@osc12amp != 0.0) && (@osc11amp != 0.0) endparam param osc13amp caption = "SetA Osc3 Amplitude" default = 0.0 hint = "If the first oscillator set (Set A) is active, then this \ value is the amplitude of Set A's third oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") && \ (@osc11amp != 0.0) && (@osc12amp != 0.0) endparam param osc13freq caption = "SetA Osc3 Frequency" default = 1.0 hint = "If the first oscillator set (Set A) is active, then this \ value is the frequency of Set A's third oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") && \ (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) endparam param oscrecip13 caption = "Set A Osc 3 Reciprocal?" default = FALSE hint = "If enabled, Set A Oscillator 3 will use the reciprocal of the angular argument" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) endparam param oscpower13 caption = "Set A Osc 3 Power?" default = FALSE hint = "If enabled, Set A Oscillator 3 result will be raised to the power set by \ 'Set A Osc 3 Exponent' before being combined with the other oscillators" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) endparam param oscexponent13 caption = "Set A Osc 3 Exponent" default = 2.0 hint = "If 'Set A Osc 3 Power' is enabled, this parameter sets the exponent that will be used" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) && @oscpower13 endparam param osc13sin caption = "SetA Osc3 Sine?" default = FALSE hint = "If enabled, then functions other than cosine can be used \ for Set A's third oscillator" visible = @showtrapfuncs && (@traptype != "functions") \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) endparam param oscfunc13 caption = "Set A Osc 3 Function" enum = "sine" "tan" "exp" "sec" "csc" "cotan" "log" "none---angle only" default = 0 hint = "If 'Set A Osc 3 Sine' is enabled, than this parameter determines which \ function is used in place of the cosine function" visible = @showtrapfuncs && (@traptype != "functions") && (@osc13amp != 0.0) && @osc13sin \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) endparam param oscoperation13 caption = "Set A Osc 3 Operator" enum = "+" "-" "*" "/" "^" "--" "//" "^^" default = 0 hint = "This parameter determines how this oscillator is combined with the previous \ oscillators of the current set" visible = @showtrapfuncs && (@traptype != "functions") \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) endparam param osc14amp caption = "SetA Osc4 Amplitude" default = 0.0 hint = "If the first oscillator set (Set A) is active, then this \ value is the amplitude of Set A's fourth oscillator" visible = @showtrapfuncs && \ (@traptype != "functions") && \ (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) endparam param osc14freq caption = "SetA Osc4 Frequency" default = 1.0 hint = "If the first oscillator set (Set A) is active, then this \ value is the frequency of Set A's fourth oscillator." visible = @showtrapfuncs && \ (@traptype != "functions") && \ (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) && (@osc14amp != 0.0) endparam param oscrecip14 caption = "Set A Osc 4 Reciprocal?" default = FALSE hint = "If enabled, Set A Oscillator 4 will use the reciprocal of the angular argument" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) && (@osc14amp != 0.0) endparam param oscpower14 caption = "Set A Osc 4 Power?" default = FALSE hint = "If enabled, Set A Oscillator 4 result will be raised to the power set by \ 'Set A Osc 4 Exponent' before being combined with the other oscillators" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) && (@osc14amp != 0.0) endparam param oscexponent14 caption = "Set A Osc 4 Exponent" default = 2.0 hint = "If 'Set A Osc 4 Power' is enabled, this parameter sets the exponent that will be used" visible = @showtrapfuncs && \ (@traptype != "functions") \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) && (@osc14amp != 0.0) && @oscpower14 endparam param osc14sin caption = "SetA Osc4 Sine?" default = FALSE hint = "If enabled, then functions other than cosine can be used \ for Set A's fourth oscillator" visible = @showtrapfuncs && (@traptype != "functions") \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) && (@osc14amp != 0.0) endparam param oscfunc14 caption = "Set A Osc 4 Function" enum = "sine" "tan" "exp" "sec" "csc" "cotan" "log" "none---angle only" default = 0 hint = "If 'Set A Osc 4 Sine' is enabled, than this parameter determines which \ function is used in place of the cosine function" visible = @showtrapfuncs && (@traptype != "functions") && (@osc14amp != 0.0) && @osc14sin \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) endparam param oscoperation14 caption = "Set A Osc 4 Operator" enum = "+" "-" "*" "/" "^" "--" "//" "^^" default = 0 hint = "This parameter determines how this oscillator is combined with the previous \ oscillators of the current set" visible = @showtrapfuncs && (@traptype != "functions") \ && (@osc11amp != 0.0) && (@osc12amp != 0.0) && (@osc13amp != 0.0) && (@osc14amp != 0.0) endparam param o1offset caption = "Osc SetA Offset" default = 0.0 hint = "This value is added to the unscaled result of the oscillator set A \ calculation" visible = @showtrapfuncs && (@traptype != "functions") && @osc11amp != 0.0 endparam param o1absangle caption = "OscA Abs Argument" default = FALSE hint = "If enabled, then the absolute value of the angle is used as the oscillator \ set A argument, rather than the raw angle. Normally without affect unless the angle \ has been modified by 'Offset Angle', 'Spread Angle', or 'Screwiness Type'" visible = @showtrapfuncs && (@traptype != "functions") && @osc11amp != 0.0 endparam param o1absresult caption = "OscA Abs Result" default = FALSE hint = "If enabled, then the absolute value of the oscillator result is used to \ compute the trap point, rather than the raw result" visible = @showtrapfuncs && (@traptype != "functions") && @osc11amp != 0.0 endparam param oscsetreciprocal1 caption = "Osc SetA Reciprocal" default = FALSE hint = "If enabled, the reciprocal of the oscillator combination result is used" visible = @showtrapfuncs && (@traptype != "functions") && @osc11amp != 0.0 endparam param osc21amp caption = "SetB Osc1 Amplitude" default = 4.0 hint = "If the second oscillator set (Set B) is active, then this \ value is the amplitude of Set B's first oscillator. \ Osc Set B can be disabled by setting the amplitude of its first \ oscillator to zero. In the active \ combinations, Set B is used to compute the following: \ 'Polar/oscillators', the second radius; 'Parametric/oscillator', the first \ y-ccordinate; 'Parametric/mixed 1' and 'Parametric/mixed 2', the second \ y-coord; 'Mixed/oscillator', the x-coord; and \ 'Mixed/mixed 1', the y-coord" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) endparam param osc21freq caption = "SetB Osc1 Frequency" default = 1.0 hint = "If the second oscillator set (Set B) is active, then this \ value is the frequency of Set B's first oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) endparam param oscrecip21 caption = "Set B Osc 1 Reciprocal?" default = FALSE hint = "If enabled, Set B Oscillator 1 will use the reciprocal of the angular argument" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) endparam param oscpower21 caption = "Set B Osc 1 Power?" default = FALSE hint = "If enabled, Set B Oscillator 1 result will be raised to the power set by \ 'Set B Osc 1 Exponent' before being combined with the other oscillators" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) endparam param oscexponent21 caption = "Set B Osc 1 Exponent" default = 2.0 hint = "If 'Set B Osc 1 Power' is enabled, this parameter sets the exponent that will be used" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) && @oscpower21 endparam param osc21sin caption = "SetB Osc1 Sine?" default = TRUE hint = "If enabled, then functions other than cosine can be used \ for Set B's first oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) endparam param oscfunc21 caption = "Set B Osc 1 Function" enum = "sine" "tan" "exp" "sec" "csc" "cotan" "log" "none---angle only" default = 0 hint = "If 'Set B Osc 1 Sine' is enabled, than this parameter determines which \ function is used in place of the cosine function" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) && @osc21sin endparam param oscoperation21 caption = "Set B Osc 1 Operator" enum = "+" "-" "*" "/" "^" "--" "//" "^^" default = 0 hint = "This parameter determines how this oscillator is combined with the previous \ oscillators" visible = FALSE ; the operator is irrelevant for the first oscillator of each set endparam param osc22amp caption = "SetB Osc2 Amplitude" default = -1.0 hint = "If the second oscillator set (Set B) is active, then this \ value is the amplitude of Set B's second oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) endparam param osc22freq caption = "SetB Osc2 Frequency" default = 4.0 hint = "If the second oscillator set (Set B) is active, then this \ value is the frequency of Set B's second oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) && (@osc22amp != 0.0) endparam param oscrecip22 caption = "Set B Osc 2 Reciprocal?" default = FALSE hint = "If enabled, Set B Oscillator 2 will use the reciprocal of the angular argument" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) && (@osc22amp != 0.0) endparam param oscpower22 caption = "Set B Osc 2 Power?" default = FALSE hint = "If enabled, Set B Oscillator 2 result will be raised to the power set by \ 'Set B Osc 2 Exponent' before being combined with the other oscillators" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) && (@osc22amp != 0.0) endparam param oscexponent22 caption = "Set B Osc 2 Exponent" default = 2.0 hint = "If 'Set B Osc 2 Power' is enabled, this parameter sets the exponent that will be used" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) && (@osc22amp != 0.0) && @oscpower22 endparam param osc22sin caption = "SetB Osc2 Sine?" default = TRUE hint = "If enabled, then functions other than cosine can be used \ for Set B's second oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) && (@osc22amp != 0.0) endparam param oscfunc22 caption = "Set B Osc 2 Function" enum = "sine" "tan" "exp" "sec" "csc" "cotan" "log" "none---angle only" default = 0 hint = "If 'Set B Osc 2 Sine' is enabled, than this parameter determines which \ function is used in place of the cosine function" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) && (@osc22amp != 0.0) && @osc22sin endparam param oscoperation22 caption = "Set B Osc 2 Operator" enum = "+" "-" "*" "/" "^" "--" "//" "^^" default = 0 hint = "This parameter determines how this oscillator is combined with the previous \ oscillators of the current set" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) && (@osc22amp != 0.0) endparam param osc23amp caption = "SetB Osc3 Amplitude" default = 0.0 hint = "If the second oscillator set (Set B) is active, then this \ value is the amplitude of Set B's third oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) && (@osc22amp != 0.0) endparam param osc23freq caption = "SetB Osc3 Frequency" default = 1.0 hint = "If the second oscillator set (Set B) is active, then this \ value is the frequency of Set B's third oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) endparam param oscrecip23 caption = "Set B Osc 3 Reciprocal?" default = FALSE hint = "If enabled, Set B Oscillator 3 will use the reciprocal of the angular argument" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) endparam param oscpower23 caption = "Set B Osc 3 Power?" default = FALSE hint = "If enabled, Set B Oscillator 3 result will be raised to the power set by \ 'Set B Osc 3 Exponent' before being combined with the other oscillators" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) endparam param oscexponent23 caption = "Set B Osc 3 Exponent" default = 2.0 hint = "If 'Set B Osc 3 Power' is enabled, this parameter sets the exponent that will be used" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) && @oscpower23 endparam param osc23sin caption = "SetB Osc3 Sine?" default = FALSE hint = "If enabled, then functions other than cosine can be used \ for Set B's third oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) endparam param oscfunc23 caption = "Set B Osc 3 Function" enum = "sine" "tan" "exp" "sec" "csc" "cotan" "log" "none---angle only" default = 0 hint = "If 'Set B Osc 3 Sine' is enabled, than this parameter determines which \ function is used in place of the cosine function" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) && @osc23sin endparam param oscoperation23 caption = "Set B Osc 3 Operator" enum = "+" "-" "*" "/" "^" "--" "//" "^^" default = 0 hint = "This parameter determines how this oscillator is combined with the previous \ oscillators of the current set" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) endparam param osc24amp caption = "SetB Osc4 Amplitude" default = 0.0 hint = "If the second oscillator set (Set B) is active, then this \ value is the amplitude of Set B's fourth oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) endparam param osc24freq caption = "SetB Osc4 Frequency" default = 1.0 hint = "If the second oscillator set (Set B) is active, then this \ value is the frequency of Set B's fourth oscillator." visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) && \ (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) && (@osc24amp != 0.0) endparam param oscrecip24 caption = "Set B Osc 4 Reciprocal?" default = FALSE hint = "If enabled, Set B Oscillator 4 will use the reciprocal of the angular argument" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) && (@osc24amp != 0.0) endparam param oscpower24 caption = "Set B Osc 4 Power?" default = FALSE hint = "If enabled, Set B Oscillator 4 result will be raised to the power set by \ 'Set B Osc 4 Exponent' before being combined with the other oscillators" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) && (@osc24amp != 0.0) endparam param oscexponent24 caption = "Set B Osc 4 Exponent" default = 2.0 hint = "If 'Set B Osc 4 Power' is enabled, this parameter sets the exponent that will be used" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) && (@osc24amp != 0.0) \ && @oscpower24 endparam param osc24sin caption = "SetB Osc4 Sine?" default = FALSE hint = "If enabled, then functions other than cosine can be used \ for Set B's fourth oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) && (@osc24amp != 0.0) endparam param oscfunc24 caption = "Set B Osc 4 Function" enum = "sine" "tan" "exp" "sec" "csc" "cotan" "log" "none---angle only" default = 0 hint = "If 'Set B Osc 4 Sine' is enabled, than this parameter determines which \ function is used in place of the cosine function" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) && (@osc24amp != 0.0) \ && @osc24sin endparam param oscoperation24 caption = "Set B Osc 4 Operator" enum = "+" "-" "*" "/" "^" "--" "//" "^^" default = 0 hint = "This parameter determines how this oscillator is combined with the previous \ oscillators of the current set" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && (@osc21amp != 0.0) && (@osc22amp != 0.0) && (@osc23amp != 0.0) && (@osc24amp != 0.0) endparam param o2offset caption = "Osc SetB Offset" default = 0.0 hint = "This value is added to the unscaled result of the oscillator set B \ calculation" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && @osc21amp != 0.0 endparam param o2absangle caption = "OscB Abs Argument" default = FALSE hint = "If enabled, then the absolute value of the angle is used as the oscillator \ set A argument, rather than the raw angle. Normally without affect unless the angle \ has been modified by 'Offset Angle', 'Spread Angle', or 'Screwiness Type'" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && @osc21amp != 0.0 endparam param o2absresult caption = "OscB Abs Result" default = FALSE hint = "If enabled, then the absolute value of the oscillator result is used to \ compute the trap point, rather than the raw result" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && @osc21amp != 0.0 endparam param oscsetreciprocal2 caption = "Osc SetB Reciprocal" default = FALSE hint = "If enabled, the reciprocal of the oscillator combination result is used" visible = @showtrapfuncs && \ ( ((@coordtype == "Polar") && (@traptype == "oscillators")) || \ ((@coordtype == "Parametric") && (@traptype != "functions")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "mixed 1")) ) \ && @osc21amp != 0.0 endparam param osc31amp caption = "SetC Osc1 Amplitude" default = 1.0 hint = "If the third oscillator set (Set C) is active, then this \ value is the amplitude of Set C's first oscillator. \ Osc Set C can be disabled by setting the amplitude of its first \ oscillator to zero. In the active \ combinations, Set C is used to compute the following: \ 'Parametric/oscillator', the second \ x-ccordinate; 'Mixed/oscillator', the y-coord" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) endparam param osc31freq caption = "SetC Osc1 Frequency" default = 1.0 hint = "If the third oscillator set (Set C) is active, then this \ value is the frequency of Set C's first oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) && \ (@osc31amp != 0.0) endparam param oscrecip31 caption = "Set C Osc 1 Reciprocal?" default = FALSE hint = "If enabled, Set C Oscillator 1 will use the reciprocal of the angular argument" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) endparam param oscpower31 caption = "Set C Osc 1 Power?" default = FALSE hint = "If enabled, Set C Oscillator 1 result will be raised to the power set by \ 'Set C Osc 1 Exponent' before being combined with the other oscillators" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) endparam param oscexponent31 caption = "Set C Osc 1 Exponent" default = 2.0 hint = "If 'Set C Osc 1 Power' is enabled, this parameter sets the exponent that will be used" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && @oscpower31 endparam param osc31sin caption = "SetC Osc1 Sine?" default = FALSE hint = "If enabled, then functions other than cosine can be used \ for Set C's first oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) endparam param oscfunc31 caption = "Set C Osc 1 Function" enum = "sine" "tan" "exp" "sec" "csc" "cotan" "log" "none---angle only" default = 0 hint = "If 'Set C Osc 1 Sine' is enabled, than this parameter determines which \ function is used in place of the cosine function" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && @osc31sin endparam param oscoperation31 caption = "Set C Osc 1 Operator" enum = "+" "-" "*" "/" "^" "--" "//" "^^" default = 0 hint = "This parameter determines how this oscillator is combined with the previous \ oscillators" visible = FALSE ; the operator is irrelevant for the first oscillator of each set endparam param osc32amp caption = "SetC Osc2 Amplitude" default = 0.0 hint = "If the third oscillator set (Set C) is active, then this \ value is the amplitude of Set C's second oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) && \ (@osc31amp != 0.0) endparam param osc32freq caption = "SetC Osc2 Frequency" default = 1.0 hint = "If the third oscillator set (Set C) is active, then this \ value is the frequency of Set C's second oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) && \ (@osc31amp != 0.0) && (@osc32amp != 0.0) endparam param oscrecip32 caption = "Set C Osc 2 Reciprocal?" default = FALSE hint = "If enabled, Set C Oscillator 2 will use the reciprocal of the angular argument" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) endparam param oscpower32 caption = "Set C Osc 2 Power?" default = FALSE hint = "If enabled, Set C Oscillator 2 result will be raised to the power set by \ 'Set C Osc 2 Exponent' before being combined with the other oscillators" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) endparam param oscexponent32 caption = "Set C Osc 2 Exponent" default = 2.0 hint = "If 'Set C Osc 2 Power' is enabled, this parameter sets the exponent that will be used" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) && @oscpower32 endparam param osc32sin caption = "SetC Osc2 Sine?" default = FALSE hint = "If enabled, then functions other than cosine can be used \ for Set C's second oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) endparam param oscfunc32 caption = "Set C Osc 2 Function" enum = "sine" "tan" "exp" "sec" "csc" "cotan" "log" "none---angle only" default = 0 hint = "If 'Set C Osc 2 Sine' is enabled, than this parameter determines which \ function is used in place of the cosine function" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) && @osc32sin endparam param oscoperation32 caption = "Set C Osc 2 Operator" enum = "+" "-" "*" "/" "^" "--" "//" "^^" default = 0 hint = "This parameter determines how this oscillator is combined with the previous \ oscillators of the current set" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) endparam param osc33amp caption = "SetC Osc3 Amplitude" default = 0.0 hint = "If the third oscillator set (Set C) is active, then this \ value is the amplitude of Set C's third oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) && \ (@osc31amp != 0.0) && (@osc32amp != 0.0) endparam param osc33freq caption = "SetC Osc3 Frequency" default = 1.0 hint = "If the third oscillator set (Set C) is active, then this \ value is the frequency of Set C's third oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) && \ (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) endparam param oscrecip33 caption = "Set C Osc 3 Reciprocal?" default = FALSE hint = "If enabled, Set C Oscillator 3 will use the reciprocal of the angular argument" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) endparam param oscpower33 caption = "Set C Osc 3 Power?" default = FALSE hint = "If enabled, Set C Oscillator 3 result will be raised to the power set by \ 'Set C Osc 3 Exponent' before being combined with the other oscillators" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) endparam param oscexponent33 caption = "Set C Osc 3 Exponent" default = 2.0 hint = "If 'Set C Osc 3 Power' is enabled, this parameter sets the exponent that will be used" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) && @oscpower33 endparam param osc33sin caption = "SetC Osc3 Sine?" default = FALSE hint = "If enabled, then functions other than cosine can be used \ for Set C's third oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) endparam param oscfunc33 caption = "Set C Osc 3 Function" enum = "sine" "tan" "exp" "sec" "csc" "cotan" "log" "none---angle only" default = 0 hint = "If 'Set C Osc 3 Sine' is enabled, than this parameter determines which \ function is used in place of the cosine function" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) && @osc33sin endparam param oscoperation33 caption = "Set C Osc 3 Operator" enum = "+" "-" "*" "/" "^" "--" "//" "^^" default = 0 hint = "This parameter determines how this oscillator is combined with the previous \ oscillators of the current set" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) endparam param osc34amp caption = "SetC Osc4 Amplitude" default = 0.0 hint = "If the third oscillator set (Set C) is active, then this \ value is the amplitude of Set C's fourth oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) && \ (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) endparam param osc34freq caption = "SetC Osc4 Frequency" default = 1.0 hint = "If the third oscillator set (Set C) is active, then this \ value is the frequency of Set C's fourth oscillator." visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) && \ (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) && (@osc34amp != 0.0) endparam param oscrecip34 caption = "Set C Osc 4 Reciprocal?" default = FALSE hint = "If enabled, Set C Oscillator 4 will use the reciprocal of the angular argument" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) && (@osc34amp != 0.0) endparam param oscpower34 caption = "Set C Osc 4 Power?" default = FALSE hint = "If enabled, Set C Oscillator 4 result will be raised to the power set by \ 'Set C Osc 4 Exponent' before being combined with the other oscillators" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) && (@osc34amp != 0.0) endparam param oscexponent34 caption = "Set C Osc 4 Exponent" default = 2.0 hint = "If 'Set C Osc 4 Power' is enabled, this parameter sets the exponent that will be used" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) && (@osc34amp != 0.0) \ && @oscpower34 endparam param osc34sin caption = "SetC Osc4 Sine?" default = FALSE hint = "If enabled, then functions other than cosine can be used \ for Set C's fourth oscillator" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) && (@osc34amp != 0.0) endparam param oscfunc34 caption = "Set C Osc 4 Function" enum = "sine" "tan" "exp" "sec" "csc" "cotan" "log" "none---angle only" default = 0 hint = "If 'Set C Osc 4 Sine' is enabled, than this parameter determines which \ function is used in place of the cosine function" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) && (@osc34amp != 0.0) \ && @osc34sin endparam param oscoperation34 caption = "Set C Osc 4 Operator" enum = "+" "-" "*" "/" "^" "--" "//" "^^" default = 0 hint = "This parameter determines how this oscillator is combined with the previous \ oscillators of the current set" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) && (@osc32amp != 0.0) && (@osc33amp != 0.0) && (@osc34amp != 0.0) endparam param o3offset caption = "Osc SetC Offset" default = 0.0 hint = "This value is added to the unscaled result of the oscillator set C \ calculation" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) endparam param o3absangle caption = "OscC Abs Argument" default = FALSE hint = "If enabled, then the absolute value of the angle is used as the oscillator \ set A argument, rather than the raw angle. Normally without affect unless the angle \ has been modified by 'Offset Angle', 'Spread Angle', or 'Screwiness Type'" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) endparam param o3absresult caption = "OscC Abs Result" default = FALSE hint = "If enabled, then the absolute value of the oscillator result is used to \ compute the trap point, rather than the raw result" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) endparam param oscsetreciprocal3 caption = "Osc SetC Reciprocal" default = FALSE hint = "If enabled, the reciprocal of the oscillator combination result is used" visible = @showtrapfuncs && \ ( ((@coordtype == "Parametric") && (@traptype == "oscillators")) || \ ((@coordtype == "Mixed") && (@traptype == "oscillators")) ) \ && (@osc31amp != 0.0) endparam param osc41amp caption = "SetD Osc1 Amplitude" default = 1.0 hint = "If the fourth oscillator set (Set D) is active, then this \ value is the amplitude of Set D's first oscillator. \ Osc Set D can be disabled by setting the amplitude of its first \ oscillator to zero. In the active \ combination, Set D is used to compute the following: \ 'Parametric/oscillator', the second \ y-ccordinate" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) endparam param osc41freq caption = "SetD Osc1 Frequency" default = 1.0 hint = "If the fourth oscillator set (Set D) is active, then this \ value is the frequency of Set D's first oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) && \ (@osc41amp != 0.0) endparam param oscrecip41 caption = "Set D Osc 1 Reciprocal?" default = FALSE hint = "If enabled, Set D Oscillator 1 will use the reciprocal of the angular argument" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) endparam param oscpower41 caption = "Set D Osc 1 Power?" default = FALSE hint = "If enabled, Set D Oscillator 1 result will be raised to the power set by \ 'Set D Osc 1 Exponent' before being combined with the other oscillators" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) endparam param oscexponent41 caption = "Set D Osc 1 Exponent" default = 2.0 hint = "If 'Set D Osc 1 Power' is enabled, this parameter sets the exponent that will be used" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && @oscpower41 endparam param osc41sin caption = "SetD Osc1 Sine?" default = FALSE hint = "If enabled, then functions other than cosine can be used \ for Set D's first oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) endparam param oscfunc41 caption = "Set D Osc 1 Function" enum = "sine" "tan" "exp" "sec" "csc" "cotan" "log" "none---angle only" default = 0 hint = "If 'Set D Osc 1 Sine' is enabled, than this parameter determines which \ function is used in place of the cosine function" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && @osc41sin endparam param oscoperation41 caption = "Set D Osc 1 Operator" enum = "+" "-" "*" "/" "^" "--" "//" "^^" default = 0 hint = "This parameter determines how this oscillator is combined with the previous \ oscillators" visible = FALSE ; the operator is irrelevant for the first oscillator of each set endparam param osc42amp caption = "SetD Osc2 Amplitude" default = 0.0 hint = "If the fourth oscillator set (Set D) is active, then this \ value is the amplitude of Set D's second oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) && \ (@osc41amp != 0.0) endparam param osc42freq caption = "SetD Osc2 Frequency" default = 1.0 hint = "If the fourth oscillator set (Set D) is active, then this \ value is the frequency of Set D's second oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) && \ (@osc41amp != 0.0) && (@osc42amp != 0.0) endparam param oscrecip42 caption = "Set D Osc 2 Reciprocal?" default = FALSE hint = "If enabled, Set D Oscillator 2 will use the reciprocal of the angular argument" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) endparam param oscpower42 caption = "Set D Osc 2 Power?" default = FALSE hint = "If enabled, Set D Oscillator 2 result will be raised to the power set by \ 'Set D Osc 2 Exponent' before being combined with the other oscillators" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) endparam param oscexponent42 caption = "Set D Osc 2 Exponent" default = 2.0 hint = "If 'Set D Osc 2 Power' is enabled, this parameter sets the exponent that will be used" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) && @oscpower42 endparam param osc42sin caption = "SetD Osc2 Sine?" default = FALSE hint = "If enabled, then functions other than cosine can be used \ for Set D's second oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) endparam param oscfunc42 caption = "Set D Osc 2 Function" enum = "sine" "tan" "exp" "sec" "csc" "cotan" "log" "none---angle only" default = 0 hint = "If 'Set D Osc 2 Sine' is enabled, than this parameter determines which \ function is used in place of the cosine function" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) && @osc42sin endparam param oscoperation42 caption = "Set D Osc 2 Operator" enum = "+" "-" "*" "/" "^" "--" "//" "^^" default = 0 hint = "This parameter determines how this oscillator is combined with the previous \ oscillators of the current set" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) endparam param osc43amp caption = "SetD Osc3 Amplitude" default = 0.0 hint = "If the fourth oscillator set (Set D) is active, then this \ value is the amplitude of Set D's third oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) && \ (@osc41amp != 0.0) && (@osc42amp != 0.0) endparam param osc43freq caption = "SetD Osc3 Frequency" default = 1.0 hint = "If the fourth oscillator set (Set D) is active, then this \ value is the frequency of Set D's third oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) && \ (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) endparam param oscrecip43 caption = "Set D Osc 3 Reciprocal?" default = FALSE hint = "If enabled, Set D Oscillator 3 will use the reciprocal of the angular argument" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) endparam param oscpower43 caption = "Set D Osc 3 Power?" default = FALSE hint = "If enabled, Set D Oscillator 3 result will be raised to the power set by \ 'Set D Osc 3 Exponent' before being combined with the other oscillators" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) endparam param oscexponent43 caption = "Set D Osc 3 Exponent" default = 2.0 hint = "If 'Set D Osc 3 Power' is enabled, this parameter sets the exponent that will be used" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) && @oscpower43 endparam param osc43sin caption = "SetD Osc3 Sine?" default = FALSE hint = "If enabled, then functions other than cosine can be used \ for Set D's third oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) endparam param oscfunc43 caption = "Set D Osc 3 Function" enum = "sine" "tan" "exp" "sec" "csc" "cotan" "log" "none---angle only" default = 0 hint = "If 'Set D Osc 3 Sine' is enabled, than this parameter determines which \ function is used in place of the cosine function" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) && @osc43sin endparam param oscoperation43 caption = "Set D Osc 3 Operator" enum = "+" "-" "*" "/" "^" "--" "//" "^^" default = 0 hint = "This parameter determines how this oscillator is combined with the previous \ oscillators of the current set" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) endparam param osc44amp caption = "SetD Osc4 Amplitude" default = 0.0 hint = "If the fourth oscillator set (Set D) is active, then this \ value is the amplitude of Set D's fourth oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) && \ (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) endparam param osc44freq caption = "SetD Osc4 Frequency" default = 1.0 hint = "If the fourth oscillator set (Set D) is active, then this \ value is the frequency of Set D's fourth oscillator." visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) && \ (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) && (@osc44amp != 0.0) endparam param oscrecip44 caption = "Set D Osc 4 Reciprocal?" default = FALSE hint = "If enabled, Set D Oscillator 4 will use the reciprocal of the angular argument" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) && (@osc44amp != 0.0) endparam param oscpower44 caption = "Set D Osc 4 Power?" default = FALSE hint = "If enabled, Set D Oscillator 4 result will be raised to the power set by \ 'Set D Osc 4 Exponent' before being combined with the other oscillators" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) && (@osc44amp != 0.0) endparam param oscexponent44 caption = "Set D Osc 4 Exponent" default = 2.0 hint = "If 'Set D Osc 4 Power' is enabled, this parameter sets the exponent that will be used" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) && (@osc44amp != 0.0) \ && @oscpower44 endparam param osc44sin caption = "SetD Osc4 Sine?" default = FALSE hint = "If enabled, then functions other than cosine can be used \ for Set D's fourth oscillator" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) && (@osc44amp != 0.0) endparam param oscfunc44 caption = "Set D Osc 4 Function" enum = "sine" "tan" "exp" "sec" "csc" "cotan" "log" "none---angle only" default = 0 hint = "If 'Set D Osc 4 Sine' is enabled, than this parameter determines which \ function is used in place of the cosine function" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) && (@osc44amp != 0.0) \ && @osc44sin endparam param oscoperation44 caption = "Set D Osc 4 Operator" enum = "+" "-" "*" "/" "^" "--" "//" "^^" default = 0 hint = "This parameter determines how this oscillator is combined with the previous \ oscillators of the current set" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) && (@osc42amp != 0.0) && (@osc43amp != 0.0) && (@osc44amp != 0.0) endparam param o4offset caption = "Osc SetD Offset" default = 0.0 hint = "This value is added to the unscaled result of the oscillator set D \ calculation" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) endparam param o4absangle caption = "OscD Abs Argument" default = FALSE hint = "If enabled, then the absolute value of the angle is used as the oscillator \ set A argument, rather than the raw angle. Normally without affect unless the angle \ has been modified by 'Offset Angle', 'Spread Angle', or 'Screwiness Type'" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) endparam param o4absresult caption = "OscD Abs Result" default = FALSE hint = "If enabled, then the absolute value of the oscillator result is used to \ compute the trap point, rather than the raw result" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) endparam param oscsetreciprocal4 caption = "Osc SetD Reciprocal" default = FALSE hint = "If enabled, the reciprocal of the oscillator combination result is used" visible = @showtrapfuncs && \ ((@coordtype == "Parametric") && (@traptype == "oscillators")) \ && (@osc41amp != 0.0) endparam param showtrapfuncs caption = "Show Trap Func Params?" default = TRUE endparam heading caption = "History Settings" $ifdef VER40 expanded = FALSE $endif endheading param history caption = "Enable History?" default = FALSE hint = "If enabled, previous iterations of z are also used to \ determine the trap. If enabled, it may also be of interest \ to set param 'Iterations to Skip' (in the 'Modifiers' section) \ to a non-zero value. Since the history array \ (containing values of previous z iterates) fills up regardless of the \ setting of 'Iterations to Skip', a non-zero value for 'Iterations to \ Skip' allows the history array to initialize with interesting values \ before trapping begins" visible = @showhistory endparam param hismode caption = "History Mode" default = 0 enum = "original" "alternative" "both" hint = "Determines whether history modifications are carried out before (original) \ or after (alternative) other #z initializations are performed. If no other \ #z initializations are enabled (such as modifiers 'Z Variants', 'Z Initialization', \ or any of the Z, front end real, or front end imag modulator functions), \ then 'original' mode will be the same as 'alternative' mode" visible = @history && @showhistory endparam param histype caption = "History Type" default = 1 min = 0 max = 370 hint = "Determines how previous z's are used for trapping, for 'History Mode' = \ 'original'. Range is an integer from 0 (no previous z used) to 370. \ Types 1-324 recur in sets of 36 (types 1-36 use previous z, 37-72 use 2nd \ previous z, etc). Types 325-370 use three generations of z" visible = @history && @showhistory && (@hismode == "original" || @hismode == "both") endparam param histype1index caption = "History 1 Index" default = 0 min = 0 max = 9 hint = "Determines how previous z's are used for trapping, for 'History Mode' = \ 'original'. Range is an integer from 0 to 9" visible = @history && @showhistory && (@hismode == "original" || @hismode == "both") endparam param zmixmatch1 caption = "Z MixMatch1" default = 0 min = 0 max = 1 hint = "Affects whether #z or modified z is used in the original history procedure. Results \ may not be apparent unless some of the Z modifiers, Z initialization, or front \ end modulator functions are also turned on. Options are 0 (#z) or 1 (modified z)" visible = @history && @showhistory && (@hismode == "original" || @hismode == "both") endparam param zmixmatch2 caption = "Z MixMatch2" default = 0 min = 0 max = 1 hint = "Affects whether #z or modified z is used in the original history procedure. Results \ may not be apparent unless some of the Z modifiers, Z initialization, or front \ end modulator functions are also turned on. Options are 0 (#z) or 1 (modified z)" visible = @history && @showhistory && (@hismode == "original" || @hismode == "both") endparam param zhist1blend caption = "Blend Original?" default = FALSE hint = "If 'History Mode' is set to 'original' or 'both', then enabling this option \ mixes in a portion of the unmodified #z with the history-modified z. The fraction \ of modified z blended in is set by parameter 'History Fraction'" visible = @history && @showhistory && (@hismode == "original" || @hismode == "both") endparam param zhist1fraction caption = "History Fraction" default = 0.1 hint = "If 'History Mode' is set to 'original' or 'both' and 'Blend Original' is enabled, \ then this is the fraction of modified z mixed in with the history-unmodified #z" visible = @history && @showhistory && (@hismode == "original" || @hismode == "both") && \ @zhist1blend endparam param histype2 caption = "History Type 2" default = 1 min = 0 max = 370 hint = "Determines how previous z's are used for trapping, for 'History Mode' = \ 'alternative'. Range is an integer from 0 (no previous z used) to 370. \ Types 1-324 recur in sets of 36 (types 1-36 use previous z, 37-72 use 2nd \ previous z, etc). Types 325-370 use three generations of z" visible = @history && @showhistory && (@hismode == "alternative" || @hismode == "both") endparam param histype2index caption = "History 2 Index" default = 0 min = 0 max = 9 hint = "Determines how previous z's are used for trapping, for 'History Mode' = \ 'alternative'. Range is an integer from 0 to 9" visible = @history && @showhistory && (@hismode == "alternative" || @hismode == "both") endparam param zmixmatch3 caption = "Z MixMatch3" default = 0 min = 0 max = 1 hint = "Affects whether #z or modified z is used in the alternative history procedure. Results \ may not be apparent unless some of the Z modifiers, Z initialization, or front \ end modulator functions are also turned on. Options are 0 (#z) or 1 (modified z)" visible = @history && @showhistory && (@hismode == "alternative" || @hismode == "both") endparam param zmixmatch4 caption = "Z MixMatch4" default = 1 min = 0 max = 1 hint = "Affects whether #z or modified z is used in the alternative history procedure. Results \ may not be apparent unless some of the Z modifiers, Z initialization, or front \ end modulator functions are also turned on. Options are 0 (#z) or 1 (modified z)" visible = @history && @showhistory && (@hismode == "alternative" || @hismode == "both") endparam param zhist2blend caption = "Blend Alternative?" default = FALSE hint = "If 'History Mode' is set to 'alternative' or 'both', then enabling this option \ mixes in a portion of the unmodified #z with the alternatively history-modified z. \ The fraction of modified z blended in is set by parameter 'History2 Fraction'" visible = @history && @showhistory && (@hismode == "alternative" || @hismode == "both") endparam param zhist2fraction caption = "History2 Fraction" default = 0.1 hint = "If 'History Mode' is set to 'alternative' or 'both' and 'Blend Alternative' is enabled, \ then this is the fraction of modified z mixed in with the history-unmodified #z" visible = @history && @showhistory && (@hismode == "alternative" || @hismode == "both") && \ @zhist2blend endparam param fixaltbug caption = "Fix Alt Bug?" default = TRUE hint = "Early versions of this formula with 'History Mode' set to 'alternative' contained \ a bug, which has been corrected. If you used that setting in an image and have compatibility \ problems, disable this parameter to get the original version of Trapestry" visible = @history && @showhistory && @hismode == "alternative" endparam param thistory caption = "Enable Trap History?" default = FALSE hint = "If enabled, previous generations of the trap point are also used to \ determine the new, current iteration trap point. Because of the \ implementation, the 'Trap History' effect is often more effective if \ one of the other trap modifiers is also turned on, such as 'Trap Variants', \ 'T Operator', 'T Waviness', or the trap or back end modulator functions" visible = @showhistory endparam param thismode caption = "Trap Hist Mode" default = 0 enum = "original" "alternative" "both" hint = "Determines whether trap history modifications are carried out before (alternative) \ or after (original) other trap modifiers are performed. If no other \ trap options are enabled (such as trap operator modifiers, 'Trap Variants', 'Trap Transmute', \ or any of the back end real or back end imag modulator functions), \ then 'original' mode will be the same as 'alternative' mode" visible = @thistory && @showhistory endparam param thistype caption = "Trap History Type" default = 1 min = 0 max = 370 hint = "Determines how previous trap generations are used to determine the new trap point \ for 'Trap Hist Mode' = 'original'. Range is an integer from 0 (no previous trap \ point used) to 370. \ Types 1-324 recur in sets of 36 (types 1-36 use previous trap, 37-72 use 2nd \ previous trap, etc). Types 325-370 use three generations of trapped point" visible = @thistory && @showhistory && ((@thismode == "original") || (@thismode == "both")) endparam param traphisindex caption = "Trap History Index" default = 0 min = 0 max = 9 hint = "Determines how previous trap generations are used to determine the new trap point \ for 'Trap Hist Mode' = 'original'. Range is an integer from 0 to 9" visible = @thistory && @showhistory && ((@thismode == "original") || (@thismode == "both")) endparam param trapmixmatch1 caption = "T MixMatch1" default = 1 min = 0 max = 1 hint = "Affects whether unmodified or modified trap point is used in the original history procedure. Results \ may not be apparent unless some of the trap modifiers, 'Trap Transmute', or back \ end modulator functions are also turned on. Options are 0 or 1" visible = @thistory && @showhistory && (@thismode == "original" || @thismode == "both") endparam param trapmixmatch2 caption = "T MixMatch2" default = 0 min = 0 max = 1 hint = "Affects whether unmodified or modified trap point is used in the original history procedure. Results \ may not be apparent unless some of the trap modifiers, 'Trap Transmute', or back \ end modulator functions are also turned on. Options are 0 or 1" visible = @thistory && @showhistory && (@thismode == "original" || @thismode == "both") endparam param thist1blend caption = "Blend TrapOriginal?" default = FALSE hint = "If 'Trap Hist Mode' is set to 'original' or 'both', then enabling this option \ mixes in a portion of the unmodified trap point with the history-modified trap. The fraction \ of modified trap blended in is set by parameter 'Trap Hist Fraction'" visible = @thistory && @showhistory && (@thismode == "original" || @thismode == "both") endparam param thist1fraction caption = "Trap Hist Fraction" default = 0.1 hint = "If 'Trap Hist Mode' is set to 'original' or 'both' and 'Blend TrapOriginal' is enabled, \ then this is the fraction of history-modified trap mixed in with the history-unmodified trap \ point" visible = @thistory && @showhistory && (@thismode == "original" || @thismode == "both") && \ @thist1blend endparam param thistype2 caption = "T Hist Type2" default = 1 min = 0 max = 370 hint = "Determines how previous trap generations are used to determine the new trap point \ for 'Trap Hist Mode' = 'alternative'. Range is an integer from 0 (no previous trap \ point used) to 370. \ Types 1-324 recur in sets of 36 (types 1-36 use previous trap, 37-72 use 2nd \ previous trap, etc). Types 325-370 use three generations of trapped point" visible = @thistory && @showhistory && ((@thismode == "alternative") || (@thismode == "both")) endparam param traphisindex2 caption = "T Hist Index2" default = 0 min = 0 max = 9 hint = "Determines how previous trap generations are used to determine the new trap point \ for 'Trap Hist Mode' = 'alternative'. Range is an integer from 0 to 9" visible = @thistory && @showhistory && ((@thismode == "alternative") || (@thismode == "both")) endparam param trapmixmatch3 caption = "T MixMatch3" default = 0 min = 0 max = 1 hint = "Affects whether unmodified or modified trap point is used in the alternative history procedure. Results \ may not be apparent unless some of the trap modifiers, 'Trap Transmute', or back \ end modulator functions are also turned on. Options are 0 or 1" visible = @thistory && @showhistory && (@thismode == "alternative" || @thismode == "both") endparam param trapmixmatch4 caption = "T MixMatch4" default = 1 min = 0 max = 1 hint = "Affects whether unmodified or modified trap point is used in the alternative history procedure. Results \ may not be apparent unless some of the trap modifiers, 'Trap Transmute', or back \ end modulator functions are also turned on. Options are 0 or 1" visible = @thistory && @showhistory && (@thismode == "alternative" || @thismode == "both") endparam param thist2blend caption = "Blend TrapAlternative?" default = FALSE hint = "If 'Trap Hist Mode' is set to 'alternative' or 'both', then enabling this option \ mixes in a portion of the unmodified trap point with the history-modified trap. The fraction \ of modified trap blended in is set by parameter 'Trap Hist2 Fraction'" visible = @thistory && @showhistory && (@thismode == "alternative" || @thismode == "both") endparam param thist2fraction caption = "Trap Hist2 Fraction" default = 0.1 hint = "If 'Trap Hist Mode' is set to 'alternative' or 'both' and 'Blend TrapAlternative' is enabled, \ then this is the fraction of history-modified trap mixed in with the history-unmodified trap \ point" visible = @thistory && @showhistory && (@thismode == "alternative" || @thismode == "both") && \ @thist2blend endparam param showhistory caption = "Show History Params?" hint = "The history-related parameters control the mixing in of previous generations \ of #z before or during the trapping of the current #z iterate" $ifdef VER40 default = TRUE $else default = FALSE $endif endparam heading caption = "Trap Positional Settings" $ifdef VER40 expanded = FALSE $endif endheading param varyscale caption = "Vary Scale?" default = FALSE hint = "If set, the value of the trap will modify the trap siae each iteration; \ parameter 'ScaleFeedback' can be used to modulate the variation" visible = @showpositionals endparam param scalestp caption = "ScaleFeedback" default = 1.0 hint = "If 'Vary Scale' is set, this setting adjusts the amount of variation" visible = @varyscale && @showpositionals endparam param rotate caption = "Rotation Angle" default = 0.0 min = -179.98 max = 359.98 hint = "Number of degrees (0-359) that the trap should be rotated from its default position" visible = @showpositionals endparam param varyrotation caption = "Vary Rotation?" default = FALSE hint = "If set, the value of the trap will modify the trap rotation each iteration; \ parameter 'RotationFeedback' can be used to modulate the variation" visible = @showpositionals endparam param rotationstp caption = "RotationFeedback" default = 1.0 hint = "If 'Vary Rotation' is set, this setting adjusts the amount of variation" visible = @varyrotation && @showpositionals endparam param centr caption = "Center" default = (0,0) hint = "Enter coordinates of trap center" visible = @showpositionals endparam param varycenter caption = "Vary Center?" default = FALSE hint = "If set, the value of the trap will modify the trap center each iteration; \ parameter 'CenterFeedback' can be used to modulate the variation. Only active \ if initial trap center is NOT (0,0)" visible = @showpositionals endparam param centerstp caption = "CenterFeedback" default = 1.0 hint = "If 'Vary Center' is set, this setting adjusts the amount of variation" visible = @varycenter && @showpositionals endparam param offsetangle caption = "Offset Angle?" default = FALSE hint = "If enabled, a constant angle can be added to the value of \ atan(z); set param 'AngleOffset Amount' to fix the increment. \ The increment is added before any adjustment by 'Spread Angle'" visible = @showpositionals endparam param offsetfactor caption = "AngleOffset Amount" default = -3.1415926535897932384626433832795 hint = "If param 'Offset Angle?' is enabled, this is the increment \ added to atan(z). The angle is given in radians. \ Inactive if 'Spread Angle?' is not enabled. \ The increment is added before any adjustment by 'Spread Angle'" visible = @offsetangle && @showpositionals endparam param sprangle caption = "Spread Angle?" default = FALSE hint = "If enabled, the angular range of z is stretched out or compressed, \ depending on the value of param 'AngleSpread Factor'. Active after \ 'Offset Angle'" visible = @showpositionals endparam param sprangfactor caption = "AngleSpread Factor" default = 3.0 hint = "If param 'Spread Angle?' is enabled, this is the stretching or \ compression multiplier of atan(z). 1.0 corresponds to no spreading. \ Inactive if 'Spread Angle?' is not enabled" visible = @sprangle && @showpositionals endparam param alternatespread caption = "Alternate Spread Style?" default = FALSE hint = "If 'Offset Angle' or 'Spread Angle' are enabled, or if 'Screwiness Type' is \ not set to 'none', then selecting this option changes how the \ trapped point is calculated, thereby changing the shape of the trap curve" visible = @showpositionals && ((@screwmode != 0) || @sprangle || @offsetangle) endparam param recipangle caption = "Prereciprocal Angle?" default = FALSE hint = "If enabled, then the reciprocal of Atan(z) is used to compute the trap \ function point. Operates prior to the 'Screwiness' routines" visible = @showpositionals endparam param postrecipangle caption = "Postreciprocal Angle?" default = FALSE hint = "If enabled, then the reciprocal of Atan(z) is used to compute the trap \ function point. Operates after the 'Screwiness' routines" visible = @showpositionals && (@screwmode != 0) endparam param @showpositionals caption = "Show Positional Params?" $ifdef VER40 default = TRUE $else default = FALSE $endif endparam heading caption = "Modifiers" $ifdef VER40 expanded = FALSE $endif endheading param skippediters caption = "Iterations to Skip" default = 0 hint = "Values will not be watched for trapping until after this many \ fractal iterations. Filling the 'History' array ignores this setting, \ so if 'History' is enabled, try a non-zero value here to have the \ array fill with previous gnerations of z before trapping begins" visible = @showmodifiers endparam param towatch caption = "Iterations to Watch" default = 0 min = 0 hint = "How many iterations should the orbit be monitored for potential trapping? \ '0' means watch all iterations" visible = @showmodifiers endparam param periodicity caption = "Enable Periodicity?" default = FALSE hint = "If this parameter is enabled, then #z is only checked for possible \ trapping every n cycles, where n is set by parameter 'Period Length'" visible = @showmodifiers endparam param altperiodstyle caption = "Alternative Style Periods?" default = FALSE hint = "If enabled, then periodicity functions similarly to the 'Limited Iterations' \ options of Damien and Toby. The trap will be monitored for blocks of \ iterations (set in parameter 'Iters to Monitor'), followed by blocks of \ iterations that will not be monitored (set in param 'Iters to Ignore')" visible = @showmodifiers && @periodicity endparam param period caption = "Period Length" default = 2 min = 2 hint = "If 'Enable Periodicity' is turned on, then this setting determines how \ often (in iterations) the orbit of #z is checked for possible trapping" visible = @showmodifiers && @periodicity && !@altperiodstyle endparam param perphase caption = "Period Phase" default = 0 min = 0 hint = "If 'Enable Periodicity' is turned on, then this setting determines which \ cycle of the period is checked for possible trapping. The useful phase range \ is from a minimum of 0 up to a maximum of 'Period Length' -1. Values above \ this limit are reset to 0" visible = @showmodifiers && @periodicity && !@altperiodstyle endparam param reversephase caption = "Reverse Phase?" default = FALSE hint = "If 'Enable Periodicity' is turned on, and this parameter is also enabled, \ then trapping is examined only when the period is NOT in the cycle set by \ parameter 'Period Phase'" visible = @showmodifiers && @periodicity && !@altperiodstyle endparam param monitorlimit caption = "Iters to Monitor" default = 1 min = 1 hint = "If 'Alternative Style Periods' is enabled, then this value determines how many \ consecutive iterations of the trap are monitored in each block before switching \ to the unmonitored mode" visible = @showmodifiers && @periodicity && @altperiodstyle endparam param skiplimit caption = "Iters to Ignore" default = 1 min = 1 hint = "If 'Alternative Style Periods' is enabled, then this value determines how many \ consecutive iterations of the trap are ignored in each block before switching \ back to the monitored mode" visible = @showmodifiers && @periodicity && @altperiodstyle endparam param anglerestrict caption = "Restrict Angle?" default = FALSE hint = "If enabled, then the TIA will be calculated only every when the angle of #z \ falls between the 'Low Angle' and 'High Angle' limits" visible = @showmodifiers endparam param anglelow caption = "Low Angle" default = 0.0 min = 0.0 max = 359.9 hint = "If 'Restrict Angle' is enabled, then this setting determines the lower angular boundary \ for #z in order for the TIA algorithm to be executed (0-360)" visible = @showmodifiers && @anglerestrict endparam param anglehigh caption = "High Angle" default = 90.0 min = 0.1 max = 360.0 hint = "If 'Restrict Angle' is enabled, then this setting determines the upper angular boundary \ for #z in order for the TIA algorithm to be executed (0-360)" visible = @showmodifiers && @anglerestrict endparam param operator caption = "Enable Z Operator?" enum = "none" "multiply" "add" "subtract" "divide" "exponentiate" \ "subtraction2" "division2" "exponential2" "logarithm" "logarithm2" default = 0 hint = "If enabled, z is multiplied by (added to, etc) this constant on each \ iteration before testing; parameter 'Z Operation Constant' sets the constant \ value that is used in the operation" visible = @showmodifiers endparam param operatee caption = "Z Operation Constant" default = (0.2, 0) hint = "If 'Enable Z Operator' is set, this is the constant used in the \ multiplication/addition/subtraction/division/exponentiation/logarithm" visible = (@operator != "none") && @showmodifiers endparam param trapvariant caption = "Z Variants" enum = "Normal" "Flip" "Conjugate" "FlipConjugate" "Negate" "Negate Flip" \ "Negate Conjugate" "Conjugate Flip" default = 0 hint = "Enables alternative coloring algorithms based on manipulation of \ real(z) and imag(z) before trapping" visible = @showmodifiers endparam param swaporder caption = "Swap Order?" default = FALSE hint = "Swaps order of 'Z Variants' and 'Enable Z Operator'. Normally, \ the z variation is executed AFTER the z arithmetic operation; this \ param toggles the execution order" visible = ( @trapvariant != "normal" ) && ( @operator != "none" ) && @showmodifiers endparam param operator2 caption = "Enable Z Op2?" enum = "none" "multiply" "add" "subtract" "divide" "exponentiate" \ "subtraction2" "division2" "exponential2" "logarithm" "logarithm2" default = 0 hint = "If enabled, z is multiplied by (added to, etc) this constant on each \ iteration before testing; parameter 'Z Op Const2' sets the constant \ value that is used in the operation. This action always occurs AFTER \ the first 'Enable Z Operator' and 'Z Variants' actions" visible = @showmodifiers endparam param operatee2 caption = "Z Op Const2" default = (-0.15, -0.1) hint = "If 'Enable Z Op2' is set, this is the constant used in the \ multiplication/addition/subtraction/division/exponentiation/logarithm" visible = (@operator2 != "none") && @showmodifiers endparam param varytraptype caption = "Trap Variants" enum = "Normal" "Flip" "Conjugate" "FlipConjugate" "Negate" "Negate Flip" \ "Negate Conjugate" "Conjugate Flip" default = 0 hint = "Enables alternative coloring algorithms based on manipulation of \ real(trap) and imag(trap) before testing" visible = @showmodifiers endparam param toperator caption = "Enable T Operator?" enum = "none" "multiply" "add" "subtract" "divide" "exponentiate" \ "subtraction2" "division2" "exponential2" "logarithm" "logarithm2" default = 0 hint = "If enabled, the trap is multiplied by (added to, etc) this constant \ on each iteration before testing; parameter 'T Operation Constant' sets the \ constant value that is used in the operation" visible = @showmodifiers endparam param toperatee caption = "T Operation Constant" default = (0.15, 0) hint = "If 'Enable T Operator' is set, this is the constant used in the \ multiplication/addition/subtraction/division/exponentiation/logarithm" visible = (@toperator != "none") && @showmodifiers endparam param twavy caption = "Enable T Waviness?" default = FALSE hint = "Adds waves to the trap function. If enabled, params 'Waviness Mode', \ 'Waviness Amplitude', & 'Waviness Frequency' may be adjusted to vary \ wave character" visible = @showmodifiers endparam param twavmode caption = "T Wave Mode" enum = "radial" "tangential" "both" default = 0 hint = "If 'Enable T Waviness' is on, this param sets the type of waves \ superposed on the trap function; inactive otherwise" visible = @twavy && @showmodifiers endparam param twavamp caption = "T Wave Amplitude" default = 0.3 hint = "If 'Enable T Waviness' is on, this param sets the height of the waves \ superposed on the trap function; inactive otherwise" visible = @twavy && @showmodifiers endparam param twavfreq caption = "T Wave Frequency" default = 15.0 hint = "If 'Enable T Waviness' is on, this param sets the density of waves \ superposed on the trap function; inactive otherwise" visible = @twavy && @showmodifiers endparam param twavamp2 caption = "Secondary Amplitude" default = 0.3 hint = "If 'Enable T Waviness' is on and 'T Wave Mode' is set to 'both', \ this param sets the height of the tangential wave component \ superposed on the trap function; inactive otherwise" visible = @twavy && @showmodifiers && (@twavmode == 2) endparam param twavfreq2 caption = "Secondary Frequency" default = 15.0 hint = "If 'Enable T Waviness' is on and 'T Wave Mode' is set to 'both', \ this param sets the frequency of the tangential wave component \ superposed on the trap function; inactive otherwise" visible = @twavy && @showmodifiers && (@twavmode == 2) endparam param screwmode caption = "Screwiness Type" enum = "none" "AR" "AI" "R" "I" "A+R" "A+I" "R-A" "I-A" "ARI" \ "A+R+I" "A+R-I" "A-R+I" "A-R-I" "R+I" "R-I" "RI" "(A+R)*I" "(A+I)*R" \ "(A-R)*I" "(A-I)*R" "A*(R+I)" "A*(R-I)" "M" "M+A" "M-A" "M+R" "M-R" \ "M+I" "M-I" "A/M" "R/M" "I/M" "A*(M+R)" "A*(M+I)" "A*(M-R)" "A*(M-I)" \ "A/R" "A/I" default = 0 hint = "If enabled, parts of Real(z), Imag(z), or the magnitude |z| are combined \ with Atan(z) before input to the trap routines" visible = @showmodifiers endparam param absolutelyscrewy caption = "Absolutely Screwy?" default = FALSE hint = "If 'Screwiness Type' is active, then this alters the argument to \ the screwiness function" visible = @showmodifiers && (@screwmode != 0) endparam param negatescrew caption = "Negative Screwiness?" default = FALSE hint = "If enabled, then the final output of the screwiness routine is negated" visible = @showmodifiers && (@screwmode != 0) endparam param dividebymagn caption = "Divide by |z|?" default = FALSE hint = "If enabled, then the chosen screwiness mode is divided by the current magnitude of #z" visible = @showmodifiers && (@screwmode != 0) endparam param blendscrewiness caption = "Blend Screwiness?" default = FALSE hint = "If enabled, than the screwiness perturbation can be only partially mixed into \ the calculation" visible = @showmodifiers && (@screwmode != 0) endparam param screwyfraction caption = "Screwy Fraction" default = 0.1 hint = "If 'Blend Screwiness' is enabled, than this is the fraction of the screwiness \ to mix in with the unperturbed angle" visible = @showmodifiers && (@screwmode != 0) && @blendscrewiness endparam param recipreal caption = "Reciprocal Real?" default = FALSE hint = "If enabled, then the reciprocal of Real(z) is used to compute the screwiness" visible = @showmodifiers && ( (@screwmode == 1) || (@screwmode == 3) || (@screwmode == 5) \ || (@screwmode == 7) || (@screwmode == 9) || (@screwmode == 10) || (@screwmode == 11) \ || (@screwmode == 12) || (@screwmode == 13) || (@screwmode == 14) || (@screwmode == 15) \ || (@screwmode == 16) || (@screwmode == 17) || (@screwmode == 18) || (@screwmode == 19) \ || (@screwmode == 20) || (@screwmode == 21) || (@screwmode == 22) || (@screwmode == 26) \ || (@screwmode == 27) || (@screwmode == 31) || (@screwmode == 33) || (@screwmode == 35) \ || (@screwmode == 37) ) endparam param recipimag caption = "Reciprocal Imaginary?" default = FALSE hint = "If enabled, then the reciprocal of Imag(z) is used to compute the screwiness" visible = @showmodifiers && ( (@screwmode == 2) || (@screwmode == 4) || (@screwmode == 6) \ || (@screwmode == 8) || (@screwmode == 9) || (@screwmode == 10) || (@screwmode == 11) \ || (@screwmode == 12) || (@screwmode == 13) || (@screwmode == 14) || (@screwmode == 15) \ || (@screwmode == 16) || (@screwmode == 17) || (@screwmode == 18) || (@screwmode == 19) \ || (@screwmode == 20) || (@screwmode == 21) || (@screwmode == 22) || (@screwmode == 28) \ || (@screwmode == 29) || (@screwmode == 32) || (@screwmode == 34) || (@screwmode == 36) \ || (@screwmode == 38) ) endparam param recipmagn caption = "Reciprocal Magnitude?" default = FALSE hint = "If enabled, then the reciprocal of |z| is used to compute the screwiness" visible = @showmodifiers && ( (@screwmode > 22) && (@screwmode < 37) ) endparam param weirdness caption = "Weirdness?" default = FALSE hint = "If enabled, original #z is used rather than modified #z to determine \ screwiness" visible = @showmodifiers && (@screwmode != 0) endparam param weirdtype caption = "Weirdness Type" enum = "z only" "z+z'" "z-z'" "z'-z" "z*z'" "z/z'" "z'/z" "z^z'" "z'^z" \ "average" "geometric mean" default = 0 hint = "If enabled, both original #z and modified #z are used to determine \ screwiness" visible = @showmodifiers && (@screwmode != 0) && @weirdness endparam param blendweirdness caption = "Blend Weirdness?" default = FALSE hint = "If enabled, than the weirdiness perturbation can be only partially mixed into \ the calculation" visible = @showmodifiers && (@screwmode != 0) && @weirdness endparam param weirdfraction caption = "Weirdness Fraction" default = 0.1 hint = "If 'Blend Weirdness' is enabled, than this is the fraction of the weirdness \ to mix in with the modified #z" visible = @showmodifiers && (@screwmode != 0) && @weirdness && @blendweirdness endparam param modflavor caption = "Modify Flavor Param?" default = FALSE hint = "If enabled, initialized z, rather than raw #z, is used for some \ testing purposes; does not affect 'Flavor' modes 5-12 ('trap magnitude' \ through 'trap imaginary')" visible = @showmodifiers endparam param varymode caption = "Feedback Mode" enum = "trapped" "not trapped" "always" default = 2 hint = "Variation style; variation of individual parameters must still \ be enabled. 'trapped' -- feedback occurs only on iterations where some \ value was trapped; 'not trapped' -- varies on iterations when nothing \ trapped; 'always' -- feedback on every iteation" visible = @showmodifiers && \ (@varyfBm || @varyscale || @varyrotation || @varythresh || @varyrwidth || @varycenter) endparam param showmodifiers caption = "Show Modifiers?" $ifdef VER40 default = TRUE $else default = FALSE $endif endparam heading caption = "Modulator Functions" $ifdef VER40 expanded = FALSE $endif endheading param initialization caption = "Z Initialization" enum = "z" "1/z" "z^2" "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)" "z^power" \ "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^(1/(z^2))" "abs(z)" "round(z)" "trunc(z)" \ "ceil(z)" "floor(z)" "z/log(z)" "log(z)/z" "(e^z)/z" "(e^(1/z))/z" \ "(e^(z^2))/z" "(e^(1/(z^2))/z" "z*e^(z^2)" "z*e^(1/(z^2))" \ "e^(-z^2)" "e^(-1/(z^2))" "(e^(-z^2))/z" "(e^(-1/(z^2))/z" \ "z*e^(-z^2)" "z*e^(-1/(z^2))" "log(z) B" "log(log(z)) B" "sin(z^power)" default = 0 hint = "The fractal is initialized to this value at each iteration prior to \ being fed to the trap, but after the two 'Front End' modulators" visible = @showmodulators endparam param zpower caption = "Z Power" default = (4,0) hint = "Z exponent if param 'Z Initialization' is set to 'z^power' or 'sin(z^power)'" visible = ((@initialization == "z^power") || (@initialization == "sin(z^power)")) && @showmodulators endparam param ziscale caption = "Z Init Scale" default = 1.0 hint = "This param can be used to scale the overall iterate a \ before a initialization" visible = @showmodulators endparam param initperturb caption = "Perturb Z Initialization?" default = FALSE hint = "If enabled, then 'Z Initialization' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'Z Init Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@initialization != "z") && @showmodulators endparam param initblend caption = "Z Init Blend" default = 0.1 hint = "If 'Perturb Z initialization' is enabled, then this sets the fraction \ of 'Z Initialization' that is mixed in with the original #z. \ Inactive if 'Perturb Z Initialization' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @initperturb && (@initialization != "z") && @showmodulators endparam param transmogrify caption = "Trap Transmute" enum = "t" "1/t" "t^2" "1/t^2" "log(t)" "e^t" "t^t" "sin(t)" "cos(t)" \ "tan(t)" "asin(t)" "acos(t)" "atan(t)" "sinh(t)" "cosh(t)" "tanh(t)" \ "asinh(t)" "acosh(t)" "atanh(t)" "log(1/t)" "log(log(t))" "e^-t" \ "e^(1/t)" "t^-t" "sin(t)^2" "cos(t)^2" "tan(t)^2" "cot(t)" "sec(t)" \ "csc(t)" "cot(t)^2" "sec(t)^2" "csc(t)^2" "t^t^t" "1/t^t^t" "log(-t)" \ "1/log(t)" "tlog(t)" "sin(t)/t" "cos(t)/t" "sin(t)*cos(t)" "sin(t^2)" \ "e^(-1/t)" "te^t" "te^-t" "te^(1/t)" "te^(-1/t)" "t^3" "1/t^3" \ "acot(t)" "asec(t)" "acsc(t)" "tan(t)/t" "cot(t)/t" "sec(t)/t" \ "csc(t)/t" "tsin(t)" "tcos(t)" "ttan(t)" "tcot(t)" "tsec(t)" "tcsc(t)" \ "sin(1/t)" "cos(1/t)" "tan(1/t)" "cot(1/t)" "sec(1/t)" "csc(1/t)" \ "cotanh(t)" "sech(t)" "cosech(t)" "acoth(t)" "asech(t)" "acosech(t)" "t^power" \ "sinh(t)^2" "cosh(t)^2" "tanh(t)^2" "cotanh(t)^2" \ "sech(t)^2" "cosech(t)^2" "sinh(1/t)" "cosh(1/t)" "tanh(1/t)" \ "cotanh(1/t)" "sech(1/t)" "cosech(1/t)" "sin(t)tan(t)" "sinh(t)tanh(t)" \ "sinh(t)cosh(t)" "sinh(t)^2*cosh(t)^2" "sin(t)^2*cos(t)^2" \ "sin(1/t)*cos(1/t)" "sin(1/t)^2" "sin(t)cos(1/t)" "sin(t)sin(1/t)" \ "log(t)^2" "sin(t)sin(2t)" "e^2t" "e^-2t" "sinh(1/t)cosh(1/t)" \ "sinh(1/t)^2" "sinh(t)cosh(1/t)" "sinh(t)sinh(1/t)" "sin(t)sinh(t)" \ "sin(t)cosh(t)" "sin(t)^2*sinh(t)^2" "sin(t)e^t" "cos(t)e^t" \ "sinh(t)e^t" "cosh(t)e^t" "sin(t)log(t)" "cos(t)log(t)" "sinh(t)log(t)" \ "cosh(t)log(t)" \ "e^(t^2)" "e^(1/(t^2))" "abs(t)" "round(t)" "trunc(t)" \ "ceil(t)" "floor(t)" "t/log(t)" "log(t)/t" "(e^t)/t" "(e^(1/t))/t" \ "(e^(t^2))/t" "(e^(1/(t^2))/t" "t*e^(t^2)" "t*e^(1/(t^2))" \ "e^(-t^2)" "e^(-1/(t^2))" "(e^(-t^2))/t" "(e^(-1/(t^2))/t" \ "t*e^(-t^2)" "t*e^(-1/(t^2))" "log(t) B" "log(log(t)) B" "sin(t^power)" default = 0 hint = "The point, t, on the trap can be further transformed \ prior to testing; select 't' for no transmutation. \ Transmutation does not affect a few trap flavors. Transmutation \ occurs before the two 'Back End' modulations" visible = @showmodulators endparam param tpower caption = "Trap Power" default = (4,0) hint = "Trap point t exponent if param 'Trap Transmute' is set to 't^power' or 'sin(t^power)'" visible = ((@transmogrify == "t^power") || (@transmogrify == "sin(t^power)")) && @showmodulators endparam param tiscale caption = "Trap Scale" default = 1.0 hint = "This param can be used to scale the overall trap point t \ before transmutation" visible = @showmodulators endparam param trapperturb caption = "Perturb Trap Transmute?" default = FALSE hint = "If enabled, then 'Trap Transmute' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'Trap Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@transmogrify != "t") && @showmodulators endparam param trapblend caption = "Trap Blend" default = 0.1 hint = "If 'Perturb Trap Transmute' is enabled, then this sets the fraction \ of 'Trap Transmute' that is mixed in with the original trap point, t. \ Inactive if 'Perturb Trap Transmute' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @trapperturb && (@transmogrify != "t") && @showmodulators endparam param realfront caption = "FrontEndReal Warp" enum = "r" "1/r" "r^2" "1/r^2" "log(r)" "e^r" "r^r" "sin(r)" "cos(r)" \ "tan(r)" "asin(r)" "acos(r)" "atan(r)" "sinh(r)" "cosh(r)" "tanh(r)" \ "asinh(r)" "acosh(r)" "atanh(r)" "log(1/r)" "log(log(r))" "e^-r" \ "e^(1/r)" "r^-r" "sin(r)^2" "cos(r)^2" "tan(r)^2" "cot(r)" "sec(r)" \ "csc(r)" "cot(r)^2" "sec(r)^2" "csc(r)^2" "r^r^r" "1/r^r^r" "log(-r)" \ "1/log(r)" "rlog(r)" "sin(r)/r" "cos(r)/r" "sin(r)*cos(r)" "sin(r^2)" \ "e^(-1/r)" "re^r" "re^-r" "re^(1/r)" "re^(-1/r)" "r^3" "1/r^3" \ "acot(r)" "asec(r)" "acsc(r)" "tan(r)/r" "cot(r)/r" "sec(r)/r" \ "csc(r)/r" "rsin(r)" "rcos(r)" "rtan(r)" "rcot(r)" "rsec(r)" "rcsc(r)" \ "sin(1/r)" "cos(1/r)" "tan(1/r)" "cot(1/r)" "sec(1/r)" "csc(1/r)" \ "cotanh(r)" "sech(r)" "cosech(r)" "acoth(r)" "asech(r)" "acosech(r)" "r^power" \ "sinh(r)^2" "cosh(r)^2" "tanh(r)^2" "cotanh(r)^2" \ "sech(r)^2" "cosech(r)^2" "sinh(1/r)" "cosh(1/r)" "tanh(1/r)" \ "cotanh(1/r)" "sech(1/r)" "cosech(1/r)" "sin(r)tan(r)" "sinh(r)tanh(r)" \ "sinh(r)cosh(r)" "sinh(r)^2*cosh(r)^2" "sin(r)^2*cos(r)^2" \ "sin(1/r)*cos(1/r)" "sin(1/r)^2" "sin(r)cos(1/r)" "sin(r)sin(1/r)" \ "log(r)^2" "sin(r)sin(2r)" "e^2r" "e^-2r" "sinh(1/r)cosh(1/r)" \ "sinh(1/r)^2" "sinh(r)cosh(1/r)" "sinh(r)sinh(1/r)" "sin(r)sinh(r)" \ "sin(r)cosh(r)" "sin(r)^2*sinh(r)^2" "sin(r)e^r" "cos(r)e^r" \ "sinh(r)e^r" "cosh(r)e^r" "sin(r)log(r)" "cos(r)log(r)" "sinh(r)log(r)" \ "cosh(r)log(r)" \ "e^(r^2)" "e^(1/(r^2))" "abs(r)" "round(r)" "trunc(r)" \ "ceil(r)" "floor(r)" "r/log(r)" "log(r)/r" "(e^r)/r" "(e^(1/r))/r" \ "(e^(r^2))/r" "(e^(1/(r^2))/r" "r*e^(r^2)" "r*e^(1/(r^2))" \ "e^(-r^2)" "e^(-1/(r^2))" "(e^(-r^2))/r" "(e^(-1/(r^2))/r" \ "r*e^(-r^2)" "r*e^(-1/(r^2))" "log(r) B" "log(log(r)) B" "sin(r^power)" default = 0 hint = "This function can warp the initial value of real(z) before input to \ the 'Z Initialization' function. For 'r^power' set param 'FrontEndReal \ Power'" visible = @showmodulators endparam param rfpower caption = "FrontEndReal Power" default = 4.0 hint = "Real(z) exponent if param 'FrontEndReal Warp' is set to 'r^power'" visible = ((@realfront == "r^power") || (@realfront == "sin(r^power)")) && @showmodulators endparam param rfscale caption = "Real(z) PreScale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ iterate z before warping or initialization" visible = @showmodulators endparam param rfperturb caption = "Perturb FrontEndReal?" default = FALSE hint = "If enabled, then 'FrontEndReal Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'FrontEndReal Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@realfront != "r") && @showmodulators endparam param rfblend caption = "FrontEndReal Blend" default = 0.1 hint = "If 'Perturb FrontEndReal' is enabled, then this sets the fraction \ of 'FrontEndReal Warp' that is mixed in with the original real(a). \ Inactive if 'Perturb FrontEndReal' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @rfperturb && (@realfront != "r") && @showmodulators endparam param rfpostscale caption = "Real(z) PostScale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ iterate z before warping or initialization" visible = @showmodulators && @realfront != 0 endparam param imagfront caption = "FrontEndImag Warp" enum = "i" "1/i" "i^2" "1/i^2" "log(i)" "e^i" "i^i" "sin(i)" "cos(i)" \ "tan(i)" "asin(i)" "acos(i)" "atan(i)" "sinh(i)" "cosh(i)" "tanh(i)" \ "asinh(i)" "acosh(i)" "atanh(i)" "log(1/i)" "log(log(i))" "e^-i" \ "e^(1/i)" "i^-i" "sin(i)^2" "cos(i)^2" "tan(i)^2" "cot(i)" "sec(i)" \ "csc(i)" "cot(i)^2" "sec(i)^2" "csc(i)^2" "i^i^i" "1/i^i^i" "log(-i)" \ "1/log(i)" "ilog(i)" "sin(i)/i" "cos(i)/i" "sin(i)*cos(i)" "sin(i^2)" \ "e^(-1/i)" "ie^i" "ie^-i" "ie^(1/i)" "ie^(-1/i)" "i^3" "1/i^3" \ "acot(i)" "asec(i)" "acsc(i)" "tan(i)/i" "cot(i)/i" "sec(i)/i" \ "csc(i)/i" "isin(i)" "icos(i)" "itan(i)" "icot(i)" "isec(i)" "icsc(i)" \ "sin(1/i)" "cos(1/i)" "tan(1/i)" "cot(1/i)" "sec(1/i)" "csc(1/i)" \ "cotanh(i)" "sech(i)" "cosech(i)" "acoth(i)" "asech(i)" "acosech(i)" "i^power" \ "sinh(i)^2" "cosh(i)^2" "tanh(i)^2" "cotanh(i)^2" \ "sech(i)^2" "cosech(i)^2" "sinh(1/i)" "cosh(1/i)" "tanh(1/i)" \ "cotanh(1/i)" "sech(1/i)" "cosech(1/i)" "sin(i)tan(i)" "sinh(i)tanh(i)" \ "sinh(i)cosh(i)" "sinh(i)^2*cosh(i)^2" "sin(i)^2*cos(i)^2" \ "sin(1/i)*cos(1/i)" "sin(1/i)^2" "sin(i)cos(1/i)" "sin(i)sin(1/i)" \ "log(i)^2" "sin(i)sin(2i)" "e^2i" "e^-2i" "sinh(1/i)cosh(1/i)" \ "sinh(1/i)^2" "sinh(i)cosh(1/i)" "sinh(i)sinh(1/i)" "sin(i)sinh(i)" \ "sin(i)cosh(i)" "sin(i)^2*sinh(i)^2" "sin(i)e^i" "cos(i)e^i" \ "sinh(i)e^i" "cosh(i)e^i" "sin(i)log(i)" "cos(i)log(i)" "sinh(i)log(i)" \ "cosh(i)log(i)" \ "e^(i^2)" "e^(1/(i^2))" "abs(i)" "round(i)" "trunc(i)" \ "ceil(i)" "floor(i)" "i/log(i)" "log(i)/i" "(e^i)/i" "(e^(1/i))/i" \ "(e^(i^2))/i" "(e^(1/(i^2))/i" "i*e^(i^2)" "i*e^(1/(i^2))" \ "e^(-i^2)" "e^(-1/(i^2))" "(e^(-i^2))/i" "(e^(-1/(i^2))/i" \ "i*e^(-i^2)" "i*e^(-1/(i^2))" "log(i) B" "log(log(i)) B" "sin(i^power)" default = 0 hint = "This function can warp the initial value of imag(z) before input to \ the 'Z Initialization' function. For 'i^power' set param 'FrontEndImag \ Power'" visible = @showmodulators endparam param ifpower caption = "FrontEndImag Power" default = 4.0 hint = "Imag(z) exponent if param 'FrontEndImag Warp' is set to 'i^power'" visible = ((@imagfront == "i^power") || (@imagfront == "sin(i^power)")) && @showmodulators endparam param ifscale caption = "Imag(z) PreScale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ iterate z before warping or initialization" visible = @showmodulators endparam param ifperturb caption = "Perturb FrontEndImag?" default = FALSE hint = "If enabled, then 'FrontEndImag Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'FrontEndImag Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@imagfront != "i") && @showmodulators endparam param ifblend caption = "FrontEndImag Blend" default = 0.1 hint = "If 'Perturb FrontEndImag' is enabled, then this sets the fraction \ of 'FrontEndImag Warp' that is mixed in with the original imag(a). \ Inactive if 'Perturb FrontEndImag' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @ifperturb && (@imagfront != "i") && @showmodulators endparam param ifpostscale caption = "Imag(z) PostScale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ iterate z before warping or initialization" visible = @showmodulators && @imagfront != 0 endparam param realback caption = "BackEndReal Warp" enum = "r" "1/r" "r^2" "1/r^2" "log(r)" "e^r" "r^r" "sin(r)" "cos(r)" \ "tan(r)" "asin(r)" "acos(r)" "atan(r)" "sinh(r)" "cosh(r)" "tanh(r)" \ "asinh(r)" "acosh(r)" "atanh(r)" "log(1/r)" "log(log(r))" "e^-r" \ "e^(1/r)" "r^-r" "sin(r)^2" "cos(r)^2" "tan(r)^2" "cot(r)" "sec(r)" \ "csc(r)" "cot(r)^2" "sec(r)^2" "csc(r)^2" "r^r^r" "1/r^r^r" "log(-r)" \ "1/log(r)" "rlog(r)" "sin(r)/r" "cos(r)/r" "sin(r)*cos(r)" "sin(r^2)" \ "e^(-1/r)" "re^r" "re^-r" "re^(1/r)" "re^(-1/r)" "r^3" "1/r^3" \ "acot(r)" "asec(r)" "acsc(r)" "tan(r)/r" "cot(r)/r" "sec(r)/r" \ "csc(r)/r" "rsin(r)" "rcos(r)" "rtan(r)" "rcot(r)" "rsec(r)" "rcsc(r)" \ "sin(1/r)" "cos(1/r)" "tan(1/r)" "cot(1/r)" "sec(1/r)" "csc(1/r)" \ "cotanh(r)" "sech(r)" "cosech(r)" "acoth(r)" "asech(r)" "acosech(r)" "r^power" \ "sinh(r)^2" "cosh(r)^2" "tanh(r)^2" "cotanh(r)^2" \ "sech(r)^2" "cosech(r)^2" "sinh(1/r)" "cosh(1/r)" "tanh(1/r)" \ "cotanh(1/r)" "sech(1/r)" "cosech(1/r)" "sin(r)tan(r)" "sinh(r)tanh(r)" \ "sinh(r)cosh(r)" "sinh(r)^2*cosh(r)^2" "sin(r)^2*cos(r)^2" \ "sin(1/r)*cos(1/r)" "sin(1/r)^2" "sin(r)cos(1/r)" "sin(r)sin(1/r)" \ "log(r)^2" "sin(r)sin(2r)" "e^2r" "e^-2r" "sinh(1/r)cosh(1/r)" \ "sinh(1/r)^2" "sinh(r)cosh(1/r)" "sinh(r)sinh(1/r)" "sin(r)sinh(r)" \ "sin(r)cosh(r)" "sin(r)^2*sinh(r)^2" "sin(r)e^r" "cos(r)e^r" \ "sinh(r)e^r" "cosh(r)e^r" "sin(r)log(r)" "cos(r)log(r)" "sinh(r)log(r)" \ "cosh(r)log(r)" \ "e^(r^2)" "e^(1/(r^2))" "abs(r)" "round(r)" "trunc(r)" \ "ceil(r)" "floor(r)" "r/log(r)" "log(r)/r" "(e^r)/r" "(e^(1/r))/r" \ "(e^(r^2))/r" "(e^(1/(r^2))/r" "r*e^(r^2)" "r*e^(1/(r^2))" \ "e^(-r^2)" "e^(-1/(r^2))" "(e^(-r^2))/r" "(e^(-1/(r^2))/r" \ "r*e^(-r^2)" "r*e^(-1/(r^2))" "log(r) B" "log(log(r)) B" "sin(r^power)" default = 0 hint = "This function can warp the final value of real(trap) before testing for \ trapping by the 'Trap What?' function. For 'r^power' set param 'BackEndReal \ Power'. Functions after 'Trap Transmute'" visible = @showmodulators endparam param rbpower caption = "BackEndReal Power" default = 4.0 hint = "Real(trap) exponent if param 'BackEndReal Warp' is set to 'r^power'" visible = ((@realback == "r^power") || (@realback == "sin(r^power)")) && @showmodulators endparam param rbscale caption = "Real(t) PreScale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ trap point t before warping (but after transmutation)" visible = @showmodulators endparam param rbperturb caption = "Perturb BackEndReal?" default = FALSE hint = "If enabled, then 'BackEndReal Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'BackEndReal Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@realback != "r") && @showmodulators endparam param rbblend caption = "BackEndReal Blend" default = 0.1 hint = "If 'Perturb BackEndReal' is enabled, then this sets the fraction \ of 'BackEndReal Warp' that is mixed in with the original real(trap). \ Inactive if 'Perturb BackEndReal' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @rbperturb &&(@realback != "r") && @showmodulators endparam param rbpostscale caption = "Real(t) PostScale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ trap point t before warping (but after transmutation)" visible = @showmodulators && @realback != 0 endparam param imagback caption = "BackEndImag Warp" enum = "i" "1/i" "i^2" "1/i^2" "log(i)" "e^i" "i^i" "sin(i)" "cos(i)" \ "tan(i)" "asin(i)" "acos(i)" "atan(i)" "sinh(i)" "cosh(i)" "tanh(i)" \ "asinh(i)" "acosh(i)" "atanh(i)" "log(1/i)" "log(log(i))" "e^-i" \ "e^(1/i)" "i^-i" "sin(i)^2" "cos(i)^2" "tan(i)^2" "cot(i)" "sec(i)" \ "csc(i)" "cot(i)^2" "sec(i)^2" "csc(i)^2" "i^i^i" "1/i^i^i" "log(-i)" \ "1/log(i)" "ilog(i)" "sin(i)/i" "cos(i)/i" "sin(i)*cos(i)" "sin(i^2)" \ "e^(-1/i)" "ie^i" "ie^-i" "ie^(1/i)" "ie^(-1/i)" "i^3" "1/i^3" \ "acot(i)" "asec(i)" "acsc(i)" "tan(i)/i" "cot(i)/i" "sec(i)/i" \ "csc(i)/i" "isin(i)" "icos(i)" "itan(i)" "icot(i)" "isec(i)" "icsc(i)" \ "sin(1/i)" "cos(1/i)" "tan(1/i)" "cot(1/i)" "sec(1/i)" "csc(1/i)" \ "cotanh(i)" "sech(i)" "cosech(i)" "acoth(i)" "asech(i)" "acosech(i)" "i^power" \ "sinh(i)^2" "cosh(i)^2" "tanh(i)^2" "cotanh(i)^2" \ "sech(i)^2" "cosech(i)^2" "sinh(1/i)" "cosh(1/i)" "tanh(1/i)" \ "cotanh(1/i)" "sech(1/i)" "cosech(1/i)" "sin(i)tan(i)" "sinh(i)tanh(i)" \ "sinh(i)cosh(i)" "sinh(i)^2*cosh(i)^2" "sin(i)^2*cos(i)^2" \ "sin(1/i)*cos(1/i)" "sin(1/i)^2" "sin(i)cos(1/i)" "sin(i)sin(1/i)" \ "log(i)^2" "sin(i)sin(2i)" "e^2i" "e^-2i" "sinh(1/i)cosh(1/i)" \ "sinh(1/i)^2" "sinh(i)cosh(1/i)" "sinh(i)sinh(1/i)" "sin(i)sinh(i)" \ "sin(i)cosh(i)" "sin(i)^2*sinh(i)^2" "sin(i)e^i" "cos(i)e^i" \ "sinh(i)e^i" "cosh(i)e^i" "sin(i)log(i)" "cos(i)log(i)" "sinh(i)log(i)" \ "cosh(i)log(i)" \ "e^(i^2)" "e^(1/(i^2))" "abs(i)" "round(i)" "trunc(i)" \ "ceil(i)" "floor(i)" "i/log(i)" "log(i)/i" "(e^i)/i" "(e^(1/i))/i" \ "(e^(i^2))/i" "(e^(1/(i^2))/i" "i*e^(i^2)" "i*e^(1/(i^2))" \ "e^(-i^2)" "e^(-1/(i^2))" "(e^(-i^2))/i" "(e^(-1/(i^2))/i" \ "i*e^(-i^2)" "i*e^(-1/(i^2))" "log(i) B" "log(log(i)) B" "sin(i^power)" default = 0 hint = "This function can warp the final value of imag(trap) before testing for \ trapping by the 'Trap What?' function. For 'i^power' set param 'BackEndImag \ Power'. Functions after 'Trap Transmute'" visible = @showmodulators endparam param ibpower caption = "BackEndImag Power" default = 4.0 hint = "Imag(trap) exponent if param 'BackEndImag Warp' is set to 'i^power'" visible = ((@imagback == "i^power") || (@imagback == "sin(i^power)")) && @showmodulators endparam param ibscale caption = "Imag(t) PreScale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ trap point t before warping (but after transmutation)" visible = @showmodulators endparam param ibperturb caption = "Perturb BackEndImag?" default = FALSE hint = "If enabled, then 'BackEndImag Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'BackEndImag Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@imagback != "i") && @showmodulators endparam param ibblend caption = "BackEndImag Blend" default = 0.1 hint = "If 'Perturb BackEndImag' is enabled, then this sets the fraction \ of 'BackEndImag Warp' that is mixed in with the original imag(trap). \ Inactive if 'Perturb BackEndImag' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @ibperturb && (@imagback != "i") && @showmodulators endparam param ibpostscale caption = "Imag(t) PostScale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ trap point t before warping (but after transmutation)" visible = @showmodulators && @imagback != 0 endparam param showmodulators caption = "Show Modulator Funcs?" $ifdef VER40 default = TRUE $else default = FALSE $endif hint = "The order of the modulator functions is as follows: The two 'Front End' \ functions operate on the real and imaginary parts of the current z iterate; \ then the 'Z Initialization' function transforms the front-end modified z; \ after trapping, the trap point can be further altered with 'Trap Transmute'; \ and finally, the transmuted trap real and imaginary components can be \ modulated with the two 'Back End' functions" endparam heading caption = "Attractor Settings" $ifdef VER40 expanded = FALSE $endif endheading param zattractor caption = "Enable Z Attractors" default = FALSE hint = "If enabled, then #z can be subjected to various attractor iterations prior \ to trapping. Z attractor modifications are executed after all other z \ transformations, but before angle and screwiness modifications" endparam param zattractmartin caption = "Martin Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to Martin attractor iterations" visible = @zattractor endparam param zmartiniters caption = "Martin Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of Martin attractor iterations of #z" visible = @zattractor && @zattractmartin endparam param zmartinparam caption = "Martin Z Parameter" default = 3.1415926535897932384626433832795 hint = "This parameter modulates the #z Martin attractor" visible = @zattractor && @zattractmartin endparam param zmartinscale caption = "Martin x,y Scale (z)" default = (5.0, 5.0) hint = "This parameter scales #z before the Martin iterations" visible = @zattractor && @zattractmartin endparam param blendzmartin caption = "Blend Z Martin?" default = FALSE hint = "If enabled, than the Martin attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractmartin endparam param zmartinfraction caption = "Martin Fraction" default = 0.1 hint = "If 'Blend Z Martin' is enabled, than this is the fraction of the Martin attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractmartin && @blendzmartin endparam ; param zmartinxscale ; caption = "Martin x Scale (z)" ; default = 1.0 ; hint = "This parameter scales real(#z) before the Martin iterations" ; visible = @zattractor && @zattractmartin ; endparam ; param zmartinyscale ; caption = "Martin y Scale (z)" ; default = 1.0 ; hint = "This parameter scales imag(#z) before the Martin iterations" ; visible = @zattractor && @zattractmartin ; endparam param zattractcosmartin caption = "CosMartin Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to cosine Martin attractor iterations" visible = @zattractor endparam param zcosmartiniters caption = "CosMartin Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of cosine Martin attractor iterations of #z" visible = @zattractor && @zattractcosmartin endparam param zcosmartinparam caption = "CosMartin Z Parameter" default = 6.2012553360599640350952630134203 hint = "This parameter modulates the #z cosine Martin attractor" visible = @zattractor && @zattractcosmartin endparam param zcosmartinscale caption = "CosMartin x,y Scale (z)" default = (5.0, 5.0) hint = "This parameter scales #z before the cosine Martin iterations" visible = @zattractor && @zattractcosmartin endparam ; param zcosmartinxscale ; caption = "CosMartin x Scale (z)" ; default = 1.0 ; hint = "This parameter scales real(#z) before the cosine Martin iterations" ; visible = @zattractor && @zattractcosmartin ; endparam ; param zcosmartinyscale ; caption = "CosMartin y Scale (z)" ; default = 1.0 ; hint = "This parameter scales imag(#z) before the cosine Martin iterations" ; visible = @zattractor && @zattractcosmartin ; endparam param blendzcosmartin caption = "Blend Z Cosmartin?" default = FALSE hint = "If enabled, than the cosmartin attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractcosmartin endparam param zcosmartinfraction caption = "Cosmartin Fraction" default = 0.1 hint = "If 'Blend Z Cosmartin' is enabled, than this is the fraction of the cosmartin attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractcosmartin && @blendzcosmartin endparam param zattractpopcorn caption = "Popcorn Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to popcorn attractor iterations" visible = @zattractor endparam param zpopcorniters caption = "Popcorn Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of popcorn attractor iterations of #z" visible = @zattractor && @zattractpopcorn endparam param zpopcornparam1 caption = "1st,3rd Popcorn Parameters (Z)" default = (0.05, 0.05) hint = "This parameter modulates the #z popcorn attractor" visible = @zattractor && @zattractpopcorn endparam param zpopcornparam2 caption = "2nd, 4th Popcorn Parameters (Z)" default = (3.0,3.0) hint = "This parameter modulates the #z popcorn attractor" visible = @zattractor && @zattractpopcorn endparam ; param zpopcornparam1 ; caption = "1st Popcorn Parameter (Z)" ; default = 0.05 ; hint = "This parameter modulates the #z popcorn attractor" ; visible = @zattractor && @zattractpopcorn ; endparam ; param zpopcornparam2 ; caption = "2nd Popcorn Parameter (Z)" ; default = 3.0 ; hint = "This parameter modulates the #z popcorn attractor" ; visible = @zattractor && @zattractpopcorn ; endparam ; param zpopcornparam3 ; caption = "3rd Popcorn Parameter (Z)" ; default = 0.05 ; hint = "This parameter modulates the #z popcorn attractor" ; visible = @zattractor && @zattractpopcorn ; endparam ; param zpopcornparam4 ; caption = "4th Popcorn Parameter (Z)" ; default = 3.0 ; hint = "This parameter modulates the #z popcorn attractor" ; visible = @zattractor && @zattractpopcorn ; endparam param zpopcornscale caption = "Popcorn x,y Scale (z)" default = (1.0,1.0) hint = "This parameter scales #z before the popcorn iterations" visible = @zattractor && @zattractpopcorn endparam param blendzpopcorn caption = "Blend Z Popcorn?" default = FALSE hint = "If enabled, than the popcorn attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractpopcorn endparam param zpopcornfraction caption = "Popcorn Fraction" default = 0.1 hint = "If 'Blend Z Popcorn' is enabled, than this is the fraction of the popcorn attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractpopcorn && @blendzpopcorn endparam ; param zpopcornxscale ; caption = "Popcorn x Scale (z)" ; default = 1.0 ; hint = "This parameter scales real(#z) before the popcorn iterations" ; visible = @zattractor && @zattractpopcorn ; endparam ; param zpopcornyscale ; caption = "Popcorn y Scale (z)" ; default = 1.0 ; hint = "This parameter scales imag(#z) before the popcorn iterations" ; visible = @zattractor && @zattractpopcorn ; endparam param zattractvine caption = "Vine Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to vine attractor iterations" visible = @zattractor endparam param zvineiters caption = "Vine Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of vine attractor iterations of #z" visible = @zattractor && @zattractvine endparam param zvineparam1 caption = "1st,3rd Vine Parameters (Z)" default = (0.1,0.1) hint = "This parameter modulates the #z vine attractor" visible = @zattractor && @zattractvine endparam param zvineparam2 caption = "2nd,4th Vine Parameters (Z)" default = (2.7182818284590452353602874713527,2.7182818284590452353602874713527) hint = "This parameter modulates the #z vine attractor" visible = @zattractor && @zattractvine endparam ; param zvineparam3 ; caption = "3rd Vine Parameter (Z)" ; default = 0.1 ; hint = "This parameter modulates the #z vine attractor" ; visible = @zattractor && @zattractvine ; endparam ; param zvineparam4 ; caption = "4th Vine Parameter (Z)" ; default = 2.7182818284590452353602874713527 ; hint = "This parameter modulates the #z vine attractor" ; visible = @zattractor && @zattractvine ; endparam param zvinescale caption = "Vine x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the vine iterations" visible = @zattractor && @zattractvine endparam ; param zvineyscale ; caption = "Vine y Scale (z)" ; default = 1.0 ; hint = "This parameter scales imag(#z) before the vine iterations" ; visible = @zattractor && @zattractvine ; endparam param blendzvine caption = "Blend Z Vine?" default = FALSE hint = "If enabled, than the vine attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractvine endparam param zvinefraction caption = "Vine Fraction" default = 0.1 hint = "If 'Blend Z Vine' is enabled, than this is the fraction of the vine attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractvine && @blendzvine endparam param zattractvine2 caption = "Vine2 Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to vine2 attractor iterations" visible = @zattractor endparam param zvine2iters caption = "Vine2 Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of vine2 attractor iterations of #z" visible = @zattractor && @zattractvine2 endparam param zvine2param1 caption = "1st,3rd Vine2 Parameters (Z)" default = (0.1,0.1) hint = "This parameter modulates the #z vine2 attractor" visible = @zattractor && @zattractvine2 endparam param zvine2param2 caption = "2nd,4th Vine2 Parameters (Z)" default = (2.7182818284590452353602874713527,2.7182818284590452353602874713527) hint = "This parameter modulates the #z vine2 attractor" visible = @zattractor && @zattractvine2 endparam param zvine2exp1 caption = "Vine2 Exponents (Z)" default = (2.0,2.0) hint = "These parameters are the powers used in the first & second vine2 attractor equations" visible = @zattractor && @zattractvine2 endparam ; param zvine2param3 ; caption = "3rd Vine2 Parameter (Z)" ; default = 0.1 ; hint = "This parameter modulates the #z vine2 attractor" ; visible = @zattractor && @zattractvine2 ; endparam ; param zvine2param4 ; caption = "4th Vine2 Parameter (Z)" ; default = 2.7182818284590452353602874713527 ; hint = "This parameter modulates the #z vine2 attractor" ; visible = @zattractor && @zattractvine2 ; endparam ; param zvine2exp2 ; caption = "2nd Vine2 Exponent2 (Z)" ; default = 2.0 ; hint = "This parameter is the power used in the second vine2 attractor equation" ; visible = @zattractor && @zattractvine2 ; endparam param zvine2scale caption = "Vine2 x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the vine2 iterations" visible = @zattractor && @zattractvine2 endparam ; param zvine2yscale ; caption = "Vine2 y Scale (z)" ; default = 1.0 ; hint = "This parameter scales imag(#z) before the vine2 iterations" ; visible = @zattractor && @zattractvine2 ; endparam param blendzvine2 caption = "Blend Z Vine2?" default = FALSE hint = "If enabled, than the vine2 attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractvine2 endparam param zvine2fraction caption = "Vine2 Fraction" default = 0.1 hint = "If 'Blend Z Vine2' is enabled, than this is the fraction of the vine2 attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractvine2 && @blendzvine2 endparam param zattractquadruptwo caption = "Quadruptwo Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to quadruptwo attractor iterations" visible = @zattractor endparam param zquadruptwoiters caption = "Quadruptwo Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of quadruptwo attractor iterations of #z" visible = @zattractor && @zattractquadruptwo endparam param zquadruptwoparam1 caption = "Quadruptwo a,b Parameters (Z)" default = (1.0,1.0) hint = "This parameter modulates the #z quadruptwo attractor" visible = @zattractor && @zattractquadruptwo endparam param zquadruptwoparam2 caption = "Quadruptwo c,d Parameters (Z)" default = (1.0,2.0) hint = "This parameter modulates the #z quadruptwo attractor" visible = @zattractor && @zattractquadruptwo endparam param zquadruptwoscale caption = "Quadruptwo x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the quadruptwo iterations" visible = @zattractor && @zattractquadruptwo endparam param blendzquadruptwo caption = "Blend Z Quadruptwo?" default = FALSE hint = "If enabled, than the quadruptwo attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractquadruptwo endparam param zquadruptwofraction caption = "Quadruptwo Fraction" default = 0.1 hint = "If 'Blend Z Quadruptwo' is enabled, than this is the fraction of the quadruptwo attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractquadruptwo && @blendzquadruptwo endparam param zattractthreeply caption = "Threeply Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to threeply attractor iterations" visible = @zattractor endparam param zthreeplyiters caption = "Threeply Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of threeply attractor iterations of #z" visible = @zattractor && @zattractthreeply endparam param zthreeplyparam1 caption = "Threeply a,b Parameters (Z)" default = (1.0,1.0) hint = "This parameter modulates the #z threeply attractor" visible = @zattractor && @zattractthreeply endparam param zthreeplyparam2 caption = "Threeply c,d Parameters (Z)" default = (1.0,1.0) hint = "This parameter modulates the #z threeply attractor" visible = @zattractor && @zattractthreeply endparam param zthreeplyscale caption = "Threeply x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the threeply iterations" visible = @zattractor && @zattractthreeply endparam param blendzthreeply caption = "Blend Z Threeply?" default = FALSE hint = "If enabled, than the threeply attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractthreeply endparam param zthreeplyfraction caption = "Threeply Fraction" default = 0.1 hint = "If 'Blend Z Threeply' is enabled, than this is the fraction of the threeply attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractthreeply && @blendzthreeply endparam param zattracthenon caption = "Henon Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to henon attractor iterations" visible = @zattractor endparam param zhenoniters caption = "Henon Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of henon attractor iterations of #z" visible = @zattractor && @zattracthenon endparam param zhenonparam1 caption = "Henon a,b Parameters (Z)" default = (1.4,0.3) hint = "This parameter modulates the #z henon attractor" visible = @zattractor && @zattracthenon endparam param zhenonscale caption = "Henon x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the henon iterations" visible = @zattractor && @zattracthenon endparam param blendzhenon caption = "Blend Z Henon?" default = FALSE hint = "If enabled, than the henon attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattracthenon endparam param zhenonfraction caption = "Henon Fraction" default = 0.1 hint = "If 'Blend Z Henon' is enabled, than this is the fraction of the henon attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattracthenon && @blendzhenon endparam param zattracthopalong caption = "Hopalong Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to hopalong attractor iterations" visible = @zattractor endparam param zhopalongiters caption = "Hopalong Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of hopalong attractor iterations of #z" visible = @zattractor && @zattracthopalong endparam param zhopalongparam1 caption = "Hopalong a,b Parameters (Z)" default = (0.4,1.0) hint = "This parameter modulates the #z hopalong attractor" visible = @zattractor && @zattracthopalong endparam param zhopalongparam2 caption = "Hopalong c,d Parameters (Z)" default = (0.0,0.5) hint = "This parameter modulates the #z hopalong attractor" visible = @zattractor && @zattracthopalong endparam param zhopalongscale caption = "Hopalong x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the hopalong iterations" visible = @zattractor && @zattracthopalong endparam param blendzhopalong caption = "Blend Z Hopalong?" default = FALSE hint = "If enabled, than the hopalong attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattracthopalong endparam param zhopalongfraction caption = "Hopalong Fraction" default = 0.1 hint = "If 'Blend Z Hopalong' is enabled, than this is the fraction of the hopalong attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattracthopalong && @blendzhopalong endparam param zattractchip caption = "Chip Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to chip attractor iterations" visible = @zattractor endparam param zchipiters caption = "Chip Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of chip attractor iterations of #z" visible = @zattractor && @zattractchip endparam param zchipparam1 caption = "Chip a,b Parameters (Z)" default = (-15.0,-3.0) hint = "This parameter modulates the #z chip attractor" visible = @zattractor && @zattractchip endparam param zchipparam2 caption = "Chip c,d Parameters (Z)" default = (1.0,2.0) hint = "This parameter modulates the #z chip attractor" visible = @zattractor && @zattractchip endparam param zchipscale caption = "Chip x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the chip iterations" visible = @zattractor && @zattractchip endparam param blendzchip caption = "Blend Z Chip?" default = FALSE hint = "If enabled, than the chip attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractchip endparam param zchipfraction caption = "Chip Fraction" default = 0.1 hint = "If 'Blend Z Chip' is enabled, than this is the fraction of the chip attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractchip && @blendzchip endparam param zattractliar caption = "Liar Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to liar attractor iterations" visible = @zattractor endparam param zliariters caption = "Liar Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of liar attractor iterations of #z" visible = @zattractor && @zattractliar endparam param zliarparam1 caption = "Liar a,b Parameters (Z)" default = (1.0,1.0) hint = "This parameter modulates the #z liar attractor" visible = @zattractor && @zattractliar endparam param zliarparam2 caption = "Liar c,d Parameters (Z)" default = (1.0,1.0) hint = "This parameter modulates the #z liar attractor" visible = @zattractor && @zattractliar endparam param zliarscale caption = "Liar x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the liar iterations" visible = @zattractor && @zattractliar endparam param blendzliar caption = "Blend Z Liar?" default = FALSE hint = "If enabled, than the liar attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractliar endparam param zliarfraction caption = "Liar Fraction" default = 0.1 hint = "If 'Blend Z Liar' is enabled, than this is the fraction of the liar attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractliar && @blendzliar endparam param zattractgingerbread caption = "Gingerbread Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to gingerbread attractor iterations" visible = @zattractor endparam param zgingerbreaditers caption = "Gingerbread Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of gingerbread attractor iterations of #z" visible = @zattractor && @zattractgingerbread endparam param zgingerbreadparam1 caption = "Gingerbread a,b Parameters (Z)" default = (1.4,0.3) hint = "This parameter modulates the #z gingerbread attractor" visible = @zattractor && @zattractgingerbread endparam param zgingerbreadscale caption = "Gingerbread x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the gingerbread iterations" visible = @zattractor && @zattractgingerbread endparam param blendzgingerbread caption = "Blend Z Gingerbread?" default = FALSE hint = "If enabled, than the gingerbread attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractgingerbread endparam param zgingerbreadfraction caption = "Gingerbread Fraction" default = 0.1 hint = "If 'Blend Z Gingerbread' is enabled, than this is the fraction of the gingerbread attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractgingerbread && @blendzgingerbread endparam param tattractor caption = "Enable Trap Attractors" default = FALSE hint = "If enabled, then #z can be subjected to various attractor iterations prior \ to trapping. Z attractor modifications are executed after all other z \ transformations, but before angle and screwiness modifications" endparam param tattractmartin caption = "Martin Trap Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to Martin attractor iterations" visible = @tattractor endparam param tmartiniters caption = "Martin T Iterations" default = 2 min = 1 hint = "This parameter determines the number of Martin attractor iterations of the trap point" visible = @tattractor && @tattractmartin endparam param tmartinparam caption = "Martin T Parameter" default = 3.1415926535897932384626433832795 hint = "This parameter modulates the trap Martin attractor" visible = @tattractor && @tattractmartin endparam param tmartinscale caption = "Martin x,y Scale (T)" default = (5.0, 5.0) hint = "This parameter scales the trap point before the Martin iterations" visible = @tattractor && @tattractmartin endparam param blendtmartin caption = "Blend T Martin?" default = FALSE hint = "If enabled, than the Martin attractor perturbation is only partially mixed into \ the unmodified trap point" visible = @tattractor && @tattractmartin endparam param tmartinfraction caption = "Martin Fraction" default = 0.1 hint = "If 'Blend T Martin' is enabled, than this is the fraction of the Martin attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractmartin && @blendtmartin endparam ; param tmartinxscale ; caption = "Martin x Scale (t)" ; default = 1.0 ; hint = "This parameter scales real(trap) before the Martin iterations" ; visible = @tattractor && @tattractmartin ; endparam ; param tmartinyscale ; caption = "Martin y Scale (t)" ; default = 1.0 ; hint = "This parameter scales imag(trap) before the Martin iterations" ; visible = @tattractor && @tattractmartin ; endparam param tattractcosmartin caption = "CosMartin T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to cosine Martin attractor iterations" visible = @tattractor endparam param tcosmartiniters caption = "CosMartin T Iterations" default = 2 min = 1 hint = "This parameter determines the number of cosine Martin attractor iterations of the trap point" visible = @tattractor && @tattractcosmartin endparam param tcosmartinparam caption = "CosMartin T Parameter" default = 6.2012553360599640350952630134203 hint = "This parameter modulates the trap point cosine Martin attractor" visible = @tattractor && @tattractcosmartin endparam param tcosmartinscale caption = "CosMartin x Scale (T)" default = (5.0, 5.0) hint = "This parameter scales the trappoint before the cosine Martin iterations" visible = @tattractor && @tattractcosmartin endparam param blendtcosmartin caption = "Blend T Cosmartin?" default = FALSE hint = "If enabled, than the cosmartin attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractcosmartin endparam param tcosmartinfraction caption = "Cosmartin Fraction" default = 0.1 hint = "If 'Blend T Cosmartin' is enabled, than this is the fraction of the cosmartin attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractcosmartin && @blendtcosmartin endparam ; param tcosmartinxscale ; caption = "CosMartin x Scale (T)" ; default = 1.0 ; hint = "This parameter scales real(trap) before the cosine Martin iterations" ; visible = @tattractor && @tattractcosmartin ; endparam ; param tcosmartinyscale ; caption = "CosMartin y Scale (T)" ; default = 1.0 ; hint = "This parameter scales imag(trap) before the cosine Martin iterations" ; visible = @tattractor && @tattractcosmartin ; endparam param tattractpopcorn caption = "Popcorn T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to popcorn attractor iterations" visible = @tattractor endparam param tpopcorniters caption = "Popcorn T Iterations" default = 2 min = 1 hint = "This parameter determines the number of popcorn attractor iterations of the trap point" visible = @tattractor && @tattractpopcorn endparam param tpopcornparam1 caption = "1st,3rd Popcorn Parameters (T)" default = (0.05,0.05) hint = "This parameter modulates the trap popcorn attractor" visible = @tattractor && @tattractpopcorn endparam param tpopcornparam2 caption = "2nd, 4th Popcorn Parameters (T)" default = (3.0,3.0) hint = "This parameter modulates the trap popcorn attractor" visible = @tattractor && @tattractpopcorn endparam ; param tpopcornparam1 ; caption = "1st Popcorn Parameter (T)" ; default = 0.05 ; hint = "This parameter modulates the trap popcorn attractor" ; visible = @tattractor && @tattractpopcorn ; endparam ; param tpopcornparam2 ; caption = "2nd Popcorn Parameter (T)" ; default = 3.0 ; hint = "This parameter modulates the trap popcorn attractor" ; visible = @tattractor && @tattractpopcorn ; endparam ; param tpopcornparam3 ; caption = "3rd Popcorn Parameter (T)" ; default = 0.05 ; hint = "This parameter modulates the trap popcorn attractor" ; visible = @tattractor && @tattractpopcorn ; endparam ; param tpopcornparam4 ; caption = "4th Popcorn Parameter (T)" ; default = 3.0 ; hint = "This parameter modulates the trap popcorn attractor" ; visible = @tattractor && @tattractpopcorn ; endparam param tpopcornscale caption = "Popcorn x,y Scale (T)" default = (4.0,4.0) hint = "This parameter scales the trap point before the popcorn iterations" visible = @tattractor && @tattractpopcorn endparam ; param tpopcornxscale ; caption = "Popcorn x Scale (T)" ; default = 1.0 ; hint = "This parameter scales real(trap) before the popcorn iterations" ; visible = @tattractor && @tattractpopcorn ; endparam ; param tpopcornyscale ; caption = "Popcorn y Scale (T)" ; default = 1.0 ; hint = "This parameter scales imag(trap) before the popcorn iterations" ; visible = @tattractor && @tattractpopcorn ; endparam param blendtpopcorn caption = "Blend T Popcorn?" default = FALSE hint = "If enabled, than the popcorn attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractpopcorn endparam param tpopcornfraction caption = "Popcorn Fraction" default = 0.1 hint = "If 'Blend T Popcorn' is enabled, than this is the fraction of the popcorn attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractpopcorn && @blendtpopcorn endparam param tattractvine caption = "Vine T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to vine attractor iterations" visible = @tattractor endparam param tvineiters caption = "Vine T Iterations" default = 2 min = 1 hint = "This parameter determines the number of vine attractor iterations of the trap point" visible = @tattractor && @tattractvine endparam param tvineparam1 caption = "1st,3rd Vine Parameters (T)" default = (0.1,0.1) hint = "This parameter modulates the trap vine attractor" visible = @tattractor && @tattractvine endparam param tvineparam2 caption = "2nd,4th Vine Parameters (T)" default = (2.7182818284590452353602874713527,2.7182818284590452353602874713527) hint = "This parameter modulates the trap vine attractor" visible = @tattractor && @tattractvine endparam ; param tvineparam3 ; caption = "3rd Vine Parameter (T)" ; default = 0.1 ; hint = "This parameter modulates the trap vine attractor" ; visible = @tattractor && @tattractvine ; endparam ; param tvineparam4 ; caption = "4th Vine Parameter (T)" ; default = 2.7182818284590452353602874713527 ; hint = "This parameter modulates the trap vine attractor" ; visible = @tattractor && @tattractvine ; endparam param tvinescale caption = "Vine x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales the trap point before the vine iterations" visible = @tattractor && @tattractvine endparam ; param tvineyscale ; caption = "Vine y Scale (T)" ; default = 1.0 ; hint = "This parameter scales imag(trap) before the vine iterations" ; visible = @tattractor && @tattractvine ; endparam param blendtvine caption = "Blend T Vine?" default = FALSE hint = "If enabled, than the vine attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractvine endparam param tvinefraction caption = "Vine Fraction" default = 0.1 hint = "If 'Blend T Vine' is enabled, than this is the fraction of the vine attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractvine && @blendtvine endparam param tattractvine2 caption = "Vine2 T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to vine2 attractor iterations" visible = @tattractor endparam param tvine2iters caption = "Vine2 T Iterations" default = 2 min = 1 hint = "This parameter determines the number of vine2 attractor iterations of the trap" visible = @tattractor && @tattractvine2 endparam param tvine2param1 caption = "1st,3rd Vine2 Parameters (T)" default = (0.1,0.1) hint = "This parameter modulates the trap vine2 attractor" visible = @tattractor && @tattractvine2 endparam param tvine2param2 caption = "2nd,4th Vine2 Parameter (T)" default = (2.7182818284590452353602874713527,2.7182818284590452353602874713527) hint = "This parameter modulates the trap vine2 attractor" visible = @tattractor && @tattractvine2 endparam param tvine2exp1 caption = "Vine2 Exponents (T)" default = (2.0,2.0) hint = "These parameters are the powers used in the first & second vine2 attractor equations" visible = @tattractor && @tattractvine2 endparam ; param tvine2param3 ; caption = "3rd Vine2 Parameter (T)" ; default = 0.1 ; hint = "This parameter modulates the trap vine2 attractor" ; visible = @tattractor && @tattractvine2 ; endparam ; param tvine2param4 ; caption = "4th Vine2 Parameter (T)" ; default = 2.7182818284590452353602874713527 ; hint = "This parameter modulates the trap vine2 attractor" ; visible = @tattractor && @tattractvine2 ; endparam ; param tvine2exp2 ; caption = "2nd Vine2 Exponent2 (T)" ; default = 2.0 ; hint = "This parameter is the power used in the second vine2 attractor equation" ; visible = @tattractor && @tattractvine2 ; endparam param tvine2scale caption = "Vine2 x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales the trap point before the vine2 iterations" visible = @tattractor && @tattractvine2 endparam ; param tvine2yscale ; caption = "Vine2 y Scale (T)" ; default = 1.0 ; hint = "This parameter scales imag(trap) before the vine2 iterations" ; visible = @tattractor && @tattractvine2 ; endparam param blendtvine2 caption = "Blend T Vine2?" default = FALSE hint = "If enabled, than the vine2 attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractvine2 endparam param tvine2fraction caption = "Vine2 Fraction" default = 0.1 hint = "If 'Blend T Vine2' is enabled, than this is the fraction of the vine2 attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractvine2 && @blendtvine2 endparam param tattractquadruptwo caption = "Quadruptwo T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to quadruptwo attractor iterations" visible = @tattractor endparam param tquadruptwoiters caption = "Quadruptwo T Iterations" default = 2 min = 1 hint = "This parameter determines the number of quadruptwo attractor iterations of the trap" visible = @tattractor && @tattractquadruptwo endparam param tquadruptwoparam1 caption = "Quadruptwo a,b Parameters (T)" default = (1.0,1.0) hint = "This parameter modulates the trap quadruptwo attractor" visible = @tattractor && @tattractquadruptwo endparam param tquadruptwoparam2 caption = "Quadruptwo c,d Parameters (T)" default = (1.0,2.0) hint = "This parameter modulates the trap quadruptwo attractor" visible = @tattractor && @tattractquadruptwo endparam param tquadruptwoscale caption = "Quadruptwo x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales trap before the quadruptwo iterations" visible = @tattractor && @tattractquadruptwo endparam param blendtquadruptwo caption = "Blend T Quadruptwo?" default = FALSE hint = "If enabled, than the quadruptwo attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractquadruptwo endparam param tquadruptwofraction caption = "Quadruptwo Fraction" default = 0.1 hint = "If 'Blend T Quadruptwo' is enabled, than this is the fraction of the quadruptwo attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractquadruptwo && @blendtquadruptwo endparam param tattractthreeply caption = "Threeply T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to threeply attractor iterations" visible = @tattractor endparam param tthreeplyiters caption = "Threeply T Iterations" default = 2 min = 1 hint = "This parameter determines the number of threeply attractor iterations of the trap" visible = @tattractor && @tattractthreeply endparam param tthreeplyparam1 caption = "Threeply a,b Parameters (T)" default = (1.0,1.0) hint = "This parameter modulates the trap threeply attractor" visible = @tattractor && @tattractthreeply endparam param tthreeplyparam2 caption = "Threeply c,d Parameters (T)" default = (1.0,1.0) hint = "This parameter modulates the trap threeply attractor" visible = @tattractor && @tattractthreeply endparam param tthreeplyscale caption = "Threeply x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales trap before the threeply iterations" visible = @tattractor && @tattractthreeply endparam param blendtthreeply caption = "Blend T Threeply?" default = FALSE hint = "If enabled, than the threeply attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractthreeply endparam param tthreeplyfraction caption = "Threeply Fraction" default = 0.1 hint = "If 'Blend T Threeply' is enabled, than this is the fraction of the threeply attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractthreeply && @blendtthreeply endparam param tattracthenon caption = "Henon T Attractor" default = FALSE hint = "If enabled, then thr trap point is subjected to henon attractor iterations" visible = @tattractor endparam param thenoniters caption = "Henon T Iterations" default = 2 min = 1 hint = "This parameter determines the number of henon attractor iterations of thr trap" visible = @tattractor && @tattracthenon endparam param thenonparam1 caption = "Henon a,b Parameters (T)" default = (1.4,0.0) hint = "This parameter modulates the trap henon attractor" visible = @tattractor && @tattracthenon endparam param thenonscale caption = "Henon x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales the trap before the henon iterations" visible = @tattractor && @tattracthenon endparam param blendthenon caption = "Blend T Henon?" default = FALSE hint = "If enabled, than the henon attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattracthenon endparam param thenonfraction caption = "Henon Fraction" default = 0.1 hint = "If 'Blend T Henon' is enabled, than this is the fraction of the henon attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattracthenon && @blendthenon endparam param tattracthopalong caption = "Hopalong T Attractor" default = FALSE hint = "If enabled, then thr trap point is subjected to hopalong attractor iterations" visible = @tattractor endparam param thopalongiters caption = "Hopalong T Iterations" default = 2 min = 1 hint = "This parameter determines the number of hopalong attractor iterations of the trap" visible = @tattractor && @tattracthopalong endparam param thopalongparam1 caption = "Hopalong a,b Parameters (T)" default = (0.4,1.0) hint = "This parameter modulates the trap hopalong attractor" visible = @tattractor && @tattracthopalong endparam param thopalongparam2 caption = "Hopalong c,d Parameters (T)" default = (0.0,0.5) hint = "This parameter modulates the trap hopalong attractor" visible = @tattractor && @tattracthopalong endparam param thopalongscale caption = "Hopalong x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales the trap before the hopalong iterations" visible = @tattractor && @tattracthopalong endparam param blendthopalong caption = "Blend T Hopalong?" default = FALSE hint = "If enabled, than the hopalong attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattracthopalong endparam param thopalongfraction caption = "Hopalong Fraction" default = 0.1 hint = "If 'Blend T Hopalong' is enabled, than this is the fraction of the hopalong attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattracthopalong && @blendthopalong endparam param tattractchip caption = "Chip T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to chip attractor iterations" visible = @tattractor endparam param tchipiters caption = "Chip T Iterations" default = 2 min = 1 hint = "This parameter determines the number of chip attractor iterations of the trap" visible = @tattractor && @tattractchip endparam param tchipparam1 caption = "Chip a,b Parameters (T)" default = (-1.0,-1.0) hint = "This parameter modulates the trap chip attractor" visible = @tattractor && @tattractchip endparam param tchipparam2 caption = "Chip c,d Parameters (T)" default = (1.0,2.0) hint = "This parameter modulates the trap chip attractor" visible = @tattractor && @tattractchip endparam param tchipscale caption = "Chip x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales the trap point before the chip iterations" visible = @tattractor && @tattractchip endparam param blendtchip caption = "Blend T Chip?" default = FALSE hint = "If enabled, than the chip attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractchip endparam param tchipfraction caption = "Chip Fraction" default = 0.1 hint = "If 'Blend T Chip' is enabled, than this is the fraction of the chip attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractchip && @blendtchip endparam param tattractliar caption = "Liar T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to liar attractor iterations" visible = @tattractor endparam param tliariters caption = "Liar T Iterations" default = 2 min = 1 hint = "This parameter determines the number of liar attractor iterations of the trap" visible = @tattractor && @tattractliar endparam param tliarparam1 caption = "Liar a,b Parameters (T)" default = (1.0,1.0) hint = "This parameter modulates the trap liar attractor" visible = @tattractor && @tattractliar endparam param tliarparam2 caption = "Liar c,d Parameters (T)" default = (1.0,1.0) hint = "This parameter modulates the trap liar attractor" visible = @tattractor && @tattractliar endparam param tliarscale caption = "Liar x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales the trap before the liar iterations" visible = @tattractor && @tattractliar endparam param blendtliar caption = "Blend T Liar?" default = FALSE hint = "If enabled, than the liar attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractliar endparam param tliarfraction caption = "Liar Fraction" default = 0.1 hint = "If 'Blend T Liar' is enabled, than this is the fraction of the liar attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractliar && @blendtliar endparam param tattractgingerbread caption = "Gingerbread T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to gingerbread attractor iterations" visible = @tattractor endparam param tgingerbreaditers caption = "Gingerbread T Iterations" default = 2 min = 1 hint = "This parameter determines the number of gingerbread attractor iterations of the trap" visible = @tattractor && @tattractgingerbread endparam param tgingerbreadparam1 caption = "Gingerbread a,b Parameters (T)" default = (1.4,0.3) hint = "This parameter modulates the trap gingerbread attractor" visible = @tattractor && @tattractgingerbread endparam param tgingerbreadscale caption = "Gingerbread x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales the trap before the gingerbread iterations" visible = @tattractor && @tattractgingerbread endparam param blendtgingerbread caption = "Blend t Gingerbread?" default = FALSE hint = "If enabled, than the gingerbread attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractgingerbread endparam param tgingerbreadfraction caption = "Gingerbread Fraction" default = 0.1 hint = "If 'Blend t Gingerbread' is enabled, than this is the fraction of the gingerbread attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractgingerbread && @blendtgingerbread endparam heading caption = "Color Settings" $ifdef VER40 expanded = FALSE $endif endheading param softendistance caption = "Soften Distance?" default = FALSE hint = "If enabled, coloring by distance is modified to smear out distances that \ fall very close to the trap. The effect can be adjusted with the two \ parameters 'Soft Distance' and 'Soft Exponent'. Designed for use with the \ 'distance', 'mod distance', or 'flavor' 'Color By' modes, but can be used \ with any of the modes with less predictable results" visible = @showcolors endparam param softdistamt caption = "Soft Distance" default = 0.05 min = 1e-10 hint = "If 'Soften Distance' is enabled, this value fixes the minimum distance \ at which the effect is active. Useful values are generally very small. \ The larger the value, the greater the smearing" visible = @showcolors && @softendistance endparam param softdistpwr caption = "Soft Exponent" default = 0.5 min = 1e-10 hint = "If 'Soften Distance' is enabled, this exponent sets the rate that the \ gradient changes as distance from the trap increases. For slower fading, \ decrease this value" visible = @showcolors && @softendistance endparam param softaccel caption = "Soft Acceleration" default = 1.0 hint = "If 'Soften Distance' is enabled, this factor sets the rate that the \ 'Soft Exponent' grows as distance from the trap increases. For slower fading, \ decrease this value" visible = @showcolors && @softendistance endparam param enablestretch caption = "Stretch Color Range?" default = FALSE hint = "If enabled, the color range can be expanded or contracted by setting \ associated parameters. Stretching occurs prior to fBm, texture, \ offset, or other color modifications, but after softening" visible = @showcolors endparam param stretchtype caption = "Color Stretch Type" enum = "linear" "linear2" "exponential" "quadratic" "quadratic2" "tanh" default = 1 hint = "If 'Stretch Color Range' is enabled, \ then this parameter determines the style of gradient stretching" visible = @showcolors && @enablestretch endparam param stretchcolor caption = "Linear Color Stretch" default = 2.0 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'linear', \ then this parameter determines the amount of gradient stretching \ (fixed linear stretch)" visible = @showcolors && @enablestretch && (@stretchtype == 0) endparam param stretchlinear21 caption = "Linear2 1st Point" default = 0.003 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'linear2', \ then this parameter is stretched to the value of param 'Linear2 2nd Point' \ (zero fixed, point 1 stretched/compressed to point 2)" visible = @showcolors && @enablestretch && (@stretchtype == 1) endparam param stretchlinear22 caption = "Linear2 2nd Point" default = 0.1 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'linear2', \ then parameter 'Linear2 1st Point' is stretched to this value \ (zero fixed, point 1 stretched/compressed to point 2)" visible = @showcolors && @enablestretch && (@stretchtype == 1) endparam param stretchdelta caption = "Exponential Stretch Delta" default = 0.02 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'exponential', \ then this parameter sets the width near zero subject to exponential stretching \ (zero fixed, this value stretched/compressed to point 2)" visible = @showcolors && @enablestretch && (@stretchtype == 2) endparam param stretchamount caption = "Exponential Stretch Amount" default = 0.3 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'exponential', \ then this parameter sets the degree of stretching \ (zero fixed, point 1 stretched/compressed to this value)" visible = @showcolors && @enablestretch && (@stretchtype == 2) endparam param stretchquad11 caption = "Quadratic 1st Point" default = 0.003 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'quadratic', \ then this value is stretched to the value of param 'Quadratic 2nd Point' \ (0.0 and point 3 fixed, this value stretched/compressed to point 2)" visible = @showcolors && @enablestretch && (@stretchtype == 3) endparam param stretchquad12 caption = "Quadratic 2nd Point" default = 0.1 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'quadratic', \ then parameter 'Quadratic 1st Point' is stretched to this value \ (0.0 and point 3 fixed, point 1 stretched/compressed to this value)" visible = @showcolors && @enablestretch && (@stretchtype == 3) endparam param stretchquad13 caption = "Quadratic 3rd Point" default = 2.0 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'quadratic', \ then this value remains constant under the stretch \ (0.0 and this point fixed, point 1 stretched/compressed to point 2)" visible = @showcolors && @enablestretch && (@stretchtype == 3) endparam param stretchquad21 caption = "Quadratic2 1st Point" default = 0.003 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'quadratic2', \ then this value is stretched to the value of param 'Quadratic2 2nd Point' \ (0.0 and 1.0 fixed, this value stretched/compressed to point 2)" visible = @showcolors && @enablestretch && (@stretchtype == 4) endparam param stretchquad22 caption = "Quadratic2 2nd Point" default = 0.1 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'quadratic2', \ then parameter 'Quadratic2 1st Point' is stretched to this value \ (0.0 and 1.0 fixed, point 1 stretched/compressed to this value)" visible = @showcolors && @enablestretch && (@stretchtype == 4) endparam param stretchtanhfixedpt caption = "Tanh Fixed Point" default = 0.4 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'tanh', \ then this parameter sets the value that is fixed \ (not subject to stretching/compression)" visible = @showcolors && @enablestretch && (@stretchtype == 5) endparam param stretchtanhamount caption = "Tanh Stretch Amount" default = 2.0 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'tanh', \ then this parameter sets the amount of the stretching" visible = @showcolors && @enablestretch && (@stretchtype == 5) endparam param filledtrap caption = "Fill Trap?" default = FALSE hint = "If enabled, coloring by distance is modified so that some negative values \ are reset to zero" visible = @showcolors && ( (@colorby == 0) || (@colorby == 1) ) endparam param maxsoften caption = "Maxima Smoothing" default = 0.05 min = 1.0e-10 hint = "This parameter smoothes out the coloring when one of the maxima \ 'Trap What' values are chosen. Smaller is smoother" visible = @showcolors && ( (@whattotrap == 1) || (@whattotrap == 5) || \ (@whattotrap == 6) || (@whattotrap == 7) || (@whattotrap > 15) ) && \ ( (@colorby != 4) && (@colorby != 5) && (@colorby != 6) && \ (@colorby != 7) && (@colorby < 12) ) endparam param ranges caption = "Color Ranges" default = 1 min = 1 hint = "Applies different parts of the color palette to various portions of \ the image" visible = @showcolors endparam param maskranges caption = "Mask Color Ranges?" default = FALSE hint = "If enabled, then param 'Mask What Range?' and 'Mask Range If' can be \ set to mask the appropriate pixels. Only valid if 'Color Ranges' > 1" visible = (@ranges > 1) && @showcolors endparam param whatrange caption = "Mask What Range?" enum = "<=" ">=" "=" "not =" "between" "outside" default = 0 hint = "If 'Mask Color Ranges?' is turned on, then pixels falling in this color \ range will be visible; others will be set to the solid color" visible = @maskranges && @showcolors && (@ranges > 1) endparam param rangemin caption = "Range Value/Minimum" default = 1 min = 1 hint = "This is the range value that will be affected. If two limits are \ required, then this value is the lower (minimum) one. Use '1' for \ the first range" visible = @maskranges && @showcolors && (@ranges > 1) endparam param rangemax caption = "Range Maximum" default = 2 min = 1 hint = "When two limits are required, this is the higher (maximum) range value \ that will be affected" visible = @maskranges && @showcolors && (@ranges > 1) && ((@whatrange == 4) || (@whatrange == 5)) endparam param @colorwarp caption = "Color Warp Factor" enum = "c" "1/c" "c^2" "1/c^2" "log(c)" "e^c" "c^c" "sin(c)" "cos(c)" \ "tan(c)" "asin(c)" "acos(c)" "atan(c)" "sinh(c)" "cosh(c)" "tanh(c)" \ "asinh(c)" "acosh(c)" "atanh(c)" "log(1/c)" "log(log(c))" "e^-c" \ "e^(1/c)" "c^-c" "sin(c)^2" "cos(c)^2" "tan(c)^2" "cot(c)" "sec(c)" \ "csc(c)" "cot(c)^2" "sec(c)^2" "csc(c)^2" "c^c^c" "1/c^c^c" "log(-c)" \ "1/log(c)" "clog(c)" "sin(c)/c" "cos(c)/c" "sin(c)*cos(c)" "sin(c^2)" \ "e^(-1/c)" "ce^c" "ce^-c" "ce^(1/c)" "ce^(-1/c)" "c^3" "1/c^3" \ "acot(c)" "asec(c)" "acsc(c)" "tan(c)/c" "cot(c)/c" "sec(c)/c" \ "csc(c)/c" "csin(c)" "ccos(c)" "ctan(c)" "ccot(c)" "csec(c)" "ccsc(c)" \ "sin(1/c)" "cos(1/c)" "tan(1/c)" "cot(1/c)" "sec(1/c)" "csc(1/c)" \ "cotanh(c)" "sech(c)" "cosech(c)" "acoth(c)" "asech(c)" "acosech(c)" "c^power" \ "sinh(c)^2" "cosh(c)^2" "tanh(c)^2" "cotanh(c)^2" \ "sech(c)^2" "cosech(c)^2" "sinh(1/c)" "cosh(1/c)" "tanh(1/c)" \ "cotanh(1/c)" "sech(1/c)" "cosech(1/c)" "sin(c)tan(c)" "sinh(c)tanh(c)" \ "sinh(c)cosh(c)" "sinh(c)^2*cosh(c)^2" "sin(c)^2*cos(c)^2" \ "sin(1/c)*cos(1/c)" "sin(1/c)^2" "sin(c)cos(1/c)" "sin(c)sin(1/c)" \ "log(c)^2" "sin(c)sin(2c)" "e^2c" "e^-2c" "sinh(1/c)cosh(1/c)" \ "sinh(1/c)^2" "sinh(c)cosh(1/c)" "sinh(c)sinh(1/c)" "sin(c)sinh(c)" \ "sin(c)cosh(c)" "sin(c)^2*sinh(c)^2" "sin(c)e^c" "cos(c)e^c" \ "sinh(c)e^c" "cosh(c)e^c" "sin(c)log(c)" "cos(c)log(c)" "sinh(c)log(c)" \ "cosh(c)log(c)" \ "e^(c^2)" "e^(1/(c^2))" "abs(c)" "round(c)" "trunc(c)" \ "ceil(c)" "floor(c)" "c/log(c)" "log(c)/c" "(e^c)/c" "(e^(1/c))/c" \ "(e^(c^2))/c" "(e^(1/(c^2))/c" "c*e^(c^2)" "c*e^(1/(c^2))" \ "e^(-c^2)" "e^(-1/(c^2))" "(e^(-c^2))/c" "(e^(-1/(c^2))/c" \ "c*e^(-c^2)" "c*e^(1/(-c^2))" "log(c) B" "log(log(c)) B" default = 0 hint = "The final color index can be warped by this function; default is \ 'c' (no change in color index)" visible = @showcolors endparam param cpower caption = "Color Power" default = 0.14285714285714285714285714285714 hint = "Color index exponent if param 'Color Warp Factor' is set to 'c^power'" visible = (@colorwarp == "c^power") && @showcolors endparam param coloruntrappedregion caption = "Color Untrapped?" default = FALSE hint = "Normaly, pixels that are never trapped are set to the solid color. \ Enabling this option allows those regions to be set to any gradient color \ by setting parameter 'Untrapped Color'. This effect is usually only visible \ at low magnifications" visible = @showcolors endparam param untrappedcolor caption = "Untrapped Color" default = 0.0 min = 0.0 hint = "If param 'Color Untrapped?' is enabled, then this parameter defines which \ gradient color will be used to color untrapped pixels. The normal linear \ range is 0.0-1.0, but higher values are allowed in case a nonlinear transfer \ function is being used" visible = @coloruntrappedregion && @showcolors endparam param offsetcolor caption = "Offset Color Minimium?" default = FALSE hint = "If enabled, then the minimum color value of the trapped range is offset in \ the gradient by the amount set in parameter 'Offset Amount'" visible = @showcolors endparam param coloroffset caption = "Offset Amount" default = 0.1 min = -1.0 max = 1.0 hint = "If 'Offset Color Minimum' is enabled, then the minimum color value of the \ trapped range is offset by this amount" visible = @showcolors && @offsetcolor endparam param offsetcolor2 caption = "Offset Color Type2?" default = FALSE hint = "If enabled, then the minimum color value of the trapped range is offset in \ the gradient by the amount set in parameter 'Offset Amount2'" visible = @showcolors endparam param coloroffset2 caption = "Offset Amount2" default = 0.1 min = -1.0 max = 1.0 hint = "If 'Offset Color Type2' is enabled, then the minimum color value of the \ trapped range is offset by this amount" visible = @showcolors && @offsetcolor2 endparam param showcolors caption = "Show Color Params?" $ifdef VER40 default = TRUE $else default = FALSE $endif endparam heading caption = "fBm Settings" $ifdef VER40 expanded = FALSE $endif endheading param fBm caption = "Enable fBm?" default = FALSE hint = "Adds fBm distortion to coloring; overall amount of turbulence \ is set by parameter 'fBm Amount'" visible = @showfbm endparam param fBmamount caption = "fBm Amount" default = 1.0 hint = "Overall degree of fBm texturing, if enabled" visible = @fBm && @showfbm endparam param bscale caption = "fBm Scale" default = 1.0 hint = "The overall scale of the fBm turbulence" visible = @fBm && @showfbm endparam param bangle caption = "fBm Rotation" default = 0.0 hint = "Angular parameter for fBm noise" visible = @fBm && @showfbm endparam param bstep caption = "fBm Stepsize" default = 0.5 hint = "Scale step size for fBm noise iterations" visible = @fBm && @showfbm endparam param banglestep caption = "fBm Rotation Step" default = 37.0 hint = "The angle in degrees for noise function rotation after \ each fBm iteration" visible = @fBm && @showfbm endparam param boctaves caption = "fBm Octaves" default = 7 min = 1 hint = "The number of iterations of the fBm noise function" visible = @fBm && @showfbm endparam param bpower caption = "fBm Exponent" default = 2.0 hint = "The exponent used for randomization if fBm is enabled \ for fBm randomiaation" visible = @fBm && @showfbm endparam param bbfreq caption = "fBm Frequency" default = 1.0 hint = "Frequency multiplier for fBm noise" visible = @fBm && @showfbm endparam param fbminit caption = "fBm Initialization" enum = "z" "mod z" "trap" "blend 1" "blend 2" "blend 3" default = 0 hint = "This setting defines the input to the fBm algorithm" visible = @fBm && @showfbm endparam param fbmzweight caption = "fBm Z Weight" default = 0.25 hint = "If 'fBm Initialization' is set to one of the 'blend' options, then this parameter \ sets the fraction of #z that is used to initialize the fBm algorithm" visible = @fBm && @showfbm && ((@fbminit == "blend 1") || (@fbminit == "blend 2") \ || (@fbminit == "blend 3")) endparam param fbmtrapweight caption = "fBm Trap Weight" default = 0.75 hint = "If 'fBm Initialization' is set to one of 'blend 1' or 'blend 2', then this parameter \ sets the fraction of the trap point that is used to initialize the fBm algorithm. For \ 'blend 3', this param sets the fraction of 'mod z' that is mixed with #z" visible = @fBm && @showfbm && ((@fbminit == "blend 1") || (@fbminit == "blend 2") \ || (@fbminit == "blend 3")) endparam param @fbmcplxoffset caption = "fBm Offset" default = (0,0) hint = "This complex constant is added to the fBm initialization value" visible = @fBm && @showfbm endparam param varyfBm caption = "Vary fBm?" default = FALSE hint = "If set, the value of the trap will modify the turbulence amount each \ iteration; parameter 'fBm Feedback' can be used to modulate the variation" visible = @fBm && @showfbm endparam param fBmstp caption = "fBm Feedback" default = 1.0 hint = "If 'Vary fBm' is set, this setting adjusts the amount of variation" visible = @varyfBm && @fBm && @showfbm endparam param showfbm caption = "Show fBm Params?" $ifdef VER40 default = TRUE $else default = FALSE $endif endparam heading caption = "Texture Settings" $ifdef VER40 expanded = FALSE $endif endheading param texture caption = "Enable Texture?" default = FALSE hint = "If enabled, up to four texture function scan be specified" visible = @showtex endparam param texamount caption = "Texture Amount" default = 0.1 hint = "This param sets the overall amount of texture, if enabled" visible = @showtex && @texture endparam param texfunc1 caption = "Texture Func 1" enum = "x" "1/x" "x^2" "1/x^2" "log(x)" "e^x" "x^x" "sin(x)" "cos(x)" \ "tan(x)" "asin(x)" "acos(x)" "atan(x)" "sinh(x)" "cosh(x)" "tanh(x)" \ "asinh(x)" "acosh(x)" "atanh(x)" "log(1/x)" "log(log(x))" "e^-x" \ "e^(1/x)" "x^-x" "sin(x)^2" "cos(x)^2" "tan(x)^2" "cot(x)" "sec(x)" \ "csc(x)" "cot(x)^2" "sec(x)^2" "csc(x)^2" "x^x^x" "1/x^x^x" "log(-x)" \ "1/log(x)" "xlog(x)" "sin(x)/x" "cos(x)/x" "sin(x)*cos(x)" "sin(x^2)" \ "e^(-1/x)" "xe^x" "xe^-x" "xe^(1/x)" "xe^(-1/x)" "x^3" "1/x^3" \ "acot(x)" "asec(x)" "acsc(x)" "tan(x)/x" "cot(x)/x" "sec(x)/x" \ "csc(x)/x" "xsin(x)" "xcos(x)" "xtan(x)" "xcot(x)" "xsec(x)" "xcsc(x)" \ "sin(1/x)" "cos(1/x)" "tan(1/x)" "cot(1/x)" "sec(1/x)" "csc(1/x)" \ "cotanh(x)" "sech(x)" "cosech(x)" "acoth(x)" "asech(x)" "acosech(x)" "x^power" \ "sinh(x)^2" "cosh(x)^2" "tanh(x)^2" "cotanh(x)^2" \ "sech(x)^2" "cosech(x)^2" "sinh(1/x)" "cosh(1/x)" "tanh(1/x)" \ "cotanh(1/x)" "sech(1/x)" "cosech(1/x)" "sin(x)tan(x)" "sinh(x)tanh(x)" \ "sinh(x)cosh(x)" "sinh(x)^2*cosh(x)^2" "sin(x)^2*cos(x)^2" \ "sin(1/x)*cos(1/x)" "sin(1/x)^2" "sin(x)cos(1/x)" "sin(x)sin(1/x)" \ "log(x)^2" "sin(x)sin(2x)" "e^2x" "e^-2x" "sinh(1/x)cosh(1/x)" \ "sinh(1/x)^2" "sinh(x)cosh(1/x)" "sinh(x)sinh(1/x)" "sin(x)sinh(x)" \ "sin(x)cosh(x)" "sin(x)^2*sinh(x)^2" "sin(x)e^x" "cos(x)e^x" \ "sinh(x)e^x" "cosh(x)e^x" "sin(x)log(x)" "cos(x)log(x)" "sinh(x)log(x)" \ "cosh(x)log(x)" \ "e^(x^2)" "e^(1/(x^2))" "abs(x)" "round(x)" "trunc(x)" \ "ceil(x)" "floor(x)" "x/log(x)" "log(x)/x" "(e^x)/x" "(e^(1/x))/x" \ "(e^(x^2))/x" "(e^(1/(x^2))/x" "x*e^(x^2)" "x*e^(1/(x^2))" \ "e^(-x^2)" "e^(-1/(x^2))" "(e^(-x^2))/x" "(e^(-1/(x^2))/x" \ "x*e^(-x^2)" "x*e^(-1/(x^2))" default = 2 hint = "This is the first of up to four texture functions. Texture functions may be turned \ off by setting them to 'x'" visible = @showtex && @texture endparam param tex2power caption = "Tex Fn1 Power" default = 4.0 hint = "This is the exponent if 'Texture Func 1' is \ set to 'x^power'" visible = @showtex && @texfunc1 == "x^power" && @texture endparam param texf1offset caption = "Tex Fn1 Offset" default = (0, 0) hint = "This constant is added to the result of 'Texture Func 1'" visible = @showtex && @texture endparam param texf1multiplier caption = "Tex Fn1 Multiplier" default = (1, 0) hint = "This constant is multiplied by the result of 'Texture Func 1'" visible = @showtex && @texture endparam param texfunc2 caption = "Texture Func 2" enum = "x" "1/x" "x^2" "1/x^2" "log(x)" "e^x" "x^x" "sin(x)" "cos(x)" \ "tan(x)" "asin(x)" "acos(x)" "atan(x)" "sinh(x)" "cosh(x)" "tanh(x)" \ "asinh(x)" "acosh(x)" "atanh(x)" "log(1/x)" "log(log(x))" "e^-x" \ "e^(1/x)" "x^-x" "sin(x)^2" "cos(x)^2" "tan(x)^2" "cot(x)" "sec(x)" \ "csc(x)" "cot(x)^2" "sec(x)^2" "csc(x)^2" "x^x^x" "1/x^x^x" "log(-x)" \ "1/log(x)" "xlog(x)" "sin(x)/x" "cos(x)/x" "sin(x)*cos(x)" "sin(x^2)" \ "e^(-1/x)" "xe^x" "xe^-x" "xe^(1/x)" "xe^(-1/x)" "x^3" "1/x^3" \ "acot(x)" "asec(x)" "acsc(x)" "tan(x)/x" "cot(x)/x" "sec(x)/x" \ "csc(x)/x" "xsin(x)" "xcos(x)" "xtan(x)" "xcot(x)" "xsec(x)" "xcsc(x)" \ "sin(1/x)" "cos(1/x)" "tan(1/x)" "cot(1/x)" "sec(1/x)" "csc(1/x)" \ "cotanh(x)" "sech(x)" "cosech(x)" "acoth(x)" "asech(x)" "acosech(x)" "x^power" \ "sinh(x)^2" "cosh(x)^2" "tanh(x)^2" "cotanh(x)^2" \ "sech(x)^2" "cosech(x)^2" "sinh(1/x)" "cosh(1/x)" "tanh(1/x)" \ "cotanh(1/x)" "sech(1/x)" "cosech(1/x)" "sin(x)tan(x)" "sinh(x)tanh(x)" \ "sinh(x)cosh(x)" "sinh(x)^2*cosh(x)^2" "sin(x)^2*cos(x)^2" \ "sin(1/x)*cos(1/x)" "sin(1/x)^2" "sin(x)cos(1/x)" "sin(x)sin(1/x)" \ "log(x)^2" "sin(x)sin(2x)" "e^2x" "e^-2x" "sinh(1/x)cosh(1/x)" \ "sinh(1/x)^2" "sinh(x)cosh(1/x)" "sinh(x)sinh(1/x)" "sin(x)sinh(x)" \ "sin(x)cosh(x)" "sin(x)^2*sinh(x)^2" "sin(x)e^x" "cos(x)e^x" \ "sinh(x)e^x" "cosh(x)e^x" "sin(x)log(x)" "cos(x)log(x)" "sinh(x)log(x)" \ "cosh(x)log(x)" \ "e^(x^2)" "e^(1/(x^2))" "abs(x)" "round(x)" "trunc(x)" \ "ceil(x)" "floor(x)" "x/log(x)" "log(x)/x" "(e^x)/x" "(e^(1/x))/x" \ "(e^(x^2))/x" "(e^(1/(x^2))/x" "x*e^(x^2)" "x*e^(1/(x^2))" \ "e^(-x^2)" "e^(-1/(x^2))" "(e^(-x^2))/x" "(e^(-1/(x^2))/x" \ "x*e^(-x^2)" "x*e^(-1/(x^2))" default = 0 hint = "This is the second of up to four texture functions. Texture functions may be turned \ off by setting them to 'x'" visible = @showtex && @texture endparam param tex2power2 caption = "Tex Fn2 Power" default = 4.0 hint = "This is the exponent if 'Texture Func 2' is \ set to 'x^power'" visible = @showtex && @texfunc2 == "x^power" && @texture endparam param texf2offset caption = "Tex Fn2 Offset" default = (0, 0) hint = "This constant is added to the result of 'Texture Func 2'" visible = @showtex && @texture endparam param texfunc3 caption = "Texture Func 3" enum = "x" "1/x" "x^2" "1/x^2" "log(x)" "e^x" "x^x" "sin(x)" "cos(x)" \ "tan(x)" "asin(x)" "acos(x)" "atan(x)" "sinh(x)" "cosh(x)" "tanh(x)" \ "asinh(x)" "acosh(x)" "atanh(x)" "log(1/x)" "log(log(x))" "e^-x" \ "e^(1/x)" "x^-x" "sin(x)^2" "cos(x)^2" "tan(x)^2" "cot(x)" "sec(x)" \ "csc(x)" "cot(x)^2" "sec(x)^2" "csc(x)^2" "x^x^x" "1/x^x^x" "log(-x)" \ "1/log(x)" "xlog(x)" "sin(x)/x" "cos(x)/x" "sin(x)*cos(x)" "sin(x^2)" \ "e^(-1/x)" "xe^x" "xe^-x" "xe^(1/x)" "xe^(-1/x)" "x^3" "1/x^3" \ "acot(x)" "asec(x)" "acsc(x)" "tan(x)/x" "cot(x)/x" "sec(x)/x" \ "csc(x)/x" "xsin(x)" "xcos(x)" "xtan(x)" "xcot(x)" "xsec(x)" "xcsc(x)" \ "sin(1/x)" "cos(1/x)" "tan(1/x)" "cot(1/x)" "sec(1/x)" "csc(1/x)" \ "cotanh(x)" "sech(x)" "cosech(x)" "acoth(x)" "asech(x)" "acosech(x)" "x^power" \ "sinh(x)^2" "cosh(x)^2" "tanh(x)^2" "cotanh(x)^2" \ "sech(x)^2" "cosech(x)^2" "sinh(1/x)" "cosh(1/x)" "tanh(1/x)" \ "cotanh(1/x)" "sech(1/x)" "cosech(1/x)" "sin(x)tan(x)" "sinh(x)tanh(x)" \ "sinh(x)cosh(x)" "sinh(x)^2*cosh(x)^2" "sin(x)^2*cos(x)^2" \ "sin(1/x)*cos(1/x)" "sin(1/x)^2" "sin(x)cos(1/x)" "sin(x)sin(1/x)" \ "log(x)^2" "sin(x)sin(2x)" "e^2x" "e^-2x" "sinh(1/x)cosh(1/x)" \ "sinh(1/x)^2" "sinh(x)cosh(1/x)" "sinh(x)sinh(1/x)" "sin(x)sinh(x)" \ "sin(x)cosh(x)" "sin(x)^2*sinh(x)^2" "sin(x)e^x" "cos(x)e^x" \ "sinh(x)e^x" "cosh(x)e^x" "sin(x)log(x)" "cos(x)log(x)" "sinh(x)log(x)" \ "cosh(x)log(x)" \ "e^(x^2)" "e^(1/(x^2))" "abs(x)" "round(x)" "trunc(x)" \ "ceil(x)" "floor(x)" "x/log(x)" "log(x)/x" "(e^x)/x" "(e^(1/x))/x" \ "(e^(x^2))/x" "(e^(1/(x^2))/x" "x*e^(x^2)" "x*e^(1/(x^2))" \ "e^(-x^2)" "e^(-1/(x^2))" "(e^(-x^2))/x" "(e^(-1/(x^2))/x" \ "x*e^(-x^2)" "x*e^(-1/(x^2))" default = 0 hint = "This is the third of up to four texture functions. Texture functions may be turned \ off by setting them to 'x'" visible = @showtex && @texture endparam param tex2power3 caption = "Tex Fn3 Power" default = 4.0 hint = "This is the exponent if 'Texture Func 3' is \ set to 'x^power'" visible = @showtex && @texfunc3 == "x^power" && @texture endparam param texf3offset caption = "Tex Fn3 Offset" default = (0, 0) hint = "This constant is added to the result of 'Texture Func 3'" visible = @showtex && @texture endparam param texf3multiplier caption = "Tex Fn3 Multiplier" default = (1, 0) hint = "This constant is multiplied by the result of 'Texture Func 3'" visible = @showtex && @texture endparam param texfunc4 caption = "Texture Func 4" enum = "x" "1/x" "x^2" "1/x^2" "log(x)" "e^x" "x^x" "sin(x)" "cos(x)" \ "tan(x)" "asin(x)" "acos(x)" "atan(x)" "sinh(x)" "cosh(x)" "tanh(x)" \ "asinh(x)" "acosh(x)" "atanh(x)" "log(1/x)" "log(log(x))" "e^-x" \ "e^(1/x)" "x^-x" "sin(x)^2" "cos(x)^2" "tan(x)^2" "cot(x)" "sec(x)" \ "csc(x)" "cot(x)^2" "sec(x)^2" "csc(x)^2" "x^x^x" "1/x^x^x" "log(-x)" \ "1/log(x)" "xlog(x)" "sin(x)/x" "cos(x)/x" "sin(x)*cos(x)" "sin(x^2)" \ "e^(-1/x)" "xe^x" "xe^-x" "xe^(1/x)" "xe^(-1/x)" "x^3" "1/x^3" \ "acot(x)" "asec(x)" "acsc(x)" "tan(x)/x" "cot(x)/x" "sec(x)/x" \ "csc(x)/x" "xsin(x)" "xcos(x)" "xtan(x)" "xcot(x)" "xsec(x)" "xcsc(x)" \ "sin(1/x)" "cos(1/x)" "tan(1/x)" "cot(1/x)" "sec(1/x)" "csc(1/x)" \ "cotanh(x)" "sech(x)" "cosech(x)" "acoth(x)" "asech(x)" "acosech(x)" "x^power" \ "sinh(x)^2" "cosh(x)^2" "tanh(x)^2" "cotanh(x)^2" \ "sech(x)^2" "cosech(x)^2" "sinh(1/x)" "cosh(1/x)" "tanh(1/x)" \ "cotanh(1/x)" "sech(1/x)" "cosech(1/x)" "sin(x)tan(x)" "sinh(x)tanh(x)" \ "sinh(x)cosh(x)" "sinh(x)^2*cosh(x)^2" "sin(x)^2*cos(x)^2" \ "sin(1/x)*cos(1/x)" "sin(1/x)^2" "sin(x)cos(1/x)" "sin(x)sin(1/x)" \ "log(x)^2" "sin(x)sin(2x)" "e^2x" "e^-2x" "sinh(1/x)cosh(1/x)" \ "sinh(1/x)^2" "sinh(x)cosh(1/x)" "sinh(x)sinh(1/x)" "sin(x)sinh(x)" \ "sin(x)cosh(x)" "sin(x)^2*sinh(x)^2" "sin(x)e^x" "cos(x)e^x" \ "sinh(x)e^x" "cosh(x)e^x" "sin(x)log(x)" "cos(x)log(x)" "sinh(x)log(x)" \ "cosh(x)log(x)" \ "e^(x^2)" "e^(1/(x^2))" "abs(x)" "round(x)" "trunc(x)" \ "ceil(x)" "floor(x)" "x/log(x)" "log(x)/x" "(e^x)/x" "(e^(1/x))/x" \ "(e^(x^2))/x" "(e^(1/(x^2))/x" "x*e^(x^2)" "x*e^(1/(x^2))" \ "e^(-x^2)" "e^(-1/(x^2))" "(e^(-x^2))/x" "(e^(-1/(x^2))/x" \ "x*e^(-x^2)" "x*e^(-1/(x^2))" default = 0 hint = "This is the fourth of up to four texture functions. Texture functions may be turned \ off by setting them to 'x'" visible = @showtex && @texture endparam param tex2power4 caption = "Tex Fn4 Power" default = 4.0 hint = "This is the exponent if 'Texture Func 4' is \ set to 'x^power'" visible = @showtex && @texfunc4 == "x^power" && @texture endparam param texf4offset caption = "Tex Fn4 Offset" default = (1, 0) hint = "This constant is multiplied by the result of 'Texture Func 1'" visible = @showtex && @texture endparam param texpower caption = "Texture Power" default = 0.25 hint = "Params 'Tex Power' & 'Tex Scale' set the initial overall levels in the \ texture algorithm" visible = @showtex && @texture endparam param texscale caption = "Texture Scale1" default = 10.0 hint = "Params 'Texture Power' & 'Texture Scale1' set the initial overall levels in the \ texture algorithm; 'Texture Scale1' affects the size of the texture pattern" visible = @showtex && @texture endparam param texoffset caption = "Texture Offset" default = (-1,-1) hint = "This param modifies the texture pattern" visible = @showtex && @texture endparam param texmod caption = "Texture Scale2" default = 5.0 hint = "This param sets the final level in the texture algorithm; \ affects the shapes made by the texture functions" visible = @showtex && @texture endparam param texinit caption = "Texture Initialization" enum = "z" "mod z" "trap" default = 0 hint = "This setting defines the input to the texture algorithm" visible = @showtex && @texture endparam param showtex caption = "Show Texture Settings?" $ifdef VER40 default = TRUE $else default = FALSE $endif endparam heading caption = "Absolute Value Options" $ifdef VER40 expanded = FALSE $endif endheading param absolutez caption = "Absolute A?" default = FALSE hint = "Affects z at the top of the iteration loop" visible = @showabsolutes endparam param absoluter caption = "Absolute B?" default = FALSE hint = "Affects real(z) at the top of the iteration loop" visible = @showabsolutes && !@absolutez endparam param absolutei caption = "Absolute C?" default = FALSE hint = "Affects imag(z) at the top of the iteration loop" visible = @showabsolutes && !@absolutez endparam param absoluter2 caption = "Absolute D?" default = FALSE hint = "Affects input to front end real modulator function" visible = @showabsolutes && (@rfscale != 1.0 || @realfront != 0) endparam param absoluter3 caption = "Absolute E?" default = FALSE hint = "Affects front end real modulator function output (result)" visible = @showabsolutes && (@rfscale != 1.0 || @realfront != 0) endparam param absolutei2 caption = "Absolute F?" default = FALSE hint = "Affects input to front end imaginary modulator function" visible = @showabsolutes && (@ifscale != 1.0 || @imagfront != 0) endparam param absolutei3 caption = "Absolute G?" default = FALSE hint = "Affects front end imag modulator function output (result)" visible = @showabsolutes && (@ifscale != 1.0 || @imagfront != 0) endparam param absolutez2 caption = "Absolute H?" default = FALSE hint = "Affects z initialization modulator function result" visible = @showabsolutes && (@ziscale != 1.0 || @initialization != 0) endparam param absoluter4 caption = "Absolute I?" default = FALSE hint = "Affects real part of z initialization modulator function output" visible = @showabsolutes && (@ziscale != 1.0 || @initialization != 0) && !@absolutez2 endparam param absolutei4 caption = "Absolute J?" default = FALSE hint = "Affects imaginary part of z initialization modulator function output" visible = @showabsolutes && (@ziscale != 1.0 || @initialization != 0) && !@absolutez2 endparam param absolutez3 caption = "Absolute K?" default = FALSE hint = "Affects z just before trap testing, after modifiers such as 'Z Variant', \ 'Enable Operator', etc." visible = @showabsolutes endparam param absoluter5 caption = "Absolute L?" default = FALSE hint = "Affects real z just before trap testing, after modifiers such as 'Z Variant', \ 'Enable Operator', etc." visible = @showabsolutes && !@absolutez3 endparam param absolutei5 caption = "Absolute M?" default = FALSE hint = "Affects imag z just before trap testing, after modifiers such as 'Z Variant', \ 'Enable Operator', etc." visible = @showabsolutes && !@absolutez3 endparam param absolutet caption = "Absolute N?" default = FALSE hint = "Affects trap point coordinates before transmute" visible = @showabsolutes endparam param absoluter6 caption = "Absolute O?" default = FALSE hint = "Affects trap point real coordinate before transmute" visible = @showabsolutes && !@absolutet endparam param absolutei6 caption = "Absolute P?" default = FALSE hint = "Affects trap point imag coordinate before transmute" visible = @showabsolutes && !@absolutet endparam param absolutet2 caption = "Absolute Q?" default = FALSE hint = "Affects trap point after all back end modulation functions" visible = @showabsolutes && (@rbscale != 1.0 || @realback != 0 \ || @ibscale != 1.0 || @imagback != 0 || @transmogrify != 0 \ || @tiscale != 1.0) endparam param absoluter7 caption = "Absolute R?" default = FALSE hint = "Affects real coordinate of trap point after all back end modulation functions" visible = @showabsolutes && (@rbscale != 1.0 || @realback != 0 \ || @ibscale != 1.0 || @imagback != 0 || @transmogrify != 0 \ || @tiscale != 1.0) && !@absolutet2 endparam param absolutei7 caption = "Absolute S?" default = FALSE hint = "Affects imaginary coordinate of trap point after all back end modulation functions" visible = @showabsolutes && (@rbscale != 1.0 || @realback != 0 \ || @ibscale != 1.0 || @imagback != 0 || @transmogrify != 0 \ || @tiscale != 1.0) && !@absolutet2 endparam param showabsolutes caption = "Show Absolute Options?" $ifdef VER40 default = TRUE $else default = FALSE $endif hint = "Options based on use of absolute values. Not all absolute options \ are always available, depending upon other settings" endparam heading caption = "Bias Settings" $ifdef VER40 expanded = FALSE $endif endheading param initialbias caption = "Initial Bias?" default = FALSE hint = "If enabled, then #z is modified by parameters 'InitialAdd', 'InitialProd', and 'InitialExp' \ at the beginning of the iteration loop and just before the 'Original History' \ modifications. Try using the Explorer tool" visible = @showbias endparam param ibaddend caption = "InitialAdd" default = (0,0) hint = "If 'Initial Bias' is turned on, then this value is added to #z \ at the beginning of the iteration loop and just before the 'Original History' \ modifications" visible = @showbias && @initialbias endparam param ibprod caption = "InitialProd" default = (1,0) hint = "If 'Initial Bias' is turned on, then this value is multiplied by #z \ at the beginning of the iteration loop and just before the 'Original History' \ modifications" visible = @showbias && @initialbias endparam param ibexponent caption = "InitialExp" default = (1,0) hint = "If 'Initial Bias' is turned on, then #z is raised to this power \ at the beginning of the iteration loop and just before the 'Original History' \ modifications" visible = @showbias && @initialbias endparam param frontendbias caption = "Front End Bias?" default = FALSE hint = "If enabled, then #z is modified by parameters 'FrontEndAdd', 'FrontEndProd', and 'FrontEndExp' \ after the 'Original History' modifications and just prior to entering the \ front end modulator functions" visible = @showbias endparam param febaddend caption = "FrontEndAdd" default = (0,0) hint = "If 'Front End Bias' is turned on, then this value is added to #z before starting the \ front end modulator functions; operates before 'FrontEndProd'" visible = @showbias && @frontendbias endparam param febprod caption = "FrontEndProd" default = (1,0) hint = "If 'Front End Bias' is turned on, then this value is multiplied by #z before starting the \ front end modulator functions; operates before 'FrontEndExp'" visible = @showbias && @frontendbias endparam param febexponent caption = "FrontEndExp" default = (1,0) hint = "If 'Front End Bias' is turned on, then #z is raised to this power before starting the \ front end modulator functions; operates after 'FrontEndAdd'" visible = @showbias && @frontendbias endparam param zinitbias caption = "Z Init Bias?" default = FALSE hint = "If enabled, then #z is modified by parameters 'ZInitAdd', 'ZInitProd', and 'ZInitExp' \ after the front end real & imag modulator functions and just prior to entering the \ #z initialization modulator function" visible = @showbias endparam param zibaddend caption = "ZInitAdd" default = (0,0) hint = "If 'Z Init Bias' is turned on, then this value is added to #z before starting the \ #z initialization modulator function; operates before 'ZInitProd'" visible = @showbias && @zinitbias endparam param zibprod caption = "ZInitProd" default = (1,0) hint = "If 'Z Init Bias' is turned on, then this value is multiplied by #z before starting the \ #z initialization modulator function; operates before 'ZInitExp'" visible = @showbias && @zinitbias endparam param zibexponent caption = "ZInitExp" default = (1,0) hint = "If 'Z Init Bias' is turned on, then #z is raised to this power before starting the \ #z initialization modulator function; operates after 'ZInitAdd'" visible = @showbias && @zinitbias endparam param zalthisbias caption = "Z AltHistory Bias?" default = FALSE hint = "If enabled, then #z is modified by parameters 'ZAltHAdd', 'ZAltHProd', and 'ZAltHExp' \ after the alternative history modifier routine and just prior to entering the \ z attractor routines" visible = @showbias endparam param zahbaddend caption = "ZAltHAdd" default = (0,0) hint = "If 'Z AltHistory Bias' is turned on, then this value is added to #z before entering the \ z attractor routines; operates before 'ZAltHProd'" visible = @showbias && @zalthisbias endparam param zahbprod caption = "ZAltHProd" default = (1,0) hint = "If 'Z AltHistory Bias' is turned on, then this value is multiplied by #z before entering the \ z attractor routines; operates before 'ZAltHExp'" visible = @showbias && @zalthisbias endparam param zahbexponent caption = "ZAltHExp" default = (1,0) hint = "If 'Z AltHistory Bias' is turned on, then #z is raised to this power before entering the \ z attractor routines; operates after 'ZAltHProd'" visible = @showbias && @zalthisbias endparam param anglebias caption = "Angle Bias?" default = FALSE hint = "If enabled, then the angle input to the trapping function is modified by \ parameters 'AngleAdd', 'AngleProd', and 'AngleExp'" visible = @showbias endparam param abaddend caption = "AngleAdd" default = (0,0) hint = "If 'Angle Bias' is turned on, then this value is added to the angle of #z before \ entering the trapping functions; operates before 'AngleProd'" visible = @showbias && @anglebias endparam param abprod caption = "AngleProd" default = (1,0) hint = "If 'Angle Bias' is turned on, then this value is multiplied by #z before entering the \ trapping functions; operates before 'AngleExp'" visible = @showbias && @anglebias endparam param abexponent caption = "AngleExp" default = (1,0) hint = "If 'Angle Bias' is turned on, then the angle of #z is raised to this power \ before entering the trapping functions; operates after 'AngleAdd'" visible = @showbias && @anglebias endparam param tattractbias caption = "T Attractor Bias?" default = FALSE hint = "If enabled, then the trap point is modified by parameters 'TrapAdd', 'TrapProd', and 'TrapExp' \ just before the trap attractor routines" visible = @showbias endparam param tattraddend caption = "TattractAdd" default = (0,0) hint = "If 'T attractor Bias' is turned on, then this value is added to the trap point before \ entering the trap attractor routine; operates before 'TattractProd'" visible = @showbias && @tattractbias endparam param tattrprod caption = "TattractProd" default = (1,0) hint = "If 'T Attractor Bias' is turned on, then this value is multiplied by the trap point before \ entering the trap attractor routine; operates before 'TattractExp'" visible = @showbias && @tattractbias endparam param tattrexponent caption = "TattractExp" default = (1,0) hint = "If 'T Attractor Bias' is turned on, then the trap point is raised to this power \ before entering the trap attractor routine; operates after 'TattractProd'" visible = @showbias && @tattractbias endparam param trapbias caption = "Trap Bias?" default = FALSE hint = "If enabled, then the trap point is modified by parameters 'TrapAdd', 'TrapProd', and 'TrapExp' \ after the trap attractor routine and just before the alternative trap history routine" visible = @showbias endparam param tbaddend caption = "TrapAdd" default = (0,0) hint = "If 'Trap Bias' is turned on, then this value is added to the trap point before \ entering the alternative trap history routine; operates before 'TrapProd'" visible = @showbias && @trapbias endparam param tbprod caption = "TrapProd" default = (1,0) hint = "If 'Trap Bias' is turned on, then this value is multiplied by the trap point before \ entering the alternative trap history routine; operates before 'TrapExp'" visible = @showbias && @trapbias endparam param tbexponent caption = "TrapExp" default = (1,0) hint = "If 'Trap Bias' is turned on, then the trap point is raised to this power \ before entering the alternative trap history routine; operates after 'TrapProd'" visible = @showbias && @trapbias endparam param transmutebias caption = "Transmute Bias?" default = FALSE hint = "If enabled, then the trap point is modified by parameters 'TransmuteAdd', 'TransmuteProd', and \ 'TransmuteExp' after the 'Alternative Trap History' routine and just before \ the 'Trap Transmute' modulator function" visible = @showbias endparam param tmbaddend caption = "TransmuteAdd" default = (0,0) hint = "If 'Transmute Bias' is turned on, then this value is added to the trap point \ after the 'Alternative Trap History' routine and just before \ the 'Trap Transmute' modulator function" visible = @showbias && @transmutebias endparam param tmbprod caption = "TransmuteProd" default = (1,0) hint = "If 'Transmute Bias' is turned on, then this value is multiplied by the trap point \ after the 'Alternative Trap History' routine and just before \ the 'Trap Transmute' modulator function" visible = @showbias && @transmutebias endparam param tmbexponent caption = "TransmuteExp" default = (1,0) hint = "If 'Transmute Bias' is turned on, then the trap point is raised to this power \ after the 'Alternative Trap History' routine and just before \ the 'Trap Transmute' modulator function" visible = @showbias && @transmutebias endparam param backendbias caption = "Back End Bias?" default = FALSE hint = "If enabled, then the trap point is modified by parameters 'BackEndAdd', 'BackEndProd', and \ 'BackEndExp' after the 'Trap Transmute' modulator function and just before \ the real and imaginary back end modulator functions" visible = @showbias endparam param bebaddend caption = "BackEndAdd" default = (0,0) hint = "If 'Back End Bias' is turned on, then this value is added to the trap point \ after the 'Trap Transmute' modulator function and just before \ the real and imaginary back end modulator functions" visible = @showbias && @backendbias endparam param bebprod caption = "BackEndProd" default = (1,0) hint = "If 'Back End Bias' is turned on, then this value is multiplied by the trap point \ after the 'Trap Transmute' modulator function and just before \ the real and imaginary back end modulator functions" visible = @showbias && @backendbias endparam param bebexponent caption = "BackEndExp" default = (1,0) hint = "If 'Back End Bias' is turned on, then the trap point is raised to this power \ after the 'Trap Transmute' modulator function and just before \ the real and imaginary back end modulator functions" visible = @showbias && @backendbias endparam param tvariantbias caption = "TrapVariant Bias?" default = FALSE hint = "If enabled, then the trap point is modified by parameters 'TVariantAdd', 'TVariantProd', and \ 'TVariantExp' after the real and imaginary back end modulator functions and \ just before the 'Trap Variants' modifier routine" visible = @showbias endparam param tvbaddend caption = "TVariantAdd" default = (0,0) hint = "If 'TVariant Bias' is turned on, then this value is added to the trap point \ after the real and imaginary back end modulator functions and \ just before the 'Trap Variants' modifier routine" visible = @showbias && @tvariantbias endparam param tvbprod caption = "TVariantProd" default = (1,0) hint = "If 'TVariant Bias' is turned on, then this value is multiplied by the trap point \ after the real and imaginary back end modulator functions and \ just before the 'Trap Variants' modifier routine" visible = @showbias && @tvariantbias endparam param tvbexponent caption = "TVariantExp" default = (1,0) hint = "If 'TVariant Bias' is turned on, then the trap point is raised to this power \ after the real and imaginary back end modulator functions and \ just before the 'Trap Variants' modifier routine" visible = @showbias && @tvariantbias endparam param thisbias caption = "TrapHist Bias?" default = FALSE hint = "If enabled, then the trap point is modified by parameters 'THistAdd', 'THistProd', and 'THistExp' \ just after the 'Trap Variants' routine, and just before the original trap history routine" visible = @showbias endparam param thbaddend caption = "THistAdd" default = (0,0) hint = "If 'TrapHist Bias' is turned on, then this value is added to the trap point \ just after the 'Trap Variants' routine, and just before the original trap history routine" visible = @showbias && @thisbias endparam param thbprod caption = "THistProd" default = (1,0) hint = "If 'TrapHist Bias' is turned on, then this value is multiplied by the trap point \ just after the 'Trap Variants' routine, and just before the original trap history routine" visible = @showbias && @thisbias endparam param thbexponent caption = "THistExp" default = (1,0) hint = "If 'THist Bias' is turned on, then the trap point is raised to this power \ just after the 'Trap Variants' routine, and just before the original trap history routine" visible = @showbias && @thisbias endparam param finalbias caption = "Final Bias?" default = FALSE hint = "If enabled, then the trap point is modified by parameters 'FinalAdd', 'FinalProd', and 'FinalExp' \ just after the original trap history routine, and just before the 'Trap Flavor' routine" visible = @showbias endparam param fbaddend caption = "FinalAdd" default = (0,0) hint = "If 'Final Bias' is turned on, then this value is added to the trap point \ just after the original trap history routine, and just before the 'Trap Flavor' routine" visible = @showbias && @finalbias endparam param fbprod caption = "FinalProd" default = (1,0) hint = "If 'Final Bias' is turned on, then this value is multiplied by the trap point \ just after the original trap history routine, and just before the 'Trap Flavor' routine" visible = @showbias && @finalbias endparam param fbexponent caption = "FinalExp" default = (1,0) hint = "If 'Final Bias' is turned on, then the trap point is raised to this power \ just after the original trap history routine, and just before the 'Trap Flavor' routine" visible = @showbias && @finalbias endparam param showbias caption = "Show Bias Params?" $ifdef VER40 default = TRUE $else default = FALSE $endif endparam heading caption = "Mask Settings" $ifdef VER40 expanded = FALSE $endif endheading param maskA caption = "Enable Mask A?" default = FALSE hint = "If enabled, pixels can be masked depending upon the values \ of parameters 'Mask What(A)?' and 'Mask If(A)?' \ Masked pixels will be colored the solid color" visible = @showmasks endparam param maskwhatA caption = "Mask What (A)?" enum = "distance" "mod distance" "magnitude" "mod magnitude" "flavor value" \ "iteration" "angle" "mod angle" "real" "mod real" "imag" "mod imag" \ "trap magnitude" "trap angle" "trap real" "trap imag" "difference angle" \ "diff. angle 2" "sum" "product" "quotient 1" "quotient 2" "power 1" \ "power 2" "arith. mean" "geom. mean" "mod iter" "modulus angle" default = 4 hint = "If 'Enable Mask A' is active, then this param determines what type of \ value is checked to determine masking; the range of values that will be \ masked is set by param 'Mask If (A)'" visible = @showmasks && @maskA endparam param maskifA caption = "Mask If (A)?" enum = "falls above" "falls below" "falls between" "falls outside" "equals" "not equal" default = 0 hint = "If 'Enable Mask A' is active, then this param sets the range of \ values that will be masked; the type of value is set be param \ 'Mask What (A)'" visible = @showmasks && @maskA endparam param maskAmin caption = "Mask A Threshold" default = 0.1 hint = "If 'Enable Mask A' is active, then this param sets the threshold \ for masking. If two values are needed, then this is the lower value \ for masking" visible = @showmasks && @maskA endparam param maskAmax caption = "Mask A Maximum" default = 1.0 hint = "If 'Enable Mask A' is active and 'Mask If (A)' is set to \ 'falls between' or 'falls below', then this param sets the upper value \ for masking" visible = @showmasks && @maskA && ( (@maskifA == 2) || (@maskifA == 3) ) endparam param maskAmod caption = "Mask A Modifiers?" default = FALSE hint = "If enabled, then the masking test is modified to more closely \ track the 'Color By' test values. This setting doesn't affect \ every choice of 'Mask What': the angle, flavor value, and \ real & imag options are made to work like 'Color By', and the \ sum, product, quotient, etc. options are made to work like 'Trap Flavor' \ when option 'Modify Flavor Value' is enabled. Generally, this option \ uses absolute values" visible = @showmasks && @maskA endparam param itermaskmod caption = "MaskA Iter Modulus" default = 2 min = 1 hint = "If 'Mask What (A)' is set to 'mod iter', then this parameter sets \ the modulus" visible = @showmasks && @maskwhatA == "mod iter" endparam param anglemaskmod caption = "MaskA Angle Modulus" default = 1.5707963267948966192313216916398 ; pi/2 min = 1.0e-9 hint = "If 'Mask What (A)' is set to 'mod iter', then this parameter sets \ the modulus" visible = @showmasks && @maskwhatA == "modulus angle" endparam param maskcombo caption = "Mask Combination Mode" enum = "or" "and" "not" "eor" "nor" "nand" "neor" "Aor!B" default = 0 hint = "If both Mask A and Mask B are enabled, then they will be combined \ as specified by this setting. The default, 'or', corresponds to \ completely independent masks" visible = @maskA && @maskB && @showmasks endparam param maskB caption = "Enable Mask B?" default = FALSE hint = "If enabled, pixels can be masked depending upon the values \ of parameters 'Mask What(B)?' and 'Mask If(B)?' \ Masked pixels will be colored the solid color" visible = @showmasks endparam param maskwhatB caption = "Mask What (B)?" enum = "distance" "mod distance" "magnitude" "mod magnitude" "flavor value" \ "iteration" "angle" "mod angle" "real" "mod real" "imag" "mod imag" \ "trap magnitude" "trap angle" "trap real" "trap imag" "difference angle" \ "diff. angle 2" "sum" "product" "quotient 1" "quotient 2" "power 1" \ "power 2" "arith. mean" "geom. mean" "mod iter" "modulus angle" default = 1 hint = "If 'Enable Mask B' is active, then this param determines what type of \ value is checked to determine masking; the range of values that will be \ masked is set by param 'Mask If (B)'" visible = @showmasks && @maskB endparam param maskifB caption = "Mask If (B)?" enum = "falls above" "falls below" "falls between" "falls outside" "equals" "not equal" default = 0 hint = "If 'Enable Mask B' is active, then this param sets the range of \ values that will be masked; the type of value is set be param \ 'Mask What (B)'" visible = @showmasks && @maskB endparam param maskBmin caption = "Mask B Threshold" default = 1.0 hint = "If 'Enable Mask B' is active, then this param sets the threshold \ for masking. If two values are needed, then this is the lower value \ for masking" visible = @showmasks && @maskB endparam param maskBmax caption = "Mask B Maximum" default = 1.0 hint = "If 'Enable Mask B' is active and 'Mask If (B)' is set to \ 'falls between' or 'falls below', then this param sets the upper value \ for masking" visible = @showmasks && @maskB && ( (@maskifB == 2) || (@maskifB == 3) ) endparam param maskBmod caption = "Mask B Modifiers?" default = FALSE hint = "If enabled, then the masking test is modified to more closely \ track the 'Color By' test values. This setting doesn't affect \ every choice of 'Mask What': the angle, flavor value, and \ real & imag options are made to work like 'Color By', and the \ sum, product, quotient, etc. options are made to work like 'Trap Flavor' \ when option 'Modify Flavor Value' is enabled. Generally, this option \ uses absolute values" visible = @showmasks && @maskB endparam param itermaskmodB caption = "MaskB Iter Modulus" default = 2 min = 1 hint = "If 'Mask What (B)' is set to 'mod iter', then this parameter sets \ the modulus" visible = @showmasks && @maskwhatB == "mod iter" endparam param anglemaskmodB caption = "MaskB Angle Modulus" default = 1.5707963267948966192313216916398 ; pi/2 min = 1.0e-9 hint = "If 'Mask What (B)' is set to 'mod iter', then this parameter sets \ the modulus" visible = @showmasks && @maskwhatB == "modulus angle" endparam param showmasks caption = "Show Mask Params?" $ifdef VER40 default = TRUE $else default = FALSE $endif endparam } jam-TIAfBm2007A { ; ; This coloring method dmj's Triangle Inequality Average coloring ; method, with the addition of an fBm option. Much code pieced ; together without significant change from TIA and fBm code of dmj, ; mt, lkm, and others, but I hope the combination is better than the ; sum of its parts! ; maddry@sri.org 070919 ; global: float il = 1/log(@power) float lp = log(log(@bailout)/2.0) float ipower = 1/@apower float twopi = 2.0 * #pi float banglevar = @bangle/90.0 float banglestepvar = @banglestep / 90.0 float hypocycvar1 = @fbmhypocyc1 - @fbmhypocyc2 float hypocycvar2 = hypocycvar1/@fbmhypocyc2 int periodphase = @perphase if periodphase >= @period periodphase = 0 endif ; periodphase float anglelowbound = @anglelow*twopi/360 float anglehighbound = @anglehigh*twopi/360 if anglehighbound <= anglelowbound anglelowbound = 0.0 anglehighbound = twopi endif ; anglehighbound init: float sum = 0.0 float sum2 = 0.0 float ac = cabs(#pixel) float az2 = 0.0 float lowbound = 0.0 float f = 0.0 bool first = TRUE ; jam additions int iter = 0 complex zmin = complex zfirst = complex ztwo = complex zlast = complex zpenult = (0,0) complex zthree = complex zfour = complex zantepenult = complex zfBm = (0,0) complex zminstar = (0,0) complex ztemp = (0,0) float ftemp = float ftemp2 = 0.0 float minz = float minstarz = 1.0e9 float tempcindex = float fbmadjust = 0.0 float zangle = 0.0 bool periodflag = TRUE bool anglerestriction = TRUE float tempangle = 0.0 loop: iter = iter+1 if @periodicity if (iter % @period) == periodphase periodflag = TRUE else periodflag = FALSE endif ; iter if @reversephase periodflag = !periodflag endif ; @reversephase endif ; @periodicity if @anglerestrict anglerestriction = FALSE tempangle = atan2(#z) if tempangle < 0 tempangle = tempangle + twopi endif ; tempangle if tempangle >= anglelowbound if tempangle <= anglehighbound anglerestriction = TRUE endif ; tempangle endif ; tempangle endif ; @anglerestrict sum2 = sum IF (!first) && periodflag && anglerestriction az2 = cabs(#z - #pixel) lowbound = abs(az2 - ac) IF (@aflavor == 0) sum = sum + ((cabs(#z) - lowbound) / (az2+ac - lowbound))^@apower ELSEIF (@aflavor == 1) sum = sum + 1-(1-(cabs(#z) - lowbound) / (az2+ac - lowbound))^ipower ENDIF ELSE first = false ENDIF if @fBm if @fbminit == "min z" if iter > 1 ; skip first iter, since #z may have been initialized to (0,0) ftemp = cabs(#z) if ftemp < minz minz = ftemp zmin = #z endif ; ftemp endif ; iter elseif @fbminit == "min* z" if iter > 2 ; skip another iteration ftemp = cabs(#z) if ftemp < minstarz minstarz = ftemp zminstar = #z endif ; ftemp endif ; iter elseif @fbminit == "first z" if iter == 1 zfirst = #z endif ; iter elseif @fbminit == "second z" if iter == 2 ztwo = #z endif ; iter elseif @fbminit == "third z" if iter == 3 zthree = #z endif ; iter elseif @fbminit == "fourth z" if iter == 4 zfour = #z endif ; iter elseif @fbminit == "last z" zlast = #z elseif @fbminit == "penult z" zpenult = zlast zlast = #z elseif @fbminit == "antepenult z" zantepenult = zpenult zpenult = zlast zlast = #z endif ; @fbminit endif ; @fBm final: sum = sum / (#numiter) sum2 = sum2 / (#numiter-1) f = il*lp - il*log(log(cabs(#z))) tempcindex = sum2 + (sum-sum2) * (f+1) ; Figure amount of fBm ; fBm code adapted from code of dmj, mt, and others if @fBm if @fbminit == "min z" zfBm = zmin elseif @fbminit == "min* z" zfBm = zminstar elseif @fbminit == "first z" zfBm = zfirst elseif @fbminit == "second z" zfBm = ztwo elseif @fbminit == "third z" zfBm = zthree elseif @fbminit == "fourth z" zfBm = zfour elseif @fbminit == "last z" zfBm = zlast elseif @fbminit == "penult z" zfBm = zpenult elseif @fbminit == "antepenult z" zfBm = zantepenult elseif @fbminit == "TIA" zfBm = sum + flip(sum2) elseif @fbminit == "pixel" zfBm = #pixel ; elseif @fbminit == "blend1" ; if @fbmblendmode2 == "normal" ; ztemp = zfirst ; elseif @fbmblendmode2 == "negate" ; ztemp = -zfirst ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zfirst) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zfirst) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zfirst)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = zmin*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = zmin+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = zmin-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = zmin/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = zmin^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-zmin ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/zmin ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^zmin ; endif; @fbmblendmode1 ; elseif @fbminit == "blend2" ; if @fbmblendmode2 == "normal" ; ztemp = ztwo ; elseif @fbmblendmode2 == "negate" ; ztemp = -ztwo ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(ztwo) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(ztwo) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(ztwo)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = zmin*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = zmin+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = zmin-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = zmin/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = zmin^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-zmin ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/zmin ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^zmin ; endif; @fbmblendmode1 ; elseif @fbminit == "blend3" ; if @fbmblendmode2 == "normal" ; ztemp = (sum+flip(sum2)) ; elseif @fbmblendmode2 == "negate" ; ztemp = -(sum+flip(sum2)) ; elseif @fbmblendmode2 == "flip" ; ztemp = flip((sum+flip(sum2))) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj((sum+flip(sum2))) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj((sum+flip(sum2)))) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = zmin*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = zmin+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = zmin-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = zmin/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = zmin^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-zmin ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/zmin ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^zmin ; endif; @fbmblendmode1 ; elseif @fbminit == "blend4" ; if @fbmblendmode2 == "normal" ; ztemp = zfirst ; elseif @fbmblendmode2 == "negate" ; ztemp = -zfirst ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zfirst) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zfirst) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zfirst)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = ztwo*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = ztwo+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = ztwo-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = ztwo/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = ztwo^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-ztwo ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/ztwo ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^ztwo ; endif; @fbmblendmode1 ; elseif @fbminit == "blend5" ; if @fbmblendmode2 == "normal" ; ztemp = ztwo ; elseif @fbmblendmode2 == "negate" ; ztemp = -ztwo ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(ztwo) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(ztwo) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(ztwo)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = ztwo*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = ztwo+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = ztwo-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = ztwo/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = ztwo^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-ztwo ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/ztwo ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^ztwo ; endif; @fbmblendmode1 ; elseif @fbminit == "blend6" ; if @fbmblendmode2 == "normal" ; ztemp = (sum+flip(sum2)) ; elseif @fbmblendmode2 == "negate" ; ztemp = -(sum+flip(sum2)) ; elseif @fbmblendmode2 == "flip" ; ztemp = flip((sum+flip(sum2))) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj((sum+flip(sum2))) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj((sum+flip(sum2)))) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = ztwo*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = ztwo+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = ztwo-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = ztwo/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = ztwo^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-ztwo ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/ztwo ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^ztwo ; endif; @fbmblendmode1 ; elseif @fbminit == "blend7" ; if @fbmblendmode2 == "normal" ; ztemp = zfirst ; elseif @fbmblendmode2 == "negate" ; ztemp = -zfirst ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zfirst) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zfirst) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zfirst)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = (sum+flip(sum2))*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = (sum+flip(sum2))+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = (sum+flip(sum2))-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = (sum+flip(sum2))/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = (sum+flip(sum2))^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-(sum+flip(sum2)) ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/(sum+flip(sum2)) ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^(sum+flip(sum2)) ; endif; @fbmblendmode1 ; elseif @fbminit == "blend8" ; if @fbmblendmode2 == "normal" ; ztemp = zthree ; elseif @fbmblendmode2 == "negate" ; ztemp = -zthree ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zthree) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zthree) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zthree)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = (sum+flip(sum2))*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = (sum+flip(sum2))+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = (sum+flip(sum2))-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = (sum+flip(sum2))/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = (sum+flip(sum2))^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-(sum+flip(sum2)) ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/(sum+flip(sum2)) ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^(sum+flip(sum2)) ; endif; @fbmblendmode1 ; elseif @fbminit == "blend9" ; if @fbmblendmode2 == "normal" ; ztemp = zantepenult ; elseif @fbmblendmode2 == "negate" ; ztemp = -zantepenult ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zantepenult) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zantepenult) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zantepenult)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = (sum+flip(sum2))*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = (sum+flip(sum2))+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = (sum+flip(sum2))-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = (sum+flip(sum2))/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = (sum+flip(sum2))^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-(sum+flip(sum2)) ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/(sum+flip(sum2)) ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^(sum+flip(sum2)) ; endif; @fbmblendmode1 endif ; @fbminit if @fbmtransform zangle = atan2(zfBm) if zangle < 0 zangle = zangle + twopi endif ; zangle if @fbmtransformfunc == "circle" ftemp = @fbmcradius*cos(@fbmcfrequency*zangle) zfBm = ftemp*exp(flip(zangle)) elseif @fbmtransformfunc == "cardioid" ftemp = @fbmcardradius - @fbmcardradius*cos(@fbmcardfreq*zangle) zfBm = ftemp*exp(flip(zangle)) elseif @fbmtransformfunc == "lissajous" ftemp = @fbmlissaamp1 * cos(@fbmlissafreq1*zangle + @fbmlissaphase1) ftemp2 = @fbmlissaamp2 * cos(@fbmlissafreq2*zangle + @fbmlissaphase2) zfBm = ftemp + flip(ftemp2) elseif @fbmtransformfunc == "hypocycloid" ftemp = hypocycvar1 * cos(zangle) - @fbmhypocyc2 * cos(hypocycvar2*zangle) ftemp2 = hypocycvar1 * sin(zangle) + @fbmhypocyc2 * sin(hypocycvar2*zangle) zfBm = ftemp + flip(ftemp2) elseif @fbmtransformfunc == "parabola" ftemp = @fbmparabscale/(@fbmparaboffset+cos(@fbmparabfreq*zangle)) zfBm = ftemp*exp(flip(zangle)) endif; @transformfunc endif; @transform if @fbmhybrid ztemp = @fbmhybridweight*#pixel if @fbmhybridtype == "*" zfBm = ztemp*zfBm elseif @fbmhybridtype == "+" zfBm = ztemp+zfBm elseif @fbmhybridtype == "-" zfBm = ztemp-zfBm elseif @fbmhybridtype == "/" zfBm = ztemp/zfBm elseif @fbmhybridtype == "^" zfBm = ztemp^zfBm elseif @fbmhybridtype == "--" zfBm = zfBm-ztemp elseif @fbmhybridtype == "//" zfBm = zfBm/ztemp elseif @fbmhybridtype == "^^" zfBm = zfBm^ztemp elseif @fbmhybridtype == "average" zfBm = (ztemp+zfBm)/2 elseif @fbmhybridtype == "geom mean" zfBm = sqrt(ztemp*zfBm) endif; @fbmhybridtype endif; @fbmhybrid if @fbmbias zfBm = zfBm*@fbmbiasamount endif ; @fbmbias zfBm = zfBm + @boffset float bfreq = @bbfreq complex br = (0,1) ^ banglevar complex br2 = (0,1) ^ banglestepvar complex bp = zfBm * @bscale * br float bsum = 0.0 int bi = @boctaves while (bi > 0) float bx0 = floor(real(bp)) % @fbmint1 float by0 = floor(imag(bp)) % @fbmint1 if bx0 < 0 bx0 = bx0 + @fbmint1 endif ; bx0 if by0 < 0 by0 = by0 + @fbmint1 endif ; by0 float bx1 = (bx0 + 1) % @fbmint1 float by1 = (by0 + 1) % @fbmint1 float rx0 = real(bp) - floor(real(bp)) float ry0 = imag(bp) - floor(imag(bp)) float rx1 = rx0 - 1 float ry1 = ry0 - 1 float b00 = (bx0^@bpower % @fbmint2 + by0)^@bpower % @fbmint2 float b10 = (bx1^@bpower % @fbmint2 + by0)^@bpower % @fbmint2 float b01 = (bx0^@bpower % @fbmint2 + by1)^@bpower % @fbmint2 float b11 = (bx1^@bpower % @fbmint2 + by1)^@bpower % @fbmint2 float g_b00_0 = (b00)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b10_0 = (b10)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b01_0 = (b01)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b11_0 = (b11)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b00_1 = (b00+1)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b10_1 = (b10+1)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b01_1 = (b01+1)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b11_1 = (b11+1)^@bpower*0.25 % @fbmint3 - @fbmint1 float bd = 0.0 bd = 1 / sqrt(sqr(g_b00_0) + sqr(g_b00_1)) g_b00_0 = g_b00_0 * bd g_b00_1 = g_b00_1 * bd bd = 1 / sqrt(sqr(g_b10_0) + sqr(g_b10_1)) g_b10_0 = g_b10_0 * bd g_b10_1 = g_b10_1 * bd bd = 1 / sqrt(sqr(g_b01_0) + sqr(g_b01_1)) g_b01_0 = g_b01_0 * bd g_b01_1 = g_b01_1 * bd bd = 1 / sqrt(sqr(g_b11_0) + sqr(g_b11_1)) g_b11_0 = g_b11_0 * bd g_b11_1 = g_b11_1 * bd float u1 = rx0 * g_b00_0 + ry0 * g_b00_1 float v1 = rx1 * g_b10_0 + ry0 * g_b10_1 float u2 = rx0 * g_b01_0 + ry1 * g_b01_1 float v2 = rx1 * g_b11_0 + ry1 * g_b11_1 float sx = sqr(rx0) * (3 - rx0*2) float sy = sqr(ry0) * (3 - ry0*2) float ba = u1 + sx*(v1-u1) float bb = u2 + sx*(v2-u2) bsum = bsum + (ba + sy*(bb-ba))* bfreq if @fbmfunc != 0 bsum = @funcprescale * bsum if ( @fbmfunc == 1 ) ftemp = 1/bsum elseif ( @fbmfunc == 2 ) ftemp = bsum * bsum elseif ( @fbmfunc == 3 ) ftemp = 1 / ( bsum * bsum ) elseif ( @fbmfunc == 4 ) ftemp = @funcparam1*log(bsum) elseif ( @fbmfunc == 5 ) ftemp = @funcparam1*exp( bsum) elseif ( @fbmfunc == 6 ) ftemp = @funcparam1*bsum^(bsum) elseif ( @fbmfunc == 7 ) ftemp = @funcparam1*sin( bsum ) elseif ( @fbmfunc == 8 ) ftemp = @funcparam1*cos( bsum ) elseif ( @fbmfunc == 9 ) ftemp = @funcparam1*tan( bsum ) elseif ( @fbmfunc == 10 ) ftemp = @funcparam1*asin( bsum ) elseif ( @fbmfunc == 11 ) ftemp = @funcparam1*acos( bsum ) elseif ( @fbmfunc == 12 ) ftemp = @funcparam1*atan( bsum ) elseif ( @fbmfunc == 13 ) ftemp = @funcparam1*sinh( bsum ) elseif ( @fbmfunc == 14 ) ftemp = @funcparam1*cosh( bsum ) elseif ( @fbmfunc == 15 ) ftemp = @funcparam1*tanh( bsum ) elseif ( @fbmfunc == 16 ) ftemp = @funcparam1*asinh( bsum ) elseif ( @fbmfunc == 17 ) ftemp = @funcparam1*acosh( bsum ) elseif ( @fbmfunc == 18 ) ftemp = @funcparam1*atanh( bsum ) elseif ( @fbmfunc == 19 ) ftemp = @funcparam1*log( 1/bsum ) elseif ( @fbmfunc == 20 ) ftemp = @funcparam1*log( @funcparam2*log( bsum )) elseif ( @fbmfunc == 21 ) ftemp = @funcparam1*exp( -bsum ) elseif ( @fbmfunc == 22 ) ftemp = @funcparam1*exp( 1/bsum ) elseif ( @fbmfunc == 23 ) ftemp = @funcparam1*bsum^(-bsum) elseif ( @fbmfunc == 24 ) ftemp = @funcparam1*(sin( bsum ))^@funcparam2 elseif ( @fbmfunc == 25 ) ftemp = @funcparam1*(cos( bsum ))^@funcparam2 elseif ( @fbmfunc == 26 ) ftemp = @funcparam1*(tan( bsum ))^@funcparam2 elseif ( @fbmfunc == 27 ) ftemp = @funcparam1*cotan( bsum ) elseif ( @fbmfunc == 28 ) ftemp = @funcparam1/cos( bsum ) elseif ( @fbmfunc == 29 ) ftemp = @funcparam1/sin( bsum ) elseif ( @fbmfunc == 30 ) ftemp = @funcparam1*(cotan( bsum ))^@funcparam2 elseif ( @fbmfunc == 31 ) ftemp = @funcparam1/(cos( bsum ))^@funcparam2 elseif ( @fbmfunc == 32 ) ftemp = @funcparam1/(sin( @funcparam1*bsum ))^@funcparam2 elseif ( @fbmfunc == 33 ) ftemp = @funcparam1*bsum^(bsum) ftemp = @funcparam2*bsum^(ftemp) elseif ( @fbmfunc == 34 ) ftemp = @funcparam1*bsum^(bsum) ftemp = @funcparam2/( bsum^ftemp ) elseif ( @fbmfunc == 35 ) ftemp = @funcparam1*log(-bsum) elseif ( @fbmfunc == 36 ) ftemp = @funcparam1/log( bsum ) elseif ( @fbmfunc == 37 ) ftemp = @funcparam1* bsum * log( bsum ) elseif ( @fbmfunc == 38 ) ftemp = @funcparam1* sin( bsum ) / bsum elseif ( @fbmfunc == 39 ) ftemp = @funcparam1* cos( bsum ) / bsum elseif ( @fbmfunc == 40 ) ftemp = @funcparam1* sin( bsum ) * cos( @funcparam2*bsum ) elseif ( @fbmfunc == 41 ) ftemp = @funcparam1*sin( bsum^2 ) elseif ( @fbmfunc == 42 ) ftemp = @funcparam1*exp( -1/bsum ) elseif ( @fbmfunc == 43 ) ftemp = @funcparam1* bsum * exp( bsum ) elseif ( @fbmfunc == 44 ) ftemp = @funcparam1* bsum * exp( -bsum ) elseif ( @fbmfunc == 45 ) ftemp = @funcparam1* bsum * exp( 1/bsum ) elseif ( @fbmfunc == 46 ) ftemp = @funcparam1* bsum * exp( -1/bsum ) elseif ( @fbmfunc == 47 ) ftemp = @funcparam1* bsum * bsum * bsum elseif ( @fbmfunc == 48 ) ftemp = @funcparam1 / ( bsum * bsum * bsum ) elseif ( @fbmfunc == 49 ) ftemp = @funcparam1*atan( 1 / bsum ) elseif ( @fbmfunc == 50 ) ftemp = @funcparam1*acos( 1 / bsum ) elseif ( @fbmfunc == 51 ) ftemp = @funcparam1*asin( 1 / bsum ) elseif ( @fbmfunc == 52 ) ftemp = @funcparam1*tan( bsum ) / bsum elseif ( @fbmfunc == 53 ) ftemp = @funcparam1*cotan( bsum ) / bsum elseif ( @fbmfunc == 54 ) ftemp = @funcparam1 / ( bsum * cos( bsum )) elseif ( @fbmfunc == 55 ) ftemp = @funcparam1 / ( bsum * sin( bsum )) elseif ( @fbmfunc == 56 ) ftemp = @funcparam1* bsum * sin( bsum ) elseif ( @fbmfunc == 57 ) ftemp = @funcparam1* bsum * cos( bsum ) elseif ( @fbmfunc == 58 ) ftemp = @funcparam1* bsum * tan( bsum ) elseif ( @fbmfunc == 59 ) ftemp = @funcparam1* bsum * cotan( bsum ) elseif ( @fbmfunc == 60 ) ftemp = @funcparam1*bsum/cos( bsum ) elseif ( @fbmfunc == 61 ) ftemp = @funcparam1*bsum/sin( bsum ) elseif ( @fbmfunc == 62 ) ftemp = @funcparam1*sin( 1/bsum ) elseif ( @fbmfunc == 63 ) ftemp = @funcparam1*cos( 1/bsum ) elseif ( @fbmfunc == 64 ) ftemp = @funcparam1*tan( 1/bsum ) elseif ( @fbmfunc == 65 ) ftemp = @funcparam1*cotan( 1/bsum ) elseif ( @fbmfunc == 66 ) ftemp = @funcparam1/cos( 1/bsum ) elseif ( @fbmfunc == 67 ) ftemp = @funcparam1/sin( 1/bsum ) elseif ( @fbmfunc == 68 ) ftemp = @funcparam1*cotanh( bsum ) elseif ( @fbmfunc == 69 ) ftemp = @funcparam1/cosh( bsum ) elseif ( @fbmfunc == 70 ) ftemp = @funcparam1/sinh( bsum ) elseif ( @fbmfunc == 71 ) ftemp = @funcparam1*atanh( 1/bsum ) elseif ( @fbmfunc == 72 ) ftemp = @funcparam1*acosh( 1/bsum ) elseif ( @fbmfunc == 73 ) ftemp = @funcparam1*asinh( 1/bsum ) elseif @fbmfunc == 74 ftemp = bsum^@funcpower elseif @fbmfunc == 75 ftemp = @funcparam1*(sinh(bsum))^@funcparam2 elseif @fbmfunc == 76 ftemp = @funcparam1*(cosh( bsum ))^@funcparam2 elseif @fbmfunc == 77 ftemp = @funcparam1*(tanh(bsum))^@funcparam2 elseif @fbmfunc == 78 ftemp = @funcparam1*(cotanh( bsum ))^@funcparam2 elseif @fbmfunc == 79 ftemp = @funcparam1*(1/cosh(bsum))^@funcparam2 elseif @fbmfunc == 80 ftemp = @funcparam1*(1 / sinh( bsum ))^@funcparam2 elseif @fbmfunc == 81 ftemp = @funcparam1*sinh(1/bsum) elseif @fbmfunc == 82 ftemp = @funcparam1*cosh(1/bsum) elseif @fbmfunc == 83 ftemp = @funcparam1*tanh(1/bsum) elseif @fbmfunc == 84 ftemp = @funcparam1*cotanh(1/bsum) elseif @fbmfunc == 85 ftemp = @funcparam1/cosh(1/bsum) elseif @fbmfunc == 86 ftemp = @funcparam1/sinh(1/bsum) elseif @fbmfunc == 87 ftemp = @funcparam1*sin( bsum ) * tan(@funcparam2*bsum) elseif @fbmfunc == 88 ftemp = @funcparam1*sinh(bsum) * tanh(@funcparam2*bsum) elseif @fbmfunc == 89 ftemp = @funcparam1*sinh(bsum) * cosh(@funcparam2*bsum) elseif @fbmfunc == 90 ftemp = (sinh(bsum)^@funcparam1)*(cosh(bsum)^@funcparam2) elseif @fbmfunc == 91 ftemp = (sin(bsum)^@funcparam1)*(cos(bsum)^@funcparam2) elseif @fbmfunc == 92 ftemp = 1/bsum ftemp = @funcparam1*sin(ftemp)*cos(@funcparam2*ftemp) elseif @fbmfunc == 93 ftemp = @funcparam1*(sin( 1/bsum ))^@funcparam2 elseif @fbmfunc == 94 ftemp = @funcparam1* sin(bsum) * cos(@funcparam2/bsum) elseif @fbmfunc == 95 ftemp = @funcparam1* sin(bsum) * sin(@funcparam2/bsum) elseif @fbmfunc == 96 ftemp = (log(bsum))^@funcparam1 elseif @fbmfunc == 97 ftemp = @funcparam1*sin(bsum) * sin(@funcparam2*bsum) elseif @fbmfunc == 98 ftemp = exp(2*bsum) elseif @fbmfunc == 99 ftemp = exp(-2*bsum) elseif @fbmfunc == 100 ftemp = 1/bsum ftemp = @funcparam1*sinh(ftemp)*cosh(@funcparam2*ftemp) elseif @fbmfunc == 101 ftemp = @funcparam1*(sinh( 1/bsum )^@funcparam2) elseif @fbmfunc == 102 ftemp = @funcparam1*sinh(bsum) * cosh(@funcparam2/bsum) elseif @fbmfunc == 103 ftemp = @funcparam1*sinh(bsum) * sinh(@funcparam2/bsum) elseif @fbmfunc == 104 ftemp = @funcparam1*sin(bsum) * sinh(@funcparam2*bsum) elseif @fbmfunc == 105 ftemp = @funcparam1*sin(bsum) * cosh(@funcparam2*bsum) elseif @fbmfunc == 106 ftemp = (sin(bsum)^@funcparam1)*(sinh(bsum)^@funcparam2) elseif @fbmfunc == 107 ftemp = @funcparam1*sin(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 108 ftemp = @funcparam1*cos(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 109 ftemp = @funcparam1*sinh(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 110 ftemp = @funcparam1*cosh(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 111 ftemp = @funcparam1*sin(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 112 ftemp = @funcparam1*cos(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 113 ftemp = @funcparam1*sinh(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 114 ftemp = @funcparam1*cosh(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 115 ftemp = @funcparam1*exp(bsum^@funcparam2) elseif @fbmfunc == 116 ftemp = @funcparam1*exp(1/(bsum^@funcparam2)) elseif @fbmfunc == 117 ftemp = abs(bsum) elseif @fbmfunc == 118 ftemp = round(bsum) elseif @fbmfunc == 119 ftemp = trunc(bsum) elseif @fbmfunc == 120 ftemp = ceil(bsum) elseif @fbmfunc == 121 ftemp = floor(bsum) elseif @fbmfunc == 122 ftemp = @funcparam1*bsum/log(bsum) elseif @fbmfunc == 123 ftemp = @funcparam1*log(bsum)/bsum elseif @fbmfunc == 124 ftemp = @funcparam1*exp(bsum)/bsum elseif @fbmfunc == 125 ftemp = @funcparam1*exp(1/bsum)/bsum elseif @fbmfunc == 126 ftemp = @funcparam1*exp(bsum^@funcparam2)/bsum elseif @fbmfunc == 127 ftemp = @funcparam1*exp(1/(bsum^@funcparam2))/bsum elseif @fbmfunc == 128 ftemp = @funcparam1*bsum * exp(bsum^@funcparam2) elseif @fbmfunc == 129 ftemp = @funcparam1*bsum * exp(1/(bsum^@funcparam2)) elseif @fbmfunc == 130 ftemp = @funcparam1*exp(-(bsum^@funcparam2)) elseif @fbmfunc == 131 ftemp = @funcparam1*exp(-1/(bsum^@funcparam2)) elseif @fbmfunc == 132 ftemp = @funcparam1*exp(-(bsum^@funcparam2))/bsum elseif @fbmfunc == 133 ftemp = @funcparam1*exp(-1/(bsum^@funcparam2))/bsum elseif @fbmfunc == 134 ftemp = @funcparam1*bsum * exp(-(bsum^@funcparam2)) elseif @fbmfunc == 135 ftemp = @funcparam1*bsum * exp(-1/(bsum^@funcparam2)) else ; @fbmfunc == 136 ftemp = bsum % @funcparam1 endif ; bsumwarp bsum = ftemp endif ; @fbmfunc bsum = (bsum + @bsumoffset) * @bpostscale bfreq = bfreq * @bstep bp = bp * br2 / @bstep bi = bi - 1 endwhile ; bi fbmadjust = @fbmamount * (bsum + 1) endif ; @fBm if ( @colorwarp == 0 ) ftemp = tempcindex elseif ( @colorwarp == 1 ) ftemp = 1/tempcindex elseif ( @colorwarp == 2 ) ftemp = tempcindex * tempcindex elseif ( @colorwarp == 3 ) ftemp = 1 / ( tempcindex * tempcindex ) elseif ( @colorwarp == 4 ) ftemp = log(@cpower*(1+tempcindex)) elseif ( @colorwarp == 5 ) ftemp = exp( @cpower*tempcindex) elseif ( @colorwarp == 6 ) ftemp = tempcindex^(@cpower*tempcindex) elseif ( @colorwarp == 7 ) ftemp = sin( @cpower*tempcindex ) elseif ( @colorwarp == 8 ) ftemp = cos( @cpower*tempcindex ) elseif ( @colorwarp == 9 ) ftemp = tan( @cpower*tempcindex ) elseif ( @colorwarp == 10 ) ftemp = asin( @cpower*tempcindex ) elseif ( @colorwarp == 11 ) ftemp = acos( @cpower*tempcindex ) elseif ( @colorwarp == 12 ) ftemp = atan( @cpower*tempcindex ) elseif ( @colorwarp == 13 ) ftemp = sinh( @cpower*tempcindex ) elseif ( @colorwarp == 14 ) ftemp = cosh( @cpower*tempcindex ) elseif ( @colorwarp == 15 ) ftemp = tanh( @cpower*tempcindex ) elseif ( @colorwarp == 16 ) ftemp = asinh(@cpower* tempcindex ) elseif ( @colorwarp == 17 ) ftemp = acosh( @cpower*tempcindex ) elseif ( @colorwarp == 18 ) ftemp = atanh( @cpower*tempcindex ) elseif ( @colorwarp == 19 ) ftemp = log( 1+@cpower/tempcindex ) elseif ( @colorwarp == 20 ) ftemp = log( 1+log( @cpower+tempcindex )) elseif ( @colorwarp == 21 ) ftemp = exp( -@cpower*tempcindex ) elseif ( @colorwarp == 22 ) ftemp = exp( @cpower/tempcindex ) elseif ( @colorwarp == 23 ) ftemp = tempcindex^(-@cpower*tempcindex) elseif ( @colorwarp == 24 ) ftemp = sin( @cpower*tempcindex ) ftemp = ftemp * ftemp elseif ( @colorwarp == 25 ) ftemp = cos( @cpower*tempcindex ) ftemp = ftemp * ftemp elseif ( @colorwarp == 26 ) ftemp = tan( @cpower*tempcindex ) ftemp = ftemp * ftemp elseif ( @colorwarp == 27 ) ftemp = cotan( @cpower*tempcindex ) elseif ( @colorwarp == 28 ) ftemp = 1/cos( @cpower*tempcindex ) elseif ( @colorwarp == 29 ) ftemp = 1/sin( @cpower*tempcindex ) elseif ( @colorwarp == 30 ) ftemp = cotan( @cpower*tempcindex ) ftemp = ftemp * ftemp elseif ( @colorwarp == 31 ) ftemp = 1/cos( @cpower*tempcindex ) ftemp = ftemp * ftemp elseif ( @colorwarp == 32 ) ftemp = 1/sin( @cpower*tempcindex ) ftemp = ftemp * ftemp elseif ( @colorwarp == 33 ) ftemp = tempcindex^(tempcindex) ftemp = tempcindex^(@cpower*ftemp) elseif ( @colorwarp == 34 ) ftemp = tempcindex^(tempcindex) ftemp = 1/( tempcindex^(@cpower*ftemp )) elseif ( @colorwarp == 35 ) ftemp = log(-@cpower*tempcindex) elseif ( @colorwarp == 36 ) ftemp = 1/log(@cpower*(1+ tempcindex )) elseif ( @colorwarp == 37 ) ftemp = tempcindex * log(1+ @cpower*tempcindex ) elseif ( @colorwarp == 38 ) ftemp = sin( @cpower*tempcindex ) / tempcindex elseif ( @colorwarp == 39 ) ftemp = cos( @cpower*tempcindex ) / tempcindex elseif ( @colorwarp == 40 ) ftemp = sin( @cpower*tempcindex ) * cos( tempcindex ) elseif ( @colorwarp == 41 ) ftemp = sin( tempcindex^(@cpower*2 )) elseif ( @colorwarp == 42 ) ftemp = exp( -@cpower/tempcindex ) elseif ( @colorwarp == 43 ) ftemp = tempcindex * exp( @cpower*tempcindex ) elseif ( @colorwarp == 44 ) ftemp = tempcindex * exp( -@cpower*tempcindex ) elseif ( @colorwarp == 45 ) ftemp = tempcindex * exp( @cpower/tempcindex ) elseif ( @colorwarp == 46 ) ftemp = tempcindex * exp( -@cpower/tempcindex ) elseif ( @colorwarp == 47 ) ftemp = tempcindex * tempcindex * tempcindex elseif ( @colorwarp == 48 ) ftemp = 1 / ( tempcindex * tempcindex * tempcindex ) elseif ( @colorwarp == 49 ) ftemp = atan( @cpower / tempcindex ) elseif ( @colorwarp == 50 ) ftemp = acos( @cpower / tempcindex ) elseif ( @colorwarp == 51 ) ftemp = asin( @cpower / tempcindex ) elseif ( @colorwarp == 52 ) ftemp = tan( @cpower*tempcindex ) / tempcindex elseif ( @colorwarp == 53 ) ftemp = cotan( @cpower*tempcindex ) / tempcindex elseif ( @colorwarp == 54 ) ftemp = 1 / ( tempcindex * cos( @cpower*tempcindex )) elseif ( @colorwarp == 55 ) ftemp = 1 / ( tempcindex * sin( @cpower*tempcindex )) elseif ( @colorwarp == 56 ) ftemp = tempcindex * sin( @cpower*tempcindex ) elseif ( @colorwarp == 57 ) ftemp = tempcindex * cos( @cpower*tempcindex ) elseif ( @colorwarp == 58 ) ftemp = tempcindex * tan( @cpower*tempcindex ) elseif ( @colorwarp == 59 ) ftemp = tempcindex * cotan( @cpower*tempcindex ) elseif ( @colorwarp == 60 ) ftemp = tempcindex/cos( @cpower*tempcindex ) elseif ( @colorwarp == 61 ) ftemp = tempcindex/sin( @cpower*tempcindex ) elseif ( @colorwarp == 62 ) ftemp = sin( @cpower/tempcindex ) elseif ( @colorwarp == 63 ) ftemp = cos( @cpower/tempcindex ) elseif ( @colorwarp == 64 ) ftemp = tan( @cpower/tempcindex ) elseif ( @colorwarp == 65 ) ftemp = cotan( @cpower/tempcindex ) elseif ( @colorwarp == 66 ) ftemp = 1/cos( @cpower/tempcindex ) elseif ( @colorwarp == 67 ) ftemp = 1/sin( @cpower/tempcindex ) elseif ( @colorwarp == 68 ) ftemp = cotanh( @cpower*tempcindex ) elseif ( @colorwarp == 69 ) ftemp = 1/cosh( @cpower*tempcindex ) elseif ( @colorwarp == 70 ) ftemp = 1/sinh( @cpower*tempcindex ) elseif ( @colorwarp == 71 ) ftemp = atanh( @cpower/tempcindex ) elseif ( @colorwarp == 72 ) ftemp = acosh( @cpower/tempcindex ) elseif ( @colorwarp == 73 ) ftemp = asinh( @cpower/tempcindex ) elseif @colorwarp == 74 ftemp = tempcindex^@cpower elseif @colorwarp == 75 ftemp = sinh(@cpower*tempcindex) ftemp = ftemp * ftemp elseif @colorwarp == 76 ftemp = cosh( @cpower*tempcindex ) ftemp = ftemp * ftemp elseif @colorwarp == 77 ftemp = tanh(@cpower*tempcindex) ftemp = ftemp * ftemp elseif @colorwarp == 78 ftemp = cotanh( @cpower*tempcindex ) ftemp = ftemp * ftemp elseif @colorwarp == 79 ftemp = 1/cosh(@cpower*tempcindex) ftemp = ftemp * ftemp elseif @colorwarp == 80 ftemp = 1 / sinh( @cpower*tempcindex ) ftemp = ftemp * ftemp elseif @colorwarp == 81 ftemp = sinh(@cpower/tempcindex) elseif @colorwarp == 82 ftemp = cosh(@cpower/tempcindex) elseif @colorwarp == 83 ftemp = tanh(@cpower/tempcindex) elseif @colorwarp == 84 ftemp = cotanh(@cpower/tempcindex) elseif @colorwarp == 85 ftemp = 1/cosh(@cpower/tempcindex) elseif @colorwarp == 86 ftemp = 1/sinh(@cpower/tempcindex) elseif @colorwarp == 87 ftemp = sin( @cpower*tempcindex ) * tan(tempcindex) elseif @colorwarp == 88 ftemp = sinh(@cpower*tempcindex) * tanh(tempcindex) elseif @colorwarp == 89 ftemp = sinh(@cpower*tempcindex) * cosh(tempcindex) elseif @colorwarp == 90 ftemp = sinh(@cpower*tempcindex), ftemp2 = cosh(tempcindex) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == 91 ftemp = sin(@cpower*tempcindex), ftemp2 = cos(tempcindex) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == 92 ftemp = 1/tempcindex ftemp = sin(@cpower*ftemp)*cos(ftemp) elseif @colorwarp == 93 ftemp = sin( @cpower/tempcindex ) ftemp = ftemp*ftemp elseif @colorwarp == 94 ftemp = sin(@cpower*tempcindex) * cos(1/tempcindex) elseif @colorwarp == 95 ftemp = sin(tempcindex) * sin(@cpower/tempcindex) elseif @colorwarp == 96 ftemp = log(1+@cpower*tempcindex) ftemp = ftemp*ftemp elseif @colorwarp == 97 ftemp = sin(tempcindex) * sin(2*tempcindex) elseif @colorwarp == 98 ftemp = exp(2*tempcindex) elseif @colorwarp == 99 ftemp = exp(-2*tempcindex) elseif @colorwarp == 100 ftemp = 1/tempcindex ftemp = sinh(@cpower*ftemp)*cosh(ftemp) elseif @colorwarp == 101 ftemp = sinh( @cpower/tempcindex ) ftemp = ftemp*ftemp elseif @colorwarp == 102 ftemp = sinh(@cpower*tempcindex) * cosh(1/tempcindex) elseif @colorwarp == 103 ftemp = sinh(tempcindex) * sinh(@cpower/tempcindex) elseif @colorwarp == 104 ftemp = sin(@cpower*tempcindex) * sinh(tempcindex) elseif @colorwarp == 105 ftemp = sin(tempcindex) * cosh(@cpower*tempcindex) elseif @colorwarp == 106 ftemp = sin(@cpower*tempcindex), ftemp2 = sinh(tempcindex) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == 107 ftemp = sin(@cpower*tempcindex)*exp(tempcindex) elseif @colorwarp == 108 ftemp = cos(@cpower*tempcindex)*exp(tempcindex) elseif @colorwarp == 109 ftemp = sinh(tempcindex)*exp(@cpower*tempcindex) elseif @colorwarp == 110 ftemp = cosh(@cpower*tempcindex)*exp(tempcindex) elseif @colorwarp == 111 ftemp = sin(@cpower*tempcindex)*log(1+tempcindex) elseif @colorwarp == 112 ftemp = cos(tempcindex)*log(1+@cpower*tempcindex) elseif @colorwarp == 113 ftemp = sinh(@cpower*tempcindex)*log(1+tempcindex) elseif @colorwarp == 114 ftemp = cosh(tempcindex)*log(1+@cpower*tempcindex) elseif @colorwarp == 115 ftemp = exp(@cpower*(tempcindex^2)) elseif @colorwarp == 116 ftemp = exp(@cpower/(tempcindex^2)) elseif @colorwarp == 117 ftemp = abs(@cpower*tempcindex) elseif @colorwarp == 118 ftemp = round(@cpower*tempcindex) elseif @colorwarp == 119 ftemp = trunc(@cpower*tempcindex) elseif @colorwarp == 120 ftemp = ceil(@cpower*tempcindex) elseif @colorwarp == 121 ftemp = floor(@cpower*tempcindex) elseif @colorwarp == 122 ftemp = tempcindex/log(1+@cpower*tempcindex) elseif @colorwarp == 123 ftemp = log(1+@cpower*tempcindex)/tempcindex elseif @colorwarp == 124 ftemp = exp(@cpower*tempcindex)/tempcindex elseif @colorwarp == 125 ftemp = exp(@cpower/tempcindex)/tempcindex elseif @colorwarp == 126 ftemp = exp(@cpower*(tempcindex^2))/tempcindex elseif @colorwarp == 127 ftemp = exp(@cpower/(tempcindex^2))/tempcindex elseif @colorwarp == 128 ftemp = tempcindex * exp(@cpower*(tempcindex^2)) elseif @colorwarp == 129 ftemp = tempcindex * exp(@cpower/(tempcindex^2)) elseif @colorwarp == 130 ftemp = exp(-(@cpower*(tempcindex^2))) elseif @colorwarp == 131 ftemp = exp(-@cpower/(tempcindex^2)) elseif @colorwarp == 132 ftemp = exp(-@cpower*(tempcindex^2))/tempcindex elseif @colorwarp == 133 ftemp = exp(-@cpower/(tempcindex^2))/tempcindex elseif @colorwarp == 134 ftemp = tempcindex * exp(-@cpower*(tempcindex^2)) else ; @colorwarp == 135 ftemp = tempcindex * exp(-@cpower/(tempcindex^2)) endif ; tempcindexwarp #index = @tiaweight*abs(ftemp) + fbmadjust default: title = "TIA/fBm+" heading caption = "Triangle Inequality Average Settings" text = "Use a high bailout value in the fractal formula" expanded = TRUE endheading param apower caption = "Average Exponent" default = 1.0 hint = "This skews the values averaged by raising them to \ this power. Use 1.0 for the classic coloring." endparam param aflavor caption = "Average Flavor" default = 0 enum = "normal" "reversed" hint = "Controls whether values are reversed before being \ raised to a power. Has no effect if Average Exponent \ is 1.0." endparam param power caption = "Exponent" default = 2.0 hint = "This should be set to match the exponent of the \ formula you are using. For Mandelbrot, this is 2." endparam param bailout caption = "Bailout" default = 1e20 min = 1 hint = "This should be set to match the bailout value in \ the Formula tab. Use a very high bailout!" endparam param tiaweight caption = "TIA Weight" default = 1.0 hint = "This parameter sets how much the TIA coloring is mixed into \ the fBm component" visible = @fBm endparam param @colorwarp caption = "TIA Warp Factor" enum = "c" "1/c" "c^2" "1/c^2" "log(c)" "e^c" "c^c" "sin(c)" "cos(c)" \ "tan(c)" "asin(c)" "acos(c)" "atan(c)" "sinh(c)" "cosh(c)" "tanh(c)" \ "asinh(c)" "acosh(c)" "atanh(c)" "log(1/c)" "log(log(c))" "e^-c" \ "e^(1/c)" "c^-c" "sin(c)^2" "cos(c)^2" "tan(c)^2" "cot(c)" "sec(c)" \ "csc(c)" "cot(c)^2" "sec(c)^2" "csc(c)^2" "c^c^c" "1/c^c^c" "log(-c)" \ "1/log(c)" "clog(c)" "sin(c)/c" "cos(c)/c" "sin(c)*cos(c)" "sin(c^2)" \ "e^(-1/c)" "ce^c" "ce^-c" "ce^(1/c)" "ce^(-1/c)" "c^3" "1/c^3" \ "acot(c)" "asec(c)" "acsc(c)" "tan(c)/c" "cot(c)/c" "sec(c)/c" \ "csc(c)/c" "csin(c)" "ccos(c)" "ctan(c)" "ccot(c)" "csec(c)" "ccsc(c)" \ "sin(1/c)" "cos(1/c)" "tan(1/c)" "cot(1/c)" "sec(1/c)" "csc(1/c)" \ "cotanh(c)" "sech(c)" "cosech(c)" "acoth(c)" "asech(c)" "acosech(c)" "c^power" \ "sinh(c)^2" "cosh(c)^2" "tanh(c)^2" "cotanh(c)^2" \ "sech(c)^2" "cosech(c)^2" "sinh(1/c)" "cosh(1/c)" "tanh(1/c)" \ "cotanh(1/c)" "sech(1/c)" "cosech(1/c)" "sin(c)tan(c)" "sinh(c)tanh(c)" \ "sinh(c)cosh(c)" "sinh(c)^2*cosh(c)^2" "sin(c)^2*cos(c)^2" \ "sin(1/c)*cos(1/c)" "sin(1/c)^2" "sin(c)cos(1/c)" "sin(c)sin(1/c)" \ "log(c)^2" "sin(c)sin(2c)" "e^2c" "e^-2c" "sinh(1/c)cosh(1/c)" \ "sinh(1/c)^2" "sinh(c)cosh(1/c)" "sinh(c)sinh(1/c)" "sin(c)sinh(c)" \ "sin(c)cosh(c)" "sin(c)^2*sinh(c)^2" "sin(c)e^c" "cos(c)e^c" \ "sinh(c)e^c" "cosh(c)e^c" "sin(c)log(c)" "cos(c)log(c)" "sinh(c)log(c)" \ "cosh(c)log(c)" \ "e^(c^2)" "e^(1/(c^2))" "abs(c)" "round(c)" "trunc(c)" \ "ceil(c)" "floor(c)" "c/log(c)" "log(c)/c" "(e^c)/c" "(e^(1/c))/c" \ "(e^(c^2))/c" "(e^(1/(c^2))/c" "c*e^(c^2)" "c*e^(1/(c^2))" \ "e^(-c^2)" "e^(-1/(c^2))" "(e^(-c^2))/c" "(e^(-1/(c^2))/c" \ "c*e^(-c^2)" "c*e^(1/(-c^2))" default = 0 hint = "The final TIA color index value can be warped by this function; default is \ 'c' (no change in color index). (A transfer function) The fBm adjustment \ occurs after this function is applied to the TIA coloring. To apply a \ similar warping to the fBm adjustment, use param 'fBm Warp Factor'" endparam param cpower caption = "Color Parameter" default = 1.0 hint = "Color index exponent if param 'TIA Warp Factor' is set to 'c^power'; \ otherwise, this is a general parameter that usually affects the 'TIA \ Warp Factor' (for example, in the sin/cos options, it sets the frequency)" endparam param periodicity caption = "Enable Periodicity?" default = FALSE hint = "If enabled, then the TIA will be calculated only every 'n' iterations, \ where 'n' is set by parameter 'Period'" endparam param period caption = "Period" default = 3 min = 1 hint = "If 'Enable Periodicity' is enabled, then this setting determines how often \ the TIA algorithm is executed" visible = @periodicity endparam param perphase caption = "Period Phase" default = 0 min = 0 hint = "If 'Enable Periodicity' is enabled, then this setting determines on which iteration \ cycle the TIA algorithm is executed" visible = @periodicity endparam param reversephase caption = "Reverse Phase?" default = FALSE hint = "If 'Enable Periodicity' is turned on, and this parameter is also enabled, \ then trapping is examined only when the period is NOT in the cycle set by \ parameter 'Period Phase'" visible = @periodicity endparam param anglerestrict caption = "Restrict Angle?" default = FALSE hint = "If enabled, then the TIA will be calculated only every when the angle of #z \ falls between the 'Low Angle' and 'High Angle' limits" endparam param anglelow caption = "Low Angle" default = 0.0 min = 0.0 max = 359.9 hint = "If 'Restrict Angle' is enabled, then this setting determines the lower angular boundary \ for #z in order for the TIA algorithm to be executed (0-360)" visible = @anglerestrict endparam param anglehigh caption = "High Angle" default = 90.0 min = 0.1 max = 360.0 hint = "If 'Restrict Angle' is enabled, then this setting determines the upper angular boundary \ for #z in order for the TIA algorithm to be executed (0-360)" visible = @anglerestrict endparam heading caption = "fBm/Color Settings" expanded = TRUE endheading param fBm caption = "Enable fBm?" default = FALSE hint = "Adds fBm distortion to coloring; overall amount of turbulence \ is set by parameter 'fBm Amount'" endparam param fbmamount caption = "fBm Amount" default = 1.0 hint = "If fBm is enabled, this parameter determines the overall fBm perturbation \ of the color palette index" visible = @fBm endparam param bscale caption = "fBm Scale" default = 1.0 hint = "The overall scale of the fBm turbulence" visible = @fBm endparam param fbminit caption = "fBm Initialization" enum = "min z" "first z" "second z" "third z" "fourth z" "last z" \ "penult z" "antepenult z" "TIA" "pixel" "min* z" ; "blend1" "blend2" \ ; "blend3" "blend4" "blend5" "blend6" "blend7" "blend8" \ ; "blend9" default = 0 hint = "This setting defines the input to the fBm algorithm. Option \ 'min* z' skips the first iteration before capturing the minimum z value" visible = @fBm endparam ; param fbmblendmode1 ; caption = "How to Blend?" ; enum = "*" "+" "-" "/" "^" "--" "//" "^^" ; default = 0 ; hint = "If one of the 'blend' initializations is chosen for param \ ; 'fBm Initialization', then this determines how the init values \ ; are mixed" ; visible = @fBm && (@fbminit > 9) ; endparam ; param fbmblendmode2 ; caption = "How to Blend, Part 2?" ; enum = "normal" "negate" "flip" "conj" "flip-conj" ; default = 0 ; hint = "If one of the 'blend' initializations is chosen for param \ ; 'fBm Initialization', then this determines how the init values \ ; are mixed" ; visible = @fBm && (@fbminit > 9) ; endparam param fbmtransform caption = "Apply Transform?" default = FALSE hint = "Applies tranformation to fBm initialization algorithm" visible = @fBm endparam param fbmtransformfunc caption = "Transform Function" enum = "none" "circle" "cardioid" "lissajous" "hypocycloid" "parabola" default = 0 hint = "If parameter 'Apply Transform' is enabled, this param \ determines which tranformation is applied" visible = @fBm && @fbmtransform endparam param fbmcradius caption = "Circle Radius" default = 1.0 hint = "If parameter 'Transform Function' is set to 'circle', this param \ determines the circle radius" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 1) endparam param fbmcfrequency caption = "Circle Frequency" default = 1.0 hint = "If parameter 'Transform Function' is set to 'circle', this is an extra param \ that modifies the circle function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 1) endparam param fbmcardradius caption = "Cardioid Size" default = 1.0 hint = "If parameter 'Transform Function' is set to 'cardioid', this param \ determines the cardioid size" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 2) endparam param fbmcardfreq caption = "Cardioid Frequency" default = 1.0 hint = "If parameter 'Transform Function' is set to 'cardioid', this is an extra param \ that modifies the cardioid function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 2) endparam param fbmlissaamp1 caption = "1st Lissajous Amplitude" default = 1.0 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the amplitude of the first lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmlissafreq1 caption = "1st Lissajous Frequency" default = 2.0 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the frequency of the first lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmlissaphase1 caption = "1st Lissajous Phase" default = 0.0 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the phase of the first lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmlissaamp2 caption = "2nd Lissajous Amplitude" default = 1.0 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the amplitude of the second lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmlissafreq2 caption = "2nd Lissajous Frequency" default = 2.0 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the frequency of the second lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmlissaphase2 caption = "2nd Lissajous Phase" default = 1.5707963267948966192313216916398 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the phase of the second lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmhypocyc1 caption = "1st Hypocycloid Constant" default = 8.0 hint = "If parameter 'Transform Function' is set to 'hypocycloid', this param \ sets the first of the two constants defining the hypocycloid curve. \ Try (c1 - c2) / c2 = an integer" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 4) endparam param fbmhypocyc2 caption = "2nd Hypocycloid Constant" default = 2.0 hint = "If parameter 'Transform Function' is set to 'hypocycloid', this param \ sets the second of the two constants defining the hypocycloid curve. \ Try (c1 - c2) / c2 = an integer" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 4) endparam param fbmparabscale caption = "Parabola Scale" default = -2.0 hint = "If parameter 'Transform Function' is set to 'parabola', this param \ sets the overall scale of the curve" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 5) endparam param fbmparaboffset caption = "Parabola Offset" default = 1.0 hint = "If parameter 'Transform Function' is set to 'parabola', this extra param \ can be used to distort the curve" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 5) endparam param fbmparabfreq caption = "Parabola Frequency" default = 1.0 hint = "If parameter 'Transform Function' is set to 'parabola', this extra param \ can be used to further distort the curve" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 5) endparam param fbmhybrid caption = "Hybrid Initialization?" default = FALSE hint = "Adjusts initialization value of the fBm algorithm \ by mixing in the #pixel value, after the transform function, \ if any, is applied" visible = @fBm endparam param fbmhybridtype caption = "Hybrid Type" enum = "*" "+" "-" "/" "^" "--" "//" "^^" "average" "geom mean" default = 0 hint = "If 'Hybrid Initialization' is enabled, then this param \ determines how the pixel value is blended in" visible = @fBm && @fbmhybrid endparam param fbmhybridweight caption = "Hybrid Weight" default = 1.0 hint = "If parameter 'Hybrid Initialization' is enabled, this param \ determines how much of #pixel is blended in" visible = @fBm && @fbmhybrid endparam param fbmbias caption = "Bias fBm?" default = FALSE hint = "Enable multiplier of fBm initialization" visible = @fBm endparam param fbmbiasamount caption = "Bias Amount" default = (1.0,0) hint = "Value of fBm Bias Multiplier" visible = @fBm && @fbmbias endparam param bangle caption = "fBm Rotation" default = 0.0 hint = "Angular parameter for fBm noise" visible = @fBm endparam param bstep caption = "fBm Stepsize" default = 0.5 hint = "Scale step size for fBm noise iterations" visible = @fBm endparam param banglestep caption = "fBm Rotation Step" default = 53.0 hint = "The angle in degrees for noise function rotation after \ each fBm iteration; used if fBm is enabled" visible = @fBm endparam param boctaves caption = "fBm Octaves" default = 7 min = 1 hint = "The number of iterations of the fBm noise function" visible = @fBm endparam param bpower caption = "fBm Exponent" default = 2.0 hint = "The exponent used if param fBm is enabled \ for fBm randomization" visible = @fBm endparam param bbfreq caption = "fBm Frequency" default = 1.0 hint = "Frequency multiplier for fBm noise" visible = @fBm endparam param boffset caption = "fBm Offset" default = (0.0,0.0) hint = "Offset added to fBm noise initializer" visible = @fBm endparam param bsumoffset caption = "fBm Sum Offset" default = 0.0 hint = "This term adjusts the cumulative fBm sum" visible = @fBm endparam param bpostscale caption = "fBm Postscale" default = 1.0 hint = "This factor scales the cumulative fBm sum after the \ 'fBm Warp Factor' and 'fBm Sum Offset' adjustments" visible = @fBm endparam param fbmint1 caption = "fBm Graniness 1" default = 256 hint = "Distorts the traditional fBm algorithm" visible = @fBm endparam param fbmint2 caption = "fBm Graniness 2" default = 65536 hint = "Distorts the traditional fBm algorithm" visible = @fBm endparam param fbmint3 caption = "fBm Graniness 3" default = 512 hint = "Distorts the traditional fBm algorithm" visible = @fBm endparam param @fbmfunc caption = "fBm Warp Factor" enum = "none" "1/c" "c^2" "1/c^2" "log(c)" "e^c" "c^c" "sin(c)" "cos(c)" \ "tan(c)" "asin(c)" "acos(c)" "atan(c)" "sinh(c)" "cosh(c)" "tanh(c)" \ "asinh(c)" "acosh(c)" "atanh(c)" "log(1/c)" "log(log(c))" "e^-c" \ "e^(1/c)" "c^-c" "sin(c)^n" "cos(c)^n" "tan(c)^n" "cot(c)" "sec(c)" \ "csc(c)" "cot(c)^n" "sec(c)^n" "csc(c)^n" "c^c^c" "1/c^c^c" "log(-c)" \ "1/log(c)" "clog(c)" "sin(c)/c" "cos(c)/c" "sin(c)*cos(n*c)" "sin(c^n)" \ "e^(-1/c)" "ce^c" "ce^-c" "ce^(1/c)" "ce^(-1/c)" "c^3" "1/c^3" \ "acot(c)" "asec(c)" "acsc(c)" "tan(c)/c" "cot(c)/c" "sec(c)/c" \ "csc(c)/c" "csin(c)" "ccos(c)" "ctan(c)" "ccot(c)" "csec(c)" "ccsc(c)" \ "sin(1/c)" "cos(1/c)" "tan(1/c)" "cot(1/c)" "sec(1/c)" "csc(1/c)" \ "cotanh(c)" "sech(c)" "cosech(c)" "acoth(c)" "asech(c)" "acosech(c)" "c^power" \ "sinh(c)^n" "cosh(c)^n" "tanh(c)^n" "cotanh(c)^n" \ "sech(c)^n" "cosech(c)^n" "sinh(1/c)" "cosh(1/c)" "tanh(1/c)" \ "cotanh(1/c)" "sech(1/c)" "cosech(1/c)" "sin(c)tan(n*c)" "sinh(c)tanh(n*c)" \ "sinh(c)cosh(n*c)" "sinh(c)^m*cosh(c)^n" "sin(c)^m*cos(c)^n" \ "sin(1/c)*cos(n/c)" "sin(1/c)^n" "sin(c)cos(n/c)" "sin(c)sin(n/c)" \ "log(c)^n" "sin(c)sin(n*c)" "e^2c" "e^-2c" "sinh(1/c)cosh(n/c)" \ "sinh(1/c)^n" "sinh(c)cosh(n/c)" "sinh(c)sinh(n/c)" "sin(c)sinh(n*c)" \ "sin(c)cosh(n*c)" "sin(c)^m*sinh(c)^n" "sin(c)e^c" "cos(c)e^c" \ "sinh(c)e^c" "cosh(c)e^c" "sin(c)log(c)" "cos(c)log(c)" "sinh(c)log(c)" \ "cosh(c)log(c)" \ "e^(c^n)" "e^(1/(c^n))" "abs(c)" "round(c)" "trunc(c)" \ "ceil(c)" "floor(c)" "c/log(c)" "log(c)/c" "(e^c)/c" "(e^(1/c))/c" \ "(e^(c^n))/c" "(e^(1/(c^n))/c" "c*e^(c^n)" "c*e^(1/(c^n))" \ "e^(-c^n)" "e^(-1/(c^n))" "(e^(-c^n))/c" "(e^(-1/(c^n))/c" \ "c*e^(-c^n)" "c*e^(1/(-c^n))" "c%n" default = 0 hint = "This function modifies the color adjustment produced by the fBm noise algorithm. \ It does not affect the TIA coloring component; use param 'TIA Warp Factor' \ for that" visible = @fBm endparam param funcpower caption = "fBm Warp Power" default = 0.333333333333333 hint = "If param 'fBm Warp Factor' is set to 'c^power', then this is the power" visible = (@fbmfunc == "c^power") && @fBm endparam param funcprescale caption = "fBm Warp Prescale" default = 1.0 hint = "This factor scales the argument to the 'fBm Warp Factor' function" visible = @fBm && @fbmfunc != "none" endparam param funcparam1 caption = "fBm Warp Param1" default = 1.0 hint = "If the 'fBm Warp Factor' function uses extra parameters, then \ this number is the first of those" visible = @fBm && (@fbmfunc > 3) endparam param funcparam2 caption = "fBm Warp Param2" default = 2.0 hint = "If the 'fBm Warp Factor' function uses extra parameters, then \ this number is the second of those" visible = @fBm && ( (@fbmfunc == 20) || (@fbmfunc == 24) || \ (@fbmfunc == 25) || (@fbmfunc == 26) || (@fbmfunc == 30) || \ (@fbmfunc == 31) || (@fbmfunc == 32) || (@fbmfunc == 33) || \ (@fbmfunc == 34) || (@fbmfunc == 40) || (@fbmfunc == 75) || \ (@fbmfunc == 76) || (@fbmfunc == 77) || (@fbmfunc == 78) || \ (@fbmfunc == 79) || (@fbmfunc == 80) || (@fbmfunc == 87) || \ (@fbmfunc == 88) || (@fbmfunc == 89) || (@fbmfunc == 90) || \ (@fbmfunc == 91) || (@fbmfunc == 92) || (@fbmfunc == 93) || \ (@fbmfunc == 94) || (@fbmfunc == 95) || (@fbmfunc == 97) || \ (@fbmfunc == 100) || (@fbmfunc == 101) || (@fbmfunc == 102) || \ (@fbmfunc == 103) || (@fbmfunc == 104) || (@fbmfunc == 105) || \ (@fbmfunc == 106) || (@fbmfunc == 107) || (@fbmfunc == 108) || \ (@fbmfunc == 109) || (@fbmfunc == 110) || (@fbmfunc == 111) || \ (@fbmfunc == 112) || (@fbmfunc == 113) || (@fbmfunc == 114) || \ (@fbmfunc == 115) || (@fbmfunc == 116) || (@fbmfunc == 126) || \ (@fbmfunc == 127) || (@fbmfunc == 128) || (@fbmfunc == 129) || \ (@fbmfunc == 130) || (@fbmfunc == 131) || (@fbmfunc == 132) || \ (@fbmfunc == 133) || (@fbmfunc == 134) || (@fbmfunc == 135) ) endparam } jam-tangents2007 { ; jam ; A rewrite and expansion of earlier Tangents formulas. ; November 4, 2007. global: ; Common constants, global variables float twopi = 2.0 * #pi float reciptwopi = 1.0/twopi float degconversion = twopi/360 int gindex1 = int gindex2 = 0 ; fBm variables float banglevar = @bangle/90.0 float banglestepvar = @banglestep / 90.0 float hypocycvar1 = @fbmhypocyc1 - @fbmhypocyc2 float hypocycvar2 = hypocycvar1/@fbmhypocyc2 ; Initialize global variables float distributionangle = twopi/@trapnumber complex distanglemultiplier = exp(flip(distributionangle)) float linearshift = 2.0*@distributionsize/@trapnumber float sinusoidshift = #pi*@distrwavefrequency/@distributionsize complex zshift = linearshift + flip(0) complex spiralanglemultiplier = exp(flip((twopi * @spiralwindings)/@trapnumber)) float spiralcontraction = 1.0/@spiraltightness float traprotationrads = @traprotation*degconversion if traprotationrads < 0.0 traprotationrads = traprotationrads+twopi endif ; traprotationrads complex traprotmultiplier = exp(flip(traprotationrads)) float distributionrotationrads = @distributionrotation*degconversion if distributionrotationrads < 0.0 distributionrotationrads = distributionrotationrads+twopi endif ; distributionrotationrads complex distrotmultiplier = exp(flip(distributionrotationrads)) ; A few convenient flags for code optimization bool enabledtraprotation = FALSE bool enableddistributionrotation = FALSE bool enableddistributioncenter = FALSE if (@traprotation != 0.0) && (@trapshape != "disk") && (@trapshape != "ring") enabledtraprotation = TRUE endif ; enabledtraprotation if @distributionrotation != 0.0 enableddistributionrotation = TRUE endif ; enableddistributionrotation if @distributioncenter != (0,0) enableddistributioncenter = TRUE endif ; enableddistributioncenter ; Globals for some modifiers if @towatch == 0 int watch = #maxiter + 1 else int watch = @skippediters + @towatch endif ; towatch float recipwatch = 1.0/watch ; Initialize periodicity variables int periodphase = 0 if @periodicity if @perphase < @period ; phase can only be 0, 1,..., (@period-1) periodphase = @perphase endif ; @perphase endif ; @periodicity ; Initialize angle restriction variables float anglelowbound = @anglelow*twopi/360 float anglehighbound = @anglehigh*twopi/360 if anglehighbound <= anglelowbound anglelowbound = 0.0 anglehighbound = twopi endif ; anglehighbound ; Calculate trap metrics given current settings of position/rotation etc. complex trapcenter = @distributionsize + flip(0) ; Compute shape-specific trap parameters ; General float reciptrapnumber = 1/@trapnumber float recipranges = 1.0/@colorranges ; Disk float recipdiskradius = 1/@diskradius ; Strip float halfstripwidth = @stripwidth/2.0 float halfstriplength = @striplength/2.0 float reciphalfstriplength = 1.0/halfstriplength ; Wave float halfwavelength = @wavelength/2.0 float halfwavewidth = @wavewidth/2.0 float reciphalfwavelength = 1.0/halfwavelength float wavefreq = @wavefrequency * twopi * reciphalfwavelength ; Polygon ; Angles and coordinates of polygon vertices float polygonincrement = twopi/@polygonsides ; angle between successive vertices float polyvertexangles[19] ; holds the angular coordinates of each polygon vertex ; Initialize the array gindex1 = 0 gindex2 = @polygonsides+1 while gindex1 < gindex2 polyvertexangles[gindex1] = gindex1*polygonincrement gindex1 = gindex1+1 endwhile ; gindex1 ; Star float polystarincrement = #pi/@polystarpoints ; angle between successive vertices of N-pointed star float polystarangles[37] ; holds the angular coordinate of each star vertex float starspikiness = @polystarradius/@polystarspikiness float radiusproduct = @polystarradius*starspikiness int polystarmax = 2*@polystarpoints gindex1 = 0 gindex2 = polystarmax while gindex1 <= gindex2 polystarangles[gindex1] = gindex1*polystarincrement gindex1 = gindex1+1 endwhile ; gindex1 ; Ellipse float axisproduct = @ellipsemajorradius*@ellipseminorradius float recipexponent = 1.0/@ellipseexponent ; Parabola float parabhalfwidth = @parabolawidth/2.0 float recipparabhalfwidth = 1.0/parabhalfwidth float parabhalfstrip = @parabolastrip/2.0 ; Semicubic Parabola float recipsemicubicwidth = 1.0/@semicubicwidth float semicubichalfstrip = @semicubicstrip/2.0 ; Cubic Parabola float cubichalfwidth = @cubicwidth/2.0 float recipcubichalfwidth = 1.0/cubichalfwidth float cubichalfstrip = @cubicstrip/2.0 ; Hypocycloid ; Angles and coordinates of hypocycloid cusps float hypoincrement = twopi/@hypocusps ; angle between successive cusps float reciphypoincrement = 1.0/hypoincrement float hypocuspangles[19] ; holds the angular coordinates of each cusp float hyposharpness = @hypodepth*@hyporadius bool hypoadjust = FALSE if (@hypoexponent != 1.0) hypoadjust = TRUE endif ; hypoadjust ; Initialize the array gindex1 = 0 gindex2 = @hypocusps+1 while gindex1 < gindex2 hypocuspangles[gindex1] = gindex1*hypoincrement gindex1 = gindex1+1 endwhile ; gindex1 ; Ring float innerringradius = @ringradius - @ringwidth if innerringradius < 0 innerringradius = 0.0 endif ; innerringradius float recipringwidth = 1.0/@ringwidth ; Ring Segments float innersegmentradius = @segmentradius - @segmentwidth if innersegmentradius < 0 innersegmentradius = 0.0 endif ; innersegmentradius float recipsegmentwidth = 1.0/@segmentwidth float gapincrement = @segmentblackspace*twopi float segmentincrement = twopi-gapincrement gapincrement = gapincrement/@segmentsides segmentincrement = segmentincrement/@segmentsides ; Angles and coordinates of segment vertices float segmentangles[37] ; holds the angular coordinates of each segment or gap boundary ; Initialize the array segmentangles[0] = 0.0 gindex1 = 1 int segmentmax = 2*@segmentsides while gindex1 < segmentmax segmentangles[gindex1] = segmentangles[gindex1-1]+segmentincrement segmentangles[gindex1+1] = segmentangles[gindex1]+gapincrement gindex1 = gindex1+2 endwhile ; gindex1 ; For hollow shapes, other than rings or ring segments float rimsize = 0.0 if @hollow rimsize = @rimwidth if @trapshape == "polygon" if rimsize > @polygonradius rimsize = @polygonradius endif ; rimsize elseif @trapshape == "star" if rimsize > starspikiness rimsize = starspikiness endif ; rimsize elseif @trapshape == "ellipse" if rimsize > @ellipseminorradius rimsize = @ellipseminorradius endif ; rimsize elseif @trapshape == "rose" if rimsize > @roseradius rimsize = @roseradius endif ; rimsize elseif @trapshape == "hypocycloid" if rimsize > @hyporadius-hyposharpness rimsize = @hyporadius-hyposharpness endif ; rimsize endif ; @trapshape endif ; @hollow init: ; General variables bool trapped = FALSE int iter = 0 int index = int index2 = 0 float temp = float temp2 = 0.0 float trapmagnitude = 0.0 ; Variables for storing trapped values and computing color index int whichtrap = int trappediter = 0 float trappedangle = float trappedtrapmag = 0.0 complex trappedmodz = (0,0) float trappedzangle = 0.0 ; Variables to temprarily store & manipulate coordinates of current #z complex zcurrent = complex ztest = (0,0) ; for wavy circle distribution shape complex zoriginal = (0,0) float currentangle = 0.0 float currentshift = 0.0 float zangle = 0.0 ; angle of current #z relative to center of trapping region ; Initialize periodicity variables bool periodflag = TRUE ; default setting so that main iter routine in 'loop:' section ; will execute even if periodicity is not enabled bool angleflag = TRUE ; default setting so that main iter routine in 'loop:' section ; will execute even if angle restriction is not enabled float tempangle = 0.0 ; fBm initializations complex zmin = complex zfirst = complex zsecond = complex zlast = (0,0) complex zthree = complex zfour = complex zpenult = complex zantepenult = (0,0) complex zfBm = complex zminstar = complex ztemp = (0,0) float minz = float minstarz = 1.0e9 float tempcindex = float fbmadjust = float ftemp = 0.0 loop: iter = iter + 1 if @periodicity if (iter % @period) == periodphase periodflag = TRUE else periodflag = FALSE endif ; iter if @reversephase periodflag = !periodflag endif ; @reversephase endif ; @periodicity if @anglerestrict angleflag = FALSE tempangle = atan2(#z) if tempangle < 0 tempangle = tempangle + twopi endif ; tempangle if tempangle >= anglelowbound if tempangle <= anglehighbound angleflag = TRUE endif ; tempangle endif ; tempangle endif ; @anglerestrict if ( !trapped && ( iter > @skippediters ) && (iter <= watch) && periodflag && angleflag) if enableddistributioncenter zcurrent = #z - @distributioncenter else zcurrent = #z endif ; enableddistributioncenter if enableddistributionrotation zcurrent = zcurrent * distrotmultiplier endif ; enableddistributionrotation if ((@distributionshape == "wavy circle 1") || (@distributionshape == "sinusoid 1")) zoriginal = zcurrent elseif (@distributionshape == "wavy circle 2") zoriginal = zcurrent ftemp = atan2(zoriginal) ; compute current angle if ftemp < 0 ftemp = ftemp + twopi endif ; atan2 ftemp = @distrwaveamplitude * sin(@distrwavefrequency * ftemp) ; compute current radius adjustment zcurrent = zoriginal*(1+ftemp) ; compute next zcurrent at correct angle & radius elseif (@distributionshape == "sinusoid 2") zoriginal = zcurrent ftemp = real(zoriginal) ftemp = @distrwaveamplitude * sin(sinusoidshift * ftemp) ; compute current amplitude adjustment zcurrent = zoriginal + flip(ftemp) ; compute next zcurrent at correct imag amplitude endif ; @distributionshape index = @trapnumber repeat index = index-1 ztest = zcurrent - trapcenter if enabledtraprotation ztest = ztest * traprotmultiplier endif ; enabledtraprotation zangle = atan2(ztest) if zangle < 0.0 zangle = zangle + twopi endif ; zangle ; Begin main trap loop if @trapshape == "disk" if cabs(ztest) <= @diskradius trapped = TRUE endif ; cabs() elseif @trapshape == "strip" if abs(imag(ztest)) <= halfstriplength if abs( real(ztest) ) <= halfstripwidth trapped = TRUE endif ; abs(real) endif ; abs(imag) elseif @trapshape == "wave" temp = imag(ztest) if abs(temp) <= halfwavelength if abs( real(ztest) - (@waveamplitude*sin(wavefreq*temp)) ) <= halfwavewidth trapped = TRUE endif ; abs(real) endif ; abs(temp) elseif @trapshape == "polygon" index2 = 1 while index2 <= @polygonsides if zangle <= polyvertexangles[index2] trapmagnitude = @polygonradius*sin(polyvertexangles[index2] - polyvertexangles[index2-1]) \ / (sin(zangle - polyvertexangles[index2-1])- sin(zangle-polyvertexangles[index2])) index2 = @polygonsides endif ; zangle index2 = index2+1 endwhile ; index2 if cabs(ztest) <= trapmagnitude if !@hollow trapped = TRUE trappedtrapmag = trapmagnitude else if cabs(ztest) >= trapmagnitude-rimsize trapped = TRUE trappedtrapmag = trapmagnitude endif ; cabs() endif ; !@hollow endif ; cabs() elseif @trapshape == "star" index2 = 1 while index2 <= polystarmax if zangle <= polystarangles[index2] if index2 % 2 == 1 ; index2 is ODD trapmagnitude = radiusproduct* \ sin(polystarangles[index2] - polystarangles[index2-1]) / \ ( starspikiness*sin(zangle - polystarangles[index2-1])- \ @polystarradius*sin(zangle-polystarangles[index2]) ) else ; index3 is EVEN trapmagnitude = radiusproduct* \ sin(polystarangles[index2] - polystarangles[index2-1]) / \ ( @polystarradius*sin(zangle - polystarangles[index2-1])- \ starspikiness*sin(zangle-polystarangles[index2]) ) endif ; index2 index2 = polystarmax ; get ready to terminate loop endif ; zangle index2 = index2+1 endwhile ; index2 if cabs(ztest) <= trapmagnitude if !@hollow trapped = TRUE trappedtrapmag = trapmagnitude else if cabs(ztest) >= trapmagnitude-rimsize trapped = TRUE trappedtrapmag = trapmagnitude endif ; cabs() endif ; !@hollow endif ; cabs() elseif @trapshape == "ellipse" temp = abs(tan(zangle)) trapmagnitude = axisproduct*sqrt(1.0+temp*temp)/ \ (@ellipsemajorradius^@ellipseexponent + \ ((@ellipseminorradius* temp)^@ellipseexponent))^recipexponent if cabs(ztest) <= trapmagnitude if !@hollow trapped = TRUE trappedtrapmag = trapmagnitude else if cabs(ztest) >= trapmagnitude-rimsize trapped = TRUE trappedtrapmag = trapmagnitude endif ; cabs() endif ; !@hollow endif ; cabs() elseif @trapshape == "rose" trapmagnitude = @roseradius*sin(@rosepetals*zangle) if cabs(ztest) <= trapmagnitude if !@hollow trapped = TRUE trappedtrapmag = trapmagnitude else if cabs(ztest) >= trapmagnitude-rimsize trapped = TRUE trappedtrapmag = trapmagnitude endif ; cabs() endif ; !@hollow endif ; cabs() elseif @trapshape == "parabola" ; original code was flawed mathematically but made nice traps! ; retained as comments ; trapmagnitude = @parabolalength/(1+cos(zangle)) ; if abs(cabs(ztest) - trapmagnitude) <= halfparabwidth ; trapped = TRUE ; trappedtrapmag = trapmagnitude ; endif ; abs(real) temp = real(ztest) if ( abs(temp) ) <= parabhalfwidth if ( abs( imag(ztest) - @parabolacoeff*temp*temp ) ) <= parabhalfstrip trapped = TRUE endif ; abs(imag) endif ; abs(temp) elseif @trapshape == "semicubic parabola" temp = real(ztest) if (temp >= 0) && (temp <= @semicubicwidth) temp2 = imag(ztest) if ( abs( temp2 - @semicubiccoeff*(temp^@semicubicexponent) ) ) <= semicubichalfstrip trapped = TRUE else if ( abs( temp2 + @semicubiccoeff*(temp^@semicubicexponent) ) ) <= semicubichalfstrip trapped = TRUE endif ; abs(temp2) endif ; abs(temp2) endif ; temp elseif @trapshape == "cubic parabola" temp = real(ztest) if ( abs(temp) ) <= cubichalfwidth if ( abs( imag(ztest) - @cubiccoeff*temp^@cubicexponent ) ) <= cubichalfstrip trapped = TRUE endif ; abs(imag) endif ; abs(temp) elseif @trapshape == "hypocycloid" index2 = 1 while index2 <= @hypocusps if zangle <= hypocuspangles[index2] trapmagnitude = @hyporadius*sin(hypocuspangles[index2] - hypocuspangles[index2-1]) \ / (sin(zangle - hypocuspangles[index2-1])- sin(zangle-hypocuspangles[index2])) temp = reciphypoincrement*hypocuspangles[index2-1] ; coeff b of parametric equation of polygon side temp2 = zangle*reciphypoincrement - temp ; 0.0 <= parameter temp2 <= 1.0 temp2 = #pi*temp2 if !hypoadjust trapmagnitude = trapmagnitude - hyposharpness*sin(temp2) ; simulate hypocycloid shape else trapmagnitude = trapmagnitude - hyposharpness*(sin(temp2))^@hypoexponent endif ; hypoadjust index2 = @hypocusps endif ; zangle index2 = index2+1 endwhile ; index2 if cabs(ztest) <= trapmagnitude if !@hollow trapped = TRUE trappedtrapmag = trapmagnitude else if cabs(ztest) >= trapmagnitude-rimsize trapped = TRUE trappedtrapmag = trapmagnitude endif ; cabs() endif ; !@hollow endif ; cabs() elseif @trapshape == "ring" temp = cabs(ztest) if temp <= @ringradius if temp >= innerringradius trapped = TRUE endif ; temp endif ; temp elseif @trapshape == "ring segments" index2 = 1 while index2 < segmentmax if zangle <= segmentangles[index2] if zangle > segmentangles[index2-1] temp = cabs(ztest) if temp <= @segmentradius if temp >= innersegmentradius trapped = TRUE index2 = segmentmax endif ; temp endif ; temp endif ; zangle endif ; zangle index2 = index2+2 endwhile ; index2 endif ; @trapshape if trapped whichtrap = index trappedmodz = ztest trappediter = iter trappedzangle = zangle trappedangle = atan2(#z) if trappedangle < 0 trappedangle = trappedangle + twopi endif ; trappedangle endif ; trapped ; Get ready for next trap in series in case nothing was trapped so far if @distributionshape == "circle" zcurrent = zcurrent * distanglemultiplier elseif @distributionshape == "linear" zcurrent = zcurrent + zshift elseif @distributionshape == "spiral" zcurrent = spiralcontraction * (zcurrent * spiralanglemultiplier) elseif @distributionshape == "wavy circle 1" zoriginal = zoriginal * distanglemultiplier currentangle = currentangle + distributionangle ftemp = @distrwaveamplitude * sin(@distrwavefrequency * currentangle) ; compute current radius adjustment zcurrent = zoriginal*(1+ftemp) ; compute next zcurrent at correct angle & radius elseif @distributionshape == "wavy circle 2" zoriginal = zoriginal * distanglemultiplier ftemp = atan2(zoriginal) ; compute current angle if ftemp < 0 ftemp = ftemp + twopi endif ; atan2 ftemp = @distrwaveamplitude * sin(@distrwavefrequency * ftemp) ; compute current radius adjustment zcurrent = zoriginal*(1+ftemp) ; compute next zcurrent at correct angle & radius elseif @distributionshape == "sinusoid 1" zoriginal = zoriginal + zshift currentshift = currentshift + linearshift ftemp = @distrwaveamplitude * sin(sinusoidshift*currentshift) ; compute displacement in imaginary direction zcurrent = zoriginal + flip(ftemp) elseif @distributionshape == "sinusoid 2" zoriginal = zoriginal + zshift ftemp = real(zoriginal) ftemp = @distrwaveamplitude * sin(sinusoidshift*ftemp) ; compute displacement in imaginary direction zcurrent = zoriginal + flip(ftemp) endif ; @distributionshape until (index == 0) || trapped endif ; !trapped if @fBm if @fbminit == "min z" if iter > 1 ; skip first iter, since #z may have been initialized to (0,0) ftemp = cabs(#z) if ftemp < minz minz = ftemp zmin = #z endif ; ftemp endif ; iter elseif @fbminit == "min* z" if iter > 2 ; skip another iteration ftemp = cabs(#z) if ftemp < minstarz minstarz = ftemp zminstar = #z endif ; ftemp endif ; iter elseif @fbminit == "first z" if iter == 1 zfirst = #z endif ; iter elseif @fbminit == "second z" if iter == 2 zsecond = #z endif ; iter elseif @fbminit == "third z" if iter == 3 zthree = #z endif ; iter elseif @fbminit == "fourth z" if iter == 4 zfour = #z endif ; iter elseif @fbminit == "last z" zlast = #z elseif @fbminit == "penult z" zpenult = zlast zlast = #z elseif @fbminit == "antepenult z" zantepenult = zpenult zpenult = zlast zlast = #z endif ; @fbminit endif ; @fBm final: if !trapped if @reversetrap tempcindex = 0.0 else #solid = TRUE endif ; @reversetrap else ; Something has been trapped if @reversetrap #solid = TRUE else if @trapshape == "disk" if @colorby == "trap number" ; Color by which trap in the distribution sequence tempcindex = whichtrap*reciptrapnumber elseif @colorby == "center distance" ; Color by distance from trap center tempcindex = @compressrange * recipdiskradius * cabs(trappedmodz) elseif @colorby == "number/distance" ; Color by distance from trap center, in ranges tempcindex = reciptrapnumber * (@compressrange*recipdiskradius*cabs(trappedmodz) + whichtrap) elseif @colorby == "iteration" tempcindex = trappediter*recipwatch elseif @colorby == "angle" tempcindex = trappedzangle*reciptwopi elseif @colorby == "fixed ranges" tempcindex = recipranges * (@compressrange*recipdiskradius*cabs(trappedmodz) + (whichtrap%@colorranges) ) endif ; @colorby elseif @trapshape == "strip" if @colorby == "trap number" ; Color by which trap in the distribution sequence tempcindex = whichtrap*reciptrapnumber elseif @colorby == "center distance" ; Color by distance from trap center tempcindex = @compressrange * reciphalfstriplength * abs(imag(trappedmodz)) elseif @colorby == "number/distance" ; Color by distance from trap center, in ranges tempcindex = reciptrapnumber * (@compressrange*reciphalfstriplength*abs(imag(trappedmodz)) + whichtrap) elseif @colorby == "iteration" tempcindex = trappediter*recipwatch elseif @colorby == "angle" tempcindex = trappedzangle*reciptwopi elseif @colorby == "fixed ranges" tempcindex = recipranges * (@compressrange*reciphalfstriplength*abs(imag(trappedmodz)) + (whichtrap%@colorranges)) endif ; @colorby elseif @trapshape == "wave" if @colorby == "trap number" ; Color by which trap in the distribution sequence tempcindex = whichtrap*reciptrapnumber elseif @colorby == "center distance" ; Color by distance from trap center tempcindex = @compressrange * reciphalfwavelength * abs(imag(trappedmodz)) elseif @colorby == "number/distance" ; Color by distance from trap center, in ranges tempcindex = reciptrapnumber * (@compressrange*reciphalfwavelength*abs(imag(trappedmodz)) + whichtrap) elseif @colorby == "iteration" tempcindex = trappediter*recipwatch elseif @colorby == "angle" tempcindex = trappedzangle*reciptwopi elseif @colorby == "fixed ranges" tempcindex = recipranges * (@compressrange*reciphalfwavelength*abs(imag(trappedmodz)) + (whichtrap%@colorranges)) endif ; @colorby elseif @trapshape == "polygon" if @colorby == "trap number" ; Color by which trap in the distribution sequence tempcindex = whichtrap*reciptrapnumber elseif @colorby == "center distance" ; Color by distance from trap center tempcindex = @compressrange * cabs(trappedmodz)/trappedtrapmag elseif @colorby == "number/distance" ; Color by distance from trap center, in ranges tempcindex = reciptrapnumber * (@compressrange*cabs(trappedmodz)/trappedtrapmag + whichtrap) elseif @colorby == "iteration" tempcindex = trappediter*recipwatch elseif @colorby == "angle" tempcindex = trappedzangle*reciptwopi elseif @colorby == "fixed ranges" tempcindex = recipranges * (@compressrange*cabs(trappedmodz)/trappedtrapmag + (whichtrap%@colorranges)) endif ; @colorby elseif @trapshape == "star" if @colorby == "trap number" ; Color by which trap in the distribution sequence tempcindex = whichtrap*reciptrapnumber elseif @colorby == "center distance" ; Color by distance from trap center tempcindex = @compressrange * cabs(trappedmodz)/trappedtrapmag elseif @colorby == "number/distance" ; Color by distance from trap center, in ranges tempcindex = reciptrapnumber * (@compressrange*cabs(trappedmodz)/trappedtrapmag + whichtrap) elseif @colorby == "iteration" tempcindex = trappediter*recipwatch elseif @colorby == "angle" tempcindex = trappedzangle*reciptwopi elseif @colorby == "fixed ranges" tempcindex = recipranges * (@compressrange*cabs(trappedmodz)/trappedtrapmag + (whichtrap%@colorranges)) endif ; @colorby elseif @trapshape == "ellipse" if @colorby == "trap number" ; Color by which trap in the distribution sequence tempcindex = whichtrap*reciptrapnumber elseif @colorby == "center distance" ; Color by distance from trap center tempcindex = @compressrange * cabs(trappedmodz)/trappedtrapmag elseif @colorby == "number/distance" ; Color by distance from trap center, in ranges tempcindex = reciptrapnumber * (@compressrange*cabs(trappedmodz)/trappedtrapmag + whichtrap) elseif @colorby == "iteration" tempcindex = trappediter*recipwatch elseif @colorby == "angle" tempcindex = trappedzangle*reciptwopi elseif @colorby == "fixed ranges" tempcindex = recipranges * (@compressrange*cabs(trappedmodz)/trappedtrapmag + (whichtrap%@colorranges)) endif ; @colorby elseif @trapshape == "rose" if @colorby == "trap number" ; Color by which trap in the distribution sequence tempcindex = whichtrap*reciptrapnumber elseif @colorby == "center distance" ; Color by distance from trap center tempcindex = @compressrange * cabs(trappedmodz)/trappedtrapmag elseif @colorby == "number/distance" ; Color by distance from trap center, in ranges tempcindex = reciptrapnumber * (@compressrange*cabs(trappedmodz)/trappedtrapmag + whichtrap) elseif @colorby == "iteration" tempcindex = trappediter*recipwatch elseif @colorby == "angle" tempcindex = trappedzangle*reciptwopi elseif @colorby == "fixed ranges" tempcindex = recipranges * (@compressrange*cabs(trappedmodz)/trappedtrapmag + (whichtrap%@colorranges)) endif ; @colorby elseif @trapshape == "parabola" if @colorby == "trap number" ; Color by which trap in the distribution sequence tempcindex = whichtrap*reciptrapnumber ; original code was flawed but mathematically but made nice traps! ; retained as comments ; elseif @colorby == "center distance" ; Color by distance from trap center ; tempcindex = @compressrange * reciphalfstriplength * abs(imag(trappedmodz)) ; elseif @colorby == "number/distance" ; Color by distance from trap center, in ranges ; tempcindex = reciptrapnumber * (@compressrange*reciphalfstriplength*abs(imag(trappedmodz)) + whichtrap) elseif @colorby == "center distance" ; Color by distance from trap center tempcindex = @compressrange * recipparabhalfwidth * abs(real(trappedmodz)) elseif @colorby == "number/distance" ; Color by distance from trap center, in ranges tempcindex = reciptrapnumber * (@compressrange*recipparabhalfwidth*abs(real(trappedmodz)) + whichtrap) elseif @colorby == "iteration" tempcindex = trappediter*recipwatch elseif @colorby == "angle" tempcindex = trappedzangle*reciptwopi elseif @colorby == "fixed ranges" tempcindex = recipranges * (@compressrange*recipparabhalfwidth*abs(real(trappedmodz)) + (whichtrap%@colorranges)) endif ; @colorby elseif @trapshape == "semicubic parabola" if @colorby == "trap number" ; Color by which trap in the distribution sequence tempcindex = whichtrap*reciptrapnumber elseif @colorby == "center distance" ; Color by distance from trap center tempcindex = @compressrange * recipsemicubicwidth * real(trappedmodz) elseif @colorby == "number/distance" ; Color by distance from trap center, in ranges tempcindex = reciptrapnumber * (@compressrange*recipsemicubicwidth*real(trappedmodz) + whichtrap) elseif @colorby == "iteration" tempcindex = trappediter*recipwatch elseif @colorby == "angle" tempcindex = trappedzangle*reciptwopi elseif @colorby == "fixed ranges" tempcindex = recipranges * (@compressrange*recipsemicubicwidth*real(trappedmodz) + (whichtrap%@colorranges)) endif ; @colorby elseif @trapshape == "cubic parabola" if @colorby == "trap number" ; Color by which trap in the distribution sequence tempcindex = whichtrap*reciptrapnumber elseif @colorby == "center distance" ; Color by distance from trap center tempcindex = @compressrange * recipcubichalfwidth * abs(real(trappedmodz)) elseif @colorby == "number/distance" ; Color by distance from trap center, in ranges tempcindex = reciptrapnumber * (@compressrange*recipcubichalfwidth*abs(real(trappedmodz)) + whichtrap) elseif @colorby == "iteration" tempcindex = trappediter*recipwatch elseif @colorby == "angle" tempcindex = trappedzangle*reciptwopi elseif @colorby == "fixed ranges" tempcindex = recipranges * (@compressrange*recipcubichalfwidth*real(trappedmodz) + (whichtrap%@colorranges)) endif ; @colorby elseif @trapshape == "hypocycloid" if @colorby == "trap number" ; Color by which trap in the distribution sequence tempcindex = whichtrap*reciptrapnumber elseif @colorby == "center distance" ; Color by distance from trap center tempcindex = @compressrange * cabs(trappedmodz)/trappedtrapmag elseif @colorby == "number/distance" ; Color by distance from trap center, in ranges tempcindex = reciptrapnumber * (@compressrange*cabs(trappedmodz)/trappedtrapmag + whichtrap) elseif @colorby == "iteration" tempcindex = trappediter*recipwatch elseif @colorby == "angle" tempcindex = trappedzangle*reciptwopi elseif @colorby == "fixed ranges" tempcindex = recipranges * (@compressrange*cabs(trappedmodz)/trappedtrapmag + (whichtrap%@colorranges)) endif ; @colorby elseif @trapshape == "ring" if @colorby == "trap number" ; Color by which trap in the distribution sequence tempcindex = whichtrap*reciptrapnumber elseif @colorby == "center distance" ; Color by distance from trap center tempcindex = @compressrange * recipringwidth * cabs(trappedmodz) elseif @colorby == "number/distance" ; Color by distance from trap center, in ranges tempcindex = reciptrapnumber * (@compressrange*recipringwidth*cabs(trappedmodz) + whichtrap) elseif @colorby == "iteration" tempcindex = trappediter*recipwatch elseif @colorby == "angle" tempcindex = trappedzangle*reciptwopi elseif @colorby == "fixed ranges" tempcindex = recipranges * (@compressrange*recipringwidth*cabs(trappedmodz) + (whichtrap%@colorranges)) endif ; @colorby elseif @trapshape == "ring segments" if @colorby == "trap number" ; Color by which trap in the distribution sequence tempcindex = whichtrap*reciptrapnumber elseif @colorby == "center distance" ; Color by distance from trap center tempcindex = @compressrange * recipsegmentwidth * cabs(trappedmodz) elseif @colorby == "number/distance" ; Color by distance from trap center, in ranges tempcindex = reciptrapnumber * (@compressrange*recipsegmentwidth*cabs(trappedmodz) + whichtrap) elseif @colorby == "iteration" tempcindex = trappediter*recipwatch elseif @colorby == "angle" tempcindex = trappedzangle*reciptwopi elseif @colorby == "fixed ranges" tempcindex = recipranges * (@compressrange*recipsegmentwidth*cabs(trappedmodz) + (whichtrap%@colorranges)) endif ; @colorby endif ; @trapshape endif ; @reversetrap endif ; !trapped ; Figure amount of fBm ; fBm code adapted from code of dmj, mt, and others if @fBm if @fbminit == "min z" zfBm = zmin elseif @fbminit == "min* z" zfBm = zminstar elseif @fbminit == "first z" zfBm = zfirst elseif @fbminit == "second z" zfBm = zsecond elseif @fbminit == "third z" zfBm = zthree elseif @fbminit == "fourth z" zfBm = zfour elseif @fbminit == "last z" zfBm = zlast elseif @fbminit == "penult z" zfBm = zpenult elseif @fbminit == "antepenult z" zfBm = zantepenult elseif @fbminit == "pixel" zfBm = #pixel ; elseif @fbminit == "blend1" ; if @fbmblendmode2 == "normal" ; ztemp = zfirst ; elseif @fbmblendmode2 == "negate" ; ztemp = -zfirst ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zfirst) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zfirst) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zfirst)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = zmin*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = zmin+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = zmin-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = zmin/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = zmin^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-zmin ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/zmin ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^zmin ; endif; @fbmblendmode1 ; elseif @fbminit == "blend2" ; if @fbmblendmode2 == "normal" ; ztemp = zsecond ; elseif @fbmblendmode2 == "negate" ; ztemp = -zsecond ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zsecond) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zsecond) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zsecond)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = zmin*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = zmin+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = zmin-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = zmin/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = zmin^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-zmin ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/zmin ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^zmin ; endif; @fbmblendmode1 ; elseif @fbminit == "blend3" ; if @fbmblendmode2 == "normal" ; ztemp = (sum+flip(sum2)) ; elseif @fbmblendmode2 == "negate" ; ztemp = -(sum+flip(sum2)) ; elseif @fbmblendmode2 == "flip" ; ztemp = flip((sum+flip(sum2))) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj((sum+flip(sum2))) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj((sum+flip(sum2)))) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = zmin*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = zmin+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = zmin-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = zmin/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = zmin^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-zmin ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/zmin ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^zmin ; endif; @fbmblendmode1 ; elseif @fbminit == "blend4" ; if @fbmblendmode2 == "normal" ; ztemp = zfirst ; elseif @fbmblendmode2 == "negate" ; ztemp = -zfirst ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zfirst) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zfirst) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zfirst)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = zsecond*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = zsecond+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = zsecond-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = zsecond/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = zsecond^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-zsecond ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/zsecond ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^zsecond ; endif; @fbmblendmode1 ; elseif @fbminit == "blend5" ; if @fbmblendmode2 == "normal" ; ztemp = zsecond ; elseif @fbmblendmode2 == "negate" ; ztemp = -zsecond ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zsecond) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zsecond) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zsecond)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = zsecond*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = zsecond+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = zsecond-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = zsecond/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = zsecond^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-zsecond ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/zsecond ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^zsecond ; endif; @fbmblendmode1 ; elseif @fbminit == "blend6" ; if @fbmblendmode2 == "normal" ; ztemp = (sum+flip(sum2)) ; elseif @fbmblendmode2 == "negate" ; ztemp = -(sum+flip(sum2)) ; elseif @fbmblendmode2 == "flip" ; ztemp = flip((sum+flip(sum2))) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj((sum+flip(sum2))) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj((sum+flip(sum2)))) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = zsecond*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = zsecond+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = zsecond-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = zsecond/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = zsecond^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-zsecond ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/zsecond ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^zsecond ; endif; @fbmblendmode1 ; elseif @fbminit == "blend7" ; if @fbmblendmode2 == "normal" ; ztemp = zfirst ; elseif @fbmblendmode2 == "negate" ; ztemp = -zfirst ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zfirst) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zfirst) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zfirst)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = (sum+flip(sum2))*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = (sum+flip(sum2))+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = (sum+flip(sum2))-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = (sum+flip(sum2))/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = (sum+flip(sum2))^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-(sum+flip(sum2)) ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/(sum+flip(sum2)) ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^(sum+flip(sum2)) ; endif; @fbmblendmode1 ; elseif @fbminit == "blend8" ; if @fbmblendmode2 == "normal" ; ztemp = zthree ; elseif @fbmblendmode2 == "negate" ; ztemp = -zthree ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zthree) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zthree) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zthree)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = (sum+flip(sum2))*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = (sum+flip(sum2))+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = (sum+flip(sum2))-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = (sum+flip(sum2))/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = (sum+flip(sum2))^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-(sum+flip(sum2)) ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/(sum+flip(sum2)) ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^(sum+flip(sum2)) ; endif; @fbmblendmode1 ; elseif @fbminit == "blend9" ; if @fbmblendmode2 == "normal" ; ztemp = zantepenult ; elseif @fbmblendmode2 == "negate" ; ztemp = -zantepenult ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zantepenult) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zantepenult) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zantepenult)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = (sum+flip(sum2))*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = (sum+flip(sum2))+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = (sum+flip(sum2))-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = (sum+flip(sum2))/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = (sum+flip(sum2))^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-(sum+flip(sum2)) ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/(sum+flip(sum2)) ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^(sum+flip(sum2)) ; endif; @fbmblendmode1 endif ; @fbminit if @fbmtransform zangle = atan2(zfBm) if zangle < 0 zangle = zangle + twopi endif ; zangle if @fbmtransformfunc == "circle" ftemp = @fbmcradius*cos(@fbmcfrequency*zangle) zfBm = ftemp*exp(flip(zangle)) elseif @fbmtransformfunc == "cardioid" ftemp = @fbmcardradius - @fbmcardradius*cos(@fbmcardfreq*zangle) zfBm = ftemp*exp(flip(zangle)) elseif @fbmtransformfunc == "lissajous" ftemp = @fbmlissaamp1 * cos(@fbmlissafreq1*zangle + @fbmlissaphase1) ftemp2 = @fbmlissaamp2 * cos(@fbmlissafreq2*zangle + @fbmlissaphase2) zfBm = ftemp + flip(ftemp2) elseif @fbmtransformfunc == "hypocycloid" ftemp = hypocycvar1 * cos(zangle) - @fbmhypocyc2 * cos(hypocycvar2*zangle) ftemp2 = hypocycvar1 * sin(zangle) + @fbmhypocyc2 * sin(hypocycvar2*zangle) zfBm = ftemp + flip(ftemp2) elseif @fbmtransformfunc == "parabola" ftemp = @fbmparabscale/(@fbmparaboffset+cos(@fbmparabfreq*zangle)) zfBm = ftemp*exp(flip(zangle)) endif; @transformfunc endif; @transform if @fbmhybrid ztemp = @fbmhybridweight*#pixel if @fbmhybridtype == "*" zfBm = ztemp*zfBm elseif @fbmhybridtype == "+" zfBm = ztemp+zfBm elseif @fbmhybridtype == "-" zfBm = ztemp-zfBm elseif @fbmhybridtype == "/" zfBm = ztemp/zfBm elseif @fbmhybridtype == "^" zfBm = ztemp^zfBm elseif @fbmhybridtype == "--" zfBm = zfBm-ztemp elseif @fbmhybridtype == "//" zfBm = zfBm/ztemp elseif @fbmhybridtype == "^^" zfBm = zfBm^ztemp elseif @fbmhybridtype == "average" zfBm = (ztemp+zfBm)/2 elseif @fbmhybridtype == "geom mean" zfBm = sqrt(ztemp*zfBm) endif; @fbmhybridtype endif; @fbmhybrid if @fbmbias zfBm = zfBm*@fbmbiasamount endif ; @fbmbias zfBm = zfBm + @boffset float bfreq = @bbfreq complex br = (0,1) ^ banglevar complex br2 = (0,1) ^ banglestepvar complex bp = zfBm * @bscale * br float bsum = 0.0 int bi = @boctaves while (bi > 0) float bx0 = floor(real(bp)) % @fbmint1 float by0 = floor(imag(bp)) % @fbmint1 if bx0 < 0 bx0 = bx0 + @fbmint1 endif ; bx0 if by0 < 0 by0 = by0 + @fbmint1 endif ; by0 float bx1 = (bx0 + 1) % @fbmint1 float by1 = (by0 + 1) % @fbmint1 float rx0 = real(bp) - floor(real(bp)) float ry0 = imag(bp) - floor(imag(bp)) float rx1 = rx0 - 1 float ry1 = ry0 - 1 float b00 = (bx0^@bpower % @fbmint2 + by0)^@bpower % @fbmint2 float b10 = (bx1^@bpower % @fbmint2 + by0)^@bpower % @fbmint2 float b01 = (bx0^@bpower % @fbmint2 + by1)^@bpower % @fbmint2 float b11 = (bx1^@bpower % @fbmint2 + by1)^@bpower % @fbmint2 float g_b00_0 = (b00)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b10_0 = (b10)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b01_0 = (b01)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b11_0 = (b11)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b00_1 = (b00+1)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b10_1 = (b10+1)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b01_1 = (b01+1)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b11_1 = (b11+1)^@bpower*0.25 % @fbmint3 - @fbmint1 float bd = 0.0 bd = 1 / sqrt(sqr(g_b00_0) + sqr(g_b00_1)) g_b00_0 = g_b00_0 * bd g_b00_1 = g_b00_1 * bd bd = 1 / sqrt(sqr(g_b10_0) + sqr(g_b10_1)) g_b10_0 = g_b10_0 * bd g_b10_1 = g_b10_1 * bd bd = 1 / sqrt(sqr(g_b01_0) + sqr(g_b01_1)) g_b01_0 = g_b01_0 * bd g_b01_1 = g_b01_1 * bd bd = 1 / sqrt(sqr(g_b11_0) + sqr(g_b11_1)) g_b11_0 = g_b11_0 * bd g_b11_1 = g_b11_1 * bd float u1 = rx0 * g_b00_0 + ry0 * g_b00_1 float v1 = rx1 * g_b10_0 + ry0 * g_b10_1 float u2 = rx0 * g_b01_0 + ry1 * g_b01_1 float v2 = rx1 * g_b11_0 + ry1 * g_b11_1 float sx = sqr(rx0) * (3 - rx0*2) float sy = sqr(ry0) * (3 - ry0*2) float ba = u1 + sx*(v1-u1) float bb = u2 + sx*(v2-u2) bsum = bsum + (ba + sy*(bb-ba))* bfreq if @fbmfunc != 0 bsum = @funcprescale * bsum if ( @fbmfunc == 1 ) ftemp = 1/bsum elseif ( @fbmfunc == 2 ) ftemp = bsum * bsum elseif ( @fbmfunc == 3 ) ftemp = 1 / ( bsum * bsum ) elseif ( @fbmfunc == 4 ) ftemp = @funcparam1*log(bsum) elseif ( @fbmfunc == 5 ) ftemp = @funcparam1*exp( bsum) elseif ( @fbmfunc == 6 ) ftemp = @funcparam1*bsum^(bsum) elseif ( @fbmfunc == 7 ) ftemp = @funcparam1*sin( bsum ) elseif ( @fbmfunc == 8 ) ftemp = @funcparam1*cos( bsum ) elseif ( @fbmfunc == 9 ) ftemp = @funcparam1*tan( bsum ) elseif ( @fbmfunc == 10 ) ftemp = @funcparam1*asin( bsum ) elseif ( @fbmfunc == 11 ) ftemp = @funcparam1*acos( bsum ) elseif ( @fbmfunc == 12 ) ftemp = @funcparam1*atan( bsum ) elseif ( @fbmfunc == 13 ) ftemp = @funcparam1*sinh( bsum ) elseif ( @fbmfunc == 14 ) ftemp = @funcparam1*cosh( bsum ) elseif ( @fbmfunc == 15 ) ftemp = @funcparam1*tanh( bsum ) elseif ( @fbmfunc == 16 ) ftemp = @funcparam1*asinh( bsum ) elseif ( @fbmfunc == 17 ) ftemp = @funcparam1*acosh( bsum ) elseif ( @fbmfunc == 18 ) ftemp = @funcparam1*atanh( bsum ) elseif ( @fbmfunc == 19 ) ftemp = @funcparam1*log( 1/bsum ) elseif ( @fbmfunc == 20 ) ftemp = @funcparam1*log( @funcparam2*log( bsum )) elseif ( @fbmfunc == 21 ) ftemp = @funcparam1*exp( -bsum ) elseif ( @fbmfunc == 22 ) ftemp = @funcparam1*exp( 1/bsum ) elseif ( @fbmfunc == 23 ) ftemp = @funcparam1*bsum^(-bsum) elseif ( @fbmfunc == 24 ) ftemp = @funcparam1*(sin( bsum ))^@funcparam2 elseif ( @fbmfunc == 25 ) ftemp = @funcparam1*(cos( bsum ))^@funcparam2 elseif ( @fbmfunc == 26 ) ftemp = @funcparam1*(tan( bsum ))^@funcparam2 elseif ( @fbmfunc == 27 ) ftemp = @funcparam1*cotan( bsum ) elseif ( @fbmfunc == 28 ) ftemp = @funcparam1/cos( bsum ) elseif ( @fbmfunc == 29 ) ftemp = @funcparam1/sin( bsum ) elseif ( @fbmfunc == 30 ) ftemp = @funcparam1*(cotan( bsum ))^@funcparam2 elseif ( @fbmfunc == 31 ) ftemp = @funcparam1/(cos( bsum ))^@funcparam2 elseif ( @fbmfunc == 32 ) ftemp = @funcparam1/(sin( @funcparam1*bsum ))^@funcparam2 elseif ( @fbmfunc == 33 ) ftemp = @funcparam1*bsum^(bsum) ftemp = @funcparam2*bsum^(ftemp) elseif ( @fbmfunc == 34 ) ftemp = @funcparam1*bsum^(bsum) ftemp = @funcparam2/( bsum^ftemp ) elseif ( @fbmfunc == 35 ) ftemp = @funcparam1*log(-bsum) elseif ( @fbmfunc == 36 ) ftemp = @funcparam1/log( bsum ) elseif ( @fbmfunc == 37 ) ftemp = @funcparam1* bsum * log( bsum ) elseif ( @fbmfunc == 38 ) ftemp = @funcparam1* sin( bsum ) / bsum elseif ( @fbmfunc == 39 ) ftemp = @funcparam1* cos( bsum ) / bsum elseif ( @fbmfunc == 40 ) ftemp = @funcparam1* sin( bsum ) * cos( @funcparam2*bsum ) elseif ( @fbmfunc == 41 ) ftemp = @funcparam1*sin( bsum^2 ) elseif ( @fbmfunc == 42 ) ftemp = @funcparam1*exp( -1/bsum ) elseif ( @fbmfunc == 43 ) ftemp = @funcparam1* bsum * exp( bsum ) elseif ( @fbmfunc == 44 ) ftemp = @funcparam1* bsum * exp( -bsum ) elseif ( @fbmfunc == 45 ) ftemp = @funcparam1* bsum * exp( 1/bsum ) elseif ( @fbmfunc == 46 ) ftemp = @funcparam1* bsum * exp( -1/bsum ) elseif ( @fbmfunc == 47 ) ftemp = @funcparam1* bsum * bsum * bsum elseif ( @fbmfunc == 48 ) ftemp = @funcparam1 / ( bsum * bsum * bsum ) elseif ( @fbmfunc == 49 ) ftemp = @funcparam1*atan( 1 / bsum ) elseif ( @fbmfunc == 50 ) ftemp = @funcparam1*acos( 1 / bsum ) elseif ( @fbmfunc == 51 ) ftemp = @funcparam1*asin( 1 / bsum ) elseif ( @fbmfunc == 52 ) ftemp = @funcparam1*tan( bsum ) / bsum elseif ( @fbmfunc == 53 ) ftemp = @funcparam1*cotan( bsum ) / bsum elseif ( @fbmfunc == 54 ) ftemp = @funcparam1 / ( bsum * cos( bsum )) elseif ( @fbmfunc == 55 ) ftemp = @funcparam1 / ( bsum * sin( bsum )) elseif ( @fbmfunc == 56 ) ftemp = @funcparam1* bsum * sin( bsum ) elseif ( @fbmfunc == 57 ) ftemp = @funcparam1* bsum * cos( bsum ) elseif ( @fbmfunc == 58 ) ftemp = @funcparam1* bsum * tan( bsum ) elseif ( @fbmfunc == 59 ) ftemp = @funcparam1* bsum * cotan( bsum ) elseif ( @fbmfunc == 60 ) ftemp = @funcparam1*bsum/cos( bsum ) elseif ( @fbmfunc == 61 ) ftemp = @funcparam1*bsum/sin( bsum ) elseif ( @fbmfunc == 62 ) ftemp = @funcparam1*sin( 1/bsum ) elseif ( @fbmfunc == 63 ) ftemp = @funcparam1*cos( 1/bsum ) elseif ( @fbmfunc == 64 ) ftemp = @funcparam1*tan( 1/bsum ) elseif ( @fbmfunc == 65 ) ftemp = @funcparam1*cotan( 1/bsum ) elseif ( @fbmfunc == 66 ) ftemp = @funcparam1/cos( 1/bsum ) elseif ( @fbmfunc == 67 ) ftemp = @funcparam1/sin( 1/bsum ) elseif ( @fbmfunc == 68 ) ftemp = @funcparam1*cotanh( bsum ) elseif ( @fbmfunc == 69 ) ftemp = @funcparam1/cosh( bsum ) elseif ( @fbmfunc == 70 ) ftemp = @funcparam1/sinh( bsum ) elseif ( @fbmfunc == 71 ) ftemp = @funcparam1*atanh( 1/bsum ) elseif ( @fbmfunc == 72 ) ftemp = @funcparam1*acosh( 1/bsum ) elseif ( @fbmfunc == 73 ) ftemp = @funcparam1*asinh( 1/bsum ) elseif @fbmfunc == 74 ftemp = bsum^@funcpower elseif @fbmfunc == 75 ftemp = @funcparam1*(sinh(bsum))^@funcparam2 elseif @fbmfunc == 76 ftemp = @funcparam1*(cosh( bsum ))^@funcparam2 elseif @fbmfunc == 77 ftemp = @funcparam1*(tanh(bsum))^@funcparam2 elseif @fbmfunc == 78 ftemp = @funcparam1*(cotanh( bsum ))^@funcparam2 elseif @fbmfunc == 79 ftemp = @funcparam1*(1/cosh(bsum))^@funcparam2 elseif @fbmfunc == 80 ftemp = @funcparam1*(1 / sinh( bsum ))^@funcparam2 elseif @fbmfunc == 81 ftemp = @funcparam1*sinh(1/bsum) elseif @fbmfunc == 82 ftemp = @funcparam1*cosh(1/bsum) elseif @fbmfunc == 83 ftemp = @funcparam1*tanh(1/bsum) elseif @fbmfunc == 84 ftemp = @funcparam1*cotanh(1/bsum) elseif @fbmfunc == 85 ftemp = @funcparam1/cosh(1/bsum) elseif @fbmfunc == 86 ftemp = @funcparam1/sinh(1/bsum) elseif @fbmfunc == 87 ftemp = @funcparam1*sin( bsum ) * tan(@funcparam2*bsum) elseif @fbmfunc == 88 ftemp = @funcparam1*sinh(bsum) * tanh(@funcparam2*bsum) elseif @fbmfunc == 89 ftemp = @funcparam1*sinh(bsum) * cosh(@funcparam2*bsum) elseif @fbmfunc == 90 ftemp = (sinh(bsum)^@funcparam1)*(cosh(bsum)^@funcparam2) elseif @fbmfunc == 91 ftemp = (sin(bsum)^@funcparam1)*(cos(bsum)^@funcparam2) elseif @fbmfunc == 92 ftemp = 1/bsum ftemp = @funcparam1*sin(ftemp)*cos(@funcparam2*ftemp) elseif @fbmfunc == 93 ftemp = @funcparam1*(sin( 1/bsum ))^@funcparam2 elseif @fbmfunc == 94 ftemp = @funcparam1* sin(bsum) * cos(@funcparam2/bsum) elseif @fbmfunc == 95 ftemp = @funcparam1* sin(bsum) * sin(@funcparam2/bsum) elseif @fbmfunc == 96 ftemp = (log(bsum))^@funcparam1 elseif @fbmfunc == 97 ftemp = @funcparam1*sin(bsum) * sin(@funcparam2*bsum) elseif @fbmfunc == 98 ftemp = exp(2*bsum) elseif @fbmfunc == 99 ftemp = exp(-2*bsum) elseif @fbmfunc == 100 ftemp = 1/bsum ftemp = @funcparam1*sinh(ftemp)*cosh(@funcparam2*ftemp) elseif @fbmfunc == 101 ftemp = @funcparam1*(sinh( 1/bsum )^@funcparam2) elseif @fbmfunc == 102 ftemp = @funcparam1*sinh(bsum) * cosh(@funcparam2/bsum) elseif @fbmfunc == 103 ftemp = @funcparam1*sinh(bsum) * sinh(@funcparam2/bsum) elseif @fbmfunc == 104 ftemp = @funcparam1*sin(bsum) * sinh(@funcparam2*bsum) elseif @fbmfunc == 105 ftemp = @funcparam1*sin(bsum) * cosh(@funcparam2*bsum) elseif @fbmfunc == 106 ftemp = (sin(bsum)^@funcparam1)*(sinh(bsum)^@funcparam2) elseif @fbmfunc == 107 ftemp = @funcparam1*sin(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 108 ftemp = @funcparam1*cos(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 109 ftemp = @funcparam1*sinh(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 110 ftemp = @funcparam1*cosh(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 111 ftemp = @funcparam1*sin(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 112 ftemp = @funcparam1*cos(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 113 ftemp = @funcparam1*sinh(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 114 ftemp = @funcparam1*cosh(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 115 ftemp = @funcparam1*exp(bsum^@funcparam2) elseif @fbmfunc == 116 ftemp = @funcparam1*exp(1/(bsum^@funcparam2)) elseif @fbmfunc == 117 ftemp = abs(bsum) elseif @fbmfunc == 118 ftemp = round(bsum) elseif @fbmfunc == 119 ftemp = trunc(bsum) elseif @fbmfunc == 120 ftemp = ceil(bsum) elseif @fbmfunc == 121 ftemp = floor(bsum) elseif @fbmfunc == 122 ftemp = @funcparam1*bsum/log(bsum) elseif @fbmfunc == 123 ftemp = @funcparam1*log(bsum)/bsum elseif @fbmfunc == 124 ftemp = @funcparam1*exp(bsum)/bsum elseif @fbmfunc == 125 ftemp = @funcparam1*exp(1/bsum)/bsum elseif @fbmfunc == 126 ftemp = @funcparam1*exp(bsum^@funcparam2)/bsum elseif @fbmfunc == 127 ftemp = @funcparam1*exp(1/(bsum^@funcparam2))/bsum elseif @fbmfunc == 128 ftemp = @funcparam1*bsum * exp(bsum^@funcparam2) elseif @fbmfunc == 129 ftemp = @funcparam1*bsum * exp(1/(bsum^@funcparam2)) elseif @fbmfunc == 130 ftemp = @funcparam1*exp(-(bsum^@funcparam2)) elseif @fbmfunc == 131 ftemp = @funcparam1*exp(-1/(bsum^@funcparam2)) elseif @fbmfunc == 132 ftemp = @funcparam1*exp(-(bsum^@funcparam2))/bsum elseif @fbmfunc == 133 ftemp = @funcparam1*exp(-1/(bsum^@funcparam2))/bsum elseif @fbmfunc == 134 ftemp = @funcparam1*bsum * exp(-(bsum^@funcparam2)) elseif @fbmfunc == 135 ftemp = @funcparam1*bsum * exp(-1/(bsum^@funcparam2)) else ; @fbmfunc == 136 ftemp = bsum % @funcparam1 endif ; bsumwarp bsum = ftemp endif ; @fbmfunc bsum = (bsum + @bsumoffset) * @bpostscale bfreq = bfreq * @bstep bp = bp * br2 / @bstep bi = bi - 1 endwhile ; bi fbmadjust = @fbmamount * (bsum + 1) endif ; @fBm #index = tempcindex + fbmadjust default: title = "Bubbles+" heading caption = "Trap Settings" text = "The size, shape, and other parameters for the various \ trapping regions are defined in this section. The ways these traps \ are distributed around the iteration plane are defined in the \ 'Distribution Settings' section" expanded = TRUE endheading param trapshape caption = "Trap Shape" enum = "disk" "strip" "wave" "polygon" "star" \ "ellipse" "rose" "parabola" "semicubic parabola" "cubic parabola" \ "hypocycloid" "ring" "ring segments" default = 0 hint = "Each of the individual trapping regions will have this shape" endparam param diskradius caption = "Disk Radius" default = 0.1 hint = "The radius or size of each disk trapping region" visible = @trapshape == "disk" endparam param stripwidth caption = "Strip Width" default = 0.03 hint = "The width of each strip trapping region" visible = @trapshape == "strip" endparam param striplength caption = "Strip Length" default = 0.6 hint = "The length of each strip trapping region" visible = @trapshape == "strip" endparam param wavelength caption = "Wave Length" default = 0.6 hint = "The length of each wave trapping region" visible = @trapshape == "wave" endparam param wavewidth caption = "Wave Width" default = 0.05 hint = "The width of each wave trapping region" visible = @trapshape == "wave" endparam param wavefrequency caption = "Wave Frequency" default = 3.0 hint = "The frequency of the wave" visible = @trapshape == "wave" endparam param waveamplitude caption = "Wave Amplitude" default = 0.05 hint = "The amplitude of the wave" visible = @trapshape == "wave" endparam param polygonsides caption = "Polygon Sides" default = 3 min = 3 max = 18 hint = "Number of sides in the polygon (3-18)" visible = @trapshape == "polygon" endparam param polygonradius caption = "Polygon Size" default = 0.1 hint = "Determines the size of the polygon; radius of circumscribing circle" visible = @trapshape == "polygon" endparam param polystarpoints caption = "Star Points" default = 5 min = 3 max = 18 hint = "Number of points on the N-pointed star (3-18)" visible = @trapshape == "star" endparam param polystarradius caption = "Star Size" default = 0.1 hint = "Determines the overall size of the star; radius of circumscribing circle" visible = @trapshape == "star" endparam param polystarspikiness caption = "Star Spikiness" default = 3.0 hint = "Determines the relative length of the star arms" visible = @trapshape == "star" endparam param ellipsemajorradius caption = "Ellipse Major Radius" default = 0.15 hint = "The size of the ellipse major axis" visible = @trapshape == "ellipse" endparam param ellipseminorradius caption = "Ellipse Minor Radius" default = 0.05 hint = "The size of the ellipse minor axis" visible = @trapshape == "ellipse" endparam param ellipseexponent caption = "Ellipse Exponent" default = 2.0 hint = "For an ellipse, set this parameter to 2; for a superellipse, >2; \ for a subellipse, between 1 and 2; for a square, 1; and for an astroid, \ < 1" visible = @trapshape == "ellipse" endparam param rosepetals caption = "Rose Petals" default = 6 hint = "Number of petals of the rose" visible = @trapshape == "rose" endparam param roseradius caption = "Rose Size" default = 0.1 hint = "Determines the overall size of the rose; radius of circumscribing circle" visible = @trapshape == "rose" endparam param parabolawidth caption = "Parabola Width" default = 0.4 hint = "The overall width of the parabola trapping region" visible = @trapshape == "parabola" endparam param parabolacoeff caption = "Parabola Coefficient" default = 6.0 hint = "The length and other aspects of the parabola are modified by \ this parameter" visible = @trapshape == "parabola" endparam param parabolastrip caption = "Parabola Strip Width" default = 0.02 hint = "The width of the actual parabola trapping region is set by this number" visible = @trapshape == "parabola" endparam param semicubicwidth caption = "Semicubic Width" default = 0.2 hint = "The overall width of the semicubic parabola trapping region" visible = @trapshape == "semicubic parabola" endparam param semicubiccoeff caption = "Semicubic Coefficient" default = 2.0 hint = "The length and other aspects of the semicubic parabola are modified by \ this parameter" visible = @trapshape == "semicubic parabola" endparam param semicubicstrip caption = "Semicubic Strip Width" default = 0.01 hint = "The width of the actual semicubic trapping region is set by this number" visible = @trapshape == "semicubic parabola" endparam param semicubicexponent caption = "Semicubic Exponent" default = 1.5 hint = "The curve shape can deviate from semicubic if this parameter is changed" visible = @trapshape == "semicubic parabola" endparam param cubicwidth caption = "Cubic Width" default = 0.4 hint = "The overall width of the cubic parabola trapping region" visible = @trapshape == "cubic parabola" endparam param cubiccoeff caption = "Cubic Coefficient" default = 10.0 hint = "The length and other aspects of the cubic parabola are modified by \ this parameter" visible = @trapshape == "cubic parabola" endparam param cubicstrip caption = "Cubic Strip Width" default = 0.01 hint = "The width of the actual cubic trapping region is set by this number" visible = @trapshape == "cubic parabola" endparam param cubicexponent caption = "Cubic Exponent" default = 3.0 hint = "The curve shape can deviate from cubic if this parameter is changed" visible = @trapshape == "cubic parabola" endparam param hypocusps caption = "Hypocycloid Cusps" default = 5 min = 3 max = 18 hint = "Number of points of the hypocycloid (3-18)" visible = @trapshape == "hypocycloid" endparam param hyporadius caption = "Hypocycloid Size" default = 0.1 hint = "Determines the overall size of the hypocycloid; radius of \ circumscribing circle" visible = @trapshape == "hypocycloid" endparam param hypodepth caption = "Cusp Depth" default = 0.1 hint = "Determines the sharpness of the hypocycloid cusps" visible = @trapshape == "hypocycloid" endparam param hypoexponent caption = "Cusp Adjustment" default = 0.333333333333333 hint = "Affects the curvature and sharpness of the hypocycloid cusps" visible = @trapshape == "hypocycloid" endparam param ringradius caption = "Ring Radius" default = 0.1 hint = "The radius or size of each ring-shaped trapping region" visible = @trapshape == "ring" endparam param ringwidth caption = "Ring Width" default = 0.05 hint = "The width of each ring-shaped trapping region" visible = @trapshape == "ring" endparam param segmentsides caption = "Segment Sides" default = 4 min = 1 max = 18 hint = "Number of segments in the ring (1-18)" visible = @trapshape == "ring segments" endparam param segmentradius caption = "Segment Radius" default = 0.1 hint = "The radius or size of each ring segment trapping region" visible = @trapshape == "ring segments" endparam param segmentwidth caption = "Segment Width" default = 0.05 hint = "The width of each ring segment trapping region" visible = @trapshape == "ring segments" endparam param segmentblackspace caption = "Segment Blackspace" default = 0.2 min = 0.0 max = 1.0 hint = "The total fraction of the 360 degree angular ring space that forms the \ gaps between the individual ring segments (0.0-1.0)" visible = @trapshape == "ring segments" endparam param traprotation caption = "Trap Rotation" default = 0.0 min = -180.0 max = 360.0 hint = "The amount each trap is rotated from its default position \ (0-360 degrees)" visible = (@trapshape != "disk") && (@trapshape != "ring") endparam param hollow caption = "Hollow Shape?" default = FALSE hint = "If enabled, then the trap shapes are hollow, like the 'ring' setting. \ The width of the ring is set by parameter 'Shape Width'" visible = ( (@trapshape == 3) || (@trapshape == 4) || (@trapshape == 5) || \ (@trapshape == 6) || (@trapshape == 10) ) endparam param rimwidth caption = "Shape Width" default = 0.05 min = 0.0 hint = "If 'Hollow Shape' is enabled, then the width of the 'ring' \ is set by this setting" visible = ( ((@trapshape == 3) || (@trapshape == 4) || (@trapshape == 5) || \ (@trapshape == 6) || (@trapshape == 10)) && @hollow ) endparam heading caption = "Distribution Settings" text = "The various traps defined in the 'Trap Settings' section are \ distributed around the complex plane according to the settings \ found in this section" expanded = TRUE endheading param trapnumber caption = "Trap Number" default = 4 min = 1 hint = "The number of individual traps that will be distributed around \ the plane" endparam param distributionshape caption = "Distribution Shape" enum = "circle" "linear" "spiral" "wavy circle 1" "wavy circle 2" \ "sinusoid 1" "sinusoid 2" default = 0 hint = "The individual trapping regions will be distributed around the \ coordinate plane origin along this curve" endparam param distributionsize caption = "Distribution Size" default = 0.2 hint = "The radius or size of the trap distribution path" endparam param spiralwindings caption = "Spiral Windings" default = 2.0 hint = "If parameter 'Distribution Size' is set to 'spiral', then this setting \ determines the number of spiral rotations" visible = ( @distributionshape == 2 ) endparam param spiraltightness caption = "Spiral Tightness" default = 1.2 hint = "If parameter 'Distribution Size' is set to 'spiral', then this setting \ determines the tightness of the spiral" visible = ( @distributionshape == 2 ) endparam param distrwavefrequency caption = "Wave Frequency" default = 10.0 hint = "If parameter 'Distribution Size' is set to 'wavy circle' or 'sinusoid', then \ this setting determines the number of wave cycles" visible = ( @distributionshape == 3 ) || ( @distributionshape == 4 ) || \ ( @distributionshape == 5 ) || ( @distributionshape == 6 ) endparam param distrwaveamplitude caption = "Wave Amplitude" default = 0.25 hint = "If parameter 'Distribution Size' is set to 'wavy circle' or 'sinusoid', then \ this setting determines the amplitude of the waves, as a fraction of 'Distribution Size'" visible = ( @distributionshape == 3 ) || ( @distributionshape == 4 ) || \ ( @distributionshape == 5 ) || ( @distributionshape == 6 ) endparam param distributionrotation caption = "Distribution Rotation" default = 0.0 min = -180.0 max = 360.0 hint = "The amount the trap distribution is rotated from its default position \ (0-360 degrees). Normally the first trap is located along the x-axis, \ but this setting can alter that default" endparam param distributioncenter caption = "Distribution Center" default = (0,0) hint = "The center of the trap distribution curve" endparam heading caption = "Color Settings" text = "Parameters to manipulate the coloring function are located in this section" expanded = TRUE endheading param colorby caption = "Color By?" enum = "trap number" "center distance" "number/distance" "iteration" "angle" "fixed ranges" default = 2 hint = "This param determines how the trap is mapped onto the color palette index. \ The 'number/distance' setting breaks the pallete into a number of uniform \ ranges equal to the value of parameter 'Trap Number'. For the setting \ 'iteration', try adjustung the 'Maximum Iterations' value on the 'Formula' \ tab to increase the spread of colors" endparam param compressrange caption = "Compress Palette?" default = 0.9 hint = "This parameter can be used to adjust the compression of the color range \ if parameter 'Color By' is set to 'number/distance' or similar settings. \ Adjusting the range can be useful to prevent overlap of color ranges" visible = (@colorby == 1) || (@colorby == 2) || (@colorby == 5) endparam param colorranges caption = "Number of Ranges" default = 2 min = 1 hint = "If 'Color By' is set to 'fixed ranges', this setting determines how many \ color ranges the palette is split into. The various color ranges are \ distributed equally through the color palette" visible = (@colorby == 5) endparam param reversetrap caption = "Reverse Trap?" default = FALSE hint = "If enabled, then the trapped regions, rather than the background, will be \ set to the solid color" endparam heading caption = "Modifiers" text = "General parameters to affect different aspects of the trap algoritm are \ located in this section" expanded = TRUE endheading param skippediters caption = "Iterations to Skip" default = 0 hint = "Values will not be monitored for trapping until after this many \ fractal iterations" endparam param towatch caption = "Iterations to Watch" default = 0 min = 0 hint = "How many iterations should the orbit be monitored for potential trapping? \ '0' means watch all iterations" endparam param periodicity caption = "Enable Periodicity?" default = FALSE hint = "If this parameter is enabled, then #z is only checked for possible \ trapping every n cycles, where n is set by parameter 'Period Length'" endparam param period caption = "Period Length" default = 2 min = 2 hint = "If 'Enable Periodicity' is turned on, then this setting determines how \ often (in iteration cycles) the orbit of #z is checked for possible trapping" visible = @periodicity endparam param perphase caption = "Period Phase" default = 0 min = 0 hint = "If 'Enable Periodicity' is turned on, then this setting determines which \ cycle of the period is checked for possible trapping. The useful phase range \ is from a minimum of 0 up to a maximum of 'Period Length' -1. Values above \ this limit are reset to 0" visible = @periodicity endparam param reversephase caption = "Reverse Phase?" default = FALSE hint = "If 'Enable Periodicity' is turned on, and this parameter is also enabled, \ then trapping is examined only when the period is NOT in the cycle set by \ parameter 'Period Phase'" visible = @periodicity endparam param anglerestrict caption = "Restrict Angle?" default = FALSE hint = "If enabled, then trapping will be checked only every when the angle of #z \ falls between the 'Low Angle' and 'High Angle' limits" endparam param anglelow caption = "Low Angle" default = 0.0 min = 0.0 max = 359.9 hint = "If 'Restrict Angle' is enabled, then this setting determines the lower angular boundary \ for #z in order for the trapping algorithm to be executed (0-360)" visible = @anglerestrict endparam param anglehigh caption = "High Angle" default = 90.0 min = 0.1 max = 360.0 hint = "If 'Restrict Angle' is enabled, then this setting determines the upper angular boundary \ for #z in order for the trapping algorithm to be executed (0-360)" visible = @anglerestrict endparam heading caption = "fBm Settings" expanded = TRUE endheading param fBm caption = "Enable fBm?" default = FALSE hint = "Adds fBm distortion to coloring; overall amount of turbulence \ is set by parameter 'fBm Amount'" endparam param fbmamount caption = "fBm Amount" default = 1.0 hint = "If fBm is enabled, this parameter determines the overall fBm perturbation \ of the color palette index" visible = @fBm endparam param bscale caption = "fBm Scale" default = 1.0 hint = "The overall scale of the fBm turbulence" visible = @fBm endparam param fbminit caption = "fBm Initialization" enum = "min z" "min* z" "first z" "second z" "third z" "fourth z" "last z" \ "penult z" "antepenult z" "pixel" ; "blend1" "blend2" \ ; "blend3" "blend4" "blend5" "blend6" "blend7" "blend8" \ ; "blend9" default = 0 hint = "This setting defines the input to the fBm algorithm. Option \ 'min* z' skips the first iteration before capturing the minimum z value" visible = @fBm endparam ; param fbmblendmode1 ; caption = "How to Blend?" ; enum = "*" "+" "-" "/" "^" "--" "//" "^^" ; default = 0 ; hint = "If one of the 'blend' initializations is chosen for param \ ; 'fBm Initialization', then this determines how the init values \ ; are mixed" ; visible = @fBm && (@fbminit > 9) ; endparam ; param fbmblendmode2 ; caption = "How to Blend, Part 2?" ; enum = "normal" "negate" "flip" "conj" "flip-conj" ; default = 0 ; hint = "If one of the 'blend' initializations is chosen for param \ ; 'fBm Initialization', then this determines how the init values \ ; are mixed" ; visible = @fBm && (@fbminit > 9) ; endparam param fbmtransform caption = "Apply Transform?" default = FALSE hint = "Applies tranformation to fBm initialization algorithm" visible = @fBm endparam param fbmtransformfunc caption = "Transform Function" enum = "none" "circle" "cardioid" "lissajous" "hypocycloid" "parabola" default = 0 hint = "If parameter 'Apply Transform' is enabled, this param \ determines which tranformation is applied" visible = @fBm && @fbmtransform endparam param fbmcradius caption = "Circle Radius" default = 1.0 hint = "If parameter 'Transform Function' is set to 'circle', this param \ determines the circle radius" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 1) endparam param fbmcfrequency caption = "Circle Frequency" default = 1.0 hint = "If parameter 'Transform Function' is set to 'circle', this is an extra param \ that modifies the circle function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 1) endparam param fbmcardradius caption = "Cardioid Size" default = 1.0 hint = "If parameter 'Transform Function' is set to 'cardioid', this param \ determines the cardioid size" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 2) endparam param fbmcardfreq caption = "Cardioid Frequency" default = 1.0 hint = "If parameter 'Transform Function' is set to 'cardioid', this is an extra param \ that modifies the cardioid function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 2) endparam param fbmlissaamp1 caption = "1st Lissajous Amplitude" default = 1.0 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the amplitude of the first lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmlissafreq1 caption = "1st Lissajous Frequency" default = 2.0 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the frequency of the first lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmlissaphase1 caption = "1st Lissajous Phase" default = 0.0 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the phase of the first lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmlissaamp2 caption = "2nd Lissajous Amplitude" default = 1.0 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the amplitude of the second lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmlissafreq2 caption = "2nd Lissajous Frequency" default = 2.0 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the frequency of the second lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmlissaphase2 caption = "2nd Lissajous Phase" default = 1.5707963267948966192313216916398 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the phase of the second lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmhypocyc1 caption = "1st Hypocycloid Constant" default = 8.0 hint = "If parameter 'Transform Function' is set to 'hypocycloid', this param \ sets the first of the two constants defining the hypocycloid curve. \ Try (c1 - c2) / c2 = an integer" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 4) endparam param fbmhypocyc2 caption = "2nd Hypocycloid Constant" default = 2.0 hint = "If parameter 'Transform Function' is set to 'hypocycloid', this param \ sets the second of the two constants defining the hypocycloid curve. \ Try (c1 - c2) / c2 = an integer" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 4) endparam param fbmparabscale caption = "Parabola Scale" default = -2.0 hint = "If parameter 'Transform Function' is set to 'parabola', this param \ sets the overall scale of the curve" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 5) endparam param fbmparaboffset caption = "Parabola Offset" default = 1.0 hint = "If parameter 'Transform Function' is set to 'parabola', this extra param \ can be used to distort the curve" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 5) endparam param fbmparabfreq caption = "Parabola Frequency" default = 1.0 hint = "If parameter 'Transform Function' is set to 'parabola', this extra param \ can be used to further distort the curve" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 5) endparam param fbmhybrid caption = "Hybrid Initialization?" default = FALSE hint = "Adjusts initialization value of the fBm algorithm \ by mixing in the #pixel value, after the transform function, \ if any, is applied" visible = @fBm endparam param fbmhybridtype caption = "Hybrid Type" enum = "*" "+" "-" "/" "^" "--" "//" "^^" "average" "geom mean" default = 0 hint = "If 'Hybrid Initialization' is enabled, then this param \ determines how the pixel value is blended in" visible = @fBm && @fbmhybrid endparam param fbmhybridweight caption = "Hybrid Weight" default = 1.0 hint = "If parameter 'Hybrid Initialization' is enabled, this param \ determines how much of #pixel is blended in" visible = @fBm && @fbmhybrid endparam param fbmbias caption = "Bias fBm?" default = FALSE hint = "Enable multiplier of fBm initialization" visible = @fBm endparam param fbmbiasamount caption = "Bias Amount" default = (1.0,0) hint = "Value of fBm Bias Multiplier" visible = @fBm && @fbmbias endparam param bangle caption = "fBm Rotation" default = 0.0 hint = "Angular parameter for fBm noise" visible = @fBm endparam param bstep caption = "fBm Stepsize" default = 0.5 hint = "Scale step size for fBm noise iterations" visible = @fBm endparam param banglestep caption = "fBm Rotation Step" default = 53.0 hint = "The angle in degrees for noise function rotation after \ each fBm iteration; used if fBm is enabled" visible = @fBm endparam param boctaves caption = "fBm Octaves" default = 7 min = 1 hint = "The number of iterations of the fBm noise function" visible = @fBm endparam param bpower caption = "fBm Exponent" default = 2.0 hint = "The exponent used if param fBm is enabled \ for fBm randomization" visible = @fBm endparam param bbfreq caption = "fBm Frequency" default = 1.0 hint = "Frequency multiplier for fBm noise" visible = @fBm endparam param boffset caption = "fBm Offset" default = (0.0,0.0) hint = "Offset added to fBm noise initializer" visible = @fBm endparam param bsumoffset caption = "fBm Sum Offset" default = 0.0 hint = "This term adjusts the cumulative fBm sum" visible = @fBm endparam param bpostscale caption = "fBm Postscale" default = 1.0 hint = "This factor scales the cumulative fBm sum after the \ 'fBm Warp Factor' and 'fBm Sum Offset' adjustments" visible = @fBm endparam param fbmint1 caption = "fBm Graniness 1" default = 256 hint = "Distorts the traditional fBm algorithm" visible = @fBm endparam param fbmint2 caption = "fBm Graniness 2" default = 65536 hint = "Distorts the traditional fBm algorithm" visible = @fBm endparam param fbmint3 caption = "fBm Graniness 3" default = 512 hint = "Distorts the traditional fBm algorithm" visible = @fBm endparam param @fbmfunc caption = "fBm Warp Factor" enum = "none" "1/c" "c^2" "1/c^2" "log(c)" "e^c" "c^c" "sin(c)" "cos(c)" \ "tan(c)" "asin(c)" "acos(c)" "atan(c)" "sinh(c)" "cosh(c)" "tanh(c)" \ "asinh(c)" "acosh(c)" "atanh(c)" "log(1/c)" "log(log(c))" "e^-c" \ "e^(1/c)" "c^-c" "sin(c)^n" "cos(c)^n" "tan(c)^n" "cot(c)" "sec(c)" \ "csc(c)" "cot(c)^n" "sec(c)^n" "csc(c)^n" "c^c^c" "1/c^c^c" "log(-c)" \ "1/log(c)" "clog(c)" "sin(c)/c" "cos(c)/c" "sin(c)*cos(n*c)" "sin(c^n)" \ "e^(-1/c)" "ce^c" "ce^-c" "ce^(1/c)" "ce^(-1/c)" "c^3" "1/c^3" \ "acot(c)" "asec(c)" "acsc(c)" "tan(c)/c" "cot(c)/c" "sec(c)/c" \ "csc(c)/c" "csin(c)" "ccos(c)" "ctan(c)" "ccot(c)" "csec(c)" "ccsc(c)" \ "sin(1/c)" "cos(1/c)" "tan(1/c)" "cot(1/c)" "sec(1/c)" "csc(1/c)" \ "cotanh(c)" "sech(c)" "cosech(c)" "acoth(c)" "asech(c)" "acosech(c)" "c^power" \ "sinh(c)^n" "cosh(c)^n" "tanh(c)^n" "cotanh(c)^n" \ "sech(c)^n" "cosech(c)^n" "sinh(1/c)" "cosh(1/c)" "tanh(1/c)" \ "cotanh(1/c)" "sech(1/c)" "cosech(1/c)" "sin(c)tan(n*c)" "sinh(c)tanh(n*c)" \ "sinh(c)cosh(n*c)" "sinh(c)^m*cosh(c)^n" "sin(c)^m*cos(c)^n" \ "sin(1/c)*cos(n/c)" "sin(1/c)^n" "sin(c)cos(n/c)" "sin(c)sin(n/c)" \ "log(c)^n" "sin(c)sin(n*c)" "e^2c" "e^-2c" "sinh(1/c)cosh(n/c)" \ "sinh(1/c)^n" "sinh(c)cosh(n/c)" "sinh(c)sinh(n/c)" "sin(c)sinh(n*c)" \ "sin(c)cosh(n*c)" "sin(c)^m*sinh(c)^n" "sin(c)e^c" "cos(c)e^c" \ "sinh(c)e^c" "cosh(c)e^c" "sin(c)log(c)" "cos(c)log(c)" "sinh(c)log(c)" \ "cosh(c)log(c)" \ "e^(c^n)" "e^(1/(c^n))" "abs(c)" "round(c)" "trunc(c)" \ "ceil(c)" "floor(c)" "c/log(c)" "log(c)/c" "(e^c)/c" "(e^(1/c))/c" \ "(e^(c^n))/c" "(e^(1/(c^n))/c" "c*e^(c^n)" "c*e^(1/(c^n))" \ "e^(-c^n)" "e^(-1/(c^n))" "(e^(-c^n))/c" "(e^(-1/(c^n))/c" \ "c*e^(-c^n)" "c*e^(1/(-c^n))" "c%n" default = 0 hint = "This function modifies the color adjustment produced by the fBm noise algorithm. \ It does not affect the TIA coloring component; use param 'TIA Warp Factor' \ for that" visible = @fBm endparam param funcpower caption = "fBm Warp Power" default = 0.333333333333333 hint = "If param 'fBm Warp Factor' is set to 'c^power', then this is the power" visible = (@fbmfunc == "c^power") && @fBm endparam param funcprescale caption = "fBm Warp Prescale" default = 1.0 hint = "This factor scales the argument to the 'fBm Warp Factor' function" visible = @fBm && @fbmfunc != "none" endparam param funcparam1 caption = "fBm Warp Param1" default = 1.0 hint = "If the 'fBm Warp Factor' function uses extra parameters, then \ this number is the first of those" visible = @fBm && (@fbmfunc > 3) endparam param funcparam2 caption = "fBm Warp Param2" default = 2.0 hint = "If the 'fBm Warp Factor' function uses extra parameters, then \ this number is the second of those" visible = @fBm && ( (@fbmfunc == 20) || (@fbmfunc == 24) || \ (@fbmfunc == 25) || (@fbmfunc == 26) || (@fbmfunc == 30) || \ (@fbmfunc == 31) || (@fbmfunc == 32) || (@fbmfunc == 33) || \ (@fbmfunc == 34) || (@fbmfunc == 40) || (@fbmfunc == 75) || \ (@fbmfunc == 76) || (@fbmfunc == 77) || (@fbmfunc == 78) || \ (@fbmfunc == 79) || (@fbmfunc == 80) || (@fbmfunc == 87) || \ (@fbmfunc == 88) || (@fbmfunc == 89) || (@fbmfunc == 90) || \ (@fbmfunc == 91) || (@fbmfunc == 92) || (@fbmfunc == 93) || \ (@fbmfunc == 94) || (@fbmfunc == 95) || (@fbmfunc == 97) || \ (@fbmfunc == 100) || (@fbmfunc == 101) || (@fbmfunc == 102) || \ (@fbmfunc == 103) || (@fbmfunc == 104) || (@fbmfunc == 105) || \ (@fbmfunc == 106) || (@fbmfunc == 107) || (@fbmfunc == 108) || \ (@fbmfunc == 109) || (@fbmfunc == 110) || (@fbmfunc == 111) || \ (@fbmfunc == 112) || (@fbmfunc == 113) || (@fbmfunc == 114) || \ (@fbmfunc == 115) || (@fbmfunc == 116) || (@fbmfunc == 126) || \ (@fbmfunc == 127) || (@fbmfunc == 128) || (@fbmfunc == 129) || \ (@fbmfunc == 130) || (@fbmfunc == 131) || (@fbmfunc == 132) || \ (@fbmfunc == 133) || (@fbmfunc == 134) || (@fbmfunc == 135) ) endparam } Decomposition2007 { ; ; Joseph A. Maddry (maddry@sri.org) ; Based on Binary Decomposition in Standard.ucl ; 4/16/7 ; global: float twopi = #pi * 2.0 float angleincrement = twopi/@decomptype float gradincrement = 1.0/@decomptype ; fBm variables float banglevar = @bangle/90.0 float banglestepvar = @banglestep / 90.0 float hypocycvar1 = @fbmhypocyc1 - @fbmhypocyc2 float hypocycvar2 = hypocycvar1/@fbmhypocyc2 ; Initialize periodicity variables int periodphase = 0 if @periodicity if @perphase < @period ; phase can only be 0, 1,..., (@period-1) periodphase = @perphase endif ; @perphase endif ; @periodicity init: float zangle = 0.0 int gradientcolor = 0 int iter = 0 ; fBm initializations complex zmin = complex zfirst = complex zsecond = complex zlast = (0,0) complex zthree = complex zfour = complex zpenult = complex zantepenult = (0,0) complex zfBm = complex zminstar = complex ztemp = (0,0) float minz = float minstarz = 1.0e9 float fbmadjust = float ftemp = 0.0 ; Initialize periodicity variables bool periodflag = TRUE ; default setting so that main iter routine in 'loop:' section ; will execute even if periodicity is not enabled loop: iter = iter + 1 if @periodicity if (iter % @period) == periodphase periodflag = TRUE else periodflag = FALSE endif ; iter if @reversephase periodflag = !periodflag endif ; @reversephase endif ; @periodicity if periodflag if @fBm if @fbminit == "min z" if iter > 1 ; skip first iter, since #z may have been initialized to (0,0) ftemp = cabs(#z) if ftemp < minz minz = ftemp zmin = #z endif ; ftemp endif ; iter elseif @fbminit == "min* z" if iter > 2 ; skip another iteration ftemp = cabs(#z) if ftemp < minstarz minstarz = ftemp zminstar = #z endif ; ftemp endif ; iter elseif @fbminit == "first z" if iter == 1 zfirst = #z endif ; iter elseif @fbminit == "second z" if iter == 2 zsecond = #z endif ; iter elseif @fbminit == "third z" if iter == 3 zthree = #z endif ; iter elseif @fbminit == "fourth z" if iter == 4 zfour = #z endif ; iter elseif @fbminit == "last z" zlast = #z elseif @fbminit == "penult z" zpenult = zlast zlast = #z elseif @fbminit == "antepenult z" zantepenult = zpenult zpenult = zlast zlast = #z endif ; @fbminit endif ; @fBm endif ; periodflag final: if periodflag ; Figure amount of fBm ; fBm code adapted from code of dmj, mt, and others if @fBm if @fbminit == "min z" zfBm = zmin elseif @fbminit == "min* z" zfBm = zminstar elseif @fbminit == "first z" zfBm = zfirst elseif @fbminit == "second z" zfBm = zsecond elseif @fbminit == "third z" zfBm = zthree elseif @fbminit == "fourth z" zfBm = zfour elseif @fbminit == "last z" zfBm = zlast elseif @fbminit == "penult z" zfBm = zpenult elseif @fbminit == "antepenult z" zfBm = zantepenult elseif @fbminit == "pixel" zfBm = #pixel ; elseif @fbminit == "blend1" ; if @fbmblendmode2 == "normal" ; ztemp = zfirst ; elseif @fbmblendmode2 == "negate" ; ztemp = -zfirst ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zfirst) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zfirst) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zfirst)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = zmin*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = zmin+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = zmin-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = zmin/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = zmin^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-zmin ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/zmin ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^zmin ; endif; @fbmblendmode1 ; elseif @fbminit == "blend2" ; if @fbmblendmode2 == "normal" ; ztemp = zsecond ; elseif @fbmblendmode2 == "negate" ; ztemp = -zsecond ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zsecond) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zsecond) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zsecond)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = zmin*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = zmin+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = zmin-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = zmin/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = zmin^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-zmin ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/zmin ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^zmin ; endif; @fbmblendmode1 ; elseif @fbminit == "blend3" ; if @fbmblendmode2 == "normal" ; ztemp = (sum+flip(sum2)) ; elseif @fbmblendmode2 == "negate" ; ztemp = -(sum+flip(sum2)) ; elseif @fbmblendmode2 == "flip" ; ztemp = flip((sum+flip(sum2))) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj((sum+flip(sum2))) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj((sum+flip(sum2)))) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = zmin*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = zmin+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = zmin-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = zmin/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = zmin^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-zmin ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/zmin ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^zmin ; endif; @fbmblendmode1 ; elseif @fbminit == "blend4" ; if @fbmblendmode2 == "normal" ; ztemp = zfirst ; elseif @fbmblendmode2 == "negate" ; ztemp = -zfirst ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zfirst) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zfirst) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zfirst)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = zsecond*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = zsecond+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = zsecond-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = zsecond/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = zsecond^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-zsecond ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/zsecond ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^zsecond ; endif; @fbmblendmode1 ; elseif @fbminit == "blend5" ; if @fbmblendmode2 == "normal" ; ztemp = zsecond ; elseif @fbmblendmode2 == "negate" ; ztemp = -zsecond ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zsecond) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zsecond) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zsecond)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = zsecond*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = zsecond+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = zsecond-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = zsecond/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = zsecond^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-zsecond ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/zsecond ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^zsecond ; endif; @fbmblendmode1 ; elseif @fbminit == "blend6" ; if @fbmblendmode2 == "normal" ; ztemp = (sum+flip(sum2)) ; elseif @fbmblendmode2 == "negate" ; ztemp = -(sum+flip(sum2)) ; elseif @fbmblendmode2 == "flip" ; ztemp = flip((sum+flip(sum2))) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj((sum+flip(sum2))) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj((sum+flip(sum2)))) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = zsecond*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = zsecond+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = zsecond-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = zsecond/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = zsecond^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-zsecond ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/zsecond ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^zsecond ; endif; @fbmblendmode1 ; elseif @fbminit == "blend7" ; if @fbmblendmode2 == "normal" ; ztemp = zfirst ; elseif @fbmblendmode2 == "negate" ; ztemp = -zfirst ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zfirst) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zfirst) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zfirst)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = (sum+flip(sum2))*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = (sum+flip(sum2))+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = (sum+flip(sum2))-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = (sum+flip(sum2))/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = (sum+flip(sum2))^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-(sum+flip(sum2)) ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/(sum+flip(sum2)) ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^(sum+flip(sum2)) ; endif; @fbmblendmode1 ; elseif @fbminit == "blend8" ; if @fbmblendmode2 == "normal" ; ztemp = zthree ; elseif @fbmblendmode2 == "negate" ; ztemp = -zthree ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zthree) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zthree) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zthree)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = (sum+flip(sum2))*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = (sum+flip(sum2))+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = (sum+flip(sum2))-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = (sum+flip(sum2))/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = (sum+flip(sum2))^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-(sum+flip(sum2)) ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/(sum+flip(sum2)) ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^(sum+flip(sum2)) ; endif; @fbmblendmode1 ; elseif @fbminit == "blend9" ; if @fbmblendmode2 == "normal" ; ztemp = zantepenult ; elseif @fbmblendmode2 == "negate" ; ztemp = -zantepenult ; elseif @fbmblendmode2 == "flip" ; ztemp = flip(zantepenult) ; elseif @fbmblendmode2 == "conj" ; ztemp = conj(zantepenult) ; elseif @fbmblendmode2 == "flip-conj" ; ztemp = flip(conj(zantepenult)) ; endif; @fbmblendmode2 ; if @fbmblendmode1 == "*" ; zfBm = (sum+flip(sum2))*ztemp ; elseif @fbmblendmode1 == "+" ; zfBm = (sum+flip(sum2))+ztemp ; elseif @fbmblendmode1 == "-" ; zfBm = (sum+flip(sum2))-ztemp ; elseif @fbmblendmode1 == "/" ; zfBm = (sum+flip(sum2))/ztemp ; elseif @fbmblendmode1 == "^" ; zfBm = (sum+flip(sum2))^ztemp ; elseif @fbmblendmode1 == "--" ; zfBm = ztemp-(sum+flip(sum2)) ; elseif @fbmblendmode1 == "//" ; zfBm = ztemp/(sum+flip(sum2)) ; elseif @fbmblendmode1 == "^^" ; zfBm = ztemp^(sum+flip(sum2)) ; endif; @fbmblendmode1 endif ; @fbminit if @fbmtransform zangle = atan2(zfBm) if zangle < 0 zangle = zangle + twopi endif ; zangle if @fbmtransformfunc == "circle" ftemp = @fbmcradius*cos(@fbmcfrequency*zangle) zfBm = ftemp*exp(flip(zangle)) elseif @fbmtransformfunc == "cardioid" ftemp = @fbmcardradius - @fbmcardradius*cos(@fbmcardfreq*zangle) zfBm = ftemp*exp(flip(zangle)) elseif @fbmtransformfunc == "lissajous" ftemp = @fbmlissaamp1 * cos(@fbmlissafreq1*zangle + @fbmlissaphase1) ftemp2 = @fbmlissaamp2 * cos(@fbmlissafreq2*zangle + @fbmlissaphase2) zfBm = ftemp + flip(ftemp2) elseif @fbmtransformfunc == "hypocycloid" ftemp = hypocycvar1 * cos(zangle) - @fbmhypocyc2 * cos(hypocycvar2*zangle) ftemp2 = hypocycvar1 * sin(zangle) + @fbmhypocyc2 * sin(hypocycvar2*zangle) zfBm = ftemp + flip(ftemp2) elseif @fbmtransformfunc == "parabola" ftemp = @fbmparabscale/(@fbmparaboffset+cos(@fbmparabfreq*zangle)) zfBm = ftemp*exp(flip(zangle)) endif; @transformfunc endif; @transform if @fbmhybrid ztemp = @fbmhybridweight*#pixel if @fbmhybridtype == "*" zfBm = ztemp*zfBm elseif @fbmhybridtype == "+" zfBm = ztemp+zfBm elseif @fbmhybridtype == "-" zfBm = ztemp-zfBm elseif @fbmhybridtype == "/" zfBm = ztemp/zfBm elseif @fbmhybridtype == "^" zfBm = ztemp^zfBm elseif @fbmhybridtype == "--" zfBm = zfBm-ztemp elseif @fbmhybridtype == "//" zfBm = zfBm/ztemp elseif @fbmhybridtype == "^^" zfBm = zfBm^ztemp elseif @fbmhybridtype == "average" zfBm = (ztemp+zfBm)/2 elseif @fbmhybridtype == "geom mean" zfBm = sqrt(ztemp*zfBm) endif; @fbmhybridtype endif; @fbmhybrid if @fbmbias zfBm = zfBm*@fbmbiasamount endif ; @fbmbias zfBm = zfBm + @boffset float bfreq = @bbfreq complex br = (0,1) ^ banglevar complex br2 = (0,1) ^ banglestepvar complex bp = zfBm * @bscale * br float bsum = 0.0 int bi = @boctaves while (bi > 0) float bx0 = floor(real(bp)) % @fbmint1 float by0 = floor(imag(bp)) % @fbmint1 if bx0 < 0 bx0 = bx0 + @fbmint1 endif ; bx0 if by0 < 0 by0 = by0 + @fbmint1 endif ; by0 float bx1 = (bx0 + 1) % @fbmint1 float by1 = (by0 + 1) % @fbmint1 float rx0 = real(bp) - floor(real(bp)) float ry0 = imag(bp) - floor(imag(bp)) float rx1 = rx0 - 1 float ry1 = ry0 - 1 float b00 = (bx0^@bpower % @fbmint2 + by0)^@bpower % @fbmint2 float b10 = (bx1^@bpower % @fbmint2 + by0)^@bpower % @fbmint2 float b01 = (bx0^@bpower % @fbmint2 + by1)^@bpower % @fbmint2 float b11 = (bx1^@bpower % @fbmint2 + by1)^@bpower % @fbmint2 float g_b00_0 = (b00)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b10_0 = (b10)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b01_0 = (b01)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b11_0 = (b11)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b00_1 = (b00+1)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b10_1 = (b10+1)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b01_1 = (b01+1)^@bpower*0.25 % @fbmint3 - @fbmint1 float g_b11_1 = (b11+1)^@bpower*0.25 % @fbmint3 - @fbmint1 float bd = 0.0 bd = 1 / sqrt(sqr(g_b00_0) + sqr(g_b00_1)) g_b00_0 = g_b00_0 * bd g_b00_1 = g_b00_1 * bd bd = 1 / sqrt(sqr(g_b10_0) + sqr(g_b10_1)) g_b10_0 = g_b10_0 * bd g_b10_1 = g_b10_1 * bd bd = 1 / sqrt(sqr(g_b01_0) + sqr(g_b01_1)) g_b01_0 = g_b01_0 * bd g_b01_1 = g_b01_1 * bd bd = 1 / sqrt(sqr(g_b11_0) + sqr(g_b11_1)) g_b11_0 = g_b11_0 * bd g_b11_1 = g_b11_1 * bd float u1 = rx0 * g_b00_0 + ry0 * g_b00_1 float v1 = rx1 * g_b10_0 + ry0 * g_b10_1 float u2 = rx0 * g_b01_0 + ry1 * g_b01_1 float v2 = rx1 * g_b11_0 + ry1 * g_b11_1 float sx = sqr(rx0) * (3 - rx0*2) float sy = sqr(ry0) * (3 - ry0*2) float ba = u1 + sx*(v1-u1) float bb = u2 + sx*(v2-u2) bsum = bsum + (ba + sy*(bb-ba))* bfreq if @fbmfunc != 0 bsum = @funcprescale * bsum if ( @fbmfunc == 1 ) ftemp = 1/bsum elseif ( @fbmfunc == 2 ) ftemp = bsum * bsum elseif ( @fbmfunc == 3 ) ftemp = 1 / ( bsum * bsum ) elseif ( @fbmfunc == 4 ) ftemp = @funcparam1*log(bsum) elseif ( @fbmfunc == 5 ) ftemp = @funcparam1*exp( bsum) elseif ( @fbmfunc == 6 ) ftemp = @funcparam1*bsum^(bsum) elseif ( @fbmfunc == 7 ) ftemp = @funcparam1*sin( bsum ) elseif ( @fbmfunc == 8 ) ftemp = @funcparam1*cos( bsum ) elseif ( @fbmfunc == 9 ) ftemp = @funcparam1*tan( bsum ) elseif ( @fbmfunc == 10 ) ftemp = @funcparam1*asin( bsum ) elseif ( @fbmfunc == 11 ) ftemp = @funcparam1*acos( bsum ) elseif ( @fbmfunc == 12 ) ftemp = @funcparam1*atan( bsum ) elseif ( @fbmfunc == 13 ) ftemp = @funcparam1*sinh( bsum ) elseif ( @fbmfunc == 14 ) ftemp = @funcparam1*cosh( bsum ) elseif ( @fbmfunc == 15 ) ftemp = @funcparam1*tanh( bsum ) elseif ( @fbmfunc == 16 ) ftemp = @funcparam1*asinh( bsum ) elseif ( @fbmfunc == 17 ) ftemp = @funcparam1*acosh( bsum ) elseif ( @fbmfunc == 18 ) ftemp = @funcparam1*atanh( bsum ) elseif ( @fbmfunc == 19 ) ftemp = @funcparam1*log( 1/bsum ) elseif ( @fbmfunc == 20 ) ftemp = @funcparam1*log( @funcparam2*log( bsum )) elseif ( @fbmfunc == 21 ) ftemp = @funcparam1*exp( -bsum ) elseif ( @fbmfunc == 22 ) ftemp = @funcparam1*exp( 1/bsum ) elseif ( @fbmfunc == 23 ) ftemp = @funcparam1*bsum^(-bsum) elseif ( @fbmfunc == 24 ) ftemp = @funcparam1*(sin( bsum ))^@funcparam2 elseif ( @fbmfunc == 25 ) ftemp = @funcparam1*(cos( bsum ))^@funcparam2 elseif ( @fbmfunc == 26 ) ftemp = @funcparam1*(tan( bsum ))^@funcparam2 elseif ( @fbmfunc == 27 ) ftemp = @funcparam1*cotan( bsum ) elseif ( @fbmfunc == 28 ) ftemp = @funcparam1/cos( bsum ) elseif ( @fbmfunc == 29 ) ftemp = @funcparam1/sin( bsum ) elseif ( @fbmfunc == 30 ) ftemp = @funcparam1*(cotan( bsum ))^@funcparam2 elseif ( @fbmfunc == 31 ) ftemp = @funcparam1/(cos( bsum ))^@funcparam2 elseif ( @fbmfunc == 32 ) ftemp = @funcparam1/(sin( @funcparam1*bsum ))^@funcparam2 elseif ( @fbmfunc == 33 ) ftemp = @funcparam1*bsum^(bsum) ftemp = @funcparam2*bsum^(ftemp) elseif ( @fbmfunc == 34 ) ftemp = @funcparam1*bsum^(bsum) ftemp = @funcparam2/( bsum^ftemp ) elseif ( @fbmfunc == 35 ) ftemp = @funcparam1*log(-bsum) elseif ( @fbmfunc == 36 ) ftemp = @funcparam1/log( bsum ) elseif ( @fbmfunc == 37 ) ftemp = @funcparam1* bsum * log( bsum ) elseif ( @fbmfunc == 38 ) ftemp = @funcparam1* sin( bsum ) / bsum elseif ( @fbmfunc == 39 ) ftemp = @funcparam1* cos( bsum ) / bsum elseif ( @fbmfunc == 40 ) ftemp = @funcparam1* sin( bsum ) * cos( @funcparam2*bsum ) elseif ( @fbmfunc == 41 ) ftemp = @funcparam1*sin( bsum^2 ) elseif ( @fbmfunc == 42 ) ftemp = @funcparam1*exp( -1/bsum ) elseif ( @fbmfunc == 43 ) ftemp = @funcparam1* bsum * exp( bsum ) elseif ( @fbmfunc == 44 ) ftemp = @funcparam1* bsum * exp( -bsum ) elseif ( @fbmfunc == 45 ) ftemp = @funcparam1* bsum * exp( 1/bsum ) elseif ( @fbmfunc == 46 ) ftemp = @funcparam1* bsum * exp( -1/bsum ) elseif ( @fbmfunc == 47 ) ftemp = @funcparam1* bsum * bsum * bsum elseif ( @fbmfunc == 48 ) ftemp = @funcparam1 / ( bsum * bsum * bsum ) elseif ( @fbmfunc == 49 ) ftemp = @funcparam1*atan( 1 / bsum ) elseif ( @fbmfunc == 50 ) ftemp = @funcparam1*acos( 1 / bsum ) elseif ( @fbmfunc == 51 ) ftemp = @funcparam1*asin( 1 / bsum ) elseif ( @fbmfunc == 52 ) ftemp = @funcparam1*tan( bsum ) / bsum elseif ( @fbmfunc == 53 ) ftemp = @funcparam1*cotan( bsum ) / bsum elseif ( @fbmfunc == 54 ) ftemp = @funcparam1 / ( bsum * cos( bsum )) elseif ( @fbmfunc == 55 ) ftemp = @funcparam1 / ( bsum * sin( bsum )) elseif ( @fbmfunc == 56 ) ftemp = @funcparam1* bsum * sin( bsum ) elseif ( @fbmfunc == 57 ) ftemp = @funcparam1* bsum * cos( bsum ) elseif ( @fbmfunc == 58 ) ftemp = @funcparam1* bsum * tan( bsum ) elseif ( @fbmfunc == 59 ) ftemp = @funcparam1* bsum * cotan( bsum ) elseif ( @fbmfunc == 60 ) ftemp = @funcparam1*bsum/cos( bsum ) elseif ( @fbmfunc == 61 ) ftemp = @funcparam1*bsum/sin( bsum ) elseif ( @fbmfunc == 62 ) ftemp = @funcparam1*sin( 1/bsum ) elseif ( @fbmfunc == 63 ) ftemp = @funcparam1*cos( 1/bsum ) elseif ( @fbmfunc == 64 ) ftemp = @funcparam1*tan( 1/bsum ) elseif ( @fbmfunc == 65 ) ftemp = @funcparam1*cotan( 1/bsum ) elseif ( @fbmfunc == 66 ) ftemp = @funcparam1/cos( 1/bsum ) elseif ( @fbmfunc == 67 ) ftemp = @funcparam1/sin( 1/bsum ) elseif ( @fbmfunc == 68 ) ftemp = @funcparam1*cotanh( bsum ) elseif ( @fbmfunc == 69 ) ftemp = @funcparam1/cosh( bsum ) elseif ( @fbmfunc == 70 ) ftemp = @funcparam1/sinh( bsum ) elseif ( @fbmfunc == 71 ) ftemp = @funcparam1*atanh( 1/bsum ) elseif ( @fbmfunc == 72 ) ftemp = @funcparam1*acosh( 1/bsum ) elseif ( @fbmfunc == 73 ) ftemp = @funcparam1*asinh( 1/bsum ) elseif @fbmfunc == 74 ftemp = bsum^@funcpower elseif @fbmfunc == 75 ftemp = @funcparam1*(sinh(bsum))^@funcparam2 elseif @fbmfunc == 76 ftemp = @funcparam1*(cosh( bsum ))^@funcparam2 elseif @fbmfunc == 77 ftemp = @funcparam1*(tanh(bsum))^@funcparam2 elseif @fbmfunc == 78 ftemp = @funcparam1*(cotanh( bsum ))^@funcparam2 elseif @fbmfunc == 79 ftemp = @funcparam1*(1/cosh(bsum))^@funcparam2 elseif @fbmfunc == 80 ftemp = @funcparam1*(1 / sinh( bsum ))^@funcparam2 elseif @fbmfunc == 81 ftemp = @funcparam1*sinh(1/bsum) elseif @fbmfunc == 82 ftemp = @funcparam1*cosh(1/bsum) elseif @fbmfunc == 83 ftemp = @funcparam1*tanh(1/bsum) elseif @fbmfunc == 84 ftemp = @funcparam1*cotanh(1/bsum) elseif @fbmfunc == 85 ftemp = @funcparam1/cosh(1/bsum) elseif @fbmfunc == 86 ftemp = @funcparam1/sinh(1/bsum) elseif @fbmfunc == 87 ftemp = @funcparam1*sin( bsum ) * tan(@funcparam2*bsum) elseif @fbmfunc == 88 ftemp = @funcparam1*sinh(bsum) * tanh(@funcparam2*bsum) elseif @fbmfunc == 89 ftemp = @funcparam1*sinh(bsum) * cosh(@funcparam2*bsum) elseif @fbmfunc == 90 ftemp = (sinh(bsum)^@funcparam1)*(cosh(bsum)^@funcparam2) elseif @fbmfunc == 91 ftemp = (sin(bsum)^@funcparam1)*(cos(bsum)^@funcparam2) elseif @fbmfunc == 92 ftemp = 1/bsum ftemp = @funcparam1*sin(ftemp)*cos(@funcparam2*ftemp) elseif @fbmfunc == 93 ftemp = @funcparam1*(sin( 1/bsum ))^@funcparam2 elseif @fbmfunc == 94 ftemp = @funcparam1* sin(bsum) * cos(@funcparam2/bsum) elseif @fbmfunc == 95 ftemp = @funcparam1* sin(bsum) * sin(@funcparam2/bsum) elseif @fbmfunc == 96 ftemp = (log(bsum))^@funcparam1 elseif @fbmfunc == 97 ftemp = @funcparam1*sin(bsum) * sin(@funcparam2*bsum) elseif @fbmfunc == 98 ftemp = exp(2*bsum) elseif @fbmfunc == 99 ftemp = exp(-2*bsum) elseif @fbmfunc == 100 ftemp = 1/bsum ftemp = @funcparam1*sinh(ftemp)*cosh(@funcparam2*ftemp) elseif @fbmfunc == 101 ftemp = @funcparam1*(sinh( 1/bsum )^@funcparam2) elseif @fbmfunc == 102 ftemp = @funcparam1*sinh(bsum) * cosh(@funcparam2/bsum) elseif @fbmfunc == 103 ftemp = @funcparam1*sinh(bsum) * sinh(@funcparam2/bsum) elseif @fbmfunc == 104 ftemp = @funcparam1*sin(bsum) * sinh(@funcparam2*bsum) elseif @fbmfunc == 105 ftemp = @funcparam1*sin(bsum) * cosh(@funcparam2*bsum) elseif @fbmfunc == 106 ftemp = (sin(bsum)^@funcparam1)*(sinh(bsum)^@funcparam2) elseif @fbmfunc == 107 ftemp = @funcparam1*sin(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 108 ftemp = @funcparam1*cos(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 109 ftemp = @funcparam1*sinh(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 110 ftemp = @funcparam1*cosh(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 111 ftemp = @funcparam1*sin(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 112 ftemp = @funcparam1*cos(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 113 ftemp = @funcparam1*sinh(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 114 ftemp = @funcparam1*cosh(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 115 ftemp = @funcparam1*exp(bsum^@funcparam2) elseif @fbmfunc == 116 ftemp = @funcparam1*exp(1/(bsum^@funcparam2)) elseif @fbmfunc == 117 ftemp = abs(bsum) elseif @fbmfunc == 118 ftemp = round(bsum) elseif @fbmfunc == 119 ftemp = trunc(bsum) elseif @fbmfunc == 120 ftemp = ceil(bsum) elseif @fbmfunc == 121 ftemp = floor(bsum) elseif @fbmfunc == 122 ftemp = @funcparam1*bsum/log(bsum) elseif @fbmfunc == 123 ftemp = @funcparam1*log(bsum)/bsum elseif @fbmfunc == 124 ftemp = @funcparam1*exp(bsum)/bsum elseif @fbmfunc == 125 ftemp = @funcparam1*exp(1/bsum)/bsum elseif @fbmfunc == 126 ftemp = @funcparam1*exp(bsum^@funcparam2)/bsum elseif @fbmfunc == 127 ftemp = @funcparam1*exp(1/(bsum^@funcparam2))/bsum elseif @fbmfunc == 128 ftemp = @funcparam1*bsum * exp(bsum^@funcparam2) elseif @fbmfunc == 129 ftemp = @funcparam1*bsum * exp(1/(bsum^@funcparam2)) elseif @fbmfunc == 130 ftemp = @funcparam1*exp(-(bsum^@funcparam2)) elseif @fbmfunc == 131 ftemp = @funcparam1*exp(-1/(bsum^@funcparam2)) elseif @fbmfunc == 132 ftemp = @funcparam1*exp(-(bsum^@funcparam2))/bsum elseif @fbmfunc == 133 ftemp = @funcparam1*exp(-1/(bsum^@funcparam2))/bsum elseif @fbmfunc == 134 ftemp = @funcparam1*bsum * exp(-(bsum^@funcparam2)) elseif @fbmfunc == 135 ftemp = @funcparam1*bsum * exp(-1/(bsum^@funcparam2)) else ; @fbmfunc == 136 ftemp = bsum % @funcparam1 endif ; bsumwarp bsum = ftemp endif ; @fbmfunc bsum = (bsum + @bsumoffset) * @bpostscale bfreq = bfreq * @bstep bp = bp * br2 / @bstep bi = bi - 1 endwhile ; bi fbmadjust = @fbmamount * (bsum + 1) endif ; @fBm zangle = atan2(#z) ; get angle of z if (zangle < 0) ; it's negative zangle = zangle + twopi ; make it positive endif ; zangle gradientcolor = trunc(zangle/angleincrement) ; zero thru @decomptype-1 ftemp = gradincrement * gradientcolor if @decompfunc != 0 ftemp = @decompprescale * ftemp if ( @decompfunc == 1 ) ftemp = 1/ftemp elseif ( @decompfunc == 2 ) ftemp = ftemp * ftemp elseif ( @decompfunc == 3 ) ftemp = 1 / ( ftemp * ftemp ) elseif ( @decompfunc == 4 ) ftemp = @decompparam1*log(ftemp) elseif ( @decompfunc == 5 ) ftemp = @decompparam1*exp( ftemp) elseif ( @decompfunc == 6 ) ftemp = @decompparam1*ftemp^(ftemp) elseif ( @decompfunc == 7 ) ftemp = @decompparam1*sin( ftemp ) elseif ( @decompfunc == 8 ) ftemp = @decompparam1*cos( ftemp ) elseif ( @decompfunc == 9 ) ftemp = @decompparam1*tan( ftemp ) elseif ( @decompfunc == 10 ) ftemp = @decompparam1*asin( ftemp ) elseif ( @decompfunc == 11 ) ftemp = @decompparam1*acos( ftemp ) elseif ( @decompfunc == 12 ) ftemp = @decompparam1*atan( ftemp ) elseif ( @decompfunc == 13 ) ftemp = @decompparam1*sinh( ftemp ) elseif ( @decompfunc == 14 ) ftemp = @decompparam1*cosh( ftemp ) elseif ( @decompfunc == 15 ) ftemp = @decompparam1*tanh( ftemp ) elseif ( @decompfunc == 16 ) ftemp = @decompparam1*asinh( ftemp ) elseif ( @decompfunc == 17 ) ftemp = @decompparam1*acosh( ftemp ) elseif ( @decompfunc == 18 ) ftemp = @decompparam1*atanh( ftemp ) elseif ( @decompfunc == 19 ) ftemp = @decompparam1*log( 1/ftemp ) elseif ( @decompfunc == 20 ) ftemp = @decompparam1*log( @decompparam2*log( ftemp )) elseif ( @decompfunc == 21 ) ftemp = @decompparam1*exp( -ftemp ) elseif ( @decompfunc == 22 ) ftemp = @decompparam1*exp( 1/ftemp ) elseif ( @decompfunc == 23 ) ftemp = @decompparam1*ftemp^(-ftemp) elseif ( @decompfunc == 24 ) ftemp = @decompparam1*(sin( ftemp ))^@decompparam2 elseif ( @decompfunc == 25 ) ftemp = @decompparam1*(cos( ftemp ))^@decompparam2 elseif ( @decompfunc == 26 ) ftemp = @decompparam1*(tan( ftemp ))^@decompparam2 elseif ( @decompfunc == 27 ) ftemp = @decompparam1*cotan( ftemp ) elseif ( @decompfunc == 28 ) ftemp = @decompparam1/cos( ftemp ) elseif ( @decompfunc == 29 ) ftemp = @decompparam1/sin( ftemp ) elseif ( @decompfunc == 30 ) ftemp = @decompparam1*(cotan( ftemp ))^@decompparam2 elseif ( @decompfunc == 31 ) ftemp = @decompparam1/(cos( ftemp ))^@decompparam2 elseif ( @decompfunc == 32 ) ftemp = @decompparam1/(sin( @decompparam1*ftemp ))^@decompparam2 elseif ( @decompfunc == 33 ) ftemp = @decompparam1*ftemp^(ftemp) ftemp = @decompparam2*ftemp^(ftemp) elseif ( @decompfunc == 34 ) ftemp = @decompparam1*ftemp^(ftemp) ftemp = @decompparam2/( ftemp^ftemp ) elseif ( @decompfunc == 35 ) ftemp = @decompparam1*log(-ftemp) elseif ( @decompfunc == 36 ) ftemp = @decompparam1/log( ftemp ) elseif ( @decompfunc == 37 ) ftemp = @decompparam1* ftemp * log( ftemp ) elseif ( @decompfunc == 38 ) ftemp = @decompparam1* sin( ftemp ) / ftemp elseif ( @decompfunc == 39 ) ftemp = @decompparam1* cos( ftemp ) / ftemp elseif ( @decompfunc == 40 ) ftemp = @decompparam1* sin( ftemp ) * cos( @decompparam2*ftemp ) elseif ( @decompfunc == 41 ) ftemp = @decompparam1*sin( ftemp^2 ) elseif ( @decompfunc == 42 ) ftemp = @decompparam1*exp( -1/ftemp ) elseif ( @decompfunc == 43 ) ftemp = @decompparam1* ftemp * exp( ftemp ) elseif ( @decompfunc == 44 ) ftemp = @decompparam1* ftemp * exp( -ftemp ) elseif ( @decompfunc == 45 ) ftemp = @decompparam1* ftemp * exp( 1/ftemp ) elseif ( @decompfunc == 46 ) ftemp = @decompparam1* ftemp * exp( -1/ftemp ) elseif ( @decompfunc == 47 ) ftemp = @decompparam1* ftemp * ftemp * ftemp elseif ( @decompfunc == 48 ) ftemp = @decompparam1 / ( ftemp * ftemp * ftemp ) elseif ( @decompfunc == 49 ) ftemp = @decompparam1*atan( 1 / ftemp ) elseif ( @decompfunc == 50 ) ftemp = @decompparam1*acos( 1 / ftemp ) elseif ( @decompfunc == 51 ) ftemp = @decompparam1*asin( 1 / ftemp ) elseif ( @decompfunc == 52 ) ftemp = @decompparam1*tan( ftemp ) / ftemp elseif ( @decompfunc == 53 ) ftemp = @decompparam1*cotan( ftemp ) / ftemp elseif ( @decompfunc == 54 ) ftemp = @decompparam1 / ( ftemp * cos( ftemp )) elseif ( @decompfunc == 55 ) ftemp = @decompparam1 / ( ftemp * sin( ftemp )) elseif ( @decompfunc == 56 ) ftemp = @decompparam1* ftemp * sin( ftemp ) elseif ( @decompfunc == 57 ) ftemp = @decompparam1* ftemp * cos( ftemp ) elseif ( @decompfunc == 58 ) ftemp = @decompparam1* ftemp * tan( ftemp ) elseif ( @decompfunc == 59 ) ftemp = @decompparam1* ftemp * cotan( ftemp ) elseif ( @decompfunc == 60 ) ftemp = @decompparam1*ftemp/cos( ftemp ) elseif ( @decompfunc == 61 ) ftemp = @decompparam1*ftemp/sin( ftemp ) elseif ( @decompfunc == 62 ) ftemp = @decompparam1*sin( 1/ftemp ) elseif ( @decompfunc == 63 ) ftemp = @decompparam1*cos( 1/ftemp ) elseif ( @decompfunc == 64 ) ftemp = @decompparam1*tan( 1/ftemp ) elseif ( @decompfunc == 65 ) ftemp = @decompparam1*cotan( 1/ftemp ) elseif ( @decompfunc == 66 ) ftemp = @decompparam1/cos( 1/ftemp ) elseif ( @decompfunc == 67 ) ftemp = @decompparam1/sin( 1/ftemp ) elseif ( @decompfunc == 68 ) ftemp = @decompparam1*cotanh( ftemp ) elseif ( @decompfunc == 69 ) ftemp = @decompparam1/cosh( ftemp ) elseif ( @decompfunc == 70 ) ftemp = @decompparam1/sinh( ftemp ) elseif ( @decompfunc == 71 ) ftemp = @decompparam1*atanh( 1/ftemp ) elseif ( @decompfunc == 72 ) ftemp = @decompparam1*acosh( 1/ftemp ) elseif ( @decompfunc == 73 ) ftemp = @decompparam1*asinh( 1/ftemp ) elseif @decompfunc == 74 ftemp = ftemp^@decomppower elseif @decompfunc == 75 ftemp = @decompparam1*(sinh(ftemp))^@decompparam2 elseif @decompfunc == 76 ftemp = @decompparam1*(cosh( ftemp ))^@decompparam2 elseif @decompfunc == 77 ftemp = @decompparam1*(tanh(ftemp))^@decompparam2 elseif @decompfunc == 78 ftemp = @decompparam1*(cotanh( ftemp ))^@decompparam2 elseif @decompfunc == 79 ftemp = @decompparam1*(1/cosh(ftemp))^@decompparam2 elseif @decompfunc == 80 ftemp = @decompparam1*(1 / sinh( ftemp ))^@decompparam2 elseif @decompfunc == 81 ftemp = @decompparam1*sinh(1/ftemp) elseif @decompfunc == 82 ftemp = @decompparam1*cosh(1/ftemp) elseif @decompfunc == 83 ftemp = @decompparam1*tanh(1/ftemp) elseif @decompfunc == 84 ftemp = @decompparam1*cotanh(1/ftemp) elseif @decompfunc == 85 ftemp = @decompparam1/cosh(1/ftemp) elseif @decompfunc == 86 ftemp = @decompparam1/sinh(1/ftemp) elseif @decompfunc == 87 ftemp = @decompparam1*sin( ftemp ) * tan(@decompparam2*ftemp) elseif @decompfunc == 88 ftemp = @decompparam1*sinh(ftemp) * tanh(@decompparam2*ftemp) elseif @decompfunc == 89 ftemp = @decompparam1*sinh(ftemp) * cosh(@decompparam2*ftemp) elseif @decompfunc == 90 ftemp = (sinh(ftemp)^@decompparam1)*(cosh(ftemp)^@decompparam2) elseif @decompfunc == 91 ftemp = (sin(ftemp)^@decompparam1)*(cos(ftemp)^@decompparam2) elseif @decompfunc == 92 ftemp = 1/ftemp ftemp = @decompparam1*sin(ftemp)*cos(@decompparam2*ftemp) elseif @decompfunc == 93 ftemp = @decompparam1*(sin( 1/ftemp ))^@decompparam2 elseif @decompfunc == 94 ftemp = @decompparam1* sin(ftemp) * cos(@decompparam2/ftemp) elseif @decompfunc == 95 ftemp = @decompparam1* sin(ftemp) * sin(@decompparam2/ftemp) elseif @decompfunc == 96 ftemp = (log(ftemp))^@decompparam1 elseif @decompfunc == 97 ftemp = @decompparam1*sin(ftemp) * sin(@decompparam2*ftemp) elseif @decompfunc == 98 ftemp = exp(2*ftemp) elseif @decompfunc == 99 ftemp = exp(-2*ftemp) elseif @decompfunc == 100 ftemp = 1/ftemp ftemp = @decompparam1*sinh(ftemp)*cosh(@decompparam2*ftemp) elseif @decompfunc == 101 ftemp = @decompparam1*(sinh( 1/ftemp )^@decompparam2) elseif @decompfunc == 102 ftemp = @decompparam1*sinh(ftemp) * cosh(@decompparam2/ftemp) elseif @decompfunc == 103 ftemp = @decompparam1*sinh(ftemp) * sinh(@decompparam2/ftemp) elseif @decompfunc == 104 ftemp = @decompparam1*sin(ftemp) * sinh(@decompparam2*ftemp) elseif @decompfunc == 105 ftemp = @decompparam1*sin(ftemp) * cosh(@decompparam2*ftemp) elseif @decompfunc == 106 ftemp = (sin(ftemp)^@decompparam1)*(sinh(ftemp)^@decompparam2) elseif @decompfunc == 107 ftemp = @decompparam1*sin(ftemp)*exp(@decompparam2*ftemp) elseif @decompfunc == 108 ftemp = @decompparam1*cos(ftemp)*exp(@decompparam2*ftemp) elseif @decompfunc == 109 ftemp = @decompparam1*sinh(ftemp)*exp(@decompparam2*ftemp) elseif @decompfunc == 110 ftemp = @decompparam1*cosh(ftemp)*exp(@decompparam2*ftemp) elseif @decompfunc == 111 ftemp = @decompparam1*sin(ftemp)*log(@decompparam2*ftemp) elseif @decompfunc == 112 ftemp = @decompparam1*cos(ftemp)*log(@decompparam2*ftemp) elseif @decompfunc == 113 ftemp = @decompparam1*sinh(ftemp)*log(@decompparam2*ftemp) elseif @decompfunc == 114 ftemp = @decompparam1*cosh(ftemp)*log(@decompparam2*ftemp) elseif @decompfunc == 115 ftemp = @decompparam1*exp(ftemp^@decompparam2) elseif @decompfunc == 116 ftemp = @decompparam1*exp(1/(ftemp^@decompparam2)) elseif @decompfunc == 117 ftemp = abs(ftemp) elseif @decompfunc == 118 ftemp = round(ftemp) elseif @decompfunc == 119 ftemp = trunc(ftemp) elseif @decompfunc == 120 ftemp = ceil(ftemp) elseif @decompfunc == 121 ftemp = floor(ftemp) elseif @decompfunc == 122 ftemp = @decompparam1*ftemp/log(ftemp) elseif @decompfunc == 123 ftemp = @decompparam1*log(ftemp)/ftemp elseif @decompfunc == 124 ftemp = @decompparam1*exp(ftemp)/ftemp elseif @decompfunc == 125 ftemp = @decompparam1*exp(1/ftemp)/ftemp elseif @decompfunc == 126 ftemp = @decompparam1*exp(ftemp^@decompparam2)/ftemp elseif @decompfunc == 127 ftemp = @decompparam1*exp(1/(ftemp^@decompparam2))/ftemp elseif @decompfunc == 128 ftemp = @decompparam1*ftemp * exp(ftemp^@decompparam2) elseif @decompfunc == 129 ftemp = @decompparam1*ftemp * exp(1/(ftemp^@decompparam2)) elseif @decompfunc == 130 ftemp = @decompparam1*exp(-(ftemp^@decompparam2)) elseif @decompfunc == 131 ftemp = @decompparam1*exp(-1/(ftemp^@decompparam2)) elseif @decompfunc == 132 ftemp = @decompparam1*exp(-(ftemp^@decompparam2))/ftemp elseif @decompfunc == 133 ftemp = @decompparam1*exp(-1/(ftemp^@decompparam2))/ftemp elseif @decompfunc == 134 ftemp = @decompparam1*ftemp * exp(-(ftemp^@decompparam2)) elseif @decompfunc == 135 ftemp = @decompparam1*ftemp * exp(-1/(ftemp^@decompparam2)) else ; @decompfunc == 136 ftemp = ftemp % @decompparam1 endif ; decompfunc endif ; @decompfunc #index = ftemp + fbmadjust else #solid = TRUE endif ; periodflag default: title = "Decomposition+" param decomptype caption = "Decomposition Type" min = 1 max = 400 default = 2 hint = "This parameter controls how many gradient colors are used \ in the decomposition. Min = 1, max = 400" endparam param periodicity caption = "Enable Periodicity?" default = FALSE hint = "If this parameter is enabled, then #z is only checked for possible \ trapping every n cycles, where n is set by parameter 'Period Length'" endparam param period caption = "Period Length" default = 2 min = 2 hint = "If 'Enable Periodicity' is turned on, then this setting determines how \ often (in iteration cycles) the orbit of #z is checked for possible trapping" visible = @periodicity endparam param perphase caption = "Period Phase" default = 0 min = 0 hint = "If 'Enable Periodicity' is turned on, then this setting determines which \ cycle of the period is checked for possible trapping. The useful phase range \ is from a minimum of 0 up to a maximum of 'Period Length' -1. Values above \ this limit are reset to 0" visible = @periodicity endparam param reversephase caption = "Reverse Phase?" default = FALSE hint = "If 'Enable Periodicity' is turned on, and this parameter is also enabled, \ then trapping is examined only when the period is NOT in the cycle set by \ parameter 'Period Phase'" visible = @periodicity endparam param @decompfunc caption = "Decomp Angle Warp" enum = "none" "1/c" "c^2" "1/c^2" "log(c)" "e^c" "c^c" "sin(c)" "cos(c)" \ "tan(c)" "asin(c)" "acos(c)" "atan(c)" "sinh(c)" "cosh(c)" "tanh(c)" \ "asinh(c)" "acosh(c)" "atanh(c)" "log(1/c)" "log(log(c))" "e^-c" \ "e^(1/c)" "c^-c" "sin(c)^n" "cos(c)^n" "tan(c)^n" "cot(c)" "sec(c)" \ "csc(c)" "cot(c)^n" "sec(c)^n" "csc(c)^n" "c^c^c" "1/c^c^c" "log(-c)" \ "1/log(c)" "clog(c)" "sin(c)/c" "cos(c)/c" "sin(c)*cos(n*c)" "sin(c^n)" \ "e^(-1/c)" "ce^c" "ce^-c" "ce^(1/c)" "ce^(-1/c)" "c^3" "1/c^3" \ "acot(c)" "asec(c)" "acsc(c)" "tan(c)/c" "cot(c)/c" "sec(c)/c" \ "csc(c)/c" "csin(c)" "ccos(c)" "ctan(c)" "ccot(c)" "csec(c)" "ccsc(c)" \ "sin(1/c)" "cos(1/c)" "tan(1/c)" "cot(1/c)" "sec(1/c)" "csc(1/c)" \ "cotanh(c)" "sech(c)" "cosech(c)" "acoth(c)" "asech(c)" "acosech(c)" "c^power" \ "sinh(c)^n" "cosh(c)^n" "tanh(c)^n" "cotanh(c)^n" \ "sech(c)^n" "cosech(c)^n" "sinh(1/c)" "cosh(1/c)" "tanh(1/c)" \ "cotanh(1/c)" "sech(1/c)" "cosech(1/c)" "sin(c)tan(n*c)" "sinh(c)tanh(n*c)" \ "sinh(c)cosh(n*c)" "sinh(c)^m*cosh(c)^n" "sin(c)^m*cos(c)^n" \ "sin(1/c)*cos(n/c)" "sin(1/c)^n" "sin(c)cos(n/c)" "sin(c)sin(n/c)" \ "log(c)^n" "sin(c)sin(n*c)" "e^2c" "e^-2c" "sinh(1/c)cosh(n/c)" \ "sinh(1/c)^n" "sinh(c)cosh(n/c)" "sinh(c)sinh(n/c)" "sin(c)sinh(n*c)" \ "sin(c)cosh(n*c)" "sin(c)^m*sinh(c)^n" "sin(c)e^c" "cos(c)e^c" \ "sinh(c)e^c" "cosh(c)e^c" "sin(c)log(c)" "cos(c)log(c)" "sinh(c)log(c)" \ "cosh(c)log(c)" \ "e^(c^n)" "e^(1/(c^n))" "abs(c)" "round(c)" "trunc(c)" \ "ceil(c)" "floor(c)" "c/log(c)" "log(c)/c" "(e^c)/c" "(e^(1/c))/c" \ "(e^(c^n))/c" "(e^(1/(c^n))/c" "c*e^(c^n)" "c*e^(1/(c^n))" \ "e^(-c^n)" "e^(-1/(c^n))" "(e^(-c^n))/c" "(e^(-1/(c^n))/c" \ "c*e^(-c^n)" "c*e^(1/(-c^n))" "c%n" default = 0 hint = "This function modifies the color adjustment produced by the angle decomposition algorithm" endparam param decomppower caption = "Decomp Warp Power" default = 0.333333333333333 hint = "If param 'Decomp Angle Warp' is set to 'c^power', then this is the power" visible = (@decompfunc == "c^power") endparam param decompprescale caption = "Decomp Warp Prescale" default = 1.0 hint = "This factor scales the argument to the 'Decomp Angle Warp' function" visible = (@decompfunc != "none") endparam param decompparam1 caption = "Decomp Warp Param1" default = 1.0 hint = "If the 'Decomp Angle Warp' function uses extra parameters, then \ this number is the first of those" visible = @decompfunc > 3 endparam param decompparam2 caption = "Decomp Warp Param2" default = 2.0 hint = "If the 'Decomp Angle Warp' function uses extra parameters, then \ this number is the second of those" visible = (@decompfunc == 20) || (@decompfunc == 24) || \ (@decompfunc == 25) || (@decompfunc == 26) || (@decompfunc == 30) || \ (@decompfunc == 31) || (@decompfunc == 32) || (@decompfunc == 33) || \ (@decompfunc == 34) || (@decompfunc == 40) || (@decompfunc == 75) || \ (@decompfunc == 76) || (@decompfunc == 77) || (@decompfunc == 78) || \ (@decompfunc == 79) || (@decompfunc == 80) || (@decompfunc == 87) || \ (@decompfunc == 88) || (@decompfunc == 89) || (@decompfunc == 90) || \ (@decompfunc == 91) || (@decompfunc == 92) || (@decompfunc == 93) || \ (@decompfunc == 94) || (@decompfunc == 95) || (@decompfunc == 97) || \ (@decompfunc == 100) || (@decompfunc == 101) || (@decompfunc == 102) || \ (@decompfunc == 103) || (@decompfunc == 104) || (@decompfunc == 105) || \ (@decompfunc == 106) || (@decompfunc == 107) || (@decompfunc == 108) || \ (@decompfunc == 109) || (@decompfunc == 110) || (@decompfunc == 111) || \ (@decompfunc == 112) || (@decompfunc == 113) || (@decompfunc == 114) || \ (@decompfunc == 115) || (@decompfunc == 116) || (@decompfunc == 126) || \ (@decompfunc == 127) || (@decompfunc == 128) || (@decompfunc == 129) || \ (@decompfunc == 130) || (@decompfunc == 131) || (@decompfunc == 132) || \ (@decompfunc == 133) || (@decompfunc == 134) || (@decompfunc == 135) endparam param fBm caption = "Enable fBm?" default = FALSE hint = "Adds fBm distortion to coloring; overall amount of turbulence \ is set by parameter 'fBm Amount'" endparam param fbmamount caption = "fBm Amount" default = 1.0 hint = "If fBm is enabled, this parameter determines the overall fBm perturbation \ of the color palette index" visible = @fBm endparam param bscale caption = "fBm Scale" default = 1.0 hint = "The overall scale of the fBm turbulence" visible = @fBm endparam param fbminit caption = "fBm Initialization" enum = "min z" "min* z" "first z" "second z" "third z" "fourth z" "last z" \ "penult z" "antepenult z" "pixel" ; "blend1" "blend2" \ ; "blend3" "blend4" "blend5" "blend6" "blend7" "blend8" \ ; "blend9" default = 0 hint = "This setting defines the input to the fBm algorithm. Option \ 'min* z' skips the first iteration before capturing the minimum z value" visible = @fBm endparam ; param fbmblendmode1 ; caption = "How to Blend?" ; enum = "*" "+" "-" "/" "^" "--" "//" "^^" ; default = 0 ; hint = "If one of the 'blend' initializations is chosen for param \ ; 'fBm Initialization', then this determines how the init values \ ; are mixed" ; visible = @fBm && (@fbminit > 9) ; endparam ; param fbmblendmode2 ; caption = "How to Blend, Part 2?" ; enum = "normal" "negate" "flip" "conj" "flip-conj" ; default = 0 ; hint = "If one of the 'blend' initializations is chosen for param \ ; 'fBm Initialization', then this determines how the init values \ ; are mixed" ; visible = @fBm && (@fbminit > 9) ; endparam param fbmtransform caption = "Apply Transform?" default = FALSE hint = "Applies tranformation to fBm initialization algorithm" visible = @fBm endparam param fbmtransformfunc caption = "Transform Function" enum = "none" "circle" "cardioid" "lissajous" "hypocycloid" "parabola" default = 0 hint = "If parameter 'Apply Transform' is enabled, this param \ determines which tranformation is applied" visible = @fBm && @fbmtransform endparam param fbmcradius caption = "Circle Radius" default = 1.0 hint = "If parameter 'Transform Function' is set to 'circle', this param \ determines the circle radius" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 1) endparam param fbmcfrequency caption = "Circle Frequency" default = 1.0 hint = "If parameter 'Transform Function' is set to 'circle', this is an extra param \ that modifies the circle function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 1) endparam param fbmcardradius caption = "Cardioid Size" default = 1.0 hint = "If parameter 'Transform Function' is set to 'cardioid', this param \ determines the cardioid size" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 2) endparam param fbmcardfreq caption = "Cardioid Frequency" default = 1.0 hint = "If parameter 'Transform Function' is set to 'cardioid', this is an extra param \ that modifies the cardioid function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 2) endparam param fbmlissaamp1 caption = "1st Lissajous Amplitude" default = 1.0 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the amplitude of the first lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmlissafreq1 caption = "1st Lissajous Frequency" default = 2.0 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the frequency of the first lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmlissaphase1 caption = "1st Lissajous Phase" default = 0.0 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the phase of the first lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmlissaamp2 caption = "2nd Lissajous Amplitude" default = 1.0 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the amplitude of the second lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmlissafreq2 caption = "2nd Lissajous Frequency" default = 2.0 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the frequency of the second lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmlissaphase2 caption = "2nd Lissajous Phase" default = 1.5707963267948966192313216916398 hint = "If parameter 'Transform Function' is set to 'lissajous', this param \ sets the phase of the second lissajous function" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 3) endparam param fbmhypocyc1 caption = "1st Hypocycloid Constant" default = 8.0 hint = "If parameter 'Transform Function' is set to 'hypocycloid', this param \ sets the first of the two constants defining the hypocycloid curve. \ Try (c1 - c2) / c2 = an integer" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 4) endparam param fbmhypocyc2 caption = "2nd Hypocycloid Constant" default = 2.0 hint = "If parameter 'Transform Function' is set to 'hypocycloid', this param \ sets the second of the two constants defining the hypocycloid curve. \ Try (c1 - c2) / c2 = an integer" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 4) endparam param fbmparabscale caption = "Parabola Scale" default = -2.0 hint = "If parameter 'Transform Function' is set to 'parabola', this param \ sets the overall scale of the curve" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 5) endparam param fbmparaboffset caption = "Parabola Offset" default = 1.0 hint = "If parameter 'Transform Function' is set to 'parabola', this extra param \ can be used to distort the curve" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 5) endparam param fbmparabfreq caption = "Parabola Frequency" default = 1.0 hint = "If parameter 'Transform Function' is set to 'parabola', this extra param \ can be used to further distort the curve" visible = @fBm && @fbmtransform && (@fbmtransformfunc == 5) endparam param fbmhybrid caption = "Hybrid Initialization?" default = FALSE hint = "Adjusts initialization value of the fBm algorithm \ by mixing in the #pixel value, after the transform function, \ if any, is applied" visible = @fBm endparam param fbmhybridtype caption = "Hybrid Type" enum = "*" "+" "-" "/" "^" "--" "//" "^^" "average" "geom mean" default = 0 hint = "If 'Hybrid Initialization' is enabled, then this param \ determines how the pixel value is blended in" visible = @fBm && @fbmhybrid endparam param fbmhybridweight caption = "Hybrid Weight" default = 1.0 hint = "If parameter 'Hybrid Initialization' is enabled, this param \ determines how much of #pixel is blended in" visible = @fBm && @fbmhybrid endparam param fbmbias caption = "Bias fBm?" default = FALSE hint = "Enable multiplier of fBm initialization" visible = @fBm endparam param fbmbiasamount caption = "Bias Amount" default = (1.0,0) hint = "Value of fBm Bias Multiplier" visible = @fBm && @fbmbias endparam param bangle caption = "fBm Rotation" default = 0.0 hint = "Angular parameter for fBm noise" visible = @fBm endparam param bstep caption = "fBm Stepsize" default = 0.5 hint = "Scale step size for fBm noise iterations" visible = @fBm endparam param banglestep caption = "fBm Rotation Step" default = 53.0 hint = "The angle in degrees for noise function rotation after \ each fBm iteration; used if fBm is enabled" visible = @fBm endparam param boctaves caption = "fBm Octaves" default = 7 min = 1 hint = "The number of iterations of the fBm noise function" visible = @fBm endparam param bpower caption = "fBm Exponent" default = 2.0 hint = "The exponent used if param fBm is enabled \ for fBm randomization" visible = @fBm endparam param bbfreq caption = "fBm Frequency" default = 1.0 hint = "Frequency multiplier for fBm noise" visible = @fBm endparam param boffset caption = "fBm Offset" default = (0.0,0.0) hint = "Offset added to fBm noise initializer" visible = @fBm endparam param bsumoffset caption = "fBm Sum Offset" default = 0.0 hint = "This term adjusts the cumulative fBm sum" visible = @fBm endparam param bpostscale caption = "fBm Postscale" default = 1.0 hint = "This factor scales the cumulative fBm sum after the \ 'fBm Warp Factor' and 'fBm Sum Offset' adjustments" visible = @fBm endparam param fbmint1 caption = "fBm Graniness 1" default = 256 hint = "Distorts the traditional fBm algorithm" visible = @fBm endparam param fbmint2 caption = "fBm Graniness 2" default = 65536 hint = "Distorts the traditional fBm algorithm" visible = @fBm endparam param fbmint3 caption = "fBm Graniness 3" default = 512 hint = "Distorts the traditional fBm algorithm" visible = @fBm endparam param @fbmfunc caption = "fBm Warp Factor" enum = "none" "1/c" "c^2" "1/c^2" "log(c)" "e^c" "c^c" "sin(c)" "cos(c)" \ "tan(c)" "asin(c)" "acos(c)" "atan(c)" "sinh(c)" "cosh(c)" "tanh(c)" \ "asinh(c)" "acosh(c)" "atanh(c)" "log(1/c)" "log(log(c))" "e^-c" \ "e^(1/c)" "c^-c" "sin(c)^n" "cos(c)^n" "tan(c)^n" "cot(c)" "sec(c)" \ "csc(c)" "cot(c)^n" "sec(c)^n" "csc(c)^n" "c^c^c" "1/c^c^c" "log(-c)" \ "1/log(c)" "clog(c)" "sin(c)/c" "cos(c)/c" "sin(c)*cos(n*c)" "sin(c^n)" \ "e^(-1/c)" "ce^c" "ce^-c" "ce^(1/c)" "ce^(-1/c)" "c^3" "1/c^3" \ "acot(c)" "asec(c)" "acsc(c)" "tan(c)/c" "cot(c)/c" "sec(c)/c" \ "csc(c)/c" "csin(c)" "ccos(c)" "ctan(c)" "ccot(c)" "csec(c)" "ccsc(c)" \ "sin(1/c)" "cos(1/c)" "tan(1/c)" "cot(1/c)" "sec(1/c)" "csc(1/c)" \ "cotanh(c)" "sech(c)" "cosech(c)" "acoth(c)" "asech(c)" "acosech(c)" "c^power" \ "sinh(c)^n" "cosh(c)^n" "tanh(c)^n" "cotanh(c)^n" \ "sech(c)^n" "cosech(c)^n" "sinh(1/c)" "cosh(1/c)" "tanh(1/c)" \ "cotanh(1/c)" "sech(1/c)" "cosech(1/c)" "sin(c)tan(n*c)" "sinh(c)tanh(n*c)" \ "sinh(c)cosh(n*c)" "sinh(c)^m*cosh(c)^n" "sin(c)^m*cos(c)^n" \ "sin(1/c)*cos(n/c)" "sin(1/c)^n" "sin(c)cos(n/c)" "sin(c)sin(n/c)" \ "log(c)^n" "sin(c)sin(n*c)" "e^2c" "e^-2c" "sinh(1/c)cosh(n/c)" \ "sinh(1/c)^n" "sinh(c)cosh(n/c)" "sinh(c)sinh(n/c)" "sin(c)sinh(n*c)" \ "sin(c)cosh(n*c)" "sin(c)^m*sinh(c)^n" "sin(c)e^c" "cos(c)e^c" \ "sinh(c)e^c" "cosh(c)e^c" "sin(c)log(c)" "cos(c)log(c)" "sinh(c)log(c)" \ "cosh(c)log(c)" \ "e^(c^n)" "e^(1/(c^n))" "abs(c)" "round(c)" "trunc(c)" \ "ceil(c)" "floor(c)" "c/log(c)" "log(c)/c" "(e^c)/c" "(e^(1/c))/c" \ "(e^(c^n))/c" "(e^(1/(c^n))/c" "c*e^(c^n)" "c*e^(1/(c^n))" \ "e^(-c^n)" "e^(-1/(c^n))" "(e^(-c^n))/c" "(e^(-1/(c^n))/c" \ "c*e^(-c^n)" "c*e^(1/(-c^n))" "c%n" default = 0 hint = "This function modifies the color adjustment produced by the fBm noise algorithm. \ It does not affect the TIA coloring component; use param 'TIA Warp Factor' \ for that" visible = @fBm endparam param funcpower caption = "fBm Warp Power" default = 0.333333333333333 hint = "If param 'fBm Warp Factor' is set to 'c^power', then this is the power" visible = (@fbmfunc == "c^power") && @fBm endparam param funcprescale caption = "fBm Warp Prescale" default = 1.0 hint = "This factor scales the argument to the 'fBm Warp Factor' function" visible = @fBm && @fbmfunc != "none" endparam param funcparam1 caption = "fBm Warp Param1" default = 1.0 hint = "If the 'fBm Warp Factor' function uses extra parameters, then \ this number is the first of those" visible = @fBm && (@fbmfunc > 3) endparam param funcparam2 caption = "fBm Warp Param2" default = 2.0 hint = "If the 'fBm Warp Factor' function uses extra parameters, then \ this number is the second of those" visible = @fBm && ( (@fbmfunc == 20) || (@fbmfunc == 24) || \ (@fbmfunc == 25) || (@fbmfunc == 26) || (@fbmfunc == 30) || \ (@fbmfunc == 31) || (@fbmfunc == 32) || (@fbmfunc == 33) || \ (@fbmfunc == 34) || (@fbmfunc == 40) || (@fbmfunc == 75) || \ (@fbmfunc == 76) || (@fbmfunc == 77) || (@fbmfunc == 78) || \ (@fbmfunc == 79) || (@fbmfunc == 80) || (@fbmfunc == 87) || \ (@fbmfunc == 88) || (@fbmfunc == 89) || (@fbmfunc == 90) || \ (@fbmfunc == 91) || (@fbmfunc == 92) || (@fbmfunc == 93) || \ (@fbmfunc == 94) || (@fbmfunc == 95) || (@fbmfunc == 97) || \ (@fbmfunc == 100) || (@fbmfunc == 101) || (@fbmfunc == 102) || \ (@fbmfunc == 103) || (@fbmfunc == 104) || (@fbmfunc == 105) || \ (@fbmfunc == 106) || (@fbmfunc == 107) || (@fbmfunc == 108) || \ (@fbmfunc == 109) || (@fbmfunc == 110) || (@fbmfunc == 111) || \ (@fbmfunc == 112) || (@fbmfunc == 113) || (@fbmfunc == 114) || \ (@fbmfunc == 115) || (@fbmfunc == 116) || (@fbmfunc == 126) || \ (@fbmfunc == 127) || (@fbmfunc == 128) || (@fbmfunc == 129) || \ (@fbmfunc == 130) || (@fbmfunc == 131) || (@fbmfunc == 132) || \ (@fbmfunc == 133) || (@fbmfunc == 134) || (@fbmfunc == 135) ) endparam } #jjj jam-SmoothAverages1.0 { ; jam 161003 ; Tracks various points during the z orbit and colors accordingly. global: float baillog = float powerlog = float twopi = 0.0 baillog = log(log(@bailout)/@bailoutadjust) powerlog = @poweradjust/log(@power) twopi = 2 * #pi float halfpi = #pi/2 float threehalvespi = #pi + halfpi float smoothcomplement = 1 - @smoothconst ; Perlin noise settings int perlinperms[2048] ; maximum grid size is 1024 float perlingrads[2048,2] int indexi = int indexj = int swapint = int tempint = 0 int seed = @perlinseed float tempfloat = 0.0 int tempint = 0 int gridfraction = int tempcount = 0 ; for @perlingridstyle 'sapphire' bool switch = FALSE int perlinarraysz = 0 if @perlingridsize == "16" perlinarraysz = 16 elseif @perlingridsize == "64" perlinarraysz = 64 elseif @perlingridsize == "256" perlinarraysz = 256 elseif @perlingridsize == "1024" perlinarraysz = 1024 endif ; @perlingridsize if @enableperlin ; Fill the first N permutation array elements with the consecutive integers 0 thru N-1. ; Simultaneously fill the first N gradient array elements with random gradient vectors, ; or with other gradient vectors depending upon parameter @perlingridstyle gridfraction = round(@perlingridsize/8) indexi = 0 while indexi < perlinarraysz perlinperms[indexi] = indexi indexj = 0 while indexj < 2 if @perlingridstyle == "Perlin" seed = random(seed) perlingrads[indexi, indexj] = seed/#randomrange ; gradient between -1 and 1 elseif @perlingridstyle == "topaz" if indexj == 0 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj elseif @perlingridstyle == "opal" if indexi%2 == 0 if indexj == 0 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj else if indexj == 1 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj endif ; indexi elseif @perlingridstyle == "ruby" if indexi%3 == 0 if indexj == 0 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj else if indexj == 1 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj endif ; indexi elseif @perlingridstyle == "emerald" if (indexi%4 == 0) || (indexi%4 == 3) if indexj == 0 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj elseif (indexi%4 == 1) || (indexi%4 == 2) if indexj == 0 perlingrads[indexi, indexj] = 1 else perlingrads[indexi, indexj] = -1 endif ; indexj endif ; indexi elseif @perlingridstyle == "sapphire" tempcount = tempcount + 1 if tempcount > gridfraction ; reset count and toggle alternation flag tempcount = 1 switch = !switch endif ; tempcount if switch if indexj == 0 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj else if indexj == 0 perlingrads[indexi, indexj] = 1 else perlingrads[indexi, indexj] = -1 endif ; indexj endif ; switch endif ; @perlingridstyle indexj = indexj + 1 endwhile ; indexj ; now normalize the gradient vectors tempfloat = sqrt(sqr(perlingrads[indexi,0]) + sqr(perlingrads[indexi,1])) ; gradient magnitude perlingrads[indexi,0] = perlingrads[indexi,0]/tempfloat perlingrads[indexi,1] = perlingrads[indexi,1]/tempfloat indexi = indexi + 1 endwhile ; indexi ; now scramble the N entries so that the integers 0 thru N-1 are in a random order indexi = perlinarraysz repeat indexj = indexi indexi = indexi - 1 seed = random(seed) tempint = abs(seed % indexj) swapint = perlinperms[indexi] perlinperms[indexi]= perlinperms[tempint] perlinperms[tempint] = swapint until indexi == 1 ; repeat indexj ; now duplicate the N array entries into array elements N - (2N-1) indexi = 0 while indexi < perlinarraysz perlinperms[indexi + perlinarraysz] = perlinperms[indexi] indexj = 0 while indexj < 2 perlingrads[indexi + perlinarraysz, indexj] = perlingrads[indexi, indexj] indexj = indexj + 1 endwhile ; indexj indexi = indexi + 1 endwhile ; indexi endif ; @enableperlin init: ; array for storing the historical values of #z ; Zvalues[0] = current z, Zvalues[1] = previous z, etc. complex Zvalues[5] int arraysize = 5 ; int arrayindex = 0 int altindex = 0 int iter = int testcount = int loopindex = 0 ; number of iters, positive tests, loop cycles ; variables for storing standard quantities used in the colorings ; float OTrackPtDist = 0.0 ; distance from Origin to Tracked Point (midpt, centroid, etc.) ; float OPixelDist = 0.0 ; distance from Origin to #pixel coordinates float OZDist[5] ; distances from Origin to current and previous #zs complex TrackPt = (0,0) ; initialize arrays while loopindex < arraysize OZDist[loopindex] = 0.0 Zvalues[loopindex] = (0,0) loopindex = loopindex + 1 endwhile ; loopindex ; variables for use during iterations float testDist1 = float testDist2 = float testDist3 = 0.0 complex testPt1 = complex testPt2 = complex testPt3 = (0,0) float testresult = 0.0 ; intermediate result for trapping - initialized for Arithmetic avg float oldresult = 0.0 ; the prior result float temp1 = float temp2 = 0.0 ; scratch variables complex ztemp = (0,0) ; scratch variable if (@avgtype == "Geometric") || (@avgtype == "HG") testresult = 1.0 ; initialize for Geometric-type averages if necessary endif ; @avgtype ; coloring and smoothing variables float tempcolor = 0.0 ; intermediate result for color index float smoothfactor = 0.0 ; for color smoothing ; Perlin noise variables int gridx0 = int gridx1 = int gridy0 = int gridy1 = 0 int grad00 = int grad10 = int grad01 = int grad11 = 0 float fracx0 = float fracx1 = float fracy0 = float fracy1 = 0.0 float xsmoothing = float ysmoothing = 0.0 float noisesum = float noiseamplitude = 0.0 complex zperlin = complex zrotate = complex zunit = (0,0) float utemp = float vtemp = float atemp = float btemp = 0.0 float zpart = 0.0 int perlinmodulus = 0 complex perlinzsave = complex perlinzsave2 = complex perlinztest = (0,0) float perlinfsave = float perlinftest = 0.0 float perlinfsave2 = 0.0 if (@perlinaverage == "geometric") || (@perlinaverage == "HG") ; initialize for multiplicative avgs perlinfsave = 1.0 perlinzsave = (1,0) endif ; @perlinaverage bool perlintest = FALSE int perlincount = 0 if (@perlincriterion == "minimum") || (@perlincriterion == "2nd min") perlinfsave = 1e20 perlinfsave2 = 1e20 endif ; @perlincriterion loop: iter = iter + 1 ; track iteration count ; fill in prior values of #z into the z-history array ; inline to save time from looping ;Zvalues[10] = Zvalues[9] ;Zvalues[9] = Zvalues[8] ;Zvalues[8] = Zvalues[7] ;Zvalues[7] = Zvalues[6] ;Zvalues[6] = Zvalues[5] ;Zvalues[5] = Zvalues[4] Zvalues[4] = Zvalues[3] Zvalues[3] = Zvalues[2] Zvalues[2] = Zvalues[1] Zvalues[1] = Zvalues[0] Zvalues[0] = #z ; current z if iter >= @numberpoints testcount = testcount + 1 ; count the number of tests oldresult = testresult ; save the previous result if @numberpoints == 2 ; only current z, previous z, origin, and pixel are considered ; OPixelDist = cabs(#pixel) ; Origin-Pixel distance, magnitude OZDist[0] = cabs(#z) ; Origin-#z distance, magnitude OZDist[1] = cabs(Zvalues[1]) ; Origin-previous z distance, magnitude if @trackmeasure2 == "Midpoint" ; track the midpoint between current and previous z ; compute midpoints if @pointset2a == "z0-z1" TrackPt = (#z+Zvalues[1])/2 ; Midpoint elseif @pointset2a == "z1-Origin" TrackPt = Zvalues[1]/2 elseif @pointset2a == "z1-#pixel" TrackPt = (Zvalues[1]+#pixel)/2 elseif @pointset2a == "z0-Origin" TrackPt = #z/2 elseif @pointset2a == "z0-#pixel" TrackPt = (#z+#pixel)/2 endif ; @pointset2a elseif @trackmeasure2 == "Centroid" ; compute centroids if @pointset2b == "z1-z0-Origin" TrackPt = (#z+Zvalues[1])/3 ; Centroid elseif @pointset2b == "z1-#pixel-Origin" TrackPt = (Zvalues[1]+#pixel)/3 elseif @pointset2b == "z1-z0-#pixel" TrackPt = (#z+Zvalues[1]+#pixel)/3 elseif @pointset2b == "z0-#pixel-Origin" TrackPt = (#z+#pixel)/3 elseif @pointset2b == "z1-z0-#pixel-Origin" TrackPt = (#z+Zvalues[1]+#pixel)/4 endif ; @pointset2b elseif @trackmeasure2 == "Current z (z0)" TrackPt = #z elseif @trackmeasure2 == "Previous z (z1)" TrackPt = Zvalues[1] endif ; @trackmeasure2 ; OTrackPtDist = cabs(TrackPt) ; Origin-tracked point distance, magnitude testPt1 = TrackPt if @pointflavor2 == "A" testPt2 = #z testPt3 = Zvalues[1] elseif @pointflavor2 == "B" testPt2 = #z testPt3 = #pixel elseif @pointflavor2 == "C" testPt2 = Zvalues[1] testPt3 = #pixel elseif @pointflavor2 == "D" testPt2 = #z testPt3 = (0,0) elseif @pointflavor2 == "E" testPt2 = Zvalues[1] testPt3 = (0,0) elseif @pointflavor2 == "F" testPt2 = #z testPt3 = Zvalues[1] + #pixel elseif @pointflavor2 == "G" testPt2 = Zvalues[1] testPt3 = #z + #pixel elseif @pointflavor2 == "H" testPt2 = #z testPt3 = #pixel + Zvalues[1] * OZDist[0] elseif @pointflavor2 == "I" testPt2 = Zvalues[1] testPt3 = #pixel + #z * OZDist[1] elseif @pointflavor2 == "J" testPt2 = #z testPt3 = #pixel + Zvalues[1] / OZDist[0] elseif @pointflavor2 == "K" testPt2 = #z testPt3 = #pixel + #z / OZDist[1] elseif @pointflavor2 == "L" testPt2 = #z testPt3 = #pixel * OZDist[0] elseif @pointflavor2 == "M" testPt2 = Zvalues[1] testPt3 = #pixel * OZDist[1] elseif @pointflavor2 == "N" testPt2 = #z testPt3 = #pixel * OZDist[1] elseif @pointflavor2 == "O" testPt2 = Zvalues[1] testPt3 = #pixel * OZDist[0] elseif @pointflavor2 == "P" testPt2 = #z testPt3 = Zvalues[1] + #pixel * OZDist[0] elseif @pointflavor2 == "Q" testPt2 = #z testPt3 = Zvalues[1] + #pixel * OZDist[1] elseif @pointflavor2 == "R" testPt2 = ZValues[1] testPt3 = #z + #pixel * OZDist[0] elseif @pointflavor2 == "S" testPt2 = Zvalues[1] testPt3 = #z + #pixel * OZDist[1] elseif @pointflavor2 == "T" testPt2 = #z testPt3 = #z + #pixel elseif @pointflavor2 == "U" testPt2 = Zvalues[1] testPt3 = Zvalues[1] + #pixel endif ; @pointflavor2 elseif @numberpoints == 3 ; current z, previous z, antepenultimate z are tracked and used ; OPixelDist = cabs(#pixel) ; Origin-Pixel distance OZDist[0] = cabs(#z) ; Origin-#z distance OZDist[1] = cabs(Zvalues[1]) ; Origin-previous z distance OZDist[2] = cabs(Zvalues[2]) ; Origin-2nd-previous z distance if @trackmeasure3 == "Midpoint" if @pointset3a == "z0-z2" TrackPt = (#z+Zvalues[2])/2 ; Midpoint elseif @pointset3a == "z1-z2" TrackPt = (Zvalues[1]+Zvalues[2])/2 elseif @pointset3a == "z2-Origin" TrackPt = Zvalues[2]/2 elseif @pointset3a == "z2-#pixel" TrackPt = (Zvalues[2]+#pixel)/2 endif ; @pointset3a elseif @trackmeasure3 == "Centroid" if @pointset3b == "z2-z1-z0" TrackPt = (#z+Zvalues[1]+Zvalues[2])/3 elseif @pointset3b == "z2-z1-Origin" TrackPt = (Zvalues[2]+Zvalues[1])/3 elseif @pointset3b == "z2-z1-#pixel" TrackPt = (Zvalues[1]+Zvalues[1]+#pixel)/3 elseif @pointset3b == "z2-z0-Origin" TrackPt = (#z+Zvalues[2])/3 elseif @pointset3b == "z2-z0-#pixel" TrackPt = (#z+Zvalues[2]+#pixel)/3 elseif @pointset3b == "z2-Origin-#pixel" TrackPt = (Zvalues[2]+#pixel)/3 elseif @pointset3b == "z2-z1-z0-Origin" TrackPt = (#z+Zvalues[1]+Zvalues[2])/4 elseif @pointset3b == "z2-z1-z0-#pixel" TrackPt = (#z+Zvalues[1]+Zvalues[2]+ #pixel)/4 elseif @pointset3b == "z0-z2-O-pix" TrackPt = (#z+Zvalues[2]+#pixel)/4 elseif @pointset3b == "z1-z2-O-pix" TrackPt = (Zvalues[1]+Zvalues[2]+ #pixel)/4 elseif @pointset3b == "z0-z1-z2-O-pix" TrackPt = (#z+Zvalues[1]+Zvalues[2]+ #pixel)/5 endif ; @pointset3b elseif @trackmeasure3 == "2nd-Previous z (z2)" TrackPt = Zvalues[2] endif ; @trackmeasure3 ; OTrackPtDist = cabs(TrackPt) testPt1 = TrackPt if @pointflavor3 == "A" testPt2 = #z testPt3 = Zvalues[1] elseif @pointflavor3 == "B" testPt2 = #z testPt3 = Zvalues[2] elseif @pointflavor3 == "C" testPt2 = Zvalues[1] testPt3 = Zvalues[2] elseif @pointflavor3 == "D" testPt2 = #z testPt3 = #pixel elseif @pointflavor3 == "E" testPt2 = Zvalues[1] testPt3 = #pixel elseif @pointflavor3 == "F" testPt2 = Zvalues[2] testPt3 = #pixel elseif @pointflavor3 == "G" testPt2 = #z testPt3 = (0,0) elseif @pointflavor3 == "H" testPt2 = Zvalues[1] testPt3 = (0,0) elseif @pointflavor3 == "I" testPt2 = Zvalues[2] testPt3 = (0,0) elseif @pointflavor3 == "J" testPt2 = #z testPt3 = #pixel + #z elseif @pointflavor3 == "K" testPt2 = #z testPt3 = #pixel + Zvalues[1] elseif @pointflavor3 == "L" testPt2 = #z testPt3 = #pixel + Zvalues[2] elseif @pointflavor3 == "M" testPt2 = Zvalues[1] testPt3 = #pixel + #z elseif @pointflavor3 == "N" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] elseif @pointflavor3 == "O" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] elseif @pointflavor3 == "P" testPt2 = Zvalues[2] testPt3 = #pixel + #z elseif @pointflavor3 == "Q" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] elseif @pointflavor3 == "R" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] elseif @pointflavor3 == "S" testPt2 = #z testPt3 = #pixel + #z * OZDist[0] elseif @pointflavor3 == "T" testPt2 = #z testPt3 = #pixel + #z * OZDist[1] elseif @pointflavor3 == "U" testPt2 = #z testPt3 = #pixel + #z * OZDist[2] elseif @pointflavor3 == "V" testPt2 = #z testPt3 = #pixel + Zvalues[1] * OZDist[0] elseif @pointflavor3 == "W" testPt2 = #z testPt3 = #pixel + Zvalues[1] * OZDist[1] elseif @pointflavor3 == "X" testPt2 = #z testPt3 = #pixel + Zvalues[1] * OZDist[2] elseif @pointflavor3 == "Y" testPt2 = #z testPt3 = #pixel + Zvalues[2] * OZDist[0] elseif @pointflavor3 == "Z" testPt2 = #z testPt3 = #pixel + Zvalues[2] * OZDist[1] elseif @pointflavor3 == "AA" testPt2 = #z testPt3 = #pixel + Zvalues[2] * OZDist[2] elseif @pointflavor3 == "AB" testPt2 = Zvalues[1] testPt3 = #pixel + #z * OZDist[0] elseif @pointflavor3 == "AC" testPt2 = Zvalues[1] testPt3 = #pixel + #z * OZDist[1] elseif @pointflavor3 == "AD" testPt2 = Zvalues[1] testPt3 = #pixel + #z * OZDist[2] elseif @pointflavor3 == "AE" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] * OZDist[0] elseif @pointflavor3 == "AF" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] * OZDist[1] elseif @pointflavor3 == "AG" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] * OZDist[2] elseif @pointflavor3 == "AH" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] * OZDist[0] elseif @pointflavor3 == "AI" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] * OZDist[1] elseif @pointflavor3 == "AJ" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] * OZDist[2] elseif @pointflavor3 == "AK" testPt2 = Zvalues[2] testPt3 = #pixel + #z * OZDist[0] elseif @pointflavor3 == "AL" testPt2 = Zvalues[2] testPt3 = #pixel + #z * OZDist[1] elseif @pointflavor3 == "AM" testPt2 = Zvalues[2] testPt3 = #pixel + #z * OZDist[2] elseif @pointflavor3 == "AN" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] * OZDist[0] elseif @pointflavor3 == "AO" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] * OZDist[1] elseif @pointflavor3 == "AP" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] * OZDist[2] elseif @pointflavor3 == "AQ" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] * OZDist[0] elseif @pointflavor3 == "AR" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] * OZDist[1] elseif @pointflavor3 == "AS" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] * OZDist[2] elseif @pointflavor3 == "AT" testPt2 = #z testPt3 = #pixel + #z / OZDist[0] elseif @pointflavor3 == "AU" testPt2 = #z testPt3 = #pixel + #z / OZDist[1] elseif @pointflavor3 == "AV" testPt2 = #z testPt3 = #pixel + #z / OZDist[2] elseif @pointflavor3 == "AW" testPt2 = #z testPt3 = #pixel + Zvalues[1] / OZDist[0] elseif @pointflavor3 == "AX" testPt2 = #z testPt3 = #pixel + Zvalues[1] / OZDist[1] elseif @pointflavor3 == "AY" testPt2 = #z testPt3 = #pixel + Zvalues[1] / OZDist[2] elseif @pointflavor3 == "AZ" testPt2 = #z testPt3 = #pixel + Zvalues[2] / OZDist[0] elseif @pointflavor3 == "BA" testPt2 = #z testPt3 = #pixel + Zvalues[2] / OZDist[1] elseif @pointflavor3 == "BB" testPt2 = #z testPt3 = #pixel + Zvalues[2] / OZDist[2] elseif @pointflavor3 == "BC" testPt2 = Zvalues[1] testPt3 = #pixel + #z / OZDist[0] elseif @pointflavor3 == "BD" testPt2 = Zvalues[1] testPt3 = #pixel + #z / OZDist[1] elseif @pointflavor3 == "BE" testPt2 = Zvalues[1] testPt3 = #pixel + #z / OZDist[2] elseif @pointflavor3 == "BF" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] / OZDist[0] elseif @pointflavor3 == "BG" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] / OZDist[1] elseif @pointflavor3 == "BH" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] / OZDist[2] elseif @pointflavor3 == "BI" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] / OZDist[0] elseif @pointflavor3 == "BJ" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] / OZDist[1] elseif @pointflavor3 == "BK" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] / OZDist[2] elseif @pointflavor3 == "BL" testPt2 = Zvalues[2] testPt3 = #pixel + #z / OZDist[0] elseif @pointflavor3 == "BM" testPt2 = Zvalues[2] testPt3 = #pixel + #z / OZDist[1] elseif @pointflavor3 == "BN" testPt2 = Zvalues[2] testPt3 = #pixel + #z / OZDist[2] elseif @pointflavor3 == "BO" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] / OZDist[0] elseif @pointflavor3 == "BP" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] / OZDist[1] elseif @pointflavor3 == "BQ" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] / OZDist[2] elseif @pointflavor3 == "BR" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] / OZDist[0] elseif @pointflavor3 == "BS" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] / OZDist[1] elseif @pointflavor3 == "BT" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] / OZDist[2] elseif @pointflavor3 == "BU" testPt2 = #z testPt3 = #pixel * OZDist[0] elseif @pointflavor3 == "BV" testPt2 = #z testPt3 = #pixel * OZDist[1] elseif @pointflavor3 == "BW" testPt2 = #z testPt3 = #pixel * OZDist[2] elseif @pointflavor3 == "BX" testPt2 = Zvalues[1] testPt3 = #pixel * OZDist[0] elseif @pointflavor3 == "BY" testPt2 = Zvalues[1] testPt3 = #pixel * OZDist[1] elseif @pointflavor3 == "BZ" testPt2 = Zvalues[1] testPt3 = #pixel * OZDist[2] elseif @pointflavor3 == "CA" testPt2 = Zvalues[2] testPt3 = #pixel * OZDist[0] elseif @pointflavor3 == "CB" testPt2 = Zvalues[2] testPt3 = #pixel * OZDist[1] elseif @pointflavor3 == "CC" testPt2 = Zvalues[2] testPt3 = #pixel * OZDist[2] elseif @pointflavor3 == "CD" testPt2 = #z testPt3 = #z + #pixel * OZDist[0] elseif @pointflavor3 == "CE" testPt2 = #z testPt3 = #z + #pixel * OZDist[1] elseif @pointflavor3 == "CF" testPt2 = #z testPt3 = #z + #pixel * OZDist[2] elseif @pointflavor3 == "CG" testPt2 = #z testPt3 = Zvalues[1] + #pixel * OZDist[0] elseif @pointflavor3 == "CH" testPt2 = #z testPt3 = Zvalues[1] + #pixel * OZDist[1] elseif @pointflavor3 == "CI" testPt2 = #z testPt3 = Zvalues[1] + #pixel * OZDist[2] elseif @pointflavor3 == "CJ" testPt2 = #z testPt3 = Zvalues[2] + #pixel * OZDist[0] elseif @pointflavor3 == "CK" testPt2 = #z testPt3 = Zvalues[2] + #pixel * OZDist[1] elseif @pointflavor3 == "CL" testPt2 = #z testPt3 = Zvalues[2] + #pixel * OZDist[2] elseif @pointflavor3 == "CM" testPt2 = Zvalues[1] testPt3 = #z + #pixel * OZDist[0] elseif @pointflavor3 == "CN" testPt2 = Zvalues[1] testPt3 = #z + #pixel * OZDist[1] elseif @pointflavor3 == "CO" testPt2 = Zvalues[1] testPt3 = #z + #pixel * OZDist[2] elseif @pointflavor3 == "CP" testPt2 = Zvalues[1] testPt3 = Zvalues[1] + #pixel * OZDist[0] elseif @pointflavor3 == "CQ" testPt2 = Zvalues[1] testPt3 = Zvalues[1] + #pixel * OZDist[1] elseif @pointflavor3 == "CR" testPt2 = Zvalues[1] testPt3 = Zvalues[1] + #pixel * OZDist[2] elseif @pointflavor3 == "CS" testPt2 = Zvalues[1] testPt3 = Zvalues[2] + #pixel * OZDist[0] elseif @pointflavor3 == "CT" testPt2 = Zvalues[1] testPt3 = Zvalues[2] + #pixel * OZDist[1] elseif @pointflavor3 == "CU" testPt2 = Zvalues[1] testPt3 = Zvalues[2] + #pixel * OZDist[2] elseif @pointflavor3 == "CV" testPt2 = Zvalues[2] testPt3 = #z + #pixel * OZDist[0] elseif @pointflavor3 == "CW" testPt2 = Zvalues[2] testPt3 = #z + #pixel * OZDist[1] elseif @pointflavor3 == "CX" testPt2 = Zvalues[2] testPt3 = #z + #pixel * OZDist[2] elseif @pointflavor3 == "CY" testPt2 = Zvalues[2] testPt3 = Zvalues[1] + #pixel * OZDist[0] elseif @pointflavor3 == "CZ" testPt2 = Zvalues[2] testPt3 = Zvalues[1] + #pixel * OZDist[1] elseif @pointflavor3 == "DA" testPt2 = Zvalues[2] testPt3 = Zvalues[1] + #pixel * OZDist[2] elseif @pointflavor3 == "DB" testPt2 = Zvalues[2] testPt3 = Zvalues[2] + #pixel * OZDist[0] elseif @pointflavor3 == "DC" testPt2 = Zvalues[2] testPt3 = Zvalues[2] + #pixel * OZDist[1] elseif @pointflavor3 == "DD" testPt2 = Zvalues[2] testPt3 = Zvalues[2] + #pixel * OZDist[2] endif ; @pointflavor3 elseif @numberpoints == 4 ; OPixelDist = cabs(#pixel) ; Origin-Pixel distance OZDist[0] = cabs(#z) ; Origin-#z distance OZDist[1] = cabs(Zvalues[1]) OZDist[2] = cabs(Zvalues[2]) OZDist[3] = cabs(Zvalues[3]) ; Origin-3rd-previous z distance if @trackmeasure4 == "Midpoint" if @pointset4a == "z0-z3" TrackPt = (#z+Zvalues[3])/2 elseif @pointset4a == "z1-z3" TrackPt = (Zvalues[1]+Zvalues[3])/2 elseif @pointset4a == "z2-z3" TrackPt = (Zvalues[2]+Zvalues[3])/2 elseif @pointset4a == "z3-Origin" TrackPt = Zvalues[3]/2 elseif @pointset4a == "z3-#pixel" TrackPt = (Zvalues[3]+#pixel)/2 endif ; @pointset4a elseif @trackmeasure4 == "Centroid" if @pointset4b == "z0-z1-z3" TrackPt = (#z+Zvalues[1]+Zvalues[3])/3 elseif @pointset4b == "z0-z2-z3" TrackPt = (#z+Zvalues[2]+Zvalues[3])/3 elseif @pointset4b == "z1-z2-z3" TrackPt = (Zvalues[1]+Zvalues[2]+Zvalues[3])/3 elseif @pointset4b == "z0-z3-Origin" TrackPt = (#z+Zvalues[3])/3 elseif @pointset4b == "z0-z3-#pixel" TrackPt = (#z+Zvalues[3]+#pixel)/3 elseif @pointset4b == "z1-z3-Origin" TrackPt = (Zvalues[1]+Zvalues[3])/3 elseif @pointset4b == "z1-z3-#pixel" TrackPt = (Zvalues[1]+Zvalues[3]+#pixel)/3 elseif @pointset4b == "z3-Origin-#pixel" TrackPt = (Zvalues[3]+#pixel)/3 elseif @pointset4b == "z2-z3-Origin" TrackPt = (Zvalues[2]+Zvalues[3])/3 elseif @pointset4b == "z2-z3-#pixel" TrackPt = (Zvalues[2]+Zvalues[3]+#pixel)/3 elseif @pointset4b == "z0-z1-z2-z3" TrackPt = (#z+Zvalues[1]+Zvalues[2]+Zvalues[3])/4 elseif @pointset4b == "z0-z1-z3-Origin" TrackPt = (#z+Zvalues[1]+Zvalues[3])/4 elseif @pointset4b == "z0-z1-z3-#pixel" TrackPt = (#z+Zvalues[1]+Zvalues[3]+#pixel)/4 elseif @pointset4b == "z0-z2-z3-Origin" TrackPt = (#z+Zvalues[2]+Zvalues[3])/4 elseif @pointset4b == "z0-z2-z3-#pixel" TrackPt = (#z+Zvalues[2]+Zvalues[3])/4 elseif @pointset4b == "z1-z2-z3-Origin" TrackPt = (Zvalues[1]+Zvalues[2]+Zvalues[3])/4 elseif @pointset4b == "z1-z2-z3-#pixel" TrackPt = (Zvalues[1]+Zvalues[2]+Zvalues[3]+#pixel)/4 elseif @pointset4b == "z0-z3-O-pix" TrackPt = (#z+Zvalues[3]+#pixel)/4 elseif @pointset4b == "z1-z3-O-pix" TrackPt = (Zvalues[1]+Zvalues[3]+#pixel)/4 elseif @pointset4b == "z2-z3-O-pix" TrackPt = (Zvalues[2]+Zvalues[3]+#pixel)/4 elseif @pointset4b == "z0-z1-z2-z3-O" TrackPt = (#z+Zvalues[1]+Zvalues[2]+Zvalues[3])/5 elseif @pointset4b == "z0-z1-z2-z3-pix" TrackPt = (#z+Zvalues[1]+Zvalues[2]+Zvalues[3]+#pixel)/5 elseif @pointset4b == "z0-z1-z3-O-pix" TrackPt = (#z+Zvalues[1]+Zvalues[3]+#pixel)/5 elseif @pointset4b == "z0-z2-z3-O-pix" TrackPt = (#z+Zvalues[2]+Zvalues[3]+#pixel)/5 elseif @pointset4b == "z1-z2-z3-O-pix" TrackPt = (Zvalues[1]+Zvalues[2]+Zvalues[3]+#pixel)/5 elseif @pointset4b == "z0-z1-z2-z3-O-pix" TrackPt = (#z+Zvalues[1]+Zvalues[2]+Zvalues[3]+#pixel)/6 endif ; @pointset4b elseif @trackmeasure4 == "3rd-Previous z (z3)" TrackPt = Zvalues[3] endif ; @trackmeasure4 ; OTrackPtDist = cabs(TrackPt) ; Origin-tracked point distance testPt1 = TrackPt if @pointflavor4 == "A" testPt2 = #z testPt3 = Zvalues[1] elseif @pointflavor4 == "B" testPt2 = #z testPt3 = Zvalues[2] elseif @pointflavor4 == "C" testPt2 = #z testPt3 = Zvalues[3] elseif @pointflavor4 == "D" testPt2 = Zvalues[1] testPt3 = Zvalues[2] elseif @pointflavor4 == "E" testPt2 = Zvalues[1] testPt3 = Zvalues[3] elseif @pointflavor4 == "F" testPt2 = Zvalues[2] testPt3 = Zvalues[3] elseif @pointflavor4 == "G" testPt2 = #z testPt3 = #pixel elseif @pointflavor4 == "H" testPt2 = Zvalues[1] testPt3 = #pixel elseif @pointflavor4 == "I" testPt2 = Zvalues[2] testPt3 = #pixel elseif @pointflavor4 == "J" testPt2 = Zvalues[3] testPt3 = #pixel elseif @pointflavor4 == "K" testPt2 = #z testPt3 = (0,0) elseif @pointflavor4 == "L" testPt2 = Zvalues[1] testPt3 = (0,0) elseif @pointflavor4 == "M" testPt2 = Zvalues[2] testPt3 = (0,0) elseif @pointflavor4 == "N" testPt2 = Zvalues[3] testPt3 = (0,0) elseif @pointflavor4 == "O" testPt2 = #z testPt3 = #pixel + #z elseif @pointflavor4 == "P" testPt2 = #z testPt3 = #pixel + Zvalues[1] elseif @pointflavor4 == "Q" testPt2 = #z testPt3 = #pixel + Zvalues[2] elseif @pointflavor4 == "R" testPt2 = #z testPt3 = #pixel + Zvalues[3] elseif @pointflavor4 == "S" testPt2 = Zvalues[1] testPt3 = #pixel + #z elseif @pointflavor4 == "T" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] elseif @pointflavor4 == "U" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] elseif @pointflavor4 == "V" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] elseif @pointflavor4 == "W" testPt2 = Zvalues[2] testPt3 = #pixel + #z elseif @pointflavor4 == "X" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] elseif @pointflavor4 == "Y" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] elseif @pointflavor4 == "Z" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] elseif @pointflavor4 == "AA" testPt2 = Zvalues[3] testPt3 = #pixel + #z elseif @pointflavor4 == "AB" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] elseif @pointflavor4 == "AC" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] elseif @pointflavor4 == "AD" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] elseif @pointflavor4 == "AE" testPt2 = #z testPt3 = #pixel + #z * OZDist[0] elseif @pointflavor4 == "AF" testPt2 = #z testPt3 = #pixel + #z * OZDist[1] elseif @pointflavor4 == "AG" testPt2 = #z testPt3 = #pixel + #z * OZDist[2] elseif @pointflavor4 == "AH" testPt2 = #z testPt3 = #pixel + #z * OZDist[3] elseif @pointflavor4 == "AI" testPt2 = #z testPt3 = #pixel + Zvalues[1] * OZDist[0] elseif @pointflavor4 == "AJ" testPt2 = #z testPt3 = #pixel + Zvalues[1] * OZDist[1] elseif @pointflavor4 == "AK" testPt2 = #z testPt3 = #pixel + Zvalues[1] * OZDist[2] elseif @pointflavor4 == "AL" testPt2 = #z testPt3 = #pixel + Zvalues[1] * OZDist[3] elseif @pointflavor4 == "AM" testPt2 = #z testPt3 = #pixel + Zvalues[2] * OZDist[0] elseif @pointflavor4 == "AN" testPt2 = #z testPt3 = #pixel + Zvalues[2] * OZDist[1] elseif @pointflavor4 == "AO" testPt2 = #z testPt3 = #pixel + Zvalues[2] * OZDist[2] elseif @pointflavor4 == "AP" testPt2 = #z testPt3 = #pixel + Zvalues[2] * OZDist[3] elseif @pointflavor4 == "AQ" testPt2 = #z testPt3 = #pixel + Zvalues[3] * OZDist[0] elseif @pointflavor4 == "AR" testPt2 = #z testPt3 = #pixel + Zvalues[3] * OZDist[1] elseif @pointflavor4 == "AS" testPt2 = #z testPt3 = #pixel + Zvalues[3] * OZDist[2] elseif @pointflavor4 == "AT" testPt2 = #z testPt3 = #pixel + Zvalues[3] * OZDist[3] elseif @pointflavor4 == "AU" testPt2 = Zvalues[1] testPt3 = #pixel + #z * OZDist[0] elseif @pointflavor4 == "AV" testPt2 = Zvalues[1] testPt3 = #pixel + #z * OZDist[1] elseif @pointflavor4 == "AW" testPt2 = Zvalues[1] testPt3 = #pixel + #z * OZDist[2] elseif @pointflavor4 == "AX" testPt2 = Zvalues[1] testPt3 = #pixel + #z * OZDist[3] elseif @pointflavor4 == "AY" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] * OZDist[0] elseif @pointflavor4 == "AZ" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] * OZDist[1] elseif @pointflavor4 == "BA" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] * OZDist[2] elseif @pointflavor4 == "BB" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] * OZDist[3] elseif @pointflavor4 == "BC" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] * OZDist[0] elseif @pointflavor4 == "BD" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] * OZDist[1] elseif @pointflavor4 == "BE" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] * OZDist[2] elseif @pointflavor4 == "BF" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] * OZDist[3] elseif @pointflavor4 == "BG" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] * OZDist[0] elseif @pointflavor4 == "BH" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] * OZDist[1] elseif @pointflavor4 == "BI" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] * OZDist[2] elseif @pointflavor4 == "BJ" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] * OZDist[3] elseif @pointflavor4 == "BK" testPt2 = Zvalues[2] testPt3 = #pixel + #z * OZDist[0] elseif @pointflavor4 == "BL" testPt2 = Zvalues[2] testPt3 = #pixel + #z * OZDist[1] elseif @pointflavor4 == "BM" testPt2 = Zvalues[2] testPt3 = #pixel + #z * OZDist[2] elseif @pointflavor4 == "BN" testPt2 = Zvalues[2] testPt3 = #pixel + #z * OZDist[3] elseif @pointflavor4 == "BO" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] * OZDist[0] elseif @pointflavor4 == "BP" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] * OZDist[1] elseif @pointflavor4 == "BQ" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] * OZDist[2] elseif @pointflavor4 == "BR" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] * OZDist[3] elseif @pointflavor4 == "BS" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] * OZDist[0] elseif @pointflavor4 == "BT" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] * OZDist[1] elseif @pointflavor4 == "BU" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] * OZDist[2] elseif @pointflavor4 == "BV" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] * OZDist[3] elseif @pointflavor4 == "BW" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] * OZDist[0] elseif @pointflavor4 == "BX" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] * OZDist[1] elseif @pointflavor4 == "BY" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] * OZDist[2] elseif @pointflavor4 == "BZ" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] * OZDist[3] elseif @pointflavor4 == "CA" testPt2 = Zvalues[3] testPt3 = #pixel + #z * OZDist[0] elseif @pointflavor4 == "CB" testPt2 = Zvalues[3] testPt3 = #pixel + #z * OZDist[1] elseif @pointflavor4 == "CC" testPt2 = Zvalues[3] testPt3 = #pixel + #z * OZDist[2] elseif @pointflavor4 == "CD" testPt2 = Zvalues[3] testPt3 = #pixel + #z * OZDist[3] elseif @pointflavor4 == "CE" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] * OZDist[0] elseif @pointflavor4 == "CF" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] * OZDist[1] elseif @pointflavor4 == "CG" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] * OZDist[2] elseif @pointflavor4 == "CH" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] * OZDist[3] elseif @pointflavor4 == "CI" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] * OZDist[0] elseif @pointflavor4 == "CJ" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] * OZDist[1] elseif @pointflavor4 == "CK" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] * OZDist[2] elseif @pointflavor4 == "CL" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] * OZDist[3] elseif @pointflavor4 == "CM" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] * OZDist[0] elseif @pointflavor4 == "CN" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] * OZDist[1] elseif @pointflavor4 == "CO" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] * OZDist[2] elseif @pointflavor4 == "CP" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] * OZDist[3] elseif @pointflavor4 == "CQ" testPt2 = #z testPt3 = #pixel + #z / OZDist[0] elseif @pointflavor4 == "CR" testPt2 = #z testPt3 = #pixel + #z / OZDist[1] elseif @pointflavor4 == "CS" testPt2 = #z testPt3 = #pixel + #z / OZDist[2] elseif @pointflavor4 == "CT" testPt2 = #z testPt3 = #pixel + #z / OZDist[3] elseif @pointflavor4 == "CU" testPt2 = #z testPt3 = #pixel + Zvalues[1] / OZDist[0] elseif @pointflavor4 == "CV" testPt2 = #z testPt3 = #pixel + Zvalues[1] / OZDist[1] elseif @pointflavor4 == "CW" testPt2 = #z testPt3 = #pixel + Zvalues[1] / OZDist[2] elseif @pointflavor4 == "CX" testPt2 = #z testPt3 = #pixel + Zvalues[1] / OZDist[3] elseif @pointflavor4 == "CY" testPt2 = #z testPt3 = #pixel + Zvalues[2] / OZDist[0] elseif @pointflavor4 == "CZ" testPt2 = #z testPt3 = #pixel + Zvalues[2] / OZDist[1] elseif @pointflavor4 == "DA" testPt2 = #z testPt3 = #pixel + Zvalues[2] / OZDist[2] elseif @pointflavor4 == "DB" testPt2 = #z testPt3 = #pixel + Zvalues[2] / OZDist[3] elseif @pointflavor4 == "DC" testPt2 = #z testPt3 = #pixel + Zvalues[3] / OZDist[0] elseif @pointflavor4 == "DD" testPt2 = #z testPt3 = #pixel + Zvalues[3] / OZDist[1] elseif @pointflavor4 == "DE" testPt2 = #z testPt3 = #pixel + Zvalues[3] / OZDist[2] elseif @pointflavor4 == "DF" testPt2 = #z testPt3 = #pixel + Zvalues[3] / OZDist[3] elseif @pointflavor4 == "DG" testPt2 = Zvalues[1] testPt3 = #pixel + #z / OZDist[0] elseif @pointflavor4 == "DH" testPt2 = Zvalues[1] testPt3 = #pixel + #z / OZDist[1] elseif @pointflavor4 == "DI" testPt2 = Zvalues[1] testPt3 = #pixel + #z / OZDist[2] elseif @pointflavor4 == "DJ" testPt2 = Zvalues[1] testPt3 = #pixel + #z / OZDist[3] elseif @pointflavor4 == "DK" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] / OZDist[0] elseif @pointflavor4 == "DL" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] / OZDist[1] elseif @pointflavor4 == "DM" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] / OZDist[2] elseif @pointflavor4 == "DN" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] / OZDist[3] elseif @pointflavor4 == "DO" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] / OZDist[0] elseif @pointflavor4 == "DP" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] / OZDist[1] elseif @pointflavor4 == "DQ" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] / OZDist[2] elseif @pointflavor4 == "DR" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] / OZDist[3] elseif @pointflavor4 == "DR2" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] / OZDist[0] elseif @pointflavor4 == "DR3" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] / OZDist[1] elseif @pointflavor4 == "DR4" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] / OZDist[2] elseif @pointflavor4 == "DR5" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] / OZDist[3] elseif @pointflavor4 == "DS" testPt2 = Zvalues[2] testPt3 = #pixel + #z / OZDist[0] elseif @pointflavor4 == "DT" testPt2 = Zvalues[2] testPt3 = #pixel + #z / OZDist[1] elseif @pointflavor4 == "DU" testPt2 = Zvalues[2] testPt3 = #pixel + #z / OZDist[2] elseif @pointflavor4 == "DV" testPt2 = Zvalues[2] testPt3 = #pixel + #z / OZDist[3] elseif @pointflavor4 == "DW" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] / OZDist[0] elseif @pointflavor4 == "DX" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] / OZDist[1] elseif @pointflavor4 == "DY" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] / OZDist[2] elseif @pointflavor4 == "DZ" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] / OZDist[3] elseif @pointflavor4 == "EA" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] / OZDist[0] elseif @pointflavor4 == "EB" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] / OZDist[1] elseif @pointflavor4 == "EC" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] / OZDist[2] elseif @pointflavor4 == "ED" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] / OZDist[3] elseif @pointflavor4 == "ED2" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] / OZDist[0] elseif @pointflavor4 == "ED3" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] / OZDist[1] elseif @pointflavor4 == "ED4" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] / OZDist[2] elseif @pointflavor4 == "ED5" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] / OZDist[3] elseif @pointflavor4 == "EE" testPt2 = Zvalues[3] testPt3 = #pixel + #z / OZDist[0] elseif @pointflavor4 == "EF" testPt2 = Zvalues[3] testPt3 = #pixel + #z / OZDist[1] elseif @pointflavor4 == "EG" testPt2 = Zvalues[3] testPt3 = #pixel + #z / OZDist[2] elseif @pointflavor4 == "EH" testPt2 = Zvalues[3] testPt3 = #pixel + #z / OZDist[3] elseif @pointflavor4 == "EI" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] / OZDist[0] elseif @pointflavor4 == "EJ" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] / OZDist[1] elseif @pointflavor4 == "EK" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] / OZDist[2] elseif @pointflavor4 == "EL" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] / OZDist[3] elseif @pointflavor4 == "EM" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] / OZDist[0] elseif @pointflavor4 == "EN" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] / OZDist[1] elseif @pointflavor4 == "EO" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] / OZDist[2] elseif @pointflavor4 == "EP" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] / OZDist[3] elseif @pointflavor4 == "EP2" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] / OZDist[0] elseif @pointflavor4 == "EP3" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] / OZDist[1] elseif @pointflavor4 == "EP4" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] / OZDist[2] elseif @pointflavor4 == "EP5" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] / OZDist[3] elseif @pointflavor4 == "EQ" testPt2 = #z testPt3 = #pixel * OZDist[0] elseif @pointflavor4 == "ER" testPt2 = #z testPt3 = #pixel * OZDist[1] elseif @pointflavor4 == "ES" testPt2 = #z testPt3 = #pixel * OZDist[2] elseif @pointflavor4 == "ET" testPt2 = #z testPt3 = #pixel * OZDist[3] elseif @pointflavor4 == "EU" testPt2 = Zvalues[1] testPt3 = #pixel * OZDist[0] elseif @pointflavor4 == "EV" testPt2 = Zvalues[1] testPt3 = #pixel * OZDist[1] elseif @pointflavor4 == "EW" testPt2 = Zvalues[1] testPt3 = #pixel * OZDist[2] elseif @pointflavor4 == "EX" testPt2 = Zvalues[1] testPt3 = #pixel * OZDist[3] elseif @pointflavor4 == "EY" testPt2 = Zvalues[2] testPt3 = #pixel * OZDist[0] elseif @pointflavor4 == "EZ" testPt2 = Zvalues[2] testPt3 = #pixel * OZDist[1] elseif @pointflavor4 == "FA" testPt2 = Zvalues[2] testPt3 = #pixel * OZDist[2] elseif @pointflavor4 == "FB" testPt2 = Zvalues[2] testPt3 = #pixel * OZDist[3] elseif @pointflavor4 == "FC" testPt2 = Zvalues[3] testPt3 = #pixel * OZDist[0] elseif @pointflavor4 == "FD" testPt2 = Zvalues[3] testPt3 = #pixel * OZDist[1] elseif @pointflavor4 == "FE" testPt2 = Zvalues[3] testPt3 = #pixel * OZDist[2] elseif @pointflavor4 == "FF" testPt2 = Zvalues[3] testPt3 = #pixel * OZDist[3] elseif @pointflavor4 == "FG" testPt2 = #z testPt3 = #z + #pixel * OZDist[0] elseif @pointflavor4 == "FH" testPt2 = #z testPt3 = #z + #pixel * OZDist[1] elseif @pointflavor4 == "FI" testPt2 = #z testPt3 = #z + #pixel * OZDist[2] elseif @pointflavor4 == "FJ" testPt2 = #z testPt3 = #z + #pixel * OZDist[3] elseif @pointflavor4 == "FK" testPt2 = #z testPt3 = Zvalues[1] + #pixel * OZDist[0] elseif @pointflavor4 == "FL" testPt2 = #z testPt3 = Zvalues[1] + #pixel * OZDist[1] elseif @pointflavor4 == "FM" testPt2 = #z testPt3 = Zvalues[1] + #pixel * OZDist[2] elseif @pointflavor4 == "FN" testPt2 = #z testPt3 = Zvalues[1] + #pixel * OZDist[3] elseif @pointflavor4 == "FO" testPt2 = #z testPt3 = Zvalues[2] + #pixel * OZDist[0] elseif @pointflavor4 == "FP" testPt2 = #z testPt3 = Zvalues[2] + #pixel * OZDist[1] elseif @pointflavor4 == "FQ" testPt2 = #z testPt3 = Zvalues[2] + #pixel * OZDist[2] elseif @pointflavor4 == "FR" testPt2 = #z testPt3 = Zvalues[2] + #pixel * OZDist[3] elseif @pointflavor4 == "FS" testPt2 = #z testPt3 = Zvalues[3] + #pixel * OZDist[0] elseif @pointflavor4 == "FT" testPt2 = #z testPt3 = Zvalues[3] + #pixel * OZDist[1] elseif @pointflavor4 == "FU" testPt2 = #z testPt3 = Zvalues[3] + #pixel * OZDist[2] elseif @pointflavor4 == "FV" testPt2 = #z testPt3 = Zvalues[3] + #pixel * OZDist[3] elseif @pointflavor4 == "FW" testPt2 = Zvalues[1] testPt3 = #z + #pixel * OZDist[0] elseif @pointflavor4 == "FX" testPt2 = Zvalues[1] testPt3 = #z + #pixel * OZDist[1] elseif @pointflavor4 == "FY" testPt2 = Zvalues[1] testPt3 = #z + #pixel * OZDist[2] elseif @pointflavor4 == "FZ" testPt2 = Zvalues[1] testPt3 = #z + #pixel * OZDist[3] elseif @pointflavor4 == "GA" testPt2 = Zvalues[1] testPt3 = Zvalues[1] + #pixel * OZDist[0] elseif @pointflavor4 == "GB" testPt2 = Zvalues[1] testPt3 = Zvalues[1] + #pixel * OZDist[1] elseif @pointflavor4 == "GC" testPt2 = Zvalues[1] testPt3 = Zvalues[1] + #pixel * OZDist[2] elseif @pointflavor4 == "GD" testPt2 = Zvalues[1] testPt3 = Zvalues[1] + #pixel * OZDist[3] elseif @pointflavor4 == "GE" testPt2 = Zvalues[1] testPt3 = Zvalues[2] + #pixel * OZDist[0] elseif @pointflavor4 == "GF" testPt2 = Zvalues[1] testPt3 = Zvalues[2] + #pixel * OZDist[1] elseif @pointflavor4 == "GG" testPt2 = Zvalues[1] testPt3 = Zvalues[2] + #pixel * OZDist[2] elseif @pointflavor4 == "GH" testPt2 = Zvalues[1] testPt3 = Zvalues[2] + #pixel * OZDist[3] elseif @pointflavor4 == "GI" testPt2 = Zvalues[1] testPt3 = Zvalues[3] + #pixel * OZDist[0] elseif @pointflavor4 == "GJ" testPt2 = Zvalues[1] testPt3 = Zvalues[3] + #pixel * OZDist[1] elseif @pointflavor4 == "GK" testPt2 = Zvalues[1] testPt3 = Zvalues[3] + #pixel * OZDist[2] elseif @pointflavor4 == "GL" testPt2 = Zvalues[1] testPt3 = Zvalues[3] + #pixel * OZDist[3] elseif @pointflavor4 == "GM" testPt2 = Zvalues[2] testPt3 = #z + #pixel * OZDist[0] elseif @pointflavor4 == "GN" testPt2 = Zvalues[2] testPt3 = #z + #pixel * OZDist[1] elseif @pointflavor4 == "GO" testPt2 = Zvalues[2] testPt3 = #z + #pixel * OZDist[2] elseif @pointflavor4 == "GP" testPt2 = Zvalues[2] testPt3 = #z + #pixel * OZDist[3] elseif @pointflavor4 == "GQ" testPt2 = Zvalues[2] testPt3 = Zvalues[1] + #pixel * OZDist[0] elseif @pointflavor4 == "GR" testPt2 = Zvalues[2] testPt3 = Zvalues[1] + #pixel * OZDist[1] elseif @pointflavor4 == "GS" testPt2 = Zvalues[2] testPt3 = Zvalues[1] + #pixel * OZDist[2] elseif @pointflavor4 == "GT" testPt2 = Zvalues[2] testPt3 = Zvalues[1] + #pixel * OZDist[3] elseif @pointflavor4 == "GU" testPt2 = Zvalues[2] testPt3 = Zvalues[2] + #pixel * OZDist[0] elseif @pointflavor4 == "GV" testPt2 = Zvalues[2] testPt3 = Zvalues[2] + #pixel * OZDist[1] elseif @pointflavor4 == "GW" testPt2 = Zvalues[2] testPt3 = Zvalues[2] + #pixel * OZDist[2] elseif @pointflavor4 == "GX" testPt2 = Zvalues[2] testPt3 = Zvalues[2] + #pixel * OZDist[3] elseif @pointflavor4 == "GY" testPt2 = Zvalues[2] testPt3 = Zvalues[3] + #pixel * OZDist[0] elseif @pointflavor4 == "GZ" testPt2 = Zvalues[2] testPt3 = Zvalues[3] + #pixel * OZDist[1] elseif @pointflavor4 == "HA" testPt2 = Zvalues[2] testPt3 = Zvalues[3] + #pixel * OZDist[2] elseif @pointflavor4 == "HB" testPt2 = Zvalues[2] testPt3 = Zvalues[3] + #pixel * OZDist[3] elseif @pointflavor4 == "HC" testPt2 = Zvalues[3] testPt3 = #z + #pixel * OZDist[0] elseif @pointflavor4 == "HD" testPt2 = Zvalues[3] testPt3 = #z + #pixel * OZDist[1] elseif @pointflavor4 == "HE" testPt2 = Zvalues[3] testPt3 = #z + #pixel * OZDist[2] elseif @pointflavor4 == "HF" testPt2 = Zvalues[3] testPt3 = #z + #pixel * OZDist[3] elseif @pointflavor4 == "HG" testPt2 = Zvalues[3] testPt3 = Zvalues[1] + #pixel * OZDist[0] elseif @pointflavor4 == "HH" testPt2 = Zvalues[3] testPt3 = Zvalues[1] + #pixel * OZDist[1] elseif @pointflavor4 == "HI" testPt2 = Zvalues[3] testPt3 = Zvalues[1] + #pixel * OZDist[2] elseif @pointflavor4 == "HJ" testPt2 = Zvalues[3] testPt3 = Zvalues[1] + #pixel * OZDist[3] elseif @pointflavor4 == "HK" testPt2 = Zvalues[3] testPt3 = Zvalues[2] + #pixel * OZDist[0] elseif @pointflavor4 == "HL" testPt2 = Zvalues[3] testPt3 = Zvalues[2] + #pixel * OZDist[1] elseif @pointflavor4 == "HM" testPt2 = Zvalues[3] testPt3 = Zvalues[2] + #pixel * OZDist[2] elseif @pointflavor4 == "HN" testPt2 = Zvalues[3] testPt3 = Zvalues[2] + #pixel * OZDist[3] elseif @pointflavor4 == "HO" testPt2 = Zvalues[3] testPt3 = Zvalues[3] + #pixel * OZDist[0] elseif @pointflavor4 == "HP" testPt2 = Zvalues[3] testPt3 = Zvalues[3] + #pixel * OZDist[1] elseif @pointflavor4 == "HQ" testPt2 = Zvalues[3] testPt3 = Zvalues[3] + #pixel * OZDist[2] elseif @pointflavor4 == "HR" testPt2 = Zvalues[3] testPt3 = Zvalues[3] + #pixel * OZDist[3] endif ; @pointflavor4 elseif @numberpoints == 5 ; OPixelDist = cabs(#pixel) ; Origin-Pixel distance OZDist[0] = cabs(#z) ; Origin-#z distance OZDist[1] = cabs(Zvalues[1]) OZDist[2] = cabs(Zvalues[2]) OZDist[3] = cabs(Zvalues[3]) OZDist[4] = cabs(Zvalues[4]) ; Origin-4th-previous z distance if @trackmeasure5 == "Midpoint" if @pointset5a == "z0-z4" TrackPt = (#z+Zvalues[4])/2 elseif @pointset5a == "z1-z4" TrackPt = (Zvalues[1]+Zvalues[4])/2 elseif @pointset5a == "z2-z4" TrackPt = (Zvalues[2]+Zvalues[4])/2 elseif @pointset5a == "z3-z4" TrackPt = (Zvalues[3]+Zvalues[4])/2 elseif @pointset5a == "z4-Origin" TrackPt = Zvalues[4]/2 elseif @pointset5a == "z4-#pixel" TrackPt = (Zvalues[4]+#pixel)/2 endif ; @pointset5a elseif @trackmeasure5 == "Centroid" if @pointset5b == "z0-z1-z4" TrackPt = (#z+Zvalues[1]+Zvalues[4])/3 elseif @pointset5b == "z0-z2-z4" TrackPt = (#z+Zvalues[2]+Zvalues[4])/3 elseif @pointset5b == "z0-z3-z4" TrackPt = (#z+Zvalues[3]+Zvalues[4])/3 elseif @pointset5b == "z0-z4-Origin" TrackPt = (#z+Zvalues[4])/3 elseif @pointset5b == "z0-z4-#pixel" TrackPt = (#z+Zvalues[4]+#pixel)/3 elseif @pointset5b == "z1-z2-z4" TrackPt = (Zvalues[1]+Zvalues[2]+Zvalues[4])/3 elseif @pointset5b == "z1-z3-z4" TrackPt = (Zvalues[1]+Zvalues[3]+Zvalues[4])/3 elseif @pointset5b == "z1-z4-Origin" TrackPt = (Zvalues[1]+Zvalues[4])/3 elseif @pointset5b == "z1-z4-#pixel" TrackPt = (Zvalues[1]+Zvalues[4]+#pixel)/3 elseif @pointset5b == "z2-z3-z4" TrackPt = (Zvalues[2]+Zvalues[3]+Zvalues[4])/3 elseif @pointset5b == "z2-z4-Origin" TrackPt = (Zvalues[2]+Zvalues[4])/3 elseif @pointset5b == "z2-z4-#pixel" TrackPt = (Zvalues[2]+Zvalues[4]+#pixel)/3 elseif @pointset5b == "z3-z4-Origin" TrackPt = (Zvalues[3]+Zvalues[4])/3 elseif @pointset5b == "z3-z4-#pixel" TrackPt = (Zvalues[3]+Zvalues[4]+#pixel)/3 elseif @pointset5b == "z4-Origin-#pixel" TrackPt = (Zvalues[4]+#pixel)/3 elseif @pointset5b == "z0-z1-z2-z4" TrackPt = (#z+Zvalues[1]+Zvalues[2]+Zvalues[4])/4 elseif @pointset5b == "z0-z1-z3-z4" TrackPt = (#z+Zvalues[1]+Zvalues[3]+Zvalues[4])/4 elseif @pointset5b == "z0-z1-z4-Origin" TrackPt = (#z+Zvalues[1]+Zvalues[4])/4 elseif @pointset5b == "z0-z1-z4-#pixel" TrackPt = (#z+Zvalues[1]+Zvalues[4]+#pixel)/4 elseif @pointset5b == "z0-z2-z3-z4" TrackPt = (#z+Zvalues[2]+Zvalues[3]+Zvalues[4])/4 elseif @pointset5b == "z0-z2-z4-Origin" TrackPt = (#z+Zvalues[2]+Zvalues[4])/4 elseif @pointset5b == "z0-z2-z4-#pixel" TrackPt = (#z+Zvalues[2]+Zvalues[4]+#pixel)/4 elseif @pointset5b == "z0-z3-z4-Origin" TrackPt = (#z+Zvalues[3]+Zvalues[4])/4 elseif @pointset5b == "z0-z3-z4-#pixel" TrackPt = (#z+Zvalues[3]+Zvalues[4]+#pixel)/4 elseif @pointset5b == "z0-z4-O-pix" TrackPt = (#z+Zvalues[4]+#pixel)/4 elseif @pointset5b == "z1-z2-z3-z4" TrackPt = (Zvalues[1]+Zvalues[2]+Zvalues[3]+Zvalues[4])/4 elseif @pointset5b == "z1-z2-z4-Origin" TrackPt = (Zvalues[1]+Zvalues[2]+Zvalues[4])/4 elseif @pointset5b == "z1-z2-z4-#pixel" TrackPt = (Zvalues[1]+Zvalues[2]+Zvalues[4]+#pixel)/4 elseif @pointset5b == "z1-z3-z4-Origin" TrackPt = (Zvalues[1]+Zvalues[3]+Zvalues[4])/4 elseif @pointset5b == "z1-z3-z4-#pixel" TrackPt = (Zvalues[1]+Zvalues[3]+Zvalues[4]+#pixel)/4 elseif @pointset5b == "z2-z3-z4-Origin" TrackPt = (Zvalues[2]+Zvalues[3]+Zvalues[4])/4 elseif @pointset5b == "z2-z3-z4-#pixel" TrackPt = (Zvalues[2]+Zvalues[3]+Zvalues[4]+#pixel)/4 elseif @pointset5b == "z1-z4-O-pix" TrackPt = (Zvalues[1]+Zvalues[4]+#pixel)/4 elseif @pointset5b == "z2-z4-O-pix" TrackPt = (Zvalues[2]+Zvalues[4]+#pixel)/4 elseif @pointset5b == "z3-z4-O-pix" TrackPt = (Zvalues[3]+Zvalues[4]+#pixel)/4 elseif @pointset5b == "z0-z1-z2-z3-z4" TrackPt = (#z+Zvalues[1]+Zvalues[2]+Zvalues[3]+Zvalues[4])/5 elseif @pointset5b == "z0-z1-z2-z4-O" TrackPt = (#z+Zvalues[1]+Zvalues[2]+Zvalues[4])/5 elseif @pointset5b == "z0-z1-z2-z4-pix" TrackPt = (#z+Zvalues[1]+Zvalues[2]+Zvalues[4]+#pixel)/5 elseif @pointset5b == "z0-z1-z3-z4-O" TrackPt = (#z+Zvalues[1]+Zvalues[3]+Zvalues[4])/5 elseif @pointset5b == "z0-z1-z3-z4-pix" TrackPt = (#z+Zvalues[1]+Zvalues[3]+Zvalues[4]+#pixel)/5 elseif @pointset5b == "z0-z2-z3-z4-O" TrackPt = (#z+Zvalues[2]+Zvalues[3]+Zvalues[4])/5 elseif @pointset5b == "z0-z2-z3-z4-pix" TrackPt = (#z+Zvalues[2]+Zvalues[3]+Zvalues[4]+#pixel)/5 elseif @pointset5b == "z1-z2-z3-z4-O" TrackPt = (Zvalues[1]+Zvalues[2]+Zvalues[3]+Zvalues[4])/5 elseif @pointset5b == "z1-z2-z3-z4-pix" TrackPt = (Zvalues[1]+Zvalues[2]+Zvalues[3]+Zvalues[4]+#pixel)/5 elseif @pointset5b == "z0-z1-z4-O-pix" TrackPt = (#z+Zvalues[1]+Zvalues[4]+#pixel)/5 elseif @pointset5b == "z0-z2-z4-O-pix" TrackPt = (#z+Zvalues[2]+Zvalues[4]+#pixel)/5 elseif @pointset5b == "z0-z3-z4-O-pix" TrackPt = (#z+Zvalues[3]+Zvalues[4]+#pixel)/5 elseif @pointset5b == "z1-z2-z4-O-pix" TrackPt = (Zvalues[1]+Zvalues[2]+Zvalues[4]+#pixel)/5 elseif @pointset5b == "z1-z3-z4-O-pix" TrackPt = (Zvalues[1]+Zvalues[3]+Zvalues[4]+#pixel)/5 elseif @pointset5b == "z2-z3-z4-O-pix" TrackPt = (Zvalues[2]+Zvalues[3]+Zvalues[4]+#pixel)/5 elseif @pointset5b == "z0-z1-z2-z3-z4-O" TrackPt = (#z+Zvalues[1]+Zvalues[2]+Zvalues[3]+Zvalues[4])/6 elseif @pointset5b == "z0-z1-z2-z3-z4-pix" TrackPt = (#z+Zvalues[1]+Zvalues[2]+Zvalues[3]+Zvalues[4]+#pixel)/6 elseif @pointset5b == "z0-z1-z2-z4-O-pix" TrackPt = (#z+Zvalues[1]+Zvalues[2]+Zvalues[4]+#pixel)/6 elseif @pointset5b == "z0-z1-z3-z4-O-pix" TrackPt = (#z+Zvalues[1]+Zvalues[3]+Zvalues[4]+#pixel)/6 elseif @pointset5b == "z0-z2-z3-z4-O-pix" TrackPt = (#z+Zvalues[2]+Zvalues[3]+Zvalues[4]+#pixel)/6 elseif @pointset5b == "z1-z2-z3-z4-O-pix" TrackPt = (Zvalues[1]+Zvalues[2]+Zvalues[3]+Zvalues[4]+#pixel)/6 elseif @pointset5b == "z0-z1-z2-z3-z4-O-pix" TrackPt = (#z+Zvalues[1]+Zvalues[2]+Zvalues[3]+Zvalues[4]+#pixel)/7 endif ; @pointset5b elseif @trackmeasure5 == "4th-Previous z (z4)" TrackPt = Zvalues[4] endif ; @trackmeasure5 ; OTrackPtDist = cabs(TrackPt) ; Origin-tracked point distance testPt1 = TrackPt if @pointflavor5 == "A" testPt2 = #z testPt3 = Zvalues[1] elseif @pointflavor5 == "B" testPt2 = #z testPt3 = Zvalues[2] elseif @pointflavor5 == "C" testPt2 = #z testPt3 = Zvalues[3] elseif @pointflavor5 == "C'" testPt2 = #z testPt3 = Zvalues[4] elseif @pointflavor5 == "D" testPt2 = Zvalues[1] testPt3 = Zvalues[2] elseif @pointflavor5 == "E" testPt2 = Zvalues[1] testPt3 = Zvalues[3] elseif @pointflavor5 == "E'" testPt2 = Zvalues[1] testPt3 = Zvalues[4] elseif @pointflavor5 == "F" testPt2 = Zvalues[2] testPt3 = Zvalues[3] elseif @pointflavor5 == "F'" testPt2 = Zvalues[2] testPt3 = Zvalues[4] elseif @pointflavor5 == "F''" testPt2 = Zvalues[3] testPt3 = Zvalues[4] elseif @pointflavor5 == "G" testPt2 = #z testPt3 = #pixel elseif @pointflavor5 == "H" testPt2 = Zvalues[1] testPt3 = #pixel elseif @pointflavor5 == "I" testPt2 = Zvalues[2] testPt3 = #pixel elseif @pointflavor5 == "J" testPt2 = Zvalues[3] testPt3 = #pixel elseif @pointflavor5 == "J'" testPt2 = Zvalues[4] testPt3 = #pixel elseif @pointflavor5 == "K" testPt2 = #z testPt3 = (0,0) elseif @pointflavor5 == "L" testPt2 = Zvalues[1] testPt3 = (0,0) elseif @pointflavor5 == "M" testPt2 = Zvalues[2] testPt3 = (0,0) elseif @pointflavor5 == "N" testPt2 = Zvalues[3] testPt3 = (0,0) elseif @pointflavor5 == "N'" testPt2 = Zvalues[4] testPt3 = (0,0) elseif @pointflavor5 == "O" testPt2 = #z testPt3 = #pixel + #z elseif @pointflavor5 == "P" testPt2 = #z testPt3 = #pixel + Zvalues[1] elseif @pointflavor5 == "Q" testPt2 = #z testPt3 = #pixel + Zvalues[2] elseif @pointflavor5 == "R" testPt2 = #z testPt3 = #pixel + Zvalues[3] elseif @pointflavor5 == "R'" testPt2 = #z testPt3 = #pixel + Zvalues[4] elseif @pointflavor5 == "S" testPt2 = Zvalues[1] testPt3 = #pixel + #z elseif @pointflavor5 == "T" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] elseif @pointflavor5 == "U" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] elseif @pointflavor5 == "V" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] elseif @pointflavor5 == "V'" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[4] elseif @pointflavor5 == "W" testPt2 = Zvalues[2] testPt3 = #pixel + #z elseif @pointflavor5 == "X" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] elseif @pointflavor5 == "Y" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] elseif @pointflavor5 == "Z" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] elseif @pointflavor5 == "Z'" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[4] elseif @pointflavor5 == "AA" testPt2 = Zvalues[3] testPt3 = #pixel + #z elseif @pointflavor5 == "AB" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] elseif @pointflavor5 == "AC" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] elseif @pointflavor5 == "AD" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] elseif @pointflavor5 == "AD'" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[4] elseif @pointflavor5 == "AD2" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[1] elseif @pointflavor5 == "AD3" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[2] elseif @pointflavor5 == "AD4" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[3] elseif @pointflavor5 == "AD5" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[4] elseif @pointflavor5 == "AE" testPt2 = #z testPt3 = #pixel + #z * OZDist[0] elseif @pointflavor5 == "AF" testPt2 = #z testPt3 = #pixel + #z * OZDist[1] elseif @pointflavor5 == "AG" testPt2 = #z testPt3 = #pixel + #z * OZDist[2] elseif @pointflavor5 == "AH" testPt2 = #z testPt3 = #pixel + #z * OZDist[3] elseif @pointflavor5 == "AH'" testPt2 = #z testPt3 = #pixel + #z * OZDist[4] elseif @pointflavor5 == "AI" testPt2 = #z testPt3 = #pixel + Zvalues[1] * OZDist[0] elseif @pointflavor5 == "AJ" testPt2 = #z testPt3 = #pixel + Zvalues[1] * OZDist[1] elseif @pointflavor5 == "AK" testPt2 = #z testPt3 = #pixel + Zvalues[1] * OZDist[2] elseif @pointflavor5 == "AL" testPt2 = #z testPt3 = #pixel + Zvalues[1] * OZDist[3] elseif @pointflavor5 == "AL'" testPt2 = #z testPt3 = #pixel + Zvalues[1] * OZDist[4] elseif @pointflavor5 == "AM" testPt2 = #z testPt3 = #pixel + Zvalues[2] * OZDist[0] elseif @pointflavor5 == "AN" testPt2 = #z testPt3 = #pixel + Zvalues[2] * OZDist[1] elseif @pointflavor5 == "AO" testPt2 = #z testPt3 = #pixel + Zvalues[2] * OZDist[2] elseif @pointflavor5 == "AP" testPt2 = #z testPt3 = #pixel + Zvalues[2] * OZDist[3] elseif @pointflavor5 == "AP'" testPt2 = #z testPt3 = #pixel + Zvalues[2] * OZDist[4] elseif @pointflavor5 == "AQ" testPt2 = #z testPt3 = #pixel + Zvalues[3] * OZDist[0] elseif @pointflavor5 == "AR" testPt2 = #z testPt3 = #pixel + Zvalues[3] * OZDist[1] elseif @pointflavor5 == "AS" testPt2 = #z testPt3 = #pixel + Zvalues[3] * OZDist[2] elseif @pointflavor5 == "AT" testPt2 = #z testPt3 = #pixel + Zvalues[3] * OZDist[3] elseif @pointflavor5 == "AT'" testPt2 = #z testPt3 = #pixel + Zvalues[3] * OZDist[4] elseif @pointflavor5 == "AT2" testPt2 = #z testPt3 = #pixel + Zvalues[4] * OZDist[0] elseif @pointflavor5 == "AT3" testPt2 = #z testPt3 = #pixel + Zvalues[4] * OZDist[1] elseif @pointflavor5 == "AT4" testPt2 = #z testPt3 = #pixel + Zvalues[4] * OZDist[2] elseif @pointflavor5 == "AT5" testPt2 = #z testPt3 = #pixel + Zvalues[4] * OZDist[3] elseif @pointflavor5 == "AT6" testPt2 = #z testPt3 = #pixel + Zvalues[4] * OZDist[4] elseif @pointflavor5 == "AU" testPt2 = Zvalues[1] testPt3 = #pixel + #z * OZDist[0] elseif @pointflavor5 == "AV" testPt2 = Zvalues[1] testPt3 = #pixel + #z * OZDist[1] elseif @pointflavor5 == "AW" testPt2 = Zvalues[1] testPt3 = #pixel + #z * OZDist[2] elseif @pointflavor5 == "AX" testPt2 = Zvalues[1] testPt3 = #pixel + #z * OZDist[3] elseif @pointflavor5 == "AX'" testPt2 = Zvalues[1] testPt3 = #pixel + #z * OZDist[4] elseif @pointflavor5 == "AY" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] * OZDist[0] elseif @pointflavor5 == "AZ" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] * OZDist[1] elseif @pointflavor5 == "BA" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] * OZDist[2] elseif @pointflavor5 == "BB" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] * OZDist[3] elseif @pointflavor5 == "BB'" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] * OZDist[4] elseif @pointflavor5 == "BC" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] * OZDist[0] elseif @pointflavor5 == "BD" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] * OZDist[1] elseif @pointflavor5 == "BE" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] * OZDist[2] elseif @pointflavor5 == "BF" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] * OZDist[3] elseif @pointflavor5 == "BF'" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] * OZDist[4] elseif @pointflavor5 == "BG" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] * OZDist[0] elseif @pointflavor5 == "BH" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] * OZDist[1] elseif @pointflavor5 == "BI" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] * OZDist[2] elseif @pointflavor5 == "BJ" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] * OZDist[3] elseif @pointflavor5 == "BJ'" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] * OZDist[4] elseif @pointflavor5 == "BJ2" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[4] * OZDist[0] elseif @pointflavor5 == "BJ3" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[4] * OZDist[1] elseif @pointflavor5 == "BJ4" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[4] * OZDist[2] elseif @pointflavor5 == "BJ5" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[4] * OZDist[3] elseif @pointflavor5 == "BJ6" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[4] * OZDist[4] elseif @pointflavor5 == "BK" testPt2 = Zvalues[2] testPt3 = #pixel + #z * OZDist[0] elseif @pointflavor5 == "BL" testPt2 = Zvalues[2] testPt3 = #pixel + #z * OZDist[1] elseif @pointflavor5 == "BM" testPt2 = Zvalues[2] testPt3 = #pixel + #z * OZDist[2] elseif @pointflavor5 == "BN" testPt2 = Zvalues[2] testPt3 = #pixel + #z * OZDist[3] elseif @pointflavor5 == "BN'" testPt2 = Zvalues[2] testPt3 = #pixel + #z * OZDist[4] elseif @pointflavor5 == "BO" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] * OZDist[0] elseif @pointflavor5 == "BP" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] * OZDist[1] elseif @pointflavor5 == "BQ" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] * OZDist[2] elseif @pointflavor5 == "BR" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] * OZDist[3] elseif @pointflavor5 == "BR'" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] * OZDist[4] elseif @pointflavor5 == "BS" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] * OZDist[0] elseif @pointflavor5 == "BT" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] * OZDist[1] elseif @pointflavor5 == "BU" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] * OZDist[2] elseif @pointflavor5 == "BV" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] * OZDist[3] elseif @pointflavor5 == "BV'" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] * OZDist[4] elseif @pointflavor5 == "BW" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] * OZDist[0] elseif @pointflavor5 == "BX" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] * OZDist[1] elseif @pointflavor5 == "BY" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] * OZDist[2] elseif @pointflavor5 == "BZ" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] * OZDist[3] elseif @pointflavor5 == "BZ'" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] * OZDist[4] elseif @pointflavor5 == "BZ2" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[4] * OZDist[0] elseif @pointflavor5 == "BZ3" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[4] * OZDist[1] elseif @pointflavor5 == "BZ4" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[4] * OZDist[2] elseif @pointflavor5 == "BZ5" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[4] * OZDist[3] elseif @pointflavor5 == "BZ6" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[4] * OZDist[4] elseif @pointflavor5 == "CA" testPt2 = Zvalues[3] testPt3 = #pixel + #z * OZDist[0] elseif @pointflavor5 == "CB" testPt2 = Zvalues[3] testPt3 = #pixel + #z * OZDist[1] elseif @pointflavor5 == "CC" testPt2 = Zvalues[3] testPt3 = #pixel + #z * OZDist[2] elseif @pointflavor5 == "CD" testPt2 = Zvalues[3] testPt3 = #pixel + #z * OZDist[3] elseif @pointflavor5 == "CD'" testPt2 = Zvalues[3] testPt3 = #pixel + #z * OZDist[4] elseif @pointflavor5 == "CE" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] * OZDist[0] elseif @pointflavor5 == "CF" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] * OZDist[1] elseif @pointflavor5 == "CG" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] * OZDist[2] elseif @pointflavor5 == "CH" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] * OZDist[3] elseif @pointflavor5 == "CH'" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] * OZDist[4] elseif @pointflavor5 == "CI" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] * OZDist[0] elseif @pointflavor5 == "CJ" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] * OZDist[1] elseif @pointflavor5 == "CK" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] * OZDist[2] elseif @pointflavor5 == "CL" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] * OZDist[3] elseif @pointflavor5 == "CL'" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] * OZDist[4] elseif @pointflavor5 == "CM" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] * OZDist[0] elseif @pointflavor5 == "CN" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] * OZDist[1] elseif @pointflavor5 == "CO" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] * OZDist[2] elseif @pointflavor5 == "CP" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] * OZDist[3] elseif @pointflavor5 == "CP'" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] * OZDist[4] elseif @pointflavor5 == "CP2" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[4] * OZDist[0] elseif @pointflavor5 == "CP3" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[4] * OZDist[1] elseif @pointflavor5 == "CP4" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[4] * OZDist[2] elseif @pointflavor5 == "CP5" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[4] * OZDist[3] elseif @pointflavor5 == "CP6" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[4] * OZDist[4] elseif @pointflavor5 == "IA" testPt2 = Zvalues[4] testPt3 = #pixel + #z * OZDist[0] elseif @pointflavor5 == "IB" testPt2 = Zvalues[4] testPt3 = #pixel + #z * OZDist[1] elseif @pointflavor5 == "IC" testPt2 = Zvalues[4] testPt3 = #pixel + #z * OZDist[2] elseif @pointflavor5 == "ID" testPt2 = Zvalues[4] testPt3 = #pixel + #z * OZDist[3] elseif @pointflavor5 == "IE" testPt2 = Zvalues[4] testPt3 = #pixel + #z * OZDist[4] elseif @pointflavor5 == "IF" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[1] * OZDist[0] elseif @pointflavor5 == "IG" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[1] * OZDist[1] elseif @pointflavor5 == "IH" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[1] * OZDist[2] elseif @pointflavor5 == "II" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[1] * OZDist[3] elseif @pointflavor5 == "IJ" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[1] * OZDist[4] elseif @pointflavor5 == "IK" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[2] * OZDist[0] elseif @pointflavor5 == "IL" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[2] * OZDist[1] elseif @pointflavor5 == "IM" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[2] * OZDist[2] elseif @pointflavor5 == "IN" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[2] * OZDist[3] elseif @pointflavor5 == "IO" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[2] * OZDist[4] elseif @pointflavor5 == "IP" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[3] * OZDist[0] elseif @pointflavor5 == "IQ" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[3] * OZDist[1] elseif @pointflavor5 == "IR" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[3] * OZDist[2] elseif @pointflavor5 == "IS" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[3] * OZDist[3] elseif @pointflavor5 == "IT" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[3] * OZDist[4] elseif @pointflavor5 == "IU" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[4] * OZDist[0] elseif @pointflavor5 == "IV" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[4] * OZDist[1] elseif @pointflavor5 == "IW" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[4] * OZDist[2] elseif @pointflavor5 == "IX" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[4] * OZDist[3] elseif @pointflavor5 == "IY" testPt2 = Zvalues[4] testPt3 = #pixel + Zvalues[4] * OZDist[4] elseif @pointflavor5 == "CQ" testPt2 = #z testPt3 = #pixel + #z / OZDist[0] elseif @pointflavor5 == "CR" testPt2 = #z testPt3 = #pixel + #z / OZDist[1] elseif @pointflavor5 == "CS" testPt2 = #z testPt3 = #pixel + #z / OZDist[2] elseif @pointflavor5 == "CT" testPt2 = #z testPt3 = #pixel + #z / OZDist[3] elseif @pointflavor5 == "CT'" testPt2 = #z testPt3 = #pixel + #z / OZDist[4] elseif @pointflavor5 == "CU" testPt2 = #z testPt3 = #pixel + Zvalues[1] / OZDist[0] elseif @pointflavor5 == "CV" testPt2 = #z testPt3 = #pixel + Zvalues[1] / OZDist[1] elseif @pointflavor5 == "CW" testPt2 = #z testPt3 = #pixel + Zvalues[1] / OZDist[2] elseif @pointflavor5 == "CX" testPt2 = #z testPt3 = #pixel + Zvalues[1] / OZDist[3] elseif @pointflavor5 == "CX'" testPt2 = #z testPt3 = #pixel + Zvalues[1] / OZDist[4] elseif @pointflavor5 == "CY" testPt2 = #z testPt3 = #pixel + Zvalues[2] / OZDist[0] elseif @pointflavor5 == "CZ" testPt2 = #z testPt3 = #pixel + Zvalues[2] / OZDist[1] elseif @pointflavor5 == "DA" testPt2 = #z testPt3 = #pixel + Zvalues[2] / OZDist[2] elseif @pointflavor5 == "DB" testPt2 = #z testPt3 = #pixel + Zvalues[2] / OZDist[3] elseif @pointflavor5 == "DB'" testPt2 = #z testPt3 = #pixel + Zvalues[2] / OZDist[4] elseif @pointflavor5 == "DC" testPt2 = #z testPt3 = #pixel + Zvalues[3] / OZDist[0] elseif @pointflavor5 == "DD" testPt2 = #z testPt3 = #pixel + Zvalues[3] / OZDist[1] elseif @pointflavor5 == "DE" testPt2 = #z testPt3 = #pixel + Zvalues[3] / OZDist[2] elseif @pointflavor5 == "DF" testPt2 = #z testPt3 = #pixel + Zvalues[3] / OZDist[3] elseif @pointflavor5 == "DF'" testPt2 = #z testPt3 = #pixel + Zvalues[3] / OZDist[4] elseif @pointflavor5 == "DF2" testPt2 = #z testPt3 = #pixel + Zvalues[4] / OZDist[0] elseif @pointflavor5 == "DF3" testPt2 = #z testPt3 = #pixel + Zvalues[4] / OZDist[1] elseif @pointflavor5 == "DF4" testPt2 = #z testPt3 = #pixel + Zvalues[4] / OZDist[2] elseif @pointflavor5 == "DF5" testPt2 = #z testPt3 = #pixel + Zvalues[4] / OZDist[3] elseif @pointflavor5 == "DF6" testPt2 = #z testPt3 = #pixel + Zvalues[4] / OZDist[4] elseif @pointflavor5 == "DG" testPt2 = Zvalues[1] testPt3 = #pixel + #z / OZDist[0] elseif @pointflavor5 == "DH" testPt2 = Zvalues[1] testPt3 = #pixel + #z / OZDist[1] elseif @pointflavor5 == "DI" testPt2 = Zvalues[1] testPt3 = #pixel + #z / OZDist[2] elseif @pointflavor5 == "DJ" testPt2 = Zvalues[1] testPt3 = #pixel + #z / OZDist[3] elseif @pointflavor5 == "DJ'" testPt2 = Zvalues[1] testPt3 = #pixel + #z / OZDist[4] elseif @pointflavor5 == "DK" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] / OZDist[0] elseif @pointflavor5 == "DL" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] / OZDist[1] elseif @pointflavor5 == "DM" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] / OZDist[2] elseif @pointflavor5 == "DN" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] / OZDist[3] elseif @pointflavor5 == "DN'" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[1] / OZDist[4] elseif @pointflavor5 == "DO" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] / OZDist[0] elseif @pointflavor5 == "DP" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] / OZDist[1] elseif @pointflavor5 == "DQ" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] / OZDist[2] elseif @pointflavor5 == "DR" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[2] / OZDist[3] elseif @pointflavor5 == "DR'" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] / OZDist[4] elseif @pointflavor5 == "DR2" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] / OZDist[0] elseif @pointflavor5 == "DR3" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] / OZDist[1] elseif @pointflavor5 == "DR4" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] / OZDist[2] elseif @pointflavor5 == "DR5" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] / OZDist[3] elseif @pointflavor5 == "DR6" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[3] / OZDist[4] elseif @pointflavor5 == "DR7" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[4] / OZDist[0] elseif @pointflavor5 == "DR8" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[4] / OZDist[1] elseif @pointflavor5 == "DR9" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[4] / OZDist[2] elseif @pointflavor5 == "DR10" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[4] / OZDist[3] elseif @pointflavor5 == "DR11" testPt2 = Zvalues[1] testPt3 = #pixel + Zvalues[4] / OZDist[4] elseif @pointflavor5 == "DS" testPt2 = Zvalues[2] testPt3 = #pixel + #z / OZDist[0] elseif @pointflavor5 == "DT" testPt2 = Zvalues[2] testPt3 = #pixel + #z / OZDist[1] elseif @pointflavor5 == "DU" testPt2 = Zvalues[2] testPt3 = #pixel + #z / OZDist[2] elseif @pointflavor5 == "DV" testPt2 = Zvalues[2] testPt3 = #pixel + #z / OZDist[3] elseif @pointflavor5 == "DV'" testPt2 = Zvalues[2] testPt3 = #pixel + #z / OZDist[4] elseif @pointflavor5 == "DW" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] / OZDist[0] elseif @pointflavor5 == "DX" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] / OZDist[1] elseif @pointflavor5 == "DY" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] / OZDist[2] elseif @pointflavor5 == "DZ" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] / OZDist[3] elseif @pointflavor5 == "DZ'" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[1] / OZDist[4] elseif @pointflavor5 == "EA" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] / OZDist[0] elseif @pointflavor5 == "EB" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] / OZDist[1] elseif @pointflavor5 == "EC" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] / OZDist[2] elseif @pointflavor5 == "ED" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] / OZDist[3] elseif @pointflavor5 == "ED'" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[2] / OZDist[4] elseif @pointflavor5 == "ED7" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] / OZDist[0] elseif @pointflavor5 == "ED8" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] / OZDist[1] elseif @pointflavor5 == "ED9" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] / OZDist[2] elseif @pointflavor5 == "ED10" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] / OZDist[3] elseif @pointflavor5 == "ED11" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[3] / OZDist[4] elseif @pointflavor5 == "ED2" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[4] / OZDist[0] elseif @pointflavor5 == "ED3" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[4] / OZDist[1] elseif @pointflavor5 == "ED4" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[4] / OZDist[2] elseif @pointflavor5 == "ED5" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[4] / OZDist[3] elseif @pointflavor5 == "ED6" testPt2 = Zvalues[2] testPt3 = #pixel + Zvalues[4] / OZDist[4] elseif @pointflavor5 == "EE" testPt2 = Zvalues[3] testPt3 = #pixel + #z / OZDist[0] elseif @pointflavor5 == "EF" testPt2 = Zvalues[3] testPt3 = #pixel + #z / OZDist[1] elseif @pointflavor5 == "EG" testPt2 = Zvalues[3] testPt3 = #pixel + #z / OZDist[2] elseif @pointflavor5 == "EH" testPt2 = Zvalues[3] testPt3 = #pixel + #z / OZDist[3] elseif @pointflavor5 == "EH'" testPt2 = Zvalues[3] testPt3 = #pixel + #z / OZDist[4] elseif @pointflavor5 == "EI" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] / OZDist[0] elseif @pointflavor5 == "EJ" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] / OZDist[1] elseif @pointflavor5 == "EK" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] / OZDist[2] elseif @pointflavor5 == "EL" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] / OZDist[3] elseif @pointflavor5 == "EL'" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] / OZDist[4] elseif @pointflavor5 == "EM" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] / OZDist[0] elseif @pointflavor5 == "EN" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] / OZDist[1] elseif @pointflavor5 == "EO" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] / OZDist[2] elseif @pointflavor5 == "EP" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] / OZDist[3] elseif @pointflavor5 == "EP'" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] / OZDist[4] elseif @pointflavor5 == "EP7" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] / OZDist[0] elseif @pointflavor5 == "EP8" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] / OZDist[1] elseif @pointflavor5 == "EP9" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] / OZDist[2] elseif @pointflavor5 == "EP10" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] / OZDist[3] elseif @pointflavor5 == "EP11" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] / OZDist[4] elseif @pointflavor5 == "EP2" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[4] / OZDist[0] elseif @pointflavor5 == "EP3" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[4] / OZDist[1] elseif @pointflavor5 == "EP4" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[4] / OZDist[2] elseif @pointflavor5 == "EP5" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[4] / OZDist[3] elseif @pointflavor5 == "EP6" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[4] / OZDist[4] elseif @pointflavor5 == "JA" testPt2 = Zvalues[3] testPt3 = #pixel + #z / OZDist[0] elseif @pointflavor5 == "JB" testPt2 = Zvalues[3] testPt3 = #pixel + #z / OZDist[1] elseif @pointflavor5 == "JC" testPt2 = Zvalues[3] testPt3 = #pixel + #z / OZDist[2] elseif @pointflavor5 == "JD" testPt2 = Zvalues[3] testPt3 = #pixel + #z / OZDist[3] elseif @pointflavor5 == "JE" testPt2 = Zvalues[3] testPt3 = #pixel + #z / OZDist[4] elseif @pointflavor5 == "JF" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] / OZDist[0] elseif @pointflavor5 == "JG" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] / OZDist[1] elseif @pointflavor5 == "JH" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] / OZDist[2] elseif @pointflavor5 == "JI" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] / OZDist[3] elseif @pointflavor5 == "JJ" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[1] / OZDist[4] elseif @pointflavor5 == "JK" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] / OZDist[0] elseif @pointflavor5 == "JL" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] / OZDist[1] elseif @pointflavor5 == "JM" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] / OZDist[2] elseif @pointflavor5 == "JN" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] / OZDist[3] elseif @pointflavor5 == "JO" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[2] / OZDist[4] elseif @pointflavor5 == "JP" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] / OZDist[0] elseif @pointflavor5 == "JQ" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] / OZDist[1] elseif @pointflavor5 == "JR" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] / OZDist[2] elseif @pointflavor5 == "JS" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] / OZDist[3] elseif @pointflavor5 == "JT" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[3] / OZDist[4] elseif @pointflavor5 == "JU" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[4] / OZDist[0] elseif @pointflavor5 == "JV" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[4] / OZDist[1] elseif @pointflavor5 == "JW" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[4] / OZDist[2] elseif @pointflavor5 == "JX" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[4] / OZDist[3] elseif @pointflavor5 == "JY" testPt2 = Zvalues[3] testPt3 = #pixel + Zvalues[4] / OZDist[4] elseif @pointflavor5 == "EQ" testPt2 = #z testPt3 = #pixel * OZDist[0] elseif @pointflavor5 == "ER" testPt2 = #z testPt3 = #pixel * OZDist[1] elseif @pointflavor5 == "ES" testPt2 = #z testPt3 = #pixel * OZDist[2] elseif @pointflavor5 == "ET" testPt2 = #z testPt3 = #pixel * OZDist[3] elseif @pointflavor5 == "ET'" testPt2 = #z testPt3 = #pixel * OZDist[4] elseif @pointflavor5 == "EU" testPt2 = Zvalues[1] testPt3 = #pixel * OZDist[0] elseif @pointflavor5 == "EV" testPt2 = Zvalues[1] testPt3 = #pixel * OZDist[1] elseif @pointflavor5 == "EW" testPt2 = Zvalues[1] testPt3 = #pixel * OZDist[2] elseif @pointflavor5 == "EX" testPt2 = Zvalues[1] testPt3 = #pixel * OZDist[3] elseif @pointflavor5 == "EX'" testPt2 = Zvalues[1] testPt3 = #pixel * OZDist[4] elseif @pointflavor5 == "EY" testPt2 = Zvalues[2] testPt3 = #pixel * OZDist[0] elseif @pointflavor5 == "EZ" testPt2 = Zvalues[2] testPt3 = #pixel * OZDist[1] elseif @pointflavor5 == "FA" testPt2 = Zvalues[2] testPt3 = #pixel * OZDist[2] elseif @pointflavor5 == "FB" testPt2 = Zvalues[2] testPt3 = #pixel * OZDist[3] elseif @pointflavor5 == "FB'" testPt2 = Zvalues[2] testPt3 = #pixel * OZDist[4] elseif @pointflavor5 == "FC" testPt2 = Zvalues[3] testPt3 = #pixel * OZDist[0] elseif @pointflavor5 == "FD" testPt2 = Zvalues[3] testPt3 = #pixel * OZDist[1] elseif @pointflavor5 == "FE" testPt2 = Zvalues[3] testPt3 = #pixel * OZDist[2] elseif @pointflavor5 == "FF" testPt2 = Zvalues[3] testPt3 = #pixel * OZDist[3] elseif @pointflavor5 == "FF'" testPt2 = Zvalues[3] testPt3 = #pixel * OZDist[4] elseif @pointflavor5 == "FF2" testPt2 = Zvalues[4] testPt3 = #pixel * OZDist[0] elseif @pointflavor5 == "FF3" testPt2 = Zvalues[4] testPt3 = #pixel * OZDist[1] elseif @pointflavor5 == "FF4" testPt2 = Zvalues[4] testPt3 = #pixel * OZDist[2] elseif @pointflavor5 == "FF5" testPt2 = Zvalues[4] testPt3 = #pixel * OZDist[3] elseif @pointflavor5 == "FF6" testPt2 = Zvalues[4] testPt3 = #pixel * OZDist[4] elseif @pointflavor5 == "FG" testPt2 = #z testPt3 = #z + #pixel * OZDist[0] elseif @pointflavor5 == "FH" testPt2 = #z testPt3 = #z + #pixel * OZDist[1] elseif @pointflavor5 == "FI" testPt2 = #z testPt3 = #z + #pixel * OZDist[2] elseif @pointflavor5 == "FJ" testPt2 = #z testPt3 = #z + #pixel * OZDist[3] elseif @pointflavor5 == "FJ'" testPt2 = #z testPt3 = #z + #pixel * OZDist[4] elseif @pointflavor5 == "FK" testPt2 = #z testPt3 = Zvalues[1] + #pixel * OZDist[0] elseif @pointflavor5 == "FL" testPt2 = #z testPt3 = Zvalues[1] + #pixel * OZDist[1] elseif @pointflavor5 == "FM" testPt2 = #z testPt3 = Zvalues[1] + #pixel * OZDist[2] elseif @pointflavor5 == "FN" testPt2 = #z testPt3 = Zvalues[1] + #pixel * OZDist[3] elseif @pointflavor5 == "FN'" testPt2 = #z testPt3 = Zvalues[1] + #pixel * OZDist[4] elseif @pointflavor5 == "FO" testPt2 = #z testPt3 = Zvalues[2] + #pixel * OZDist[0] elseif @pointflavor5 == "FP" testPt2 = #z testPt3 = Zvalues[2] + #pixel * OZDist[1] elseif @pointflavor5 == "FQ" testPt2 = #z testPt3 = Zvalues[2] + #pixel * OZDist[2] elseif @pointflavor5 == "FR" testPt2 = #z testPt3 = Zvalues[2] + #pixel * OZDist[3] elseif @pointflavor5 == "FR'" testPt2 = #z testPt3 = Zvalues[2] + #pixel * OZDist[4] elseif @pointflavor5 == "FS" testPt2 = #z testPt3 = Zvalues[3] + #pixel * OZDist[0] elseif @pointflavor5 == "FT" testPt2 = #z testPt3 = Zvalues[3] + #pixel * OZDist[1] elseif @pointflavor5 == "FU" testPt2 = #z testPt3 = Zvalues[3] + #pixel * OZDist[2] elseif @pointflavor5 == "FV" testPt2 = #z testPt3 = Zvalues[3] + #pixel * OZDist[3] elseif @pointflavor5 == "FV'" testPt2 = #z testPt3 = Zvalues[3] + #pixel * OZDist[4] elseif @pointflavor5 == "FV2" testPt2 = #z testPt3 = Zvalues[4] + #pixel * OZDist[0] elseif @pointflavor5 == "FV3" testPt2 = #z testPt3 = Zvalues[4] + #pixel * OZDist[1] elseif @pointflavor5 == "FV4" testPt2 = #z testPt3 = Zvalues[4] + #pixel * OZDist[2] elseif @pointflavor5 == "FV5" testPt2 = #z testPt3 = Zvalues[4] + #pixel * OZDist[3] elseif @pointflavor5 == "FV6" testPt2 = #z testPt3 = Zvalues[4] + #pixel * OZDist[4] elseif @pointflavor5 == "FW" testPt2 = Zvalues[1] testPt3 = #z + #pixel * OZDist[0] elseif @pointflavor5 == "FX" testPt2 = Zvalues[1] testPt3 = #z + #pixel * OZDist[1] elseif @pointflavor5 == "FY" testPt2 = Zvalues[1] testPt3 = #z + #pixel * OZDist[2] elseif @pointflavor5 == "FZ" testPt2 = Zvalues[1] testPt3 = #z + #pixel * OZDist[3] elseif @pointflavor5 == "FZ'" testPt2 = Zvalues[1] testPt3 = #z + #pixel * OZDist[4] elseif @pointflavor5 == "GA" testPt2 = Zvalues[1] testPt3 = Zvalues[1] + #pixel * OZDist[0] elseif @pointflavor5 == "GB" testPt2 = Zvalues[1] testPt3 = Zvalues[1] + #pixel * OZDist[1] elseif @pointflavor5 == "GC" testPt2 = Zvalues[1] testPt3 = Zvalues[1] + #pixel * OZDist[2] elseif @pointflavor5 == "GD" testPt2 = Zvalues[1] testPt3 = Zvalues[1] + #pixel * OZDist[3] elseif @pointflavor5 == "GD'" testPt2 = Zvalues[1] testPt3 = Zvalues[1] + #pixel * OZDist[4] elseif @pointflavor5 == "GE" testPt2 = Zvalues[1] testPt3 = Zvalues[2] + #pixel * OZDist[0] elseif @pointflavor5 == "GF" testPt2 = Zvalues[1] testPt3 = Zvalues[2] + #pixel * OZDist[1] elseif @pointflavor5 == "GG" testPt2 = Zvalues[1] testPt3 = Zvalues[2] + #pixel * OZDist[2] elseif @pointflavor5 == "GH" testPt2 = Zvalues[1] testPt3 = Zvalues[2] + #pixel * OZDist[3] elseif @pointflavor5 == "GH'" testPt2 = Zvalues[1] testPt3 = Zvalues[2] + #pixel * OZDist[4] elseif @pointflavor5 == "GI" testPt2 = Zvalues[1] testPt3 = Zvalues[3] + #pixel * OZDist[0] elseif @pointflavor5 == "GJ" testPt2 = Zvalues[1] testPt3 = Zvalues[3] + #pixel * OZDist[1] elseif @pointflavor5 == "GK" testPt2 = Zvalues[1] testPt3 = Zvalues[3] + #pixel * OZDist[2] elseif @pointflavor5 == "GL" testPt2 = Zvalues[1] testPt3 = Zvalues[3] + #pixel * OZDist[3] elseif @pointflavor5 == "GL'" testPt2 = Zvalues[1] testPt3 = Zvalues[3] + #pixel * OZDist[4] elseif @pointflavor5 == "GM" testPt2 = Zvalues[2] testPt3 = #z + #pixel * OZDist[0] elseif @pointflavor5 == "GN" testPt2 = Zvalues[2] testPt3 = #z + #pixel * OZDist[1] elseif @pointflavor5 == "GO" testPt2 = Zvalues[2] testPt3 = #z + #pixel * OZDist[2] elseif @pointflavor5 == "GP" testPt2 = Zvalues[2] testPt3 = #z + #pixel * OZDist[3] elseif @pointflavor5 == "GP'" testPt2 = Zvalues[2] testPt3 = #z + #pixel * OZDist[4] elseif @pointflavor5 == "GQ" testPt2 = Zvalues[2] testPt3 = Zvalues[1] + #pixel * OZDist[0] elseif @pointflavor5 == "GR" testPt2 = Zvalues[2] testPt3 = Zvalues[1] + #pixel * OZDist[1] elseif @pointflavor5 == "GS" testPt2 = Zvalues[2] testPt3 = Zvalues[1] + #pixel * OZDist[2] elseif @pointflavor5 == "GT" testPt2 = Zvalues[2] testPt3 = Zvalues[1] + #pixel * OZDist[3] elseif @pointflavor5 == "GT'" testPt2 = Zvalues[2] testPt3 = Zvalues[1] + #pixel * OZDist[4] elseif @pointflavor5 == "GU" testPt2 = Zvalues[2] testPt3 = Zvalues[2] + #pixel * OZDist[0] elseif @pointflavor5 == "GV" testPt2 = Zvalues[2] testPt3 = Zvalues[2] + #pixel * OZDist[1] elseif @pointflavor5 == "GW" testPt2 = Zvalues[2] testPt3 = Zvalues[2] + #pixel * OZDist[2] elseif @pointflavor5 == "GX" testPt2 = Zvalues[2] testPt3 = Zvalues[2] + #pixel * OZDist[3] elseif @pointflavor5 == "GX'" testPt2 = Zvalues[2] testPt3 = Zvalues[2] + #pixel * OZDist[4] elseif @pointflavor5 == "GY" testPt2 = Zvalues[2] testPt3 = Zvalues[3] + #pixel * OZDist[0] elseif @pointflavor5 == "GZ" testPt2 = Zvalues[2] testPt3 = Zvalues[3] + #pixel * OZDist[1] elseif @pointflavor5 == "HA" testPt2 = Zvalues[2] testPt3 = Zvalues[3] + #pixel * OZDist[2] elseif @pointflavor5 == "HB" testPt2 = Zvalues[2] testPt3 = Zvalues[3] + #pixel * OZDist[3] elseif @pointflavor5 == "HB'" testPt2 = Zvalues[2] testPt3 = Zvalues[3] + #pixel * OZDist[4] elseif @pointflavor5 == "HB2" testPt2 = Zvalues[2] testPt3 = Zvalues[4] + #pixel * OZDist[0] elseif @pointflavor5 == "HB3" testPt2 = Zvalues[2] testPt3 = Zvalues[4] + #pixel * OZDist[1] elseif @pointflavor5 == "HB4" testPt2 = Zvalues[2] testPt3 = Zvalues[4] + #pixel * OZDist[2] elseif @pointflavor5 == "HB5" testPt2 = Zvalues[2] testPt3 = Zvalues[4] + #pixel * OZDist[3] elseif @pointflavor5 == "HB6" testPt2 = Zvalues[2] testPt3 = Zvalues[4] + #pixel * OZDist[4] elseif @pointflavor5 == "HC" testPt2 = Zvalues[3] testPt3 = #z + #pixel * OZDist[0] elseif @pointflavor5 == "HD" testPt2 = Zvalues[3] testPt3 = #z + #pixel * OZDist[1] elseif @pointflavor5 == "HE" testPt2 = Zvalues[3] testPt3 = #z + #pixel * OZDist[2] elseif @pointflavor5 == "HF" testPt2 = Zvalues[3] testPt3 = #z + #pixel * OZDist[3] elseif @pointflavor5 == "HF'" testPt2 = Zvalues[3] testPt3 = #z + #pixel * OZDist[4] elseif @pointflavor5 == "HG" testPt2 = Zvalues[3] testPt3 = Zvalues[1] + #pixel * OZDist[0] elseif @pointflavor5 == "HH" testPt2 = Zvalues[3] testPt3 = Zvalues[1] + #pixel * OZDist[1] elseif @pointflavor5 == "HI" testPt2 = Zvalues[3] testPt3 = Zvalues[1] + #pixel * OZDist[2] elseif @pointflavor5 == "HJ" testPt2 = Zvalues[3] testPt3 = Zvalues[1] + #pixel * OZDist[3] elseif @pointflavor5 == "HJ'" testPt2 = Zvalues[3] testPt3 = Zvalues[1] + #pixel * OZDist[4] elseif @pointflavor5 == "HK" testPt2 = Zvalues[3] testPt3 = Zvalues[2] + #pixel * OZDist[0] elseif @pointflavor5 == "HL" testPt2 = Zvalues[3] testPt3 = Zvalues[2] + #pixel * OZDist[1] elseif @pointflavor5 == "HM" testPt2 = Zvalues[3] testPt3 = Zvalues[2] + #pixel * OZDist[2] elseif @pointflavor5 == "HN" testPt2 = Zvalues[3] testPt3 = Zvalues[2] + #pixel * OZDist[3] elseif @pointflavor5 == "HN'" testPt2 = Zvalues[3] testPt3 = Zvalues[2] + #pixel * OZDist[4] elseif @pointflavor5 == "HO" testPt2 = Zvalues[3] testPt3 = Zvalues[3] + #pixel * OZDist[0] elseif @pointflavor5 == "HP" testPt2 = Zvalues[3] testPt3 = Zvalues[3] + #pixel * OZDist[1] elseif @pointflavor5 == "HQ" testPt2 = Zvalues[3] testPt3 = Zvalues[3] + #pixel * OZDist[2] elseif @pointflavor5 == "HR" testPt2 = Zvalues[3] testPt3 = Zvalues[3] + #pixel * OZDist[3] elseif @pointflavor5 == "HR'" testPt2 = Zvalues[3] testPt3 = Zvalues[3] + #pixel * OZDist[4] elseif @pointflavor5 == "HR2" testPt2 = Zvalues[3] testPt3 = Zvalues[4] + #pixel * OZDist[0] elseif @pointflavor5 == "HR3" testPt2 = Zvalues[3] testPt3 = Zvalues[4] + #pixel * OZDist[1] elseif @pointflavor5 == "HR4" testPt2 = Zvalues[3] testPt3 = Zvalues[4] + #pixel * OZDist[2] elseif @pointflavor5 == "HR5" testPt2 = Zvalues[3] testPt3 = Zvalues[4] + #pixel * OZDist[3] elseif @pointflavor5 == "HR6" testPt2 = Zvalues[3] testPt3 = Zvalues[4] + #pixel * OZDist[4] elseif @pointflavor5 == "HS" testPt2 = Zvalues[4] testPt3 = #z + #pixel * OZDist[0] elseif @pointflavor5 == "HT" testPt2 = Zvalues[4] testPt3 = #z + #pixel * OZDist[1] elseif @pointflavor5 == "HU" testPt2 = Zvalues[4] testPt3 = #z + #pixel * OZDist[2] elseif @pointflavor5 == "HV" testPt2 = Zvalues[4] testPt3 = #z + #pixel * OZDist[3] elseif @pointflavor5 == "HW" testPt2 = Zvalues[4] testPt3 = #z + #pixel * OZDist[4] elseif @pointflavor5 == "HX" testPt2 = Zvalues[4] testPt3 = Zvalues[1] + #pixel * OZDist[0] elseif @pointflavor5 == "HY" testPt2 = Zvalues[4] testPt3 = Zvalues[1] + #pixel * OZDist[1] elseif @pointflavor5 == "HZ" testPt2 = Zvalues[4] testPt3 = Zvalues[1] + #pixel * OZDist[2] elseif @pointflavor5 == "HZ2" testPt2 = Zvalues[4] testPt3 = Zvalues[1] + #pixel * OZDist[3] elseif @pointflavor5 == "HZ3" testPt2 = Zvalues[4] testPt3 = Zvalues[1] + #pixel * OZDist[4] elseif @pointflavor5 == "HZ4" testPt2 = Zvalues[4] testPt3 = Zvalues[2] + #pixel * OZDist[0] elseif @pointflavor5 == "HZ5" testPt2 = Zvalues[4] testPt3 = Zvalues[2] + #pixel * OZDist[1] elseif @pointflavor5 == "HZ6" testPt2 = Zvalues[4] testPt3 = Zvalues[2] + #pixel * OZDist[2] elseif @pointflavor5 == "HZ7" testPt2 = Zvalues[4] testPt3 = Zvalues[2] + #pixel * OZDist[3] elseif @pointflavor5 == "HZ8" testPt2 = Zvalues[4] testPt3 = Zvalues[2] + #pixel * OZDist[4] elseif @pointflavor5 == "HZ9" testPt2 = Zvalues[4] testPt3 = Zvalues[3] + #pixel * OZDist[0] elseif @pointflavor5 == "HZ10" testPt2 = Zvalues[4] testPt3 = Zvalues[3] + #pixel * OZDist[1] elseif @pointflavor5 == "HZ11" testPt2 = Zvalues[4] testPt3 = Zvalues[3] + #pixel * OZDist[2] elseif @pointflavor5 == "HZ12" testPt2 = Zvalues[4] testPt3 = Zvalues[3] + #pixel * OZDist[3] elseif @pointflavor5 == "HZ13" testPt2 = Zvalues[4] testPt3 = Zvalues[3] + #pixel * OZDist[4] elseif @pointflavor5 == "HZ14" testPt2 = Zvalues[4] testPt3 = Zvalues[4] + #pixel * OZDist[0] elseif @pointflavor5 == "HZ15" testPt2 = Zvalues[4] testPt3 = Zvalues[4] + #pixel * OZDist[1] elseif @pointflavor5 == "HZ16" testPt2 = Zvalues[4] testPt3 = Zvalues[4] + #pixel * OZDist[2] elseif @pointflavor5 == "HZ17" testPt2 = Zvalues[4] testPt3 = Zvalues[4] + #pixel * OZDist[3] elseif @pointflavor5 == "HZ18" testPt2 = Zvalues[4] testPt3 = Zvalues[4] + #pixel * OZDist[4] endif ; @pointflavor5 endif ; @numberpoints if @ptpermutation == "1" testDist1 = cabs(testPt1-testPt2) testDist2 = cabs(testPt2-testPt3) testDist3 = cabs(testPt3-testPt1) elseif @ptpermutation == "2" testDist1 = cabs(testPt2-testPt3) testDist2 = cabs(testPt3-testPt1) testDist3 = cabs(testPt1-testPt2) elseif @ptpermutation == "3" testDist1 = cabs(testPt3-testPt1) testDist2 = cabs(testPt1-testPt2) testDist3 = cabs(testPt2-testPt3) endif ; @ptpermutation if @avgtype == "Arithmetic" if @avgstyle == "A" testresult = testresult + testDist1/(testDist2+testDist3) elseif @avgstyle == "B" testresult = testresult + (abs(testDist1-testDist2))/testDist3 elseif @avgstyle == "C" testresult = testresult + testDist2/(testDist1+testDist3) ; elseif @avgstyle == "D" ; testresult = testresult + @avgscale * (testDist1 * testDist2)/(testDist1 * testDist3) endif ; @avgstyle elseif @avgtype == "Geometric" if @avgstyle == "A" testresult = testresult * testDist1/(testDist2+testDist3) elseif @avgstyle == "B" testresult = testresult * abs(testDist1-testDist2)/testDist3 elseif @avgstyle == "C" testresult = testresult * testDist2/(testDist1+testDist3) ; elseif @avgstyle == "D" ; testresult = testresult * @avgscale * (testDist1 * testDist2)/(testDist1 * testDist3) endif ; @avgstyle elseif @avgtype == "Harmonic" if @avgstyle == "A" testresult = testresult + (testDist2+testDist3)/testDist1 elseif @avgstyle == "B" testresult = testresult + testDist3/abs(testDist1-testDist2) elseif @avgstyle == "C" testresult = testresult + (testDist1+testDist3)/testDist2 ; elseif @avgstyle == "D" ; testresult = testresult + @avgscale * (testDist1 * testDist3)/(testDist1 * testDist2) endif ; @avgstyle elseif @avgtype == "Quadratic" if @avgstyle == "A" testresult = testresult + sqr(testDist1/(testDist2+testDist3)) elseif @avgstyle == "B" testresult = testresult + sqr(abs(testDist1-testDist2)/testDist3) elseif @avgstyle == "C" testresult = testresult + sqr(testDist2/(testDist1+testDist3)) ; elseif @avgstyle == "D" ; testresult = testresult + sqr(@avgscale * (testDist1 * testDist2)/(testDist1 * testDist3)) endif ; @avgstyle elseif @avgtype == "Cubic" if @avgstyle == "A" testresult = testresult + (testDist1/(testDist2+testDist3)) * \ sqr(testDist1/(testDist2+testDist3)) elseif @avgstyle == "B" testresult = testresult + (abs(testDist1-testDist2)/testDist3) * \ sqr(abs(testDist1-testDist2)/testDist3) elseif @avgstyle == "C" testresult = testresult + (testDist2/(testDist1+testDist3)) * \ sqr(testDist2/(testDist1+testDist3)) ; elseif @avgstyle == "D" ; testresult = testresult + (@avgscale * (testDist1 * testDist2)/(testDist1 * testDist3)) \ * sqr(@avgscale * (testDist1 * testDist2)/(testDist1 * testDist3)) endif ; @avgstyle elseif @avgtype == "HG" if @avgstyle == "A" testresult = testresult * (testDist2+testDist3)/testDist1 elseif @avgstyle == "B" testresult = testresult * testDist3/abs(testDist1-testDist2) elseif @avgstyle == "C" testresult = testresult * (testDist1+testDist3)/testDist2 ; elseif @avgstyle == "D" ; testresult = testresult * @avgscale * (testDist1 * testDist3)/(testDist1 * testDist2) endif ; @avgstyle elseif @avgtype == "Quartic" if @avgstyle == "A" testresult = testresult + sqr(sqr(testDist1/(testDist2+testDist3))) elseif @avgstyle == "B" testresult = testresult + sqr(sqr(abs(testDist1-testDist2)/testDist3)) elseif @avgstyle == "C" testresult = testresult + sqr(sqr(testDist2/(testDist1+testDist3))) ; elseif @avgstyle == "D" ; testresult = testresult + sqr(sqr(@avgscale * (testDist1 * testDist2)/(testDist1 * testDist3))) endif ; @avgstyle elseif @avgtype == "General Power" if @avgstyle == "A" testresult = testresult + (testDist1/(testDist2+testDist3))^@avgpower elseif @avgstyle == "B" testresult = testresult + ((abs(testDist1-testDist2))/testDist3)^@avgpower elseif @avgstyle == "C" testresult = testresult + (testDist2/(testDist1+testDist3))^@avgpower ; elseif @avgstyle == "D" ; testresult = testresult + (@avgscale * (testDist1 * testDist2)/(testDist1 * testDist3))^@avgpower endif ; @avgstyle elseif @avgtype == "Function Avg" if @avgfunction == "exp" if @avgstyle == "A" testresult = testresult + exp(@avgscale*testDist1/(testDist2+testDist3)) elseif @avgstyle == "B" testresult = testresult + exp((abs(@avgscale*(testDist1-testDist2)))/testDist3) elseif @avgstyle == "C" testresult = testresult + exp(abs(@avgscale*testDist2/(testDist1+testDist3))) ; elseif @avgstyle == "D" ; testresult = testresult + exp(abs(@avgscale*(testDist1 * testDist2)/(testDist1 * testDist3))) endif ; @avgstyle elseif @avgfunction == "log" if @avgstyle == "A" testresult = testresult + log(@avgscale*testDist1/(testDist2+testDist3)) elseif @avgstyle == "B" testresult = testresult + log((abs(@avgscale*(testDist1-testDist2)))/testDist3) elseif @avgstyle == "C" testresult = testresult + log(abs(@avgscale*testDist2/(testDist1+testDist3))) ; elseif @avgstyle == "D" ; testresult = testresult + log(abs(@avgscale*(testDist1 * testDist2)/(testDist1 * testDist3))) endif ; @avgstyle elseif @avgfunction == "sine" if @avgstyle == "A" testresult = testresult + sin(@avgscale*testDist1/(testDist2+testDist3)) elseif @avgstyle == "B" testresult = testresult + sin((abs(@avgscale*(testDist1-testDist2)))/testDist3) elseif @avgstyle == "C" testresult = testresult + sin(abs(@avgscale*testDist2/(testDist1+testDist3))) ; elseif @avgstyle == "D" ; testresult = testresult + sin(abs(@avgscale*(testDist1 * testDist2)/(testDist1 * testDist3))) endif ; @avgstyle endif ; @avgfunction endif ; @avgtype ; Make some Perlin calculations if enabled and necessary if @enableperlin if @perlininitpoint == "z" perlinztest = #z perlintest = TRUE elseif @perlininitpoint == "tracked point" perlinztest = TrackPt perlintest = TRUE elseif @perlininitpoint == "combination" perlintest = TRUE if @numberpoints == 2 if @perlincombo2 == "z0 + z1" perlinztest = #z + Zvalues[1] elseif @perlincombo2 == "z0 * z1" perlinztest = #z * Zvalues[1] elseif @perlincombo2 == "z0 - z1" perlinztest = #z - Zvalues[1] elseif @perlincombo2 == "z1 - z0" perlinztest = Zvalues[1] - #z elseif @perlincombo2 == "z0/z1" perlinztest = #z / Zvalues[1] elseif @perlincombo2 == "z1/z0" perlinztest = Zvalues[1] / #z elseif @perlincombo2 == "T + z0" perlinztest = TrackPt + #z elseif @perlincombo2 == "T + z1" perlinztest = TrackPt + Zvalues[1] elseif @perlincombo2 == "T * z0" perlinztest = TrackPt * #z elseif @perlincombo2 == "T * z1" perlinztest = TrackPt * Zvalues[1] elseif @perlincombo2 == "T - z0" perlinztest = TrackPt - #z elseif @perlincombo2 == "z0 - T" perlinztest = #z - TrackPt elseif @perlincombo2 == "T - z1" perlinztest = TrackPt - Zvalues[1] elseif @perlincombo2 == "z1 - T" perlinztest = Zvalues[1] - TrackPt elseif @perlincombo2 == "T/z0" perlinztest = TrackPt / #z elseif @perlincombo2 == "z0/T" perlinztest = #z / TrackPt elseif @perlincombo2 == "T/z1" perlinztest = TrackPt / Zvalues[1] elseif @perlincombo2 == "z1/T" perlinztest = Zvalues[1] / TrackPt elseif @perlincombo2 == "T + #pixel" perlinztest = TrackPt + #pixel elseif @perlincombo2 == "T * #pixel" perlinztest = TrackPt * #pixel elseif @perlincombo2 == "T - #pixel" perlinztest = TrackPt - #pixel elseif @perlincombo2 == "#pixel - T" perlinztest = #pixel - TrackPt elseif @perlincombo2 == "T/#pixel" perlinztest = TrackPt / #pixel elseif @perlincombo2 == "#pixel/T" perlinztest = #pixel / TrackPt elseif @perlincombo2 == "z0 + #pixel" perlinztest = #z + #pixel elseif @perlincombo2 == "z0 * #pixel" perlinztest = #z * #pixel elseif @perlincombo2 == "z0 - #pixel" perlinztest = #z - #pixel elseif @perlincombo2 == "#pixel - z0" perlinztest = #pixel - #z elseif @perlincombo2 == "z0/#pixel" perlinztest = #z / #pixel elseif @perlincombo2 == "#pixel/z0" perlinztest = #pixel / #z elseif @perlincombo2 == "z1 + #pixel" perlinztest = Zvalues[1] + #pixel elseif @perlincombo2 == "z1 * #pixel" perlinztest = Zvalues[1] * #pixel elseif @perlincombo2 == "z1 - #pixel" perlinztest = Zvalues[1] - #pixel elseif @perlincombo2 == "#pixel - z1" perlinztest = #pixel - Zvalues[1] elseif @perlincombo2 == "z1/#pixel" perlinztest = Zvalues[1] / #pixel elseif @perlincombo2 == "#pixel/z1" perlinztest = #pixel / Zvalues[1] endif ; @perlincombo2 elseif @numberpoints == 3 if @perlincombo3 == "z0 + z1" perlinztest = #z + Zvalues[1] elseif @perlincombo3 == "z0 * z1" perlinztest = #z * Zvalues[1] elseif @perlincombo3 == "z0 - z1" perlinztest = #z - Zvalues[1] elseif @perlincombo3 == "z1 - z0" perlinztest = Zvalues[1] - #z elseif @perlincombo3 == "z0/z1" perlinztest = #z / Zvalues[1] elseif @perlincombo3 == "z1/z0" perlinztest = Zvalues[1] / #z elseif @perlincombo3 == "z0 + z2" perlinztest = #z + Zvalues[2] elseif @perlincombo3 == "z0 * z2" perlinztest = #z * Zvalues[2] elseif @perlincombo3 == "z0 - z2" perlinztest = #z - Zvalues[2] elseif @perlincombo3 == "z2 - z0" perlinztest = Zvalues[2] - #z elseif @perlincombo3 == "z0/z2" perlinztest = #z / Zvalues[2] elseif @perlincombo3 == "z2/z0" perlinztest = Zvalues[2] / #z elseif @perlincombo3 == "z1 + z2" perlinztest = Zvalues[1] + Zvalues[2] elseif @perlincombo3 == "z1 * z2" perlinztest = Zvalues[1] * Zvalues[2] elseif @perlincombo3 == "z1 - z2" perlinztest = Zvalues[1] - Zvalues[2] elseif @perlincombo3 == "z2 - z1" perlinztest = Zvalues[2] - Zvalues[1] elseif @perlincombo3 == "z1/z2" perlinztest = Zvalues[1] / Zvalues[2] elseif @perlincombo3 == "z2/z1" perlinztest = Zvalues[2] / Zvalues[1] elseif @perlincombo3 == "T + z0" perlinztest = TrackPt + #z elseif @perlincombo3 == "T + z1" perlinztest = TrackPt + Zvalues[1] elseif @perlincombo3 == "T + z2" perlinztest = TrackPt + Zvalues[2] elseif @perlincombo3 == "T * z0" perlinztest = TrackPt * #z elseif @perlincombo3 == "T * z1" perlinztest = TrackPt * Zvalues[1] elseif @perlincombo3 == "T * z2" perlinztest = TrackPt * Zvalues[2] elseif @perlincombo3 == "T - z0" perlinztest = TrackPt - #z elseif @perlincombo3 == "z0 - T" perlinztest = #z - TrackPt elseif @perlincombo3 == "T - z1" perlinztest = TrackPt - Zvalues[1] elseif @perlincombo3 == "z1 - T" perlinztest = Zvalues[1] - TrackPt elseif @perlincombo3 == "T - z2" perlinztest = TrackPt - Zvalues[2] elseif @perlincombo3 == "z2 - T" perlinztest = Zvalues[2] - TrackPt elseif @perlincombo3 == "T/z0" perlinztest = TrackPt / #z elseif @perlincombo3 == "z0/T" perlinztest = #z / TrackPt elseif @perlincombo3 == "T/z1" perlinztest = TrackPt / Zvalues[1] elseif @perlincombo3 == "z1/T" perlinztest = Zvalues[1] / TrackPt elseif @perlincombo3 == "T/z2" perlinztest = TrackPt / Zvalues[2] elseif @perlincombo3 == "z2/T" perlinztest = Zvalues[2] / TrackPt elseif @perlincombo3 == "T + #pixel" perlinztest = TrackPt + #pixel elseif @perlincombo3 == "T * #pixel" perlinztest = TrackPt * #pixel elseif @perlincombo3 == "T - #pixel" perlinztest = TrackPt - #pixel elseif @perlincombo3 == "#pixel - T" perlinztest = #pixel - TrackPt elseif @perlincombo3 == "T/#pixel" perlinztest = TrackPt / #pixel elseif @perlincombo3 == "#pixel/T" perlinztest = #pixel / TrackPt elseif @perlincombo3 == "z0 + #pixel" perlinztest = #z + #pixel elseif @perlincombo3 == "z0 * #pixel" perlinztest = #z * #pixel elseif @perlincombo3 == "z0 - #pixel" perlinztest = #z - #pixel elseif @perlincombo3 == "#pixel - z0" perlinztest = #pixel - #z elseif @perlincombo3 == "z0/#pixel" perlinztest = #z / #pixel elseif @perlincombo3 == "#pixel/z0" perlinztest = #pixel / #z elseif @perlincombo3 == "z1 + #pixel" perlinztest = Zvalues[1] + #pixel elseif @perlincombo3 == "z1 * #pixel" perlinztest = Zvalues[1] * #pixel elseif @perlincombo3 == "z1 - #pixel" perlinztest = Zvalues[1] - #pixel elseif @perlincombo3 == "#pixel - z1" perlinztest = #pixel - Zvalues[1] elseif @perlincombo3 == "z1/#pixel" perlinztest = Zvalues[1] / #pixel elseif @perlincombo3 == "#pixel/z1" perlinztest = #pixel / Zvalues[1] elseif @perlincombo3 == "z2 + #pixel" perlinztest = Zvalues[2] + #pixel elseif @perlincombo3 == "z2 * #pixel" perlinztest = Zvalues[2] * #pixel elseif @perlincombo3 == "z2 - #pixel" perlinztest = Zvalues[2] - #pixel elseif @perlincombo3 == "#pixel - z2" perlinztest = #pixel - Zvalues[2] elseif @perlincombo3 == "z2/#pixel" perlinztest = Zvalues[2] / #pixel elseif @perlincombo3 == "#pixel/z2" perlinztest = #pixel / Zvalues[2] endif ; @perlincombo3 elseif @numberpoints == 4 if @perlincombo4 == "z0 + z1" perlinztest = #z + Zvalues[1] elseif @perlincombo4 == "z0 * z1" perlinztest = #z * Zvalues[1] elseif @perlincombo4 == "z0 - z1" perlinztest = #z - Zvalues[1] elseif @perlincombo4 == "z1 - z0" perlinztest = Zvalues[1] * #z elseif @perlincombo4 == "z0/z1" perlinztest = #z / Zvalues[1] elseif @perlincombo4 == "z1/z0" perlinztest = Zvalues[1] / #z elseif @perlincombo4 == "z0 + z2" perlinztest = #z + Zvalues[2] elseif @perlincombo4 == "z0 * z2" perlinztest = #z * Zvalues[2] elseif @perlincombo4 == "z0 - z2" perlinztest = #z - Zvalues[2] elseif @perlincombo4 == "z2 - z0" perlinztest = Zvalues[2] - #z elseif @perlincombo4 == "z0/z2" perlinztest = #z / Zvalues[2] elseif @perlincombo4 == "z2/z0" perlinztest = Zvalues[2] / #z elseif @perlincombo4 == "z0 + z3" perlinztest = #z + Zvalues[3] elseif @perlincombo4 == "z0 * z3" perlinztest = #z * Zvalues[3] elseif @perlincombo4 == "z0 - z3" perlinztest = #z - Zvalues[3] elseif @perlincombo4 == "z3 - z0" perlinztest = Zvalues[3] - #z elseif @perlincombo4 == "z0/z3" perlinztest = #z / Zvalues[3] elseif @perlincombo4 == "z3/z0" perlinztest = Zvalues[3] / #z elseif @perlincombo4 == "z1 + z2" perlinztest = Zvalues[1] + Zvalues[2] elseif @perlincombo4 == "z1 * z2" perlinztest = Zvalues[1] * Zvalues[2] elseif @perlincombo4 == "z1 - z2" perlinztest = Zvalues[1] - Zvalues[2] elseif @perlincombo4 == "z2 - z1" perlinztest = Zvalues[2] - Zvalues[1] elseif @perlincombo4 == "z1/z2" perlinztest = Zvalues[1] / Zvalues[2] elseif @perlincombo4 == "z2/z1" perlinztest = Zvalues[2] / Zvalues[1] elseif @perlincombo4 == "z1 + z3" perlinztest = Zvalues[1] + Zvalues[3] elseif @perlincombo4 == "z1 * z3" perlinztest = Zvalues[1] * Zvalues[3] elseif @perlincombo4 == "z1 - z3" perlinztest = Zvalues[1] - Zvalues[3] elseif @perlincombo4 == "z3 - z1" perlinztest = Zvalues[3] - Zvalues[1] elseif @perlincombo4 == "z1/z3" perlinztest = Zvalues[1] / Zvalues[3] elseif @perlincombo4 == "z3/z1" perlinztest = Zvalues[3] / Zvalues[1] elseif @perlincombo4 == "z2 + z3" perlinztest = Zvalues[2] + Zvalues[3] elseif @perlincombo4 == "z2 * z3" perlinztest = Zvalues[2] * Zvalues[3] elseif @perlincombo4 == "z2 - z3" perlinztest = Zvalues[2] - Zvalues[3] elseif @perlincombo4 == "z3 - z2" perlinztest = Zvalues[3] - Zvalues[2] elseif @perlincombo4 == "z2/z3" perlinztest = Zvalues[2] / Zvalues[3] elseif @perlincombo4 == "z3/z2" perlinztest = Zvalues[3] / Zvalues[2] elseif @perlincombo4 == "T + z0" perlinztest = TrackPt + #z elseif @perlincombo4 == "T + z1" perlinztest = TrackPt + Zvalues[1] elseif @perlincombo4 == "T + z2" perlinztest = TrackPt + Zvalues[2] elseif @perlincombo4 == "T + z3" perlinztest = TrackPt + Zvalues[3] elseif @perlincombo4 == "T * z0" perlinztest = TrackPt * #z elseif @perlincombo4 == "T * z1" perlinztest = TrackPt * Zvalues[1] elseif @perlincombo4 == "T * z2" perlinztest = TrackPt * Zvalues[2] elseif @perlincombo4 == "T * z3" perlinztest = TrackPt * Zvalues[3] elseif @perlincombo4 == "T - z0" perlinztest = TrackPt - #z elseif @perlincombo4 == "z0 - T" perlinztest = #z - TrackPt elseif @perlincombo4 == "T - z1" perlinztest = TrackPt - Zvalues[1] elseif @perlincombo4 == "z1 - T" perlinztest = Zvalues[1] - TrackPt elseif @perlincombo4 == "T - z2" perlinztest = TrackPt - Zvalues[2] elseif @perlincombo4 == "z2 - T" perlinztest = Zvalues[2] - TrackPt elseif @perlincombo4 == "T - z3" perlinztest = TrackPt - Zvalues[3] elseif @perlincombo4 == "z3 - T" perlinztest = Zvalues[3] - TrackPt elseif @perlincombo4 == "T/z0" perlinztest = TrackPt / #z elseif @perlincombo4 == "z0/T" perlinztest = #z / TrackPt elseif @perlincombo4 == "T/z1" perlinztest = TrackPt / Zvalues[1] elseif @perlincombo4 == "z1/T" perlinztest = Zvalues[1] / TrackPt elseif @perlincombo4 == "T/z2" perlinztest = TrackPt / Zvalues[2] elseif @perlincombo4 == "z2/T" perlinztest = Zvalues[2] / TrackPt elseif @perlincombo4 == "T/z3" perlinztest = TrackPt / Zvalues[3] elseif @perlincombo4 == "z3/T" perlinztest = Zvalues[3] / TrackPt elseif @perlincombo4 == "T + #pixel" perlinztest = TrackPt + #pixel elseif @perlincombo4 == "T * #pixel" perlinztest = TrackPt * #pixel elseif @perlincombo4 == "T - #pixel" perlinztest = TrackPt - #pixel elseif @perlincombo4 == "#pixel - T" perlinztest = #pixel - TrackPt elseif @perlincombo4 == "T/#pixel" perlinztest = TrackPt / #pixel elseif @perlincombo4 == "#pixel/T" perlinztest = #pixel / TrackPt elseif @perlincombo4 == "z0 + #pixel" perlinztest = #z + #pixel elseif @perlincombo4 == "z0 * #pixel" perlinztest = #z * #pixel elseif @perlincombo4 == "z0 - #pixel" perlinztest = #z - #pixel elseif @perlincombo4 == "#pixel - z0" perlinztest = #pixel - #z elseif @perlincombo4 == "z0/#pixel" perlinztest = #z / #pixel elseif @perlincombo4 == "#pixel/z0" perlinztest = #pixel / #z elseif @perlincombo4 == "z1 + #pixel" perlinztest = Zvalues[1] + #pixel elseif @perlincombo4 == "z1 * #pixel" perlinztest = Zvalues[1] * #pixel elseif @perlincombo4 == "z1 - #pixel" perlinztest = Zvalues[1] - #pixel elseif @perlincombo4 == "#pixel - z1" perlinztest = #pixel - Zvalues[1] elseif @perlincombo4 == "z1/#pixel" perlinztest = Zvalues[1] / #pixel elseif @perlincombo4 == "#pixel/z1" perlinztest = #pixel / Zvalues[1] elseif @perlincombo4 == "z2 + #pixel" perlinztest = Zvalues[2] + #pixel elseif @perlincombo4 == "z2 * #pixel" perlinztest = Zvalues[2] * #pixel elseif @perlincombo4 == "z2 - #pixel" perlinztest = Zvalues[2] - #pixel elseif @perlincombo4 == "#pixel - z2" perlinztest = #pixel - Zvalues[2] elseif @perlincombo4 == "z2/#pixel" perlinztest = Zvalues[2] / #pixel elseif @perlincombo4 == "#pixel/z2" perlinztest = #pixel / Zvalues[2] elseif @perlincombo4 == "z3 + #pixel" perlinztest = Zvalues[3] + #pixel elseif @perlincombo4 == "z3 * #pixel" perlinztest = Zvalues[3] * #pixel elseif @perlincombo4 == "z3 - #pixel" perlinztest = Zvalues[3] - #pixel elseif @perlincombo4 == "#pixel - z3" perlinztest = #pixel - Zvalues[3] elseif @perlincombo4 == "z3/#pixel" perlinztest = Zvalues[3] / #pixel elseif @perlincombo4 == "#pixel/z3" perlinztest = #pixel / Zvalues[3] endif ; @perlincombo4 elseif @numberpoints == 5 if @perlincombo5 == "z0 + z1" perlinztest = #z + Zvalues[1] elseif @perlincombo5 == "z0 * z1" perlinztest = #z * Zvalues[1] elseif @perlincombo5 == "z0 - z1" perlinztest = #z - Zvalues[1] elseif @perlincombo5 == "z1 - z0" perlinztest = Zvalues[1] * #z elseif @perlincombo5 == "z0/z1" perlinztest = #z / Zvalues[1] elseif @perlincombo5 == "z1/z0" perlinztest = Zvalues[1] / #z elseif @perlincombo5 == "z0 + z2" perlinztest = #z + Zvalues[2] elseif @perlincombo5 == "z0 * z2" perlinztest = #z * Zvalues[2] elseif @perlincombo5 == "z0 - z2" perlinztest = #z - Zvalues[2] elseif @perlincombo5 == "z2 - z0" perlinztest = Zvalues[2] - #z elseif @perlincombo5 == "z0/z2" perlinztest = #z / Zvalues[2] elseif @perlincombo5 == "z2/z0" perlinztest = Zvalues[2] / #z elseif @perlincombo5 == "z0 + z3" perlinztest = #z + Zvalues[3] elseif @perlincombo5 == "z0 * z3" perlinztest = #z * Zvalues[3] elseif @perlincombo5 == "z0 - z3" perlinztest = #z - Zvalues[3] elseif @perlincombo5 == "z3 - z0" perlinztest = Zvalues[3] - #z elseif @perlincombo5 == "z0/z3" perlinztest = #z / Zvalues[3] elseif @perlincombo5 == "z3/z0" perlinztest = Zvalues[3] / #z elseif @perlincombo5 == "z0 + z4" perlinztest = #z + Zvalues[4] elseif @perlincombo5 == "z0 * z4" perlinztest = #z * Zvalues[4] elseif @perlincombo5 == "z0 - z4" perlinztest = #z - Zvalues[4] elseif @perlincombo5 == "z4 - z0" perlinztest = Zvalues[4] - #z elseif @perlincombo5 == "z0/z4" perlinztest = #z / Zvalues[4] elseif @perlincombo5 == "z4/z0" perlinztest = Zvalues[4] / #z elseif @perlincombo5 == "z1 + z2" perlinztest = Zvalues[1] + Zvalues[2] elseif @perlincombo5 == "z1 * z2" perlinztest = Zvalues[1] * Zvalues[2] elseif @perlincombo5 == "z1 - z2" perlinztest = Zvalues[1] - Zvalues[2] elseif @perlincombo5 == "z2 - z1" perlinztest = Zvalues[2] - Zvalues[1] elseif @perlincombo5 == "z1/z2" perlinztest = Zvalues[1] / Zvalues[2] elseif @perlincombo5 == "z2/z1" perlinztest = Zvalues[2] / Zvalues[1] elseif @perlincombo5 == "z1 + z3" perlinztest = Zvalues[1] + Zvalues[3] elseif @perlincombo5 == "z1 * z3" perlinztest = Zvalues[1] * Zvalues[3] elseif @perlincombo5 == "z1 - z3" perlinztest = Zvalues[1] - Zvalues[3] elseif @perlincombo5 == "z3 - z1" perlinztest = Zvalues[3] - Zvalues[1] elseif @perlincombo5 == "z1/z3" perlinztest = Zvalues[1] / Zvalues[3] elseif @perlincombo5 == "z3/z1" perlinztest = Zvalues[3] / Zvalues[1] elseif @perlincombo5 == "z1 + z4" perlinztest = Zvalues[1] + Zvalues[4] elseif @perlincombo5 == "z1 * z4" perlinztest = Zvalues[1] * Zvalues[4] elseif @perlincombo5 == "z1 - z4" perlinztest = Zvalues[1] - Zvalues[4] elseif @perlincombo5 == "z4 - z1" perlinztest = Zvalues[4] - Zvalues[1] elseif @perlincombo5 == "z1/z4" perlinztest = Zvalues[1] / Zvalues[4] elseif @perlincombo5 == "z4/z1" perlinztest = Zvalues[4] / Zvalues[1] elseif @perlincombo5 == "z2 + z3" perlinztest = Zvalues[2] + Zvalues[3] elseif @perlincombo5 == "z2 * z3" perlinztest = Zvalues[2] * Zvalues[3] elseif @perlincombo5 == "z2 - z3" perlinztest = Zvalues[2] - Zvalues[3] elseif @perlincombo5 == "z3 - z2" perlinztest = Zvalues[3] - Zvalues[2] elseif @perlincombo5 == "z2/z3" perlinztest = Zvalues[2] / Zvalues[3] elseif @perlincombo5 == "z3/z2" perlinztest = Zvalues[3] / Zvalues[2] elseif @perlincombo5 == "z2 + z4" perlinztest = Zvalues[2] + Zvalues[4] elseif @perlincombo5 == "z2 * z4" perlinztest = Zvalues[2] * Zvalues[4] elseif @perlincombo5 == "z2 - z4" perlinztest = Zvalues[2] - Zvalues[4] elseif @perlincombo5 == "z4 - z2" perlinztest = Zvalues[4] - Zvalues[2] elseif @perlincombo5 == "z2/z4" perlinztest = Zvalues[2] / Zvalues[4] elseif @perlincombo5 == "z4/z2" perlinztest = Zvalues[4] / Zvalues[2] elseif @perlincombo5 == "z3 + z4" perlinztest = Zvalues[3] + Zvalues[4] elseif @perlincombo5 == "z3 * z4" perlinztest = Zvalues[3] * Zvalues[4] elseif @perlincombo5 == "z3 - z4" perlinztest = Zvalues[3] - Zvalues[4] elseif @perlincombo5 == "z4 - z3" perlinztest = Zvalues[4] - Zvalues[3] elseif @perlincombo5 == "z3/z4" perlinztest = Zvalues[3] / Zvalues[4] elseif @perlincombo5 == "z4/z3" perlinztest = Zvalues[4] / Zvalues[3] elseif @perlincombo5 == "T + z0" perlinztest = TrackPt + #z elseif @perlincombo5 == "T + z1" perlinztest = TrackPt + Zvalues[1] elseif @perlincombo5 == "T + z2" perlinztest = TrackPt + Zvalues[2] elseif @perlincombo5 == "T + z3" perlinztest = TrackPt + Zvalues[3] elseif @perlincombo5 == "T + z4" perlinztest = TrackPt + Zvalues[4] elseif @perlincombo5 == "T * z0" perlinztest = TrackPt * #z elseif @perlincombo5 == "T * z1" perlinztest = TrackPt * Zvalues[1] elseif @perlincombo5 == "T * z2" perlinztest = TrackPt * Zvalues[2] elseif @perlincombo5 == "T * z3" perlinztest = TrackPt * Zvalues[3] elseif @perlincombo5 == "T * z4" perlinztest = TrackPt * Zvalues[4] elseif @perlincombo5 == "T - z0" perlinztest = TrackPt - #z elseif @perlincombo5 == "z0 - T" perlinztest = #z - TrackPt elseif @perlincombo5 == "T - z1" perlinztest = TrackPt - Zvalues[1] elseif @perlincombo5 == "z1 - T" perlinztest = Zvalues[1] - TrackPt elseif @perlincombo5 == "T - z2" perlinztest = TrackPt - Zvalues[2] elseif @perlincombo5 == "z2 - T" perlinztest = Zvalues[2] - TrackPt elseif @perlincombo5 == "T - z3" perlinztest = TrackPt - Zvalues[3] elseif @perlincombo5 == "z3 - T" perlinztest = Zvalues[3] - TrackPt elseif @perlincombo5 == "T - z4" perlinztest = TrackPt - Zvalues[4] elseif @perlincombo5 == "z4 - T" perlinztest = Zvalues[4] - TrackPt elseif @perlincombo5 == "T/z0" perlinztest = TrackPt / #z elseif @perlincombo5 == "z0/T" perlinztest = #z / TrackPt elseif @perlincombo5 == "T/z1" perlinztest = TrackPt / Zvalues[1] elseif @perlincombo5 == "z1/T" perlinztest = Zvalues[1] / TrackPt elseif @perlincombo5 == "T/z2" perlinztest = TrackPt / Zvalues[2] elseif @perlincombo5 == "z2/T" perlinztest = Zvalues[2] / TrackPt elseif @perlincombo5 == "T/z3" perlinztest = TrackPt / Zvalues[3] elseif @perlincombo5 == "z3/T" perlinztest = Zvalues[3] / TrackPt elseif @perlincombo5 == "T/z4" perlinztest = TrackPt / Zvalues[4] elseif @perlincombo5 == "z4/T" perlinztest = Zvalues[4] / TrackPt elseif @perlincombo5 == "T + #pixel" perlinztest = TrackPt + #pixel elseif @perlincombo5 == "T * #pixel" perlinztest = TrackPt * #pixel elseif @perlincombo5 == "T - #pixel" perlinztest = TrackPt - #pixel elseif @perlincombo5 == "#pixel - T" perlinztest = #pixel - TrackPt elseif @perlincombo5 == "T/#pixel" perlinztest = TrackPt / #pixel elseif @perlincombo5 == "#pixel/T" perlinztest = #pixel / TrackPt elseif @perlincombo5 == "z0 + #pixel" perlinztest = #z + #pixel elseif @perlincombo5 == "z0 * #pixel" perlinztest = #z * #pixel elseif @perlincombo5 == "z0 - #pixel" perlinztest = #z - #pixel elseif @perlincombo5 == "#pixel - z0" perlinztest = #pixel - #z elseif @perlincombo5 == "z0/#pixel" perlinztest = #z / #pixel elseif @perlincombo5 == "#pixel/z0" perlinztest = #pixel / #z elseif @perlincombo5 == "z1 + #pixel" perlinztest = Zvalues[1] + #pixel elseif @perlincombo5 == "z1 * #pixel" perlinztest = Zvalues[1] * #pixel elseif @perlincombo5 == "z1 - #pixel" perlinztest = Zvalues[1] - #pixel elseif @perlincombo5 == "#pixel - z1" perlinztest = #pixel - Zvalues[1] elseif @perlincombo5 == "z1/#pixel" perlinztest = Zvalues[1] / #pixel elseif @perlincombo5 == "#pixel/z1" perlinztest = #pixel / Zvalues[1] elseif @perlincombo5 == "z2 + #pixel" perlinztest = Zvalues[2] + #pixel elseif @perlincombo5 == "z2 * #pixel" perlinztest = Zvalues[2] * #pixel elseif @perlincombo5 == "z2 - #pixel" perlinztest = Zvalues[2] - #pixel elseif @perlincombo5 == "#pixel - z2" perlinztest = #pixel - Zvalues[2] elseif @perlincombo5 == "z2/#pixel" perlinztest = Zvalues[2] / #pixel elseif @perlincombo5 == "#pixel/z2" perlinztest = #pixel / Zvalues[2] elseif @perlincombo5 == "z3 + #pixel" perlinztest = Zvalues[3] + #pixel elseif @perlincombo5 == "z3 * #pixel" perlinztest = Zvalues[3] * #pixel elseif @perlincombo5 == "z3 - #pixel" perlinztest = Zvalues[3] - #pixel elseif @perlincombo5 == "#pixel - z3" perlinztest = #pixel - Zvalues[3] elseif @perlincombo5 == "z3/#pixel" perlinztest = Zvalues[3] / #pixel elseif @perlincombo5 == "#pixel/z3" perlinztest = #pixel / Zvalues[3] elseif @perlincombo5 == "z4 + #pixel" perlinztest = Zvalues[4] + #pixel elseif @perlincombo5 == "z4 * #pixel" perlinztest = Zvalues[4] * #pixel elseif @perlincombo5 == "z4 - #pixel" perlinztest = Zvalues[4] - #pixel elseif @perlincombo5 == "#pixel - z4" perlinztest = #pixel - Zvalues[4] elseif @perlincombo5 == "z4/#pixel" perlinztest = Zvalues[4] / #pixel elseif @perlincombo5 == "#pixel/z4" perlinztest = #pixel / Zvalues[4] endif ; @perlincombo5 endif ; @numberpoints endif ; @perlininitpoint if perlintest if @perlincriterion == "average" if iter >= (@numberpoints + @perlinavgstart - 1) if (@perlinavgiters == 1) || ( perlincount < @perlinavgiters) perlincount = perlincount + 1 if @perlinaltmutant perlinftest = cabs(perlinztest) endif ; @perlinaltmutant if @perlinaverage == "arithmetic" perlinfsave = perlinfsave + perlinftest perlinzsave = perlinzsave + perlinztest elseif @perlinaverage == "quadratic" perlinfsave = perlinfsave + sqr(perlinftest) perlinzsave = perlinzsave + sqr(perlinztest) elseif @perlinaverage == "cubic" perlinfsave = perlinfsave + perlinftest*sqr(perlinftest) perlinzsave = perlinzsave + perlinztest*sqr(perlinztest) elseif @perlinaverage == "quartic" perlinfsave = perlinfsave + sqr(sqr(perlinftest)) perlinzsave = perlinzsave + sqr(sqr(perlinztest)) elseif @perlinaverage == "general power" perlinfsave = perlinfsave + perlinftest^@perlinpower perlinzsave = perlinzsave + perlinztest^@perlinpower elseif @perlinaverage == "geometric" perlinfsave = perlinfsave * perlinftest perlinzsave = perlinzsave * perlinztest elseif @perlinaverage == "harmonic" perlinfsave = perlinfsave + 1/perlinftest perlinzsave = perlinzsave + 1/perlinztest elseif @perlinaverage == "HG" perlinfsave = perlinfsave * 1/perlinftest perlinzsave = perlinzsave * 1/perlinztest elseif @perlinaverage == "function average" if @perlinavgfn == "exp" perlinfsave = perlinfsave + exp(@perlinavgscale*perlinftest) perlinzsave = perlinzsave + exp(@perlinavgscale*perlinztest) elseif @perlinavgfn == "log" perlinfsave = perlinfsave + log(@perlinavgscale*perlinftest) perlinzsave = perlinzsave + log(@perlinavgscale*perlinztest) elseif @perlinavgfn == "sine" perlinfsave = perlinfsave + sin(@perlinavgscale*perlinftest) perlinzsave = perlinzsave + sin(@perlinavgscale*perlinztest) endif ; @perlinavgfn endif ; @perlinaverage endif ; @perlinavgiters endif ; iter elseif @perlincriterion == "minimum" perlinftest = cabs(perlinztest) if perlinftest < perlinfsave perlinfsave = perlinftest perlinzsave = perlinztest endif ; perlinftest elseif @perlincriterion == "2nd min" perlinftest = cabs(perlinztest) if perlinftest < perlinfsave2 ; save2 holds min value, save holds 2nd min perlinfsave = perlinfsave2 perlinfsave2 = perlinftest perlinzsave = perlinzsave2 perlinzsave2 = perlinztest endif ; perlinftest elseif @perlincriterion == "maximum" perlinftest = cabs(perlinztest) if perlinftest > perlinfsave perlinfsave = perlinftest perlinzsave = perlinztest endif ; perlinftest elseif @perlincriterion == "2nd max" perlinftest = cabs(perlinztest) if perlinftest > perlinfsave2 ; save2 holds max value, save holds 2nd max perlinfsave = perlinfsave2 perlinfsave2 = perlinftest perlinzsave = perlinzsave2 perlinzsave2 = perlinztest endif ; perlinftest elseif @perlincriterion == "1st z" if iter == @numberpoints perlinfsave = cabs(perlinztest) perlinzsave = perlinztest endif ; iter elseif @perlincriterion == "2nd z" if iter == @numberpoints + 1 perlinfsave = cabs(perlinztest) perlinzsave = perlinztest endif ; iter elseif @perlincriterion == "Nth z" if iter == @numberpoints + @perlinnthiter perlinfsave = cabs(perlinztest) perlinzsave = perlinztest endif ; iter elseif @perlincriterion == "last z" perlinfsave = cabs(perlinztest) perlinzsave = perlinztest elseif @perlincriterion == "penultimate z" perlinfsave = perlinfsave2 perlinzsave = perlinzsave2 perlinfsave2 = cabs(perlinztest) perlinzsave2 = perlinztest endif ; @perlincriterion endif ; perlintest endif ; @enableperlin endif ; iter final: if @avgtype == "Arithmetic" if @smoothtype == "libra" ; raw --- no smoothing tempcolor = @avgscale*testresult/testcount elseif @smoothtype == "aquarius" temp1 = @avgscale*testresult/testcount temp2 = @avgscale*oldresult/(testcount-1) smoothfactor = powerlog*baillog - powerlog*log(log(cabs(#z))) + @factoradjust tempcolor = temp2 + (temp1-temp2)*smoothfactor elseif @smoothtype == "virgo" temp1 = @avgscale*testresult/testcount temp2 = @avgscale*oldresult/(testcount-1) tempcolor = @smoothconst * temp1 - smoothcomplement * (temp1 - temp2) endif ; @smoothtype elseif @avgtype == "Geometric" if @smoothtype == "libra" ; raw --- no smoothing tempcolor = (@avgscale*testresult)^(1/testcount) elseif @smoothtype == "aquarius" temp1 = (@avgscale*testresult)^(1/testcount) temp2 = (@avgscale*oldresult)^(1/(testcount-1)) smoothfactor = powerlog*baillog - powerlog*log(log(cabs(#z))) + @factoradjust tempcolor = temp2 + (temp1-temp2)*smoothfactor elseif @smoothtype == "virgo" temp1 = (@avgscale*testresult)^(1/testcount) temp2 = (@avgscale*oldresult)^(1/(testcount-1)) tempcolor = @smoothconst * temp1 - smoothcomplement * (temp1 - temp2) endif ; @smoothtype elseif @avgtype == "Harmonic" if @smoothtype == "libra" ; raw --- no smoothing tempcolor = testcount/(@avgscale*testresult) elseif @smoothtype == "aquarius" temp1 = testcount/(@avgscale*testresult) temp2 = (testcount-1)/(@avgscale*oldresult) smoothfactor = powerlog*baillog - powerlog*log(log(cabs(#z))) + @factoradjust tempcolor = temp2 + (temp1-temp2)*smoothfactor elseif @smoothtype == "virgo" temp1 = testcount/(@avgscale*testresult) temp2 = (testcount-1)/(@avgscale*oldresult) tempcolor = @smoothconst * temp1 - smoothcomplement * (temp1 - temp2) endif ; @smoothtype elseif @avgtype == "Quadratic" if @smoothtype == "libra" ; raw --- no smoothing tempcolor = sqrt(@avgscale*testresult/testcount) elseif @smoothtype == "aquarius" temp1 = sqrt(@avgscale*testresult/testcount) temp2 = sqrt(@avgscale*oldresult/(testcount-1)) smoothfactor = powerlog*baillog - powerlog*log(log(cabs(#z))) + @factoradjust tempcolor = temp2 + (temp1-temp2)*smoothfactor elseif @smoothtype == "virgo" temp1 = sqrt(@avgscale*testresult/testcount) temp2 = sqrt(@avgscale*oldresult/(testcount-1)) tempcolor = @smoothconst * temp1 - smoothcomplement * (temp1 - temp2) endif ; @smoothtype elseif @avgtype == "Cubic" if @smoothtype == "libra" ; raw --- no smoothing tempcolor = (@avgscale*testresult/testcount)^(1/3) elseif @smoothtype == "aquarius" temp1 = (@avgscale*testresult/testcount)^(1/3) temp2 = (@avgscale*oldresult/(testcount-1))^(1/3) smoothfactor = powerlog*baillog - powerlog*log(log(cabs(#z))) + @factoradjust tempcolor = temp2 + (temp1-temp2)*smoothfactor elseif @smoothtype == "virgo" temp1 = (@avgscale*testresult/testcount)^(1/3) temp2 = (@avgscale*oldresult/(testcount-1))^(1/3) tempcolor = @smoothconst * temp1 - smoothcomplement * (temp1 - temp2) endif ; @smoothtype elseif @avgtype == "HG" if @smoothtype == "libra" ; raw --- no smoothing tempcolor = 1/((@avgscale*testresult)^(1/testcount)) elseif @smoothtype == "aquarius" temp1 = 1/((@avgscale*testresult)^(1/testcount)) temp2 = 1/((@avgscale*oldresult)^(1/(testcount-1))) smoothfactor = powerlog*baillog - powerlog*log(log(cabs(#z))) + @factoradjust tempcolor = temp2 + (temp1-temp2)*smoothfactor elseif @smoothtype == "virgo" temp1 = 1/((@avgscale*testresult)^(1/testcount)) temp2 = 1/((@avgscale*oldresult)^(1/(testcount-1))) tempcolor = @smoothconst * temp1 - smoothcomplement * (temp1 - temp2) endif ; @smoothtype elseif @avgtype == "Quartic" if @smoothtype == "libra" ; raw --- no smoothing tempcolor = (@avgscale*testresult/testcount)^(1/4) elseif @smoothtype == "aquarius" temp1 = (@avgscale*testresult/testcount)^(1/4) temp2 = (@avgscale*oldresult/(testcount-1))^(1/4) smoothfactor = powerlog*baillog - powerlog*log(log(cabs(#z))) + @factoradjust tempcolor = temp2 + (temp1-temp2)*smoothfactor elseif @smoothtype == "virgo" temp1 = (@avgscale*testresult/testcount)^(1/4) temp2 = (@avgscale*oldresult/(testcount-1))^(1/4) tempcolor = @smoothconst * temp1 - smoothcomplement * (temp1 - temp2) endif ; @smoothtype elseif @avgtype == "General Power" if @smoothtype == "libra" ; raw --- no smoothing tempcolor = (@avgscale*testresult/testcount)^(1/@avgpower) elseif @smoothtype == "aquarius" temp1 = (@avgscale*testresult/testcount)^(1/@avgpower) temp2 = (@avgscale*oldresult/(testcount-1))^(1/@avgpower) smoothfactor = powerlog*baillog - powerlog*log(log(cabs(#z))) + @factoradjust tempcolor = temp2 + (temp1-temp2)*smoothfactor elseif @smoothtype == "virgo" temp1 = (@avgscale*testresult/testcount)^(1/@avgpower) temp2 = (@avgscale*oldresult/(testcount-1))^(1/@avgpower) tempcolor = @smoothconst * temp1 - smoothcomplement * (temp1 - temp2) endif ; @smoothtype elseif @avgtype == "Function Avg" if @avgfunction == "exp" if @smoothtype == "libra" ; raw --- no smoothing tempcolor = log(testresult/testcount) elseif @smoothtype == "aquarius" temp1 = log(testresult/testcount) temp2 = log(oldresult/(testcount-1)) smoothfactor = powerlog*baillog - powerlog*log(log(cabs(#z))) + @factoradjust tempcolor = temp2 + (temp1-temp2)*smoothfactor elseif @smoothtype == "virgo" temp1 = log(testresult/testcount) temp2 = log(oldresult/(testcount-1)) tempcolor = @smoothconst * temp1 - smoothcomplement * (temp1 - temp2) endif ; @smoothtype elseif @avgfunction == "log" if @smoothtype == "libra" ; raw --- no smoothing tempcolor = exp(testresult/testcount) elseif @smoothtype == "aquarius" temp1 = exp(testresult/testcount) temp2 = exp(oldresult/(testcount-1)) smoothfactor = powerlog*baillog - powerlog*log(log(cabs(#z))) + @factoradjust tempcolor = temp2 + (temp1-temp2)*smoothfactor elseif @smoothtype == "virgo" temp1 = exp(testresult/testcount) temp2 = exp(oldresult/(testcount-1)) tempcolor = @smoothconst * temp1 - smoothcomplement * (temp1 - temp2) endif ; @smoothtype elseif @avgfunction == "sine" if @smoothtype == "libra" ; raw --- no smoothing tempcolor = asin(testresult/testcount) if tempcolor < 0 tempcolor = tempcolor + #pi endif ; tempcolor tempcolor = tempcolor/#pi elseif @smoothtype == "aquarius" temp1 = asin(testresult/testcount) if temp1 < 0 temp1 = temp1 + #pi endif ; temp1 temp1 = temp1/#pi temp2 = asin(oldresult/(testcount-1)) if temp2 < 0 temp2 = temp2 + #pi endif ; temp2 temp2 = temp2/#pi smoothfactor = powerlog*baillog - powerlog*log(log(cabs(#z))) + @factoradjust tempcolor = temp2 + (temp1-temp2)*smoothfactor elseif @smoothtype == "virgo" temp1 = asin(testresult/testcount) if temp1 < 0 temp1 = temp1 + #pi endif ; temp1 temp1 = temp1/#pi temp2 = asin(oldresult/(testcount-1)) if temp2 < 0 temp2 = temp2 + #pi endif ; temp2 temp2 = temp2/#pi tempcolor = @smoothconst * temp1 - smoothcomplement * (temp1 - temp2) endif ; @smoothtype endif ; @avgfunction endif ; @avgtype ; Perlin noise modulation if @enableperlin ; first, determine what initialization to use if @perlininitpoint == "pixel" zperlin = #pixel elseif @perlininitpoint == "coloring" zperlin = temp1 + flip(temp2) elseif @perlininitpoint == "test result" zperlin = testresult + flip(oldresult) else if @perlincriterion != "average" zperlin = perlinzsave else if @perlinaverage == "arithmetic" perlinfsave = perlinfsave/perlincount perlinzsave = perlinzsave/perlincount elseif @perlinaverage == "quadratic" perlinfsave = sqrt(perlinfsave/perlincount) perlinzsave = sqrt(perlinzsave/perlincount) elseif @perlinaverage == "cubic" perlinfsave = (perlinfsave/perlincount)^(1/3) perlinzsave = (perlinzsave/perlincount)^(1/3) elseif @perlinaverage == "quartic" perlinfsave = (perlinfsave/perlincount)^(1/4) perlinzsave = (perlinzsave/perlincount)^(1/4) elseif @perlinaverage == "general power" perlinfsave = (perlinfsave/perlincount)^(1/@perlinpower) perlinzsave = (perlinzsave/perlincount)^(1/@perlinpower) elseif @perlinaverage == "geometric" perlinfsave = perlinfsave^(1/perlincount) perlinzsave = perlinzsave^(1/perlincount) elseif @perlinaverage == "harmonic" perlinfsave = perlincount/perlinfsave perlinzsave = perlincount/perlinzsave elseif @perlinaverage == "HG" perlinfsave = 1/((perlinfsave)^(1/perlincount)) perlinzsave = 1/((perlinzsave)^(1/perlincount)) elseif @perlinaverage == "function average" if @perlinavgfn == "exp" perlinfsave = log(perlinfsave/perlincount) perlinzsave = log(perlinzsave/perlincount) elseif @perlinavgfn == "log" perlinfsave = exp(perlinfsave/perlincount) perlinzsave = exp(perlinzsave/perlincount) elseif @perlinavgfn == "sine" perlinfsave = asin(perlinfsave/perlincount) perlinzsave = asin(perlinzsave/perlincount) if perlinfsave < 0 perlinfsave = perlinfsave + #pi endif ; perlinfsave endif ; @perlinavgfn endif ; @perlinaverage zperlin = perlinzsave endif ; @perlincriterion if @perlinmutate if @perlinmutstyle == "antares" zperlin = perlinfsave + flip(real(perlinzsave)) elseif @perlinmutstyle == "fomalhaut" zperlin = perlinfsave + flip(imag(perlinzsave)) elseif @perlinmutstyle == "rigel" zperlin = perlinfsave + flip(cabs(perlinzsave)) elseif @perlinmutstyle == "arcturus" zperlin = cabs(#pixel) + flip(imag(perlinzsave)) elseif @perlinmutstyle == "capella" zperlin = testresult + flip(perlinfsave) elseif @perlinmutstyle == "polaris" zperlin = perlinfsave + flip(oldresult) endif ; @perlinmutstyle endif ; @perlinmutate endif ; @perlininitpoint if @perlintransform != "none" if @perlintransform == "circle" ztemp = zperlin - @perlincenter temp2 = atan2(ztemp) if temp2 < 0 temp2 = temp2 + twopi endif ; atan2 temp1 = @perlinradius * cos(temp2) ; x-coordinate on circle temp2 = @perlinradius * sin(temp2) ; y-coordinate ztemp = temp1 + flip(temp2) elseif @perlintransform == "diamond" ztemp = zperlin - @perlincenter temp2 = atan2(ztemp) ; angle if temp2 < 0 temp2 = temp2 + twopi endif ; atan2 temp1 = cos(temp2) ; x-coordinate if temp2 <= halfpi temp2 = 1-temp1 ; y-coordinate elseif temp2 <= #pi temp2 = 1+temp1 elseif temp2 <= threehalvespi temp2 = -temp1-1 else temp2 = temp1-1 endif ; temp2 ztemp = @perlinradius * (temp1 + flip(temp2)) elseif @perlintransform == "x-axis" ztemp = @perlinradius * real(zperlin-@perlincenter) + flip(0) endif ; @perlintransform if @transformcombo == "trap" zperlin = ztemp elseif @transformcombo == "sum" zperlin = zperlin + ztemp elseif @transformcombo == "difference 1" zperlin = zperlin - ztemp elseif @transformcombo == "difference 2" zperlin = ztemp - zperlin elseif @transformcombo == "product" zperlin = zperlin * ztemp elseif @transformcombo == "quotient 1" zperlin = zperlin / ztemp elseif @transformcombo == "quotient 2" zperlin = ztemp / zperlin elseif @transformcombo == "power 1" zperlin = zperlin ^ ztemp elseif @transformcombo == "power 2" zperlin = ztemp ^ zperlin elseif @transformcombo == "arithmetic average" zperlin = (zperlin + ztemp) / 2 elseif @transformcombo == "geometric average" zperlin = (zperlin * ztemp) ^ (1/2) endif ; @transformcombo endif ; @perlintransform altindex = 0 noisesum = 0.0 noiseamplitude = 1.0 zrotate = (0,1)^(@perlinrotation/90) zunit = (0,1)^(1/5) * (0,1)^(@perlinrotstep/90) zperlin = zperlin * @perlinscale * zrotate + @perlinoffset perlinmodulus = perlinarraysz * 16 while altindex < @perlinoctaves zpart = real(zperlin) % perlinmodulus + perlinmodulus gridx0 = floor(zpart) % perlinarraysz gridx1 = (gridx0 + 1) % perlinarraysz fracx0 = zpart - floor(zpart) fracx1 = fracx0 - 1 zpart = imag(zperlin) % perlinmodulus + perlinmodulus gridy0 = floor(zpart) % perlinarraysz gridy1 = (gridy0 + 1) % perlinarraysz fracy0 = zpart - floor(zpart) fracy1 = fracy0 - 1 grad00 = perlinperms[perlinperms[gridx0] + gridy0] grad10 = perlinperms[perlinperms[gridx1] + gridy0] grad01 = perlinperms[perlinperms[gridx0] + gridy1] grad11 = perlinperms[perlinperms[gridx1] + gridy1] if @perlinfade == "poppy" xsmoothing = sqr(fracx0) * (3-2*fracx0) ysmoothing = sqr(fracy0) * (3-2*fracy0) elseif @perlinfade == "gardenia" temp1 = sqr(fracx0) temp2 = fracx0*temp1 xsmoothing = 6*temp1*temp2 - 15*temp1*temp1 + 10*temp2 temp1 = sqr(fracy0) temp2 = fracy0*temp1 ysmoothing = 6*temp1*temp2 - 15*temp1*temp1 + 10*temp2 elseif @perlinfade == "thistle" xsmoothing = sqrt(@fadeadjust * abs(fracx0)) ysmoothing = sqrt(@fadeadjust * abs(fracy0)) elseif @perlinfade == "dandelion" xsmoothing = sin(@fadeadjust * #pi * fracx0) ysmoothing = sin(@fadeadjust * #pi * fracy0) elseif @perlinfade == "dahlia" xsmoothing = exp(@fadeadjust * fracx0) ysmoothing = exp(@fadeadjust * fracy0) elseif @perlinfade == "honeysuckle" xsmoothing = log(@fadeadjust * (abs(fracx0)+1)) ysmoothing = log(@fadeadjust * (abs(fracy0)+1)) endif ; @perlinfade utemp = fracx0 * perlingrads[grad00,0] + fracy0 * perlingrads[grad00,1] vtemp = fracx1 * perlingrads[grad10,0] + fracy0 * perlingrads[grad10,1] atemp = utemp + xsmoothing*(vtemp-utemp) utemp = fracx0 * perlingrads[grad01,0] + fracy1 * perlingrads[grad01,1] vtemp = fracx1 * perlingrads[grad11,0] + fracy1 * perlingrads[grad11,1] btemp = utemp + xsmoothing*(vtemp-utemp) noisesum = noisesum + (atemp + ysmoothing*(btemp-atemp)) * noiseamplitude zperlin = zperlin * zunit/@perlinfreq noiseamplitude = noiseamplitude * @perlinamplitude altindex = altindex + 1 endwhile ; altindex ; insert noise function code from om.ucl'Texturation' here; noisesum = om'd' tempcolor = @avgcolorwt*tempcolor + (noisesum + @perlinadjustment)*@perlinamount*@perlincolorwt endif ; @enableperlin if @colorwarp == "none" #index = 1.33333333 * tempcolor elseif @colorwarp == "square" #index = sqr(tempcolor) elseif @colorwarp == "square root" #index = sqrt(tempcolor) elseif @colorwarp == "power" #index = tempcolor^@colorpower elseif @colorwarp == "sine" tempcolor = 2.0 * #pi * tempcolor tempcolor = tempcolor * @colorfrequency #index = (sin(tempcolor) + 1)/2 elseif @colorwarp == "cosine" tempcolor = 2.0 * #pi * tempcolor tempcolor = tempcolor * @colorfrequency #index = (cos(tempcolor) + 1)/2 elseif @colorwarp == "exponential" tempcolor = exp(@colorparam*tempcolor) #index = (tempcolor-1)/(#e-1) elseif @colorwarp == "log" #index = log(@colorparam*(tempcolor+1)/log(2)) endif ; @colorwarp default: title = "Law of Averages" heading caption = "Primary Settings" text = "Select the number of points to be tracked, the type of averaging, and how \ they are to be used in the coloring." expanded = TRUE endheading param numberpoints caption = "Points to Track" min = 2 max = 5 default = 3 hint = "This setting chooses how many points in the orbit are to be tracked. \ Minimum is 2 (current z, previous z); maximum is 5." endparam param trackmeasure2 caption = "What to Track?" enum = "Midpoint" "Centroid" "Current z (z0)" "Previous z (z1)" default = 1 hint = "This parameter selects the basis for averaging. \ 'Midpoint' and 'Centroid' are further defined by parameter 'Point Set'." visible = @numberpoints == 2 endparam param pointset2a caption = "Point Set" enum = "z0-z1" "z1-Origin" "z1-#pixel" "z0-Origin" "z0-#pixel" default = 0 hint = "This parameter selects which points are used by the coloring algorithm, i.e. \ the TrackPt (Midpoint, Centroid, etc.) is computed using these points. \ z0 is the current #z, z1 the previous z, etc." visible = (@numberpoints == 2) && (@trackmeasure2 == "Midpoint") endparam param pointset2b caption = "Point Set" enum = "z1-z0-Origin" "z1-#pixel-Origin" "z1-z0-#pixel" "z0-#pixel-Origin" \ "z1-z0-#pixel-Origin" default = 0 hint = "This parameter selects which points are used by the coloring algorithm, i.e. \ the TrackPt (Midpoint, Centroid, etc.) is computed using these points. \ z0 is the current #z, z1 the previous z, etc." visible = (@numberpoints == 2) && (@trackmeasure2 == "Centroid") endparam param trackmeasure3 caption = "What to Track?" enum = "Midpoint" "Centroid" "2nd-Previous z (z2)" default = 1 hint = "This parameter selects the basis for averaging. \ 'Midpoint' and 'Centroid' are further defined by parameter 'Point Set'." visible = @numberpoints == 3 endparam param pointset3a caption = "Point Set" enum = "z0-z2" "z1-z2" "z2-Origin" "z2-#pixel" default = 0 hint = "This parameter selects which points are used by the coloring algorithm, i.e. \ the TrackPt (Midpoint, Centroid, etc.) is computed using these points. \ z0 is the current #z, z1 the previous z, etc." visible = (@numberpoints == 3) && (@trackmeasure3 == "Midpoint") endparam param pointset3b caption = "Point Set" enum = "z2-z1-z0" "z2-z1-Origin" "z2-z1-#pixel" "z2-z0-Origin" "z2-z0-#pixel" \ "z2-Origin-#pixel" "z2-z1-z0-Origin" "z2-z1-z0-#pixel" "z0-z2-O-pix" \ "z1-z2-O-pix" "z0-z1-z2-O-pix" default = 4 hint = "This parameter selects which points are used by the coloring algorithm, i.e. \ the TrackPt (Midpoint, Centroid, etc.) is computed using these points. \ z0 is the current #z, z1 the previous z, etc." visible = (@numberpoints == 3) && (@trackmeasure3 == "Centroid") endparam param trackmeasure4 caption = "What to Track?" enum = "Midpoint" "Centroid" "3rd-Previous z (z3)" default = 1 hint = "This parameter selects the basis for averaging. \ 'Midpoint' and 'Centroid' are further defined by parameter 'Point Set'." visible = @numberpoints == 4 endparam param pointset4a caption = "Point Set" enum = "z0-z3" "z1-z3" "z2-z3" "z3-Origin" "z3-#pixel" default = 0 hint = "This parameter selects which points are used by the coloring algorithm, i.e. \ the TrackPt (Midpoint, Centroid, etc.) is computed using these points. \ z0 is the current #z, z1 the previous z, etc." visible = (@numberpoints == 4) && (@trackmeasure4 == "Midpoint") endparam param pointset4b caption = "Point Set" enum = "z0-z1-z3" "z0-z2-z3" "z1-z2-z3" "z0-z3-Origin" "z0-z3-#pixel" \ "z1-z3-Origin" "z1-z3-#pixel" "z3-Origin-#pixel" "z2-z3-Origin" "z2-z3-#pixel" \ "z0-z1-z2-z3" "z0-z1-z3-Origin" "z0-z1-z3-#pixel" "z0-z2-z3-Origin" "z0-z2-z3-#pixel" \ "z1-z2-z3-Origin" "z1-z2-z3-#pixel" "z0-z3-O-pix" "z1-z3-O-pix" \ "z2-z3-O-pix" "z0-z1-z2-z3-O" "z0-z1-z2-z3-pix" "z0-z1-z3-O-pix" \ "z0-z2-z3-O-pix" "z1-z2-z3-O-pix" "z0-z1-z2-z3-O-pix" default = 0 hint = "This parameter selects which points are used by the coloring algorithm, i.e. \ the TrackPt (Midpoint, Centroid, etc.) is computed using these points. \ z0 is the current #z, z1 the previous z, etc." visible = (@numberpoints == 4) && (@trackmeasure4 == "Centroid") endparam param trackmeasure5 caption = "What to Track?" enum = "Midpoint" "Centroid" "4th-Previous z (z4)" default = 1 hint = "This parameter selects the basis for averaging. \ 'Midpoint' and 'Centroid' are further defined by parameter 'Point Set'." visible = @numberpoints == 5 endparam param pointset5a caption = "Point Set" enum = "z0-z4" "z1-z4" "z2-z4" "z3-z4" "z4-Origin" "z4-#pixel" default = 0 hint = "This parameter selects which points are used by the coloring algorithm, i.e. \ the TrackPt (Midpoint, Centroid, etc.) is computed using these points. \ z0 is the current #z, z1 the previous z, etc." visible = (@numberpoints == 5) && (@trackmeasure5 == "Midpoint") endparam param pointset5b caption = "Point Set" enum = "z0-z1-z4" "z0-z2-z4" "z0-z3-z4" "z0-z4-Origin" "z0-z4-#pixel" "z1-z2-z4" \ "z1-z3-z4" "z1-z4-Origin" "z1-z4-#pixel" "z2-z3-z4" "z2-z4-Origin" \ "z2-z4-#pixel" "z3-z4-Origin" "z3-z4-#pixel" "z4-Origin-#pixel" \ "z0-z1-z2-z4" "z0-z1-z3-z4" "z0-z1-z4-Origin" "z0-z1-z4-#pixel" "z0-z2-z3-z4" \ "z0-z2-z4-Origin" "z0-z2-z4-#pixel" "z0-z3-z4-Origin" "z0-z3-z4-#pixel" \ "z0-z4-O-pix" "z1-z2-z3-z4" "z1-z2-z4-Origin" "z1-z2-z4-#pixel" "z1-z3-z4-Origin" \ "z1-z3-z4-#pixel" "z2-z3-z4-Origin" "z2-z3-z4-#pixel" "z1-z4-O-pix" "z2-z4-O-pix" \ "z3-z4-O-pix" \ "z0-z1-z2-z3-z4" "z0-z1-z2-z4-O" "z0-z1-z2-z4-pix" "z0-z1-z3-z4-O" \ "z0-z1-z3-z4-pix" "z0-z2-z3-z4-O" "z0-z2-z3-z4-pix" "z1-z2-z3-z4-O" "z1-z2-z3-z4-pix" \ "z0-z1-z4-O-pix" "z0-z2-z4-O-pix" "z0-z3-z4-O-pix" "z1-z2-z4-O-pix" \ "z1-z3-z4-O-pix" "z2-z3-z4-O-pix" \ "z0-z1-z2-z3-z4-O" "z0-z1-z2-z3-z4-pix" "z0-z1-z2-z4-O-pix" "z0-z1-z3-z4-O-pix" \ "z0-z2-z3-z4-O-pix" "z1-z2-z3-z4-O-pix" "z0-z1-z2-z3-z4-O-pix" default = 0 hint = "This parameter selects which points are used by the coloring algorithm, i.e. \ the TrackPt (Midpoint, Centroid, etc.) is computed using these points. \ z0 is the current #z, z1 the previous z, etc." visible = (@numberpoints == 5) && (@trackmeasure5 == "Centroid") endparam param avgstyle caption = "Average Style" enum = "A" "B" "C" ; "D" default = 1 hint = "This parameter determines how the averaging is used by the coloring algorithm." endparam param ptpermutation caption = "Point Permutation" enum = "1" "2" "3" default = 2 hint = "This parameter selects the order in which the alogrithm chooses points." endparam param pointflavor2 caption = "Flavor" enum = "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" \ "N" "O" "P" "Q" "R" "S" "T" "U" default = 0 hint = "This parameter influences how the point set is used by the algorithm." visible = @numberpoints == 2 endparam param pointflavor3 caption = "Flavor" enum = "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" \ "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z" \ "AA" "AB" "AC" "AD" "AE" "AF" "AG" "AH" "AI" "AJ" "AK" "AL" "AM" \ "AN" "AO" "AP" "AQ" "AR" "AS" "AT" "AU" "AV" "AW" "AX" "AY" "AZ" \ "BA" "BB" "BC" "BD" "BE" "BF" "BG" "BH" "BI" "BJ" "BK" "BL" "BM" \ "BN" "BO" "BP" "BQ" "BR" "BS" "BT" "BU" "BV" "BW" "BX" "BY" "BZ" \ "CA" "CB" "CC" "CD" "CE" "CF" "CG" "CH" "CI" "CJ" "CK" "CL" "CM" \ "CN" "CO" "CP" "CQ" "CR" "CS" "CT" "CU" "CV" "CW" "CX" "CY" "CZ" \ "DA" "DB" "DC" "DD" default = 0 hint = "This parameter influences how the point set is used by the algorithm." visible = @numberpoints == 3 endparam param pointflavor4 caption = "Flavor" enum = "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" \ "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z" \ "AA" "AB" "AC" "AD" "AE" "AF" "AG" "AH" "AI" "AJ" "AK" "AL" "AM" \ "AN" "AO" "AP" "AQ" "AR" "AS" "AT" "AU" "AV" "AW" "AX" "AY" "AZ" \ "BA" "BB" "BC" "BD" "BE" "BF" "BG" "BH" "BI" "BJ" "BK" "BL" "BM" \ "BN" "BO" "BP" "BQ" "BR" "BS" "BT" "BU" "BV" "BW" "BX" "BY" "BZ" \ "CA" "CB" "CC" "CD" "CE" "CF" "CG" "CH" "CI" "CJ" "CK" "CL" "CM" \ "CN" "CO" "CP" "CQ" "CR" "CS" "CT" "CU" "CV" "CW" "CX" "CY" "CZ" \ "DA" "DB" "DC" "DD" "DE" "DF" "DG" "DH" "DI" "DJ" "DK" "DL" "DM" \ "DN" "DO" "DP" "DQ" "DR" "DR2" "DR3" "DR4" "DR5" \ "DS" "DT" "DU" "DV" "DW" "DX" "DY" "DZ" \ "EA" "EB" "EC" "ED" "ED2" "ED3" "ED4" "ED5" \ "EE" "EF" "EG" "EH" "EI" "EJ" "EK" "EL" "EM" \ "EN" "EO" "EP" "EP2" "EP3" "EP4" "EP5" \ "EQ" "ER" "ES" "ET" "EU" "EV" "EW" "EX" "EY" "EZ" \ "FA" "FB" "FC" "FD" "FE" "FF" "FG" "FH" "FI" "FJ" "FK" "FL" "FM" \ "FN" "FO" "FP" "FQ" "FR" "FS" "FT" "FU" "FV" "FW" "FX" "FY" "FZ" \ "GA" "GB" "GC" "GD" "GE" "GF" "GG" "GH" "GI" "GJ" "GK" "GL" "GM" \ "GN" "GO" "GP" "GQ" "GR" "GS" "GT" "GU" "GV" "GW" "GX" "GY" "GZ" \ "HA" "HB" "HC" "HD" "HE" "HF" "HG" "HH" "HI" "HJ" "HK" "HL" "HM" \ "HN" "HO" "HP" "HQ" "HR" default = 0 hint = "This parameter influences how the point set is used by the algorithm." visible = @numberpoints == 4 endparam param pointflavor5 caption = "Flavor" enum = "A" "B" "C" "C'" "D" "E" "E'" "F" "F'" "F''" "G" "H" "I" "J" "J'" "K" "L" "M" \ "N" "N'" "O" "P" "Q" "R" "R'" "S" "T" "U" "V" "V'" "W" "X" "Y" "Z" "Z'" \ "AA" "AB" "AC" "AD" "AD'" "AD2" "AD3" "AD4" "AD5" \ "AE" "AF" "AG" "AH" "AH'" "AI" "AJ" "AK" "AL" "AL'" "AM" \ "AN" "AO" "AP" "AP'" "AQ" "AR" "AS" "AT" "AT'" "AT2" "AT3" "AT4" "AT5" "AT6" \ "AU" "AV" "AW" "AX" "AX'" "AY" "AZ" \ "BA" "BB" "BB'" "BC" "BD" "BE" "BF" "BF'" "BG" "BH" "BI" "BJ" "BJ'" \ "BJ2" "BJ3" "BJ4" "BJ5" "BJ6" "BK" "BL" "BM" \ "BN" "BN'" "BO" "BP" "BQ" "BR" "BR'" "BS" "BT" "BU" "BV" "BV'" "BW" "BX" "BY" \ "BZ" "BZ'" "BZ2" "BZ3" "BZ4" "BZ5" "BZ6" \ "CA" "CB" "CC" "CD" "CD'" "CE" "CF" "CG" "CH" "CH'" "CI" "CJ" "CK" "CL" "CL'" "CM" \ "CN" "CO" "CP" "CP'" "CP2" "CP3" "CP4" "CP5" "CP6" \ "IA" "IB" "IC" "ID" "IE" "IF" "IG" "IH" "II" "IJ" "IK" "IL" "IM" \ "IN" "IO" "IP" "IQ" "IR" "IS" "IT" "IU" "IV" "IW" "IX" "IY" \ "CQ" "CR" "CS" "CT" "CT'" "CU" "CV" "CW" "CX" "CX'" "CY" "CZ" \ "DA" "DB" "DB'" "DC" "DD" "DE" "DF" "DF'" "DF2" "DF3" "DF4" "DF5" "DF6" \ "DG" "DH" "DI" "DJ" "DJ'" "DK" "DL" "DM" \ "DN" "DN'" "DO" "DP" "DQ" "DR" "DR'" "DR2" "DR3" "DR4" "DR5" "DR6" "DR7" "DR8" \ "DR9" "DR10" "DR11" \ "DS" "DT" "DU" "DV" "DV'" "DW" "DX" "DY" "DZ" "DZ'" \ "EA" "EB" "EC" "ED" "ED'" "ED2" "ED3" "ED4" "ED5" "ED6" "ED7" "ED8" \ "ED9" "ED10" "ED11" \ "EE" "EF" "EG" "EH" "EH'" "EI" "EJ" "EK" "EL" "EL'" "EM" \ "EN" "EO" "EP" "EP'" "EP2" "EP3" "EP4" "EP5" "EP6" "EP7" "EP8" \ "EP9" "EP10" "EP11" \ "EQ" "ER" "ES" "ET" "ET'" "EU" "EV" "EW" "EX" "EX'" \ "JA" "JB" "JC" "JD" "JE" "JF" "JG" "JH" "JI" "JJ" "JK" "JL" "JM" \ "JN" "JO" "JP" "JQ" "JR" "JS" "JT" "JU" "JV" "JW" "JX" "JY" \ "EY" "EZ" \ "FA" "FB" "FB'" "FC" "FD" "FE" "FF" "FF'" "FF2" "FF3" "FF4" "FF5" "FF6" \ "FG" "FH" "FI" "FJ" "FJ'" "FK" "FL" "FM" \ "FN" "FN'" "FO" "FP" "FQ" "FR" "FR'" "FS" "FT" "FU" "FV" \ "FV'" "FV2" "FV3" "FV4" "FV5" "FV6" "FW" "FX" "FY" "FZ" "FZ'" \ "GA" "GB" "GC" "GD" "GD'" "GE" "GF" "GG" "GH" "GH'" "GI" "GJ" "GK" "GL" "GL'" "GM" \ "GN" "GO" "GP" "GP'" "GQ" "GR" "GS" "GT" "GT'" "GU" "GV" "GW" "GX" "GX'" "GY" "GZ" \ "HA" "HB" "HB'" "HB2" "HB3" "HB4" "HB5" "HB6" \ "HC" "HD" "HE" "HF" "HF'" "HG" "HH" "HI" "HJ" "HJ'" "HK" "HL" "HM" \ "HN" "HN'" "HO" "HP" "HQ" "HR" "HR'" "HR2" "HR3" "HR4" "HR5" "HR6" \ "HS" "HT" "HU" "HV" "HW" "HX" "HY" "HZ" \ "HZ2" "HZ3" "HZ4" "HZ5" "HZ6" "HZ7" "HZ8" "HZ9" "HZ10" "HZ11" "HZ12" "HZ13" "HZ14" \ "HZ15" "HZ16" "HZ17" "HZ18" default = 0 hint = "This parameter influences how the point set is used by the algorithm." visible = @numberpoints == 5 endparam param avgtype caption = "Type of Averaging" enum = "Arithmetic" "Quadratic" "Cubic" "Quartic" \ "General Power" "Geometric" "Harmonic" "HG" "Function Avg" default = 0 endparam param avgpower caption = "Averaging Exponent" default = 0.5 hint = "If the 'Type of Averaging' needs a power (exponent), then this is it." visible = @avgtype == "General Power" endparam param avgfunction caption = "Averaging Function" enum = "exp" "log" "sine" default = 0 hint = "If 'Type of Averaging' is set to 'Function Avg', then this is the function." visible = @avgtype == "Function Avg" endparam param avgscale caption = "Average Scale Factor" default = 1.0 hint = "This parameter scales the input to the averaging routine. For example, \ it functions as the frequency if 'Averaging Function' is set to 'sine'." endparam heading caption = "Smoothness Adjustments" text = "These parameters can sometimes be used to adjust the smoothness of the colorings." expanded = FALSE endheading param smoothtype caption = "Smoothness Type" enum = "aquarius" "virgo" "libra" default = 0 endparam param bailoutadjust caption = "Bailout Adjustment" default = 2.0 hint = "This parameter adjusts the smoothing if 'Smoothness Type' is set to 'aquarius'." visible = @smoothtype == "aquarius" endparam param poweradjust caption = "Power Adjustment" default = 1.0 hint = "This parameter adjusts the smoothing if 'Smoothness Type' is set to 'aquarius'." visible = @smoothtype == "aquarius" endparam param factoradjust caption = "Smoothness Adjustment" default = 1.0 hint = "This parameter adjusts the smoothing if 'Smoothness Type' is set to 'aquarius'." visible = @smoothtype == "aquarius" endparam param smoothconst caption = "Smoothing Parameter" default = 0.3 hint = "This parameter adjusts the degree of smoothing." visible = @smoothtype == "virgo" endparam heading caption = "Perlin Noise Settings" text = "These parameters adjust the Perlin noise if it is enabled." expanded = TRUE endheading param enableperlin caption = "Enable Perlin Noise?" default = FALSE hint = "If enabled, the coloring is modified by the addition of Perlin noise variations." endparam param perlininitpoint caption = "Perlin Initial Point" enum = "z" "pixel" "coloring" "tracked point" "test result" "combination" default = 0 hint = "This parameter determines the initial point input to the Perlin algorithm." visible = @enableperlin endparam param perlincombo2 caption = "Z Combination" enum = "z0 + z1" "z0 * z1" "z0 - z1" "z1 - z0" "z0/z1" "z1/z0" \ "T + z0" "T + z1" "T * z0" "T * z1" "T - z0" "z0 - T" "T - z1" \ "z1 - T" "T/z0" "z0/T" "T/z1" "z1/T" \ "T + #pixel" "T * #pixel" "T - #pixel" "#pixel - T" "T/#pixel" "#pixel/T" \ "z0 + #pixel" "z0 * #pixel" "z0 - #pixel" "#pixel - z0" "z0/#pixel" "#pixel/z0" \ "z1 + #pixel" "z1 * #pixel" "z1 - #pixel" "#pixel - z1" "z1/#pixel" "#pixel/z1" default = 0 hint = "If 'Perlin Initial Point' is set to 'combination', then this setting \ defines which combination is used. T = Tracked Point" visible = @enableperlin && (@perlininitpoint == "combination") && \ (@numberpoints == 2) endparam param perlincombo3 caption = "Z Combination" enum = "z0 + z1" "z0 * z1" "z0 - z1" "z1 - z0" "z0/z1" "z1/z0" \ "z0 + z2" "z0 * z2" "z0 - z2" "z2 - z0" "z0/z2" "z2/z0" \ "z1 + z2" "z1 * z2" "z1 - z2" "z2 - z1" "z1/z2" "z2/z1" \ "T + z0" "T + z1" "T + z2" "T * z0" "T * z1" "T * z2" "T - z0" \ "z0 - T" "T - z1" "z1 - T" "T - z2" "z2 - T" "T/z0" "z0/T" "T/z1" "z1/T" \ "T/z2" "z2/T" \ "T + #pixel" "T * #pixel" "T - #pixel" "#pixel - T" "T/#pixel" "#pixel/T" \ "z0 + #pixel" "z0 * #pixel" "z0 - #pixel" "#pixel - z0" "z0/#pixel" "#pixel/z0" \ "z1 + #pixel" "z1 * #pixel" "z1 - #pixel" "#pixel - z1" "z1/#pixel" "#pixel/z1" \ "z2 + #pixel" "z2 * #pixel" "z2 - #pixel" "#pixel - z2" "z2/#pixel" "#pixel/z2" default = 0 hint = "If 'Perlin Initial Point' is set to 'combination', then this setting \ defines which combination is used. T = Tracked Point" visible = @enableperlin && (@perlininitpoint == "combination") && \ (@numberpoints == 3) endparam param perlincombo4 caption = "Z Combination" enum = "z0 + z1" "z0 * z1" "z0 - z1" "z1 - z0" "z0/z1" "z1/z0" \ "z0 + z2" "z0 * z2" "z0 - z2" "z2 - z0" "z0/z2" "z2/z0" \ "z0 + z3" "z0 * z3" "z0 - z3" "z3 - z0" "z0/z3" "z3/z0" \ "z1 + z2" "z1 * z2" "z1 - z2" "z2 - z1" "z1/z2" "z2/z1" \ "z1 + z3" "z1 * z3" "z1 - z3" "z3 - z1" "z1/z3" "z3/z1" \ "z2 + z3" "z2 * z3" "z2 - z3" "z3 - z2" "z2/z3" "z3/z2" \ "T + z0" "T + z1" "T + z2" "T + z3" "T * z0" "T * z1" "T * z2" "T * z3" \ "T - z0" "z0 - T" "T - z1" "z1 - T" "T - z2" "z2 - T" "T - z3" "z3 - T" \ "T/z0" "z0/T" "T/z1" "z1/T" "T/z2" "z2/T" "T/z3" "z3/T" \ "T + #pixel" "T * #pixel" "T - #pixel" "#pixel - T" "T/#pixel" "#pixel/T" \ "z0 + #pixel" "z0 * #pixel" "z0 - #pixel" "#pixel - z0" "z0/#pixel" "#pixel/z0" \ "z1 + #pixel" "z1 * #pixel" "z1 - #pixel" "#pixel - z1" "z1/#pixel" "#pixel/z1" \ "z2 + #pixel" "z2 * #pixel" "z2 - #pixel" "#pixel - z2" "z2/#pixel" "#pixel/z2" \ "z3 + #pixel" "z3 * #pixel" "z3 - #pixel" "#pixel - z3" "z3/#pixel" "#pixel/z3" default = 0 hint = "If 'Perlin Initial Point' is set to 'combination', then this setting \ defines which combination is used. T = Tracked Point" visible = @enableperlin && (@perlininitpoint == "combination") && \ (@numberpoints == 4) endparam param perlincombo5 caption = "Z Combination" enum = "z0 + z1" "z0 * z1" "z0 - z1" "z1 - z0" "z0/z1" "z1/z0" \ "z0 + z2" "z0 * z2" "z0 - z2" "z2 - z0" "z0/z2" "z2/z0" \ "z0 + z3" "z0 * z3" "z0 - z3" "z3 - z0" "z0/z3" "z3/z0" \ "z0 + z4" "z0 * z4" "z0 - z4" "z4 - z0" "z0/z4" "z4/z0" \ "z1 + z2" "z1 * z2" "z1 - z2" "z2 - z1" "z1/z2" "z2/z1" \ "z1 + z3" "z1 * z3" "z1 - z3" "z3 - z1" "z1/z3" "z3/z1" \ "z1 + z4" "z1 * z4" "z1 - z4" "z4 - z1" "z1/z4" "z4/z1" \ "z2 + z3" "z2 * z3" "z2 - z3" "z3 - z2" "z2/z3" "z3/z2" \ "z2 + z4" "z2 * z4" "z2 - z4" "z4 - z2" "z2/z4" "z4/z2" \ "z3 + z4" "z3 * z4" "z3 - z4" "z4 - z3" "z3/z4" "z4/z3" \ "T + z0" "T + z1" "T + z2" "T + z3" "T + z4" "T * z0" "T * z1" "T * z2" \ "T * z3" "T * z4" \ "T - z0" "z0 - T" "T - z1" "z1 - T" "T - z2" "z2 - T" \ "T - z3" "z3 - T" "T - z4" "z4 - T" \ "T/z0" "z0/T" "T/z1" "z1/T" "T/z2" "z2/T" "T/z3" "z3/T" "T/z4" "z4/T" \ "T + #pixel" "T * #pixel" "T - #pixel" "#pixel - T" "T/#pixel" "#pixel/T" \ "z0 + #pixel" "z0 * #pixel" "z0 - #pixel" "#pixel - z0" "z0/#pixel" "#pixel/z0" \ "z1 + #pixel" "z1 * #pixel" "z1 - #pixel" "#pixel - z1" "z1/#pixel" "#pixel/z1" \ "z2 + #pixel" "z2 * #pixel" "z2 - #pixel" "#pixel - z2" "z2/#pixel" "#pixel/z2" \ "z3 + #pixel" "z3 * #pixel" "z3 - #pixel" "#pixel - z3" "z3/#pixel" "#pixel/z3" \ "z4 + #pixel" "z4 * #pixel" "z4 - #pixel" "#pixel - z4" "z4/#pixel" "#pixel/z4" default = 0 hint = "If 'Perlin Initial Point' is set to 'combination', then this setting \ defines which combination is used. T = Tracked Point" visible = @enableperlin && (@perlininitpoint == "combination") && \ (@numberpoints == 5) endparam param perlincriterion caption = "Initialization Criterion" enum = "minimum" "2nd min" "average" "maximum" "2nd max" "1st z" "2nd z" \ "Nth z" "penultimate z" "last z" default = 0 hint = "If 'Perlin Initial Point' is set to 'z', then this parameter determines \ how z is trapped and used." visible = @enableperlin && ((@perlininitpoint == "z") || (@perlininitpoint == "tracked point") \ || (@perlininitpoint == "combination")) endparam param perlinnthiter caption = "Iteration to Capture" default = 3 min = 3 hint = "If 'Initialization Criterion' is set to 'Nth z', then this parameter determines \ which z-value is trapped." visible = @enableperlin && (@perlincriterion == "Nth z") && \ ((@perlininitpoint == "z") || (@perlininitpoint == "tracked point") || (@perlininitpoint == "combination")) endparam param perlinavgiters caption = "Iterations to Average" default = 6 min = 1 hint = "If 'Initialization Criterion' is set to 'average', then this parameter determines \ how many iterations of z or Track Point are used. Min is 1; a value of 1 \ means to average ALL iterations." visible = @enableperlin && ((@perlininitpoint == "z") || (@perlininitpoint == "tracked point") \ || (@perlininitpoint == "combination")) && (@perlincriterion == "average") endparam param perlinavgstart caption = "Starting Iter to Average" default = 2 min = 1 hint = "If 'Initialization Criterion' is set to 'average', then this parameter determines \ the starting iteration to average." visible = @enableperlin && ((@perlininitpoint == "z") || (@perlininitpoint == "tracked point") \ || (@perlininitpoint == "combination")) && (@perlincriterion == "average") endparam param perlinaverage caption = "Noise Averaging" enum = "arithmetic" "quadratic" "cubic" "quartic" "general power" "geometric" \ "harmonic" "HG" "function average" default = 0 hint = "If 'Initialization Criterion' is set to 'average', then this parameter determines \ how the z-values are combined." visible = @enableperlin && (@perlincriterion == "average") && \ ((@perlininitpoint == "z") || (@perlininitpoint == "tracked point") || (@perlininitpoint == "combination")) endparam param perlinavgfn caption = "Noise Averaging Function" enum = "exp" "log" "sine" default = 0 hint = "If 'Type of Averaging' is set to 'Function Avg', then this is the function." visible = @enableperlin && (@perlinaverage == "function average") && \ (@perlincriterion == "average") && ((@perlininitpoint == "z") || (@perlininitpoint == \ "tracked point") || (@perlininitpoint == "combination")) endparam param perlinavgscale caption = "Average Scale Factor" default = 1.0 hint = "This parameter scales the input to the noise averaging function. For example, \ it functions as the frequency if 'Averaging Function' is set to 'sine'." visible = @enableperlin && (@perlinaverage == "function average") && \ (@perlincriterion == "average") && ((@perlininitpoint == "z") || (@perlininitpoint == \ "tracked point") || (@perlininitpoint == "combination")) endparam param perlinpower caption = "Averaging Power" default = 0.5 hint = "If 'Noise Averaging' is set to 'general power', then this parameter \ is the exponent used." visible = @enableperlin && (@perlincriterion == "average") && (@perlinaverage == "general power") \ && ((@perlininitpoint == "z") || (@perlininitpoint == "tracked point") || (@perlininitpoint == "combination")) endparam param perlinmutate caption = "Mutate Noise?" default = FALSE hint = "This setting provides an alternative set of inputs to the Perlin algorithm \ if enabled." visible = @enableperlin && ((@perlininitpoint == "z") || (@perlininitpoint == "tracked point") \ || (@perlininitpoint == "combination")) endparam param perlinmutstyle caption = "Mutant Style" enum = "antares" "rigel" "fomalhaut" "arcturus" "capella" "polaris" default = 0 hint = "This setting which alternative inputs are provided to the Perlin algorithm \ if enabled." visible = @enableperlin && ((@perlininitpoint == "z") || (@perlininitpoint == "tracked point") \ || (@perlininitpoint == "combination")) && @perlinmutate endparam param perlinaltmutant caption = "Alternative Mutant?" default = FALSE hint = "This setting provides an alternative set of inputs to the mutated noise \ if enabled." visible = @enableperlin && ((@perlininitpoint == "z") || (@perlininitpoint == "tracked point") \ || (@perlininitpoint == "combination")) && (@perlincriterion == "average") && @perlinmutate endparam param perlinscale caption = "Noise Scale" default = 0.3 hint = "The overall scale of the Perlin turbulence. This parameter scales the \ initial noise prior to the beginning of Perlin iterations." visible = @enableperlin endparam param perlinamount caption = "Noise Amount" default = 0.3 hint = "If Perlin noise is enabled, this parameter determines the overall \ perturbation of the color palette index. It scales the noise after \ the Perlin iterations are completed." visible = @enableperlin endparam param perlinadjustment caption = "Noise Adjustment" default = 1.0 hint = "This parameter is added to the final Perlin noise value \ just prior to combining it with the color index." visible = @enableperlin endparam param perlinoctaves caption = "Noise Octaves" default = 6 min = 1 hint = "The number of iterations of the Perlin noise function. Increasing this value \ generally increases the noise." visible = @enableperlin endparam param perlinfreq caption = "Noise Frequency" default = 0.4 hint = "Frequency multiplier for Perlin noise. Decreasing this value \ generally increases the noise." visible = @enableperlin endparam param perlinamplitude caption = "Noise Stepsize" default = 0.6 hint = "Scale (amplitude) step size for Perlin noise iterations. Increasing this value \ generally increases the noise." visible = @enableperlin endparam param perlinrotstep caption = "Noise Rotation Step" default = 0.0 hint = "The angle in degrees for noise function rotation after \ each Perlin iteration." visible = @enableperlin endparam param perlingridsize caption = "Grid Size?" enum = "16" "64" "256" "1024" default = 2 hint = "This parameter affects the graininess of the noise function." visible = @enableperlin endparam param perlingridstyle caption = "Grid Style?" enum = "Perlin" "topaz" "opal" "ruby" "emerald" "sapphire" default = 0 hint = "This parameter affects the randomness of the grid." visible = @enableperlin endparam param perlinrotation caption = "Noise Rotation" default = 0.0 hint = "Angular parameter for Perlin noise. The input point to the Perlin \ algorithm can be rotated by this amount." visible = @enableperlin endparam param perlinoffset caption = "Noise Offset" default = (0.0,0.0) hint = "Offset added to Perlin noise initialization. The input point to the Perlin \ algorithm can be translated by this value." visible = @enableperlin endparam param avgcolorwt caption = "Weight of Averaging Color" default = 0.5 hint = "This parameter weights the gradient from the tracked point averaging \ as it is blended with the Perlin noise." visible = @enableperlin endparam param perlincolorwt caption = "Weight of Perlin Color" default = 0.5 hint = "This parameter weights the gradient from the Perlin noise \ as it is blended with the tracked point averaging." visible = @enableperlin endparam param perlinfade caption = "Perlin Fade Function" enum = "poppy" "gardenia" "thistle" "dandelion" "dahlia" "honeysuckle" default = 0 hint = "This function smooths the gradient." visible = @enableperlin endparam param fadeadjust caption = "Perlin Fade Adjustment" default = 1.0 hint = "This parameter modifies some of the fade functions" visible = @enableperlin && (@perlinfade > 1) endparam param perlintransform caption = "Transform Perlin Input?" enum = "none" "circle" "diamond" "x-axis" default = 0 hint = "The input to the noise function can be transformed by this setting." visible = @enableperlin endparam param transformcombo caption = "Transform Type" enum = "trap" "sum" "difference 1" "difference 2" "product" "quotient 1" "quotient 2" \ "power 1" "power 2" "arithmetic average" "geometric average" default = 0 hint = "This setting determines how the transformed point is combined with the original \ noise input." visible = @enableperlin && (@perlintransform != "none") endparam param perlinradius caption = "Transform Scale" default = 1.0 hint = "If 'Transform Input' is set to 'circle', then this parameter determines \ the circle radius; etc." visible = @enableperlin && (@perlintransform != "none") endparam param perlincenter caption = "Transform Center" default = (0,0) hint = "If 'Transform Input' is set to 'circle', e.g., then this parameter determines \ the circle center; etc." visible = @enableperlin && (@perlintransform != "none") endparam param perlinseed caption = "Perlin Random Seed" default = 314159 hint = "This setting initializes the random number generator." visible = @enableperlin endparam heading caption = "Color Settings" text = "These parameters affect the final color index." expanded = FALSE endheading param colorwarp caption = "Color Modulation" enum = "none" "square" "square root" "power" "sine" "cosine" "exponential" "log" default = 0 hint = "This paramter affects how the color index is mapped to the averaging function." endparam param colorpower caption = "Color Power" default = 3.0 hint = "If 'Color Modulation' needs an exponent, then this is it." visible = @colorwarp == "power" endparam param colorfrequency caption = "Color Frequency" default = 1.0 hint = "If 'Color Modulation' needs a frequency, then this is it." visible = (@colorwarp == "sine") || (@colorwarp == "cosine") endparam param colorparam caption = "Color Parameter" default = 1.0 hint = "If 'Color Modulation' needs an extra parameter, then this is it." visible = (@colorwarp == "exponential") || (@colorwarp == "log") endparam heading caption = "Mandelbrot/Julia Settings" text = "These parameters should match the corresponding values of the fractal formula." expanded = FALSE endheading param bailout caption = "Bailout Value" default = 1e20 hint = "This parameter should match the bailout value set on the fractal formula tab. \ Use a high bailout value." endparam param power caption = "M/J Exponent" default = 2.0 hint = "This parameter should match the power on the fractal formula tab." endparam } Stripes+Perlin { ; Jussi Härkönen, 07-01-02 ; See Fibers and Things by Ron Barnett for a similar coloring ; for convergent fractals. ; ; TIA originally developed by Kerry Mitchell ; Curvature originally developed by Damien Jones ; ; 07-02-15 Added the interpolation mode parameter ; 07-03-07 Added the "None" interpolation mode ; 07-03-30 Added Skip iterations, seed (TIA only) and Mandel version (TIA only) ; parameters ; ; Perlin routines added by jam 24 Oct 2016. ; Thanks to Jussi for his kind permission to share this version of his formula ; in the UF public database! ; global: ; Precalculate the attenuation factor for attenuated sum float attenuationFactor = 1 - exp(-@attenuation) float lp = log(log(@bailout)) float twopi = 2 * #pi ; Perlin noise settings int perlinperms[2048] ; maximum grid size is 1024 float perlingrads[2048,2] int indexi = int indexj = int swapint = int tempint = 0 int seed = @perlinseed float tempfloat = 0.0 int tempint = 0 int gridfraction = int tempcount = 0 ; for @perlingridstyle 'sapphire' bool switch = FALSE int perlinarraysz = 0 if @perlingridsize == "16" perlinarraysz = 16 elseif @perlingridsize == "64" perlinarraysz = 64 elseif @perlingridsize == "256" perlinarraysz = 256 elseif @perlingridsize == "1024" perlinarraysz = 1024 endif ; @perlingridsize if @enableperlin ; Fill the first N permutation array elements with the consecutive integers 0 thru N-1. ; Simultaneously fill the first N gradient array elements with random gradient vectors, ; or with other gradient vectors depending upon parameter @perlingridstyle gridfraction = round(@perlingridsize/8) indexi = 0 while indexi < perlinarraysz perlinperms[indexi] = indexi indexj = 0 while indexj < 2 if @perlingridstyle == "Perlin" seed = random(seed) perlingrads[indexi, indexj] = seed/#randomrange ; gradient between -1 and 1 elseif @perlingridstyle == "topaz" if indexj == 0 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj elseif @perlingridstyle == "opal" if indexi%2 == 0 if indexj == 0 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj else if indexj == 1 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj endif ; indexi elseif @perlingridstyle == "ruby" if indexi%3 == 0 if indexj == 0 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj else if indexj == 1 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj endif ; indexi elseif @perlingridstyle == "emerald" if (indexi%4 == 0) || (indexi%4 == 3) if indexj == 0 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj elseif (indexi%4 == 1) || (indexi%4 == 2) if indexj == 0 perlingrads[indexi, indexj] = 1 else perlingrads[indexi, indexj] = -1 endif ; indexj endif ; indexi elseif @perlingridstyle == "sapphire" tempcount = tempcount + 1 if tempcount > gridfraction ; reset count and toggle alternation flag tempcount = 1 switch = !switch endif ; tempcount if switch if indexj == 0 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj else if indexj == 0 perlingrads[indexi, indexj] = 1 else perlingrads[indexi, indexj] = -1 endif ; indexj endif ; switch endif ; @perlingridstyle indexj = indexj + 1 endwhile ; indexj ; now normalize the gradient vectors tempfloat = sqrt(sqr(perlingrads[indexi,0]) + sqr(perlingrads[indexi,1])) ; gradient magnitude perlingrads[indexi,0] = perlingrads[indexi,0]/tempfloat perlingrads[indexi,1] = perlingrads[indexi,1]/tempfloat indexi = indexi + 1 endwhile ; indexi ; now scramble the N entries so that the integers 0 thru N-1 are in a random order indexi = perlinarraysz repeat indexj = indexi indexi = indexi - 1 seed = random(seed) tempint = abs(seed % indexj) swapint = perlinperms[indexi] perlinperms[indexi]= perlinperms[tempint] perlinperms[tempint] = swapint until indexi == 1 ; repeat indexj ; now duplicate the N array entries into array elements N - (2N-1) indexi = 0 while indexi < perlinarraysz perlinperms[indexi + perlinarraysz] = perlinperms[indexi] indexj = 0 while indexj < 2 perlingrads[indexi + perlinarraysz, indexj] = perlingrads[indexi, indexj] indexj = indexj + 1 endwhile ; indexj indexi = indexi + 1 endwhile ; indexi endif ; @enableperlin init: int iteration = 0 float tempcolor = 0.0 ; Sums (needed for smooth interpolation) float sum = 0; S(k) float sum1 = 0; S(k-1) float sum2 = 0; S(k-2) float sum3 = 0; S(k-3) ; k'th term in the sum float Tk = 0 ; |C| or |seed| for TIA float cAbs = 0 if (@usePixel) cAbs = cabs(#pixel) else cAbs = cabs(@seed) endif float znAbs = 0 ; Array for previous iterations. Curvature needs current and 2 previous ; values so always reserve at least 3 iterates. First is newest (z(k)) int numZPrev = @skipIter + 3 complex zPrevArray[@skipIter + 3] ; Fill with zeros int k = 0 while (k < numZPrev) zPrevArray[k] = 0 k = k + 1 endwhile ; Shortcut values of old z for TIA and Curvature complex z = (0,0) complex zPrev = (0,0) complex zPrev2 = (0,0) ; Fractional iteration count float il = 0 ; Assigned in the final section ; Perlin noise variables int gridx0 = int gridx1 = int gridy0 = int gridy1 = 0 int grad00 = int grad10 = int grad01 = int grad11 = 0 float fracx0 = float fracx1 = float fracy0 = float fracy1 = 0.0 float xsmoothing = float ysmoothing = 0.0 float temp1 = float temp2 = 0.0 float noisesum = float noiseamplitude = 0.0 complex zperlin = complex zrotate = complex zunit = (0,0) float utemp = float vtemp = float atemp = float btemp = 0.0 float zpart = 0.0 int perlinmodulus = 0 complex perlinzsave = complex perlinzsave2 = complex perlinztest = (0,0) float perlinfsave = float perlinftest = 0.0 float perlinfsave2 = 0.0 if (@perlinaverage == "geometric") || (@perlinaverage == "HG") ; initialize for multiplicative avgs perlinfsave = 1.0 perlinzsave = (1,0) endif ; @perlinaverage bool perlintest = FALSE int perlincount = 0 if (@perlincriterion == "minimum") || (@perlincriterion == "2nd min") perlinfsave = 1e20 perlinfsave2 = 1e20 endif ; @perlincriterion loop: ; k:th iteration, ranging from 1 to N-1 ; z(N) is first outside bailout, and |z|^2 > bailout ; (Note that UF evaluates "|z|" as the square of magnitude, |z|^2) iteration = iteration + 1 if (@skipIter == 0) zPrev2 = zPrev zPrev = z z = #z else ; @skipiter > 0 ; Update preceding terms for next iteration k = numZPrev - 1 while (k > 0) zPrevArray[k] = zPrevArray[k-1] k = k - 1 endwhile zPrevArray[0] = #z ; Get old z z = zPrevArray[@skipIter] zPrev = zPrevArray[@skipIter+1] zPrev2 = zPrevArray[@skipIter+2] endif if (iteration > @skipIter) if (@coloring == "Stripes") ; Angle dependent component in [-1,1] float TkAng = sin(@angularFrequency * atan2(z) + @angularOffset) ; Radius-dependent component in [-1,1] float TkRad = sin(@circularFrequency * log((cabs(z))) + @circularOffset) ; The weighted sum of radius and angle dependent terms is in [-1,1] ; Scale and translate it to [0,1] Tk = 0.5 + 0.5 * ((1 - @circularWeight) * TkAng + @circularWeight * TkRad) elseif (@coloring == "Curvature") ; Skip two first iterations in order to get two nonzero previous values if (iteration > @skipIter + 2) q = (z - zPrev) / (zPrev - zPrev2) Tk = (abs(atan2(q)) / (pi)) else Tk = 0 endif else ; "TIA" ; Skip first iteration if (iteration > 1 + @skipIter) ; |z(k-1)^n| if (@usePixel) ; Use pixel value znAbs = cabs(z - #pixel) else ; Use seed specified by the user znAbs = cabs(z - @seed) endif ; Bounds: ; m(k) = ||z(k-1)|^n - |c|| float lowBound = abs(znAbs - cAbs) ; M(k) = |z(k-1)|^n + |c| float upBound = znAbs + cAbs ; T(k) Tk = (cabs(z) - lowBound) / (upBound - lowBound) endif endif ; Update previous sums sum3 = sum2 sum2 = sum1 sum1 = sum ; Calculate S(k) if (@attenuate) sum = attenuationFactor*sum + Tk else sum = sum + Tk endif endif ; Make some Perlin calculations if enabled and necessary if @enableperlin if @perlininitpoint == "z0" perlinztest = z perlintest = TRUE elseif @perlininitpoint == "z1" perlinztest = zPrev perlintest = TRUE elseif @perlininitpoint == "z2" perlinztest = zPrev2 perlintest = TRUE elseif @perlininitpoint == "combination" perlintest = TRUE if @perlincombo == "z0 + z1" perlinztest = z + zPrev elseif @perlincombo == "z0 * z1" perlinztest = z * zPrev elseif @perlincombo == "z0 - z1" perlinztest = z - zPrev elseif @perlincombo == "z1 - z0" perlinztest = zPrev - z elseif @perlincombo == "z0/z1" perlinztest = z / zPrev elseif @perlincombo == "z1/z0" perlinztest = zPrev / z elseif @perlincombo == "z0 + z2" perlinztest = z + zPrev2 elseif @perlincombo == "z0 * z2" perlinztest = z * zPrev2 elseif @perlincombo == "z0 - z2" perlinztest = z - zPrev2 elseif @perlincombo == "z2 - z0" perlinztest = zPrev2 - z elseif @perlincombo == "z0/z2" perlinztest = z / zPrev2 elseif @perlincombo == "z2/z0" perlinztest = zPrev2 / z elseif @perlincombo == "z1 + z2" perlinztest = zPrev + zPrev2 elseif @perlincombo == "z1 * z2" perlinztest = zPrev * zPrev2 elseif @perlincombo == "z1 - z2" perlinztest = zPrev - zPrev2 elseif @perlincombo == "z2 - z1" perlinztest = zPrev2 - zPrev elseif @perlincombo == "z1/z2" perlinztest = zPrev / zPrev2 elseif @perlincombo == "z2/z1" perlinztest = zPrev2 / zPrev elseif @perlincombo == "z0 + #pixel" perlinztest = z + #pixel elseif @perlincombo == "z0 * #pixel" perlinztest = z * #pixel elseif @perlincombo == "z0 - #pixel" perlinztest = z - #pixel elseif @perlincombo == "#pixel - z0" perlinztest = #pixel - z elseif @perlincombo == "z0/#pixel" perlinztest = z / #pixel elseif @perlincombo == "#pixel/z0" perlinztest = #pixel / z elseif @perlincombo == "z1 + #pixel" perlinztest = zPrev + #pixel elseif @perlincombo == "z1 * #pixel" perlinztest = zPrev * #pixel elseif @perlincombo == "z1 - #pixel" perlinztest = zPrev - #pixel elseif @perlincombo == "#pixel - z1" perlinztest = #pixel - zPrev elseif @perlincombo == "z1/#pixel" perlinztest = zPrev / #pixel elseif @perlincombo == "#pixel/z1" perlinztest = #pixel / zPrev elseif @perlincombo == "z2 + #pixel" perlinztest = zPrev2 + #pixel elseif @perlincombo == "z2 * #pixel" perlinztest = zPrev2 * #pixel elseif @perlincombo == "z2 - #pixel" perlinztest = zPrev2 - #pixel elseif @perlincombo == "#pixel - z2" perlinztest = #pixel - zPrev2 elseif @perlincombo == "z2/#pixel" perlinztest = zPrev2 / #pixel elseif @perlincombo == "#pixel/z2" perlinztest = #pixel / zPrev2 endif ; @perlincombo endif ; @perlininitpoint if perlintest if @perlincriterion == "average" if iteration >= (@perlinavgstart - 1) if (@perlinavgiters == 1) || ( perlincount < @perlinavgiters) perlincount = perlincount + 1 if @perlinaltmutant perlinftest = cabs(perlinztest) endif; @perlinaltmutant if @perlinaverage == "arithmetic" perlinfsave = perlinfsave + perlinftest perlinzsave = perlinzsave + perlinztest elseif @perlinaverage == "quadratic" perlinfsave = perlinfsave + sqr(perlinftest) perlinzsave = perlinzsave + sqr(perlinztest) elseif @perlinaverage == "cubic" perlinfsave = perlinfsave + perlinftest*sqr(perlinftest) perlinzsave = perlinzsave + perlinztest*sqr(perlinztest) elseif @perlinaverage == "quartic" perlinfsave = perlinfsave + sqr(sqr(perlinftest)) perlinzsave = perlinzsave + sqr(sqr(perlinztest)) elseif @perlinaverage == "general power" perlinfsave = perlinfsave + perlinftest^@perlinpower perlinzsave = perlinzsave + perlinztest^@perlinpower elseif @perlinaverage == "geometric" perlinfsave = perlinfsave * perlinftest perlinzsave = perlinzsave * perlinztest elseif @perlinaverage == "harmonic" perlinfsave = perlinfsave + 1/perlinftest perlinzsave = perlinzsave + 1/perlinztest elseif @perlinaverage == "HG" perlinfsave = perlinfsave * 1/perlinftest perlinzsave = perlinzsave * 1/perlinztest elseif @perlinaverage == "function average" if @perlinavgfn == "exp" perlinfsave = perlinfsave + exp(@perlinavgscale*perlinftest) perlinzsave = perlinzsave + exp(@perlinavgscale*perlinztest) elseif @perlinavgfn == "log" perlinfsave = perlinfsave + log(@perlinavgscale*perlinftest) perlinzsave = perlinzsave + log(@perlinavgscale*perlinztest) elseif @perlinavgfn == "sine" perlinfsave = perlinfsave + sin(@perlinavgscale*perlinftest) perlinzsave = perlinzsave + sin(@perlinavgscale*perlinztest) endif ; @perlinavgfn endif ; @perlinaverage endif ; @perlinavgiters endif ; iter elseif @perlincriterion == "minimum" perlinftest = cabs(perlinztest) if perlinftest < perlinfsave perlinfsave = perlinftest perlinzsave = perlinztest endif ; perlinftest elseif @perlincriterion == "2nd min" perlinftest = cabs(perlinztest) if perlinftest < perlinfsave2 ; save2 holds min value, save holds 2nd min perlinfsave = perlinfsave2 perlinfsave2 = perlinftest perlinzsave = perlinzsave2 perlinzsave2 = perlinztest endif ; perlinftest elseif @perlincriterion == "maximum" perlinftest = cabs(perlinztest) if perlinftest > perlinfsave perlinfsave = perlinftest perlinzsave = perlinztest endif ; perlinftest elseif @perlincriterion == "2nd max" perlinftest = cabs(perlinztest) if perlinftest > perlinfsave2 ; save2 holds max value, save holds 2nd max perlinfsave = perlinfsave2 perlinfsave2 = perlinftest perlinzsave = perlinzsave2 perlinzsave2 = perlinztest endif ; perlinftest elseif @perlincriterion == "1st z" if iteration == @skipIter + 1 perlinfsave = cabs(perlinztest) perlinzsave = perlinztest endif ; iteration elseif @perlincriterion == "2nd z" if iteration == @skipIter + 2 perlinfsave = cabs(perlinztest) perlinzsave = perlinztest endif ; iteration elseif @perlincriterion == "Nth z" if iteration == @skipIter + @perlinnthiter perlinfsave = cabs(perlinztest) perlinzsave = perlinztest endif ; iteration elseif @perlincriterion == "last z" perlinfsave = cabs(perlinztest) perlinzsave = perlinztest elseif @perlincriterion == "penultimate z" perlinfsave = perlinfsave2 perlinzsave = perlinzsave2 perlinfsave2 = cabs(perlinztest) perlinzsave2 = perlinztest endif ; @perlincriterion endif ; perlintest endif ; @enableperlin final: if (@autoPower) ; Approximate power if (@skipiter > 0) z = zPrevArray[0] endif float power = log(|#z|)/log(|z|) il = real(1 / log(power)) else ; Use user-specified power il = 1/log(@power) endif ; Calculate the decimal part of iteration count ; Note that "log(|#z|)" evaluates to 2*log(|#z|) float u = il*(lp - log(log(|#z|))) + 1 ; Calculate average sums if (@attenuate) ; Normalize the averages so that the steady-state value is in [0,1] sum = sum * (1 - attenuationFactor) sum1 = sum1 * (1 - attenuationFactor) sum2 = sum2 * (1 - attenuationFactor) sum3 = sum3 * (1 - attenuationFactor) else ; Calculate average sum = sum / #numiter if (#numiter > 3) sum3 = sum3 / (#numiter - 3) endif if (#numiter > 2) sum2 = sum2 / (#numiter - 2) endif if (#numiter > 1) sum1 = sum1 / (#numiter - 1) endif endif ; Calculate the index value if (@interpolation == "Smooth") ; Interpolate smoothly using a Catmull-Rom spline float u2 = u^2 float u3 = u * u2 ; Add 1 to the index in order to avoid negative index values tempcolor = 1 + 0.5 *((-sum3 + 3*sum2 - 3*sum1 + sum)*u3 + (2*sum3 - 5*sum2 + 4*sum1 - sum)*u2 + (-sum3 + sum1)*u + 2*sum2) elseif (@interpolation == "Linear") ; Interpolate linearly between the sums tempcolor = u*sum + (1-u) * sum1 else ; none tempcolor = sum endif ; Perlin noise modulation if @enableperlin ; first, determine what initialization to use if @perlininitpoint == "pixel" zperlin = #pixel elseif @perlininitpoint == "coloring" zperlin = tempcolor + flip(sum) elseif @perlininitpoint == "test result" zperlin = sum + flip(sum2) else if @perlincriterion != "average" zperlin = perlinzsave else if @perlinaverage == "arithmetic" perlinfsave = perlinfsave/perlincount perlinzsave = perlinzsave/perlincount elseif @perlinaverage == "quadratic" perlinfsave = sqrt(perlinfsave/perlincount) perlinzsave = sqrt(perlinzsave/perlincount) elseif @perlinaverage == "cubic" perlinfsave = (perlinfsave/perlincount)^(1/3) perlinzsave = (perlinzsave/perlincount)^(1/3) elseif @perlinaverage == "quartic" perlinfsave = (perlinfsave/perlincount)^(1/4) perlinzsave = (perlinzsave/perlincount)^(1/4) elseif @perlinaverage == "general power" perlinfsave = (perlinfsave/perlincount)^(1/@perlinpower) perlinzsave = (perlinzsave/perlincount)^(1/@perlinpower) elseif @perlinaverage == "geometric" perlinfsave = perlinfsave^(1/perlincount) perlinzsave = perlinzsave^(1/perlincount) elseif @perlinaverage == "harmonic" perlinfsave = perlincount/perlinfsave perlinzsave = perlincount/perlinzsave elseif @perlinaverage == "HG" perlinfsave = 1/((perlinfsave)^(1/perlincount)) perlinzsave = 1/((perlinzsave)^(1/perlincount)) elseif @perlinaverage == "function average" if @perlinavgfn == "exp" perlinfsave = log(perlinfsave/perlincount) perlinzsave = log(perlinzsave/perlincount) elseif @perlinavgfn == "log" perlinfsave = exp(perlinfsave/perlincount) perlinzsave = exp(perlinzsave/perlincount) elseif @perlinavgfn == "sine" perlinfsave = asin(perlinfsave/perlincount) perlinzsave = asin(perlinzsave/perlincount) if perlinfsave < 0 perlinfsave = perlinfsave + #pi endif ; perlinfsave endif ; @perlinavgfn endif ; @perlinaverage zperlin = perlinzsave endif ; @perlincriterion if @perlinmutate if @perlinmutstyle == "antares" zperlin = perlinfsave + flip(real(perlinzsave)) elseif @perlinmutstyle == "fomalhaut" zperlin = perlinfsave + flip(imag(perlinzsave)) elseif @perlinmutstyle == "rigel" zperlin = perlinfsave + flip(cabs(perlinzsave)) elseif @perlinmutstyle == "arcturus" zperlin = cabs(#pixel) + flip(imag(perlinzsave)) elseif @perlinmutstyle == "capella" zperlin = testresult + flip(perlinfsave) elseif @perlinmutstyle == "polaris" zperlin = perlinfsave + flip(oldresult) endif ; @perlinmutstyle endif ; @perlinmutate endif ; @perlininitpoint if @perlintransform != "none" if @perlintransform == "circle" ztemp = zperlin - @perlincenter temp2 = atan2(ztemp) if temp2 < 0 temp2 = temp2 + twopi endif ; atan2 temp1 = @perlinradius * cos(temp2) ; x-coordinate on circle temp2 = @perlinradius * sin(temp2) ; y-coordinate ztemp = temp1 + flip(temp2) elseif @perlintransform == "diamond" ztemp = zperlin - @perlincenter temp2 = atan2(ztemp) ; angle if temp2 < 0 temp2 = temp2 + twopi endif ; atan2 temp1 = cos(temp2) ; x-coordinate if temp2 <= halfpi temp2 = 1-temp1 ; y-coordinate elseif temp2 <= #pi temp2 = 1+temp1 elseif temp2 <= threehalvespi temp2 = -temp1-1 else temp2 = temp1-1 endif ; temp2 ztemp = @perlinradius * (temp1 + flip(temp2)) elseif @perlintransform == "x-axis" ztemp = @perlinradius * real(zperlin-@perlincenter) + flip(0) endif ; @perlintransform if @transformcombo == "trap" zperlin = ztemp elseif @transformcombo == "sum" zperlin = zperlin + ztemp elseif @transformcombo == "difference 1" zperlin = zperlin - ztemp elseif @transformcombo == "difference 2" zperlin = ztemp - zperlin elseif @transformcombo == "product" zperlin = zperlin * ztemp elseif @transformcombo == "quotient 1" zperlin = zperlin / ztemp elseif @transformcombo == "quotient 2" zperlin = ztemp / zperlin elseif @transformcombo == "power 1" zperlin = zperlin ^ ztemp elseif @transformcombo == "power 2" zperlin = ztemp ^ zperlin elseif @transformcombo == "arithmetic average" zperlin = (zperlin + ztemp) / 2 elseif @transformcombo == "geometric average" zperlin = (zperlin * ztemp) ^ (1/2) endif ; @transformcombo endif ; @perlintransform altindex = 0 noisesum = 0.0 noiseamplitude = 1.0 zrotate = (0,1)^(@perlinrotation/90) zunit = (0,1)^(1/5) * (0,1)^(@perlinrotstep/90) zperlin = zperlin * @perlinscale * zrotate + @perlinoffset perlinmodulus = perlinarraysz * 16 while altindex < @perlinoctaves zpart = real(zperlin) % perlinmodulus + perlinmodulus gridx0 = floor(zpart) % perlinarraysz gridx1 = (gridx0 + 1) % perlinarraysz fracx0 = zpart - floor(zpart) fracx1 = fracx0 - 1 zpart = imag(zperlin) % perlinmodulus + perlinmodulus gridy0 = floor(zpart) % perlinarraysz gridy1 = (gridy0 + 1) % perlinarraysz fracy0 = zpart - floor(zpart) fracy1 = fracy0 - 1 grad00 = perlinperms[perlinperms[gridx0] + gridy0] grad10 = perlinperms[perlinperms[gridx1] + gridy0] grad01 = perlinperms[perlinperms[gridx0] + gridy1] grad11 = perlinperms[perlinperms[gridx1] + gridy1] if @perlinfade == "poppy" xsmoothing = sqr(fracx0) * (3-2*fracx0) ysmoothing = sqr(fracy0) * (3-2*fracy0) elseif @perlinfade == "gardenia" temp1 = sqr(fracx0) temp2 = fracx0*temp1 xsmoothing = 6*temp1*temp2 - 15*temp1*temp1 + 10*temp2 temp1 = sqr(fracy0) temp2 = fracy0*temp1 ysmoothing = 6*temp1*temp2 - 15*temp1*temp1 + 10*temp2 elseif @perlinfade == "thistle" xsmoothing = sqrt(@fadeadjust * abs(fracx0)) ysmoothing = sqrt(@fadeadjust * abs(fracy0)) elseif @perlinfade == "dandelion" xsmoothing = sin(@fadeadjust * #pi * fracx0) ysmoothing = sin(@fadeadjust * #pi * fracy0) elseif @perlinfade == "dahlia" xsmoothing = exp(@fadeadjust * fracx0) ysmoothing = exp(@fadeadjust * fracy0) elseif @perlinfade == "honeysuckle" xsmoothing = log(@fadeadjust * (abs(fracx0)+1)) ysmoothing = log(@fadeadjust * (abs(fracy0)+1)) endif ; @perlinfade utemp = fracx0 * perlingrads[grad00,0] + fracy0 * perlingrads[grad00,1] vtemp = fracx1 * perlingrads[grad10,0] + fracy0 * perlingrads[grad10,1] atemp = utemp + xsmoothing*(vtemp-utemp) utemp = fracx0 * perlingrads[grad01,0] + fracy1 * perlingrads[grad01,1] vtemp = fracx1 * perlingrads[grad11,0] + fracy1 * perlingrads[grad11,1] btemp = utemp + xsmoothing*(vtemp-utemp) noisesum = noisesum + (atemp + ysmoothing*(btemp-atemp)) * noiseamplitude zperlin = zperlin * zunit/@perlinfreq noiseamplitude = noiseamplitude * @perlinamplitude altindex = altindex + 1 endwhile ; altindex tempcolor = @avgcolorwt*tempcolor + (noisesum + @perlinadjustment)*@perlinamount*@perlincolorwt endif ; @enableperlin #index = tempcolor default: title = "Stripes+Perlin" param coloring caption = "Coloring mode" default = 0 enum = "Stripes" "TIA" "Curvature" hint = "Specifies the coloring algorithm." endparam param usePixel caption = "Mandel version" default = false visible = @coloring == "TIA" hint = "Specifies whether to use the algorithm adapted \ to Julia or Mandelbrot sets" endparam param seed caption = "Seed" default = (0.5,0.25) visible = (@coloring == "TIA") && (@usePixel == false) hint = "Seed of the Julia set." endparam param interpolation caption = "Interpolation" default = 0 enum = "Linear" "Smooth" "None" hint = "Specifies the interpolation method." endparam float param circularWeight caption = "Circle weight" default = 0.0 visible = (@coloring == "Stripes") min = 0 max = 1 hint = "Weight of circular and radial components. Weight = 0 shows only \ stripes, whereas weight = 1 shows only circles." endparam float param circularFrequency caption = "Circle frequency" default = 5.0 visible = (@coloring == "Stripes") hint = "Specifies the density of circles. Use integer values for smooth results." endparam float param circularOffset caption = "Circle offset" default = 0.0 visible = (@coloring == "Stripes") hint = "Circle offset given in radians." endparam float param angularFrequency caption = "Stripe density" default = 5.0 visible = (@coloring == "Stripes") hint = "Specifies the density of stripes. Use integer values for smooth results." endparam float param angularOffset caption = "Stripe offset" default = 0.0 visible = (@coloring == "Stripes") hint = "Stripe offset given in radians." endparam int param skipIter caption = "Skip iterations" default = 0 hint = "Excludes a given number of iterations from the end of the orbit." endparam ; Fractional iteration count parameters float param bailout caption = "Bailout" default = 1e20 min = 1 hint = "Bail-out value used by the fractal formula. Use large bailouts for \ best results." endparam bool param autoPower caption = "Auto-power" default = false hint = "Approximate the power numerically. This gives smooth results for \ divergent fractal formulas different from z^n + C." endparam float param power caption = "Exponent" default = 2.0 visible = (@autoPower == false) hint = "The fractal formula exponent." endparam ; Attenuation parameters bool param attenuate caption = "Moving average" default = false hint = "Use moving average instead of average. This may make the coloring \ structure appear clearer (especially with TIA), but may also make busy \ areas to appear flat." endparam float param attenuation caption = "Filter factor" default = 2 visible = @attenuate min = 0 hint = "Specifies the moving average strength. Values close to 0 cause the last \ terms to be weighted creating results similar to Cilia. Large values \ make the sum look more like the usual average." endparam ; Perlin noise parameters heading caption = "Perlin Noise Settings" text = "These parameters adjust the Perlin noise if it is enabled." expanded = TRUE endheading param enableperlin caption = "Enable Perlin Noise?" default = FALSE hint = "If enabled, the coloring is modified by the addition of Perlin noise variations." endparam param perlininitpoint caption = "Perlin Initial Point" enum = "z0" "z1" "z2" "pixel" "coloring" "test result" "combination" default = 0 hint = "This parameter determines the initial point input to the Perlin algorithm. \ z0 = current iterate (#z), z1 = previous z, z2 = 2nd-previous z." visible = @enableperlin endparam param perlincombo caption = "Z Combination" enum = "z0 + z1" "z0 * z1" "z0 - z1" "z1 - z0" "z0/z1" "z1/z0" \ "z0 + z2" "z0 * z2" "z0 - z2" "z2 - z0" "z0/z2" "z2/z0" \ "z1 + z2" "z1 * z2" "z1 - z2" "z2 - z1" "z1/z2" "z2/z1" \ "z0 + #pixel" "z0 * #pixel" "z0 - #pixel" "#pixel - z0" "z0/#pixel" "#pixel/z0" \ "z1 + #pixel" "z1 * #pixel" "z1 - #pixel" "#pixel - z1" "z1/#pixel" "#pixel/z1" \ "z2 + #pixel" "z2 * #pixel" "z2 - #pixel" "#pixel - z2" "z2/#pixel" "#pixel/z2" default = 0 hint = "If 'Perlin Initial Point' is set to 'combination', then this setting \ defines which combination is used. z0 is current #z, z1 is 1st-previous z, \ z2 is 2nd-previous z." visible = @enableperlin && (@perlininitpoint == "combination") endparam param perlincriterion caption = "Initialization Criterion" enum = "minimum" "2nd min" "average" "maximum" "2nd max" "1st z" "2nd z" \ "Nth z" "penultimate z" "last z" default = 0 hint = "If 'Perlin Initial Point' is set to 'z' or 'combination', then this parameter determines \ how z is trapped and used." visible = @enableperlin && ((@perlininitpoint == "z0") || (@perlininitpoint == "z1") || \ (@perlininitpoint == "z2") || (@perlininitpoint == "combination")) endparam param perlinnthiter caption = "Iteration to Capture" default = 3 min = 3 hint = "If 'Initialization Criterion' is set to 'Nth z', then this parameter determines \ which z-value is trapped." visible = @enableperlin && (@perlincriterion == "Nth z") && \ ((@perlininitpoint == "z0") || (@perlininitpoint == "z1") || \ (@perlininitpoint == "z2") || (@perlininitpoint == "combination")) endparam param perlinavgiters caption = "Iterations to Average" default = 6 min = 1 hint = "If 'Initialization Criterion' is set to 'average', then this parameter determines \ how many iterations of z are used. Min is 1; a value of 1 \ means to average ALL iterations." visible = @enableperlin && ((@perlininitpoint == "z0") || (@perlininitpoint == "z1") || \ (@perlininitpoint == "z2") || (@perlininitpoint == "combination")) && (@perlincriterion == "average") endparam param perlinavgstart caption = "Starting Iter to Average" default = 2 min = 1 hint = "If 'Initialization Criterion' is set to 'average', then this parameter determines \ the starting iteration to average." visible = @enableperlin && ((@perlininitpoint == "z0") || (@perlininitpoint == "z1") || \ (@perlininitpoint == "z2") || (@perlininitpoint == "combination")) && (@perlincriterion == "average") endparam param perlinaverage caption = "Noise Averaging" enum = "arithmetic" "quadratic" "cubic" "quartic" "general power" "geometric" \ "harmonic" "HG" "function average" default = 0 hint = "If 'Initialization Criterion' is set to 'average', then this parameter determines \ how the z-values are combined." visible = @enableperlin && (@perlincriterion == "average") && \ ((@perlininitpoint == "z0") || (@perlininitpoint == "z1") || \ (@perlininitpoint == "z2") || (@perlininitpoint == "combination")) endparam param perlinavgfn caption = "Noise Averaging Function" enum = "exp" "log" "sine" default = 0 hint = "If 'Type of Averaging' is set to 'Function Avg', then this is the function." visible = @enableperlin && (@perlinaverage == "function average") && \ (@perlincriterion == "average") && ((@perlininitpoint == "z0") || (@perlininitpoint == "z1") || \ (@perlininitpoint == "z2") || (@perlininitpoint == "combination")) endparam param perlinavgscale caption = "Average Scale Factor" default = 1.0 hint = "This parameter scales the input to the noise averaging function. For example, \ it functions as the frequency if 'Averaging Function' is set to 'sine'." visible = @enableperlin && (@perlinaverage == "function average") && \ (@perlincriterion == "average") && ((@perlininitpoint == "z0") || (@perlininitpoint == "z1") || \ (@perlininitpoint == "z2") || (@perlininitpoint == "combination")) endparam param perlinpower caption = "Averaging Power" default = 0.5 hint = "If 'Noise Averaging' is set to 'general power', then this parameter \ is the exponent used." visible = @enableperlin && (@perlincriterion == "average") && (@perlinaverage == "general power") \ && ((@perlininitpoint == "z0") || (@perlininitpoint == "z1") || \ (@perlininitpoint == "z2") || (@perlininitpoint == "combination")) endparam param perlinmutate caption = "Mutate Noise?" default = FALSE hint = "This setting provides an alternative set of inputs to the Perlin algorithm \ if enabled." visible = @enableperlin && ((@perlininitpoint == "z0") || (@perlininitpoint == "z1") || \ (@perlininitpoint == "z2") || (@perlininitpoint == "combination")) endparam param perlinmutstyle caption = "Mutant Style" enum = "antares" "rigel" "fomalhaut" "arcturus" "capella" "polaris" default = 0 hint = "This setting which alternative inputs are provided to the Perlin algorithm \ if enabled." visible = @enableperlin && ((@perlininitpoint == "z0") || (@perlininitpoint == "z1") || \ (@perlininitpoint == "z2") || (@perlininitpoint == "combination")) && @perlinmutate endparam param perlinaltmutant caption = "Alternative Mutants?" default = FALSE hint = "This setting provides an alternative set of inputs to the noise mutation \ if enabled." visible = @enableperlin && @perlinmutate && ((@perlininitpoint == "z0") || (@perlininitpoint == "z1") || \ (@perlininitpoint == "z2") || (@perlininitpoint == "combination")) && (@perlincriterion == "average") endparam param perlinscale caption = "Noise Scale" default = 0.3 hint = "The overall scale of the Perlin turbulence. This parameter scales the \ initial noise prior to the beginning of Perlin iterations." visible = @enableperlin endparam param perlinamount caption = "Noise Amount" default = 0.3 hint = "If Perlin noise is enabled, this parameter determines the overall \ perturbation of the color palette index. It scales the noise after \ the Perlin iterations are completed." visible = @enableperlin endparam param perlinadjustment caption = "Noise Adjustment" default = 1.0 hint = "This parameter is added to the final Perlin noise value \ just prior to combining it with the color index." visible = @enableperlin endparam param perlinoctaves caption = "Noise Octaves" default = 6 min = 1 hint = "The number of iterations of the Perlin noise function. Increasing this value \ generally increases the noise." visible = @enableperlin endparam param perlinfreq caption = "Noise Frequency" default = 0.4 hint = "Frequency multiplier for Perlin noise. Decreasing this value \ generally increases the noise." visible = @enableperlin endparam param perlinamplitude caption = "Noise Stepsize" default = 0.6 hint = "Scale (amplitude) step size for Perlin noise iterations. Increasing this value \ generally increases the noise." visible = @enableperlin endparam param perlinrotstep caption = "Noise Rotation Step" default = 0.0 hint = "The angle in degrees for noise function rotation after \ each Perlin iteration." visible = @enableperlin endparam param perlingridsize caption = "Grid Size?" enum = "16" "64" "256" "1024" default = 2 hint = "This parameter affects the graininess of the noise function." visible = @enableperlin endparam param perlingridstyle caption = "Grid Style?" enum = "Perlin" "topaz" "opal" "ruby" "emerald" "sapphire" default = 0 hint = "This parameter affects the randomness of the grid." visible = @enableperlin endparam param perlinrotation caption = "Noise Rotation" default = 0.0 hint = "Angular parameter for Perlin noise. The input point to the Perlin \ algorithm can be rotated by this amount." visible = @enableperlin endparam param perlinoffset caption = "Noise Offset" default = (0.0,0.0) hint = "Offset added to Perlin noise initialization. The input point to the Perlin \ algorithm can be translated by this value." visible = @enableperlin endparam param avgcolorwt caption = "Weight of Stripes Coloring" default = 0.5 hint = "This parameter weights the gradient from the Stripes/Curvature/TIA averaging \ as it is blended with the Perlin noise." visible = @enableperlin endparam param perlincolorwt caption = "Weight of Perlin Coloring" default = 0.5 hint = "This parameter weights the gradient from the Perlin noise \ as it is blended with the Stripes/Curvature/TIA averaging." visible = @enableperlin endparam param perlinfade caption = "Perlin Fade Function" enum = "poppy" "gardenia" "thistle" "dandelion" "dahlia" "honeysuckle" default = 0 hint = "This function smooths the gradient." visible = @enableperlin endparam param fadeadjust caption = "Perlin Fade Adjustment" default = 1.0 hint = "This parameter modifies some of the fade functions" visible = @enableperlin && (@perlinfade > 1) endparam param perlintransform caption = "Transform Perlin Input?" enum = "none" "circle" "diamond" "x-axis" default = 0 hint = "The input to the noise function can be transformed by this setting." visible = @enableperlin endparam param transformcombo caption = "Transform Type" enum = "trap" "sum" "difference 1" "difference 2" "product" "quotient 1" "quotient 2" \ "power 1" "power 2" "arithmetic average" "geometric average" default = 0 hint = "This setting determines how the transformed point is combined with the original \ noise input." visible = @enableperlin && (@perlintransform != "none") endparam param perlinradius caption = "Transform Scale" default = 1.0 hint = "If 'Transform Input' is set to 'circle', then this parameter determines \ the circle radius; etc." visible = @enableperlin && (@perlintransform != "none") endparam param perlincenter caption = "Transform Center" default = (0,0) hint = "If 'Transform Input' is set to 'circle', e.g., then this parameter determines \ the circle center; etc." visible = @enableperlin && (@perlintransform != "none") endparam param perlinseed caption = "Perlin Random Seed" default = 314159 hint = "This setting initializes the random number generator." visible = @enableperlin endparam } jam-biomorph { ; Joseph A. Maddry ; January 2, 2019 ; global: float twopi = 1/(2 * #pi) ; use reciprocal for speed-up float fourpi = twopi/2 ; ditto float scaledcolor2 = @scalefactor * twopi float scaledcolor4 = @scalefactor * fourpi init: float tempcolor = float ftemp = float ftemp2 = 0.0 float minz = 1.0e12 complex zfBm = zmin = zfirst = ztwo = zlast = zpenult = (0,0) float biomotest = 0.0 float fbmadjust = 0.0 int iter = 0 float zbioangle = 0.0 loop: iter = iter + 1 if @biomorphtest == "real" biomotest = abs(real(#z)) elseif @biomorphtest == "imag" biomotest = abs(imag(#z)) elseif @biomorphtest == "sum" biomotest = abs(real(#z)) + abs(imag(#z)) elseif @biomorphtest == "sum 2" biomotest = abs(real(#z)) + abs(imag(#z)) + cabs(#z) elseif @biomorphtest == "product" biomotest = abs(real(#z) * imag(#z)) elseif @biomorphtest == "cabs" biomotest = cabs(#z) endif ; @biomorphtest if biomotest < @biomorphvalue zbiomorph = #z endif ; biomotest if @fBm if @fbminit == "min z" if iter > 1 ; skip first iter, since #z may have been initialized to (0,0) ftemp = cabs(#z) if ftemp < minz minz = ftemp zmin = #z endif ; temp endif ; iter elseif @fbminit == "first z" if iter == 1 zfirst = #z endif ; iter elseif @fbminit == "second z" if iter == 2 ztwo = #z endif ; iter elseif @fbminit == "last z" zlast = #z elseif @fbminit == "penult z" zpenult = zlast zlast = #z endif ; @fbminit endif ; @fBm final: zbioangle = atan2(zbiomorph) if zbioangle < 0 zbioangle = zbioangle + twopi endif ; zbioangle ; Figure amount of fBm ; fBm code adapted from code of dmj, mt, and others if @fBm if @fbminit == "min z" zfBm = zmin elseif @fbminit == "first z" zfBm = zfirst elseif @fbminit == "second z" zfBm = ztwo elseif @fbminit == "last z" zfBm = zlast elseif @fbminit == "penult z" zfBm = zpenult elseif @fbminit == "pixel" zfBm = #pixel elseif @fbminit == "biomorph" zfBm = zbiomorph endif ; @fbminit zfBm = zfBm + @boffset float bfreq = @bbfreq complex br = (0,1) ^ (@bangle / 90.0) complex br2 = (0,1) ^ (@banglestep / 90.0) complex bp = zfBm * @bscale * br float bsum = 0.0 int bi = @boctaves while (bi > 0) float bx0 = floor(real(bp)) % 256 float by0 = floor(imag(bp)) % 256 if bx0 < 0 bx0 = bx0 + 256 endif ; bx0 if by0 < 0 by0 = by0 + 256 endif ; by0 float bx1 = (bx0 + 1) % 256 float by1 = (by0 + 1) % 256 float rx0 = real(bp) - floor(real(bp)) float ry0 = imag(bp) - floor(imag(bp)) float rx1 = rx0 - 1 float ry1 = ry0 - 1 float b00 = (bx0^@bpower % 65536 + by0)^@bpower % 65536 float b10 = (bx1^@bpower % 65536 + by0)^@bpower % 65536 float b01 = (bx0^@bpower % 65536 + by1)^@bpower % 65536 float b11 = (bx1^@bpower % 65536 + by1)^@bpower % 65536 float g_b00_0 = (b00)^@bpower*0.25 % 512 - 256 float g_b10_0 = (b10)^@bpower*0.25 % 512 - 256 float g_b01_0 = (b01)^@bpower*0.25 % 512 - 256 float g_b11_0 = (b11)^@bpower*0.25 % 512 - 256 float g_b00_1 = (b00+1)^@bpower*0.25 % 512 - 256 float g_b10_1 = (b10+1)^@bpower*0.25 % 512 - 256 float g_b01_1 = (b01+1)^@bpower*0.25 % 512 - 256 float g_b11_1 = (b11+1)^@bpower*0.25 % 512 - 256 float bd = 0.0 bd = 1 / sqrt(sqr(g_b00_0) + sqr(g_b00_1)) g_b00_0 = g_b00_0 * bd g_b00_1 = g_b00_1 * bd bd = 1 / sqrt(sqr(g_b10_0) + sqr(g_b10_1)) g_b10_0 = g_b10_0 * bd g_b10_1 = g_b10_1 * bd bd = 1 / sqrt(sqr(g_b01_0) + sqr(g_b01_1)) g_b01_0 = g_b01_0 * bd g_b01_1 = g_b01_1 * bd bd = 1 / sqrt(sqr(g_b11_0) + sqr(g_b11_1)) g_b11_0 = g_b11_0 * bd g_b11_1 = g_b11_1 * bd float u1 = rx0 * g_b00_0 + ry0 * g_b00_1 float v1 = rx1 * g_b10_0 + ry0 * g_b10_1 float u2 = rx0 * g_b01_0 + ry1 * g_b01_1 float v2 = rx1 * g_b11_0 + ry1 * g_b11_1 float sx = sqr(rx0) * (3 - rx0*2) float sy = sqr(ry0) * (3 - ry0*2) float ba = u1 + sx*(v1-u1) float bb = u2 + sx*(v2-u2) bsum = bsum + (ba + sy*(bb-ba))* bfreq if @fbmfunc != 0 bsum = @funcprescale * bsum if ( @fbmfunc == 1 ) ftemp = 1/bsum elseif ( @fbmfunc == 2 ) ftemp = bsum * bsum elseif ( @fbmfunc == 3 ) ftemp = 1 / ( bsum * bsum ) elseif ( @fbmfunc == 4 ) ftemp = @funcparam1*log(bsum) elseif ( @fbmfunc == 5 ) ftemp = @funcparam1*exp( bsum) elseif ( @fbmfunc == 6 ) ftemp = @funcparam1*bsum^(bsum) elseif ( @fbmfunc == 7 ) ftemp = @funcparam1*sin( bsum ) elseif ( @fbmfunc == 8 ) ftemp = @funcparam1*cos( bsum ) elseif ( @fbmfunc == 9 ) ftemp = @funcparam1*tan( bsum ) elseif ( @fbmfunc == 10 ) ftemp = @funcparam1*asin( bsum ) elseif ( @fbmfunc == 11 ) ftemp = @funcparam1*acos( bsum ) elseif ( @fbmfunc == 12 ) ftemp = @funcparam1*atan( bsum ) elseif ( @fbmfunc == 13 ) ftemp = @funcparam1*sinh( bsum ) elseif ( @fbmfunc == 14 ) ftemp = @funcparam1*cosh( bsum ) elseif ( @fbmfunc == 15 ) ftemp = @funcparam1*tanh( bsum ) elseif ( @fbmfunc == 16 ) ftemp = @funcparam1*asinh( bsum ) elseif ( @fbmfunc == 17 ) ftemp = @funcparam1*acosh( bsum ) elseif ( @fbmfunc == 18 ) ftemp = @funcparam1*atanh( bsum ) elseif ( @fbmfunc == 19 ) ftemp = @funcparam1*log( 1/bsum ) elseif ( @fbmfunc == 20 ) ftemp = @funcparam1*log( @funcparam2*log( bsum )) elseif ( @fbmfunc == 21 ) ftemp = @funcparam1*exp( -bsum ) elseif ( @fbmfunc == 22 ) ftemp = @funcparam1*exp( 1/bsum ) elseif ( @fbmfunc == 23 ) ftemp = @funcparam1*bsum^(-bsum) elseif ( @fbmfunc == 24 ) ftemp = @funcparam1*(sin( bsum ))^@funcparam2 elseif ( @fbmfunc == 25 ) ftemp = @funcparam1*(cos( bsum ))^@funcparam2 elseif ( @fbmfunc == 26 ) ftemp = @funcparam1*(tan( bsum ))^@funcparam2 elseif ( @fbmfunc == 27 ) ftemp = @funcparam1*cotan( bsum ) elseif ( @fbmfunc == 28 ) ftemp = @funcparam1/cos( bsum ) elseif ( @fbmfunc == 29 ) ftemp = @funcparam1/sin( bsum ) elseif ( @fbmfunc == 30 ) ftemp = @funcparam1*(cotan( bsum ))^@funcparam2 elseif ( @fbmfunc == 31 ) ftemp = @funcparam1/(cos( bsum ))^@funcparam2 elseif ( @fbmfunc == 32 ) ftemp = @funcparam1/(sin( @funcparam1*bsum ))^@funcparam2 elseif ( @fbmfunc == 33 ) ftemp = @funcparam1*bsum^(bsum) ftemp = @funcparam2*bsum^(ftemp) elseif ( @fbmfunc == 34 ) ftemp = @funcparam1*bsum^(bsum) ftemp = @funcparam2/( bsum^ftemp ) elseif ( @fbmfunc == 35 ) ftemp = @funcparam1*log(-bsum) elseif ( @fbmfunc == 36 ) ftemp = @funcparam1/log( bsum ) elseif ( @fbmfunc == 37 ) ftemp = @funcparam1* bsum * log( bsum ) elseif ( @fbmfunc == 38 ) ftemp = @funcparam1* sin( bsum ) / bsum elseif ( @fbmfunc == 39 ) ftemp = @funcparam1* cos( bsum ) / bsum elseif ( @fbmfunc == 40 ) ftemp = @funcparam1* sin( bsum ) * cos( @funcparam2*bsum ) elseif ( @fbmfunc == 41 ) ftemp = @funcparam1*sin( bsum^2 ) elseif ( @fbmfunc == 42 ) ftemp = @funcparam1*exp( -1/bsum ) elseif ( @fbmfunc == 43 ) ftemp = @funcparam1* bsum * exp( bsum ) elseif ( @fbmfunc == 44 ) ftemp = @funcparam1* bsum * exp( -bsum ) elseif ( @fbmfunc == 45 ) ftemp = @funcparam1* bsum * exp( 1/bsum ) elseif ( @fbmfunc == 46 ) ftemp = @funcparam1* bsum * exp( -1/bsum ) elseif ( @fbmfunc == 47 ) ftemp = @funcparam1* bsum * bsum * bsum elseif ( @fbmfunc == 48 ) ftemp = @funcparam1 / ( bsum * bsum * bsum ) elseif ( @fbmfunc == 49 ) ftemp = @funcparam1*atan( 1 / bsum ) elseif ( @fbmfunc == 50 ) ftemp = @funcparam1*acos( 1 / bsum ) elseif ( @fbmfunc == 51 ) ftemp = @funcparam1*asin( 1 / bsum ) elseif ( @fbmfunc == 52 ) ftemp = @funcparam1*tan( bsum ) / bsum elseif ( @fbmfunc == 53 ) ftemp = @funcparam1*cotan( bsum ) / bsum elseif ( @fbmfunc == 54 ) ftemp = @funcparam1 / ( bsum * cos( bsum )) elseif ( @fbmfunc == 55 ) ftemp = @funcparam1 / ( bsum * sin( bsum )) elseif ( @fbmfunc == 56 ) ftemp = @funcparam1* bsum * sin( bsum ) elseif ( @fbmfunc == 57 ) ftemp = @funcparam1* bsum * cos( bsum ) elseif ( @fbmfunc == 58 ) ftemp = @funcparam1* bsum * tan( bsum ) elseif ( @fbmfunc == 59 ) ftemp = @funcparam1* bsum * cotan( bsum ) elseif ( @fbmfunc == 60 ) ftemp = @funcparam1*bsum/cos( bsum ) elseif ( @fbmfunc == 61 ) ftemp = @funcparam1*bsum/sin( bsum ) elseif ( @fbmfunc == 62 ) ftemp = @funcparam1*sin( 1/bsum ) elseif ( @fbmfunc == 63 ) ftemp = @funcparam1*cos( 1/bsum ) elseif ( @fbmfunc == 64 ) ftemp = @funcparam1*tan( 1/bsum ) elseif ( @fbmfunc == 65 ) ftemp = @funcparam1*cotan( 1/bsum ) elseif ( @fbmfunc == 66 ) ftemp = @funcparam1/cos( 1/bsum ) elseif ( @fbmfunc == 67 ) ftemp = @funcparam1/sin( 1/bsum ) elseif ( @fbmfunc == 68 ) ftemp = @funcparam1*cotanh( bsum ) elseif ( @fbmfunc == 69 ) ftemp = @funcparam1/cosh( bsum ) elseif ( @fbmfunc == 70 ) ftemp = @funcparam1/sinh( bsum ) elseif ( @fbmfunc == 71 ) ftemp = @funcparam1*atanh( 1/bsum ) elseif ( @fbmfunc == 72 ) ftemp = @funcparam1*acosh( 1/bsum ) elseif ( @fbmfunc == 73 ) ftemp = @funcparam1*asinh( 1/bsum ) elseif @fbmfunc == 74 ftemp = bsum^@funcpower elseif @fbmfunc == 75 ftemp = @funcparam1*(sinh(bsum))^@funcparam2 elseif @fbmfunc == 76 ftemp = @funcparam1*(cosh( bsum ))^@funcparam2 elseif @fbmfunc == 77 ftemp = @funcparam1*(tanh(bsum))^@funcparam2 elseif @fbmfunc == 78 ftemp = @funcparam1*(cotanh( bsum ))^@funcparam2 elseif @fbmfunc == 79 ftemp = @funcparam1*(1/cosh(bsum))^@funcparam2 elseif @fbmfunc == 80 ftemp = @funcparam1*(1 / sinh( bsum ))^@funcparam2 elseif @fbmfunc == 81 ftemp = @funcparam1*sinh(1/bsum) elseif @fbmfunc == 82 ftemp = @funcparam1*cosh(1/bsum) elseif @fbmfunc == 83 ftemp = @funcparam1*tanh(1/bsum) elseif @fbmfunc == 84 ftemp = @funcparam1*cotanh(1/bsum) elseif @fbmfunc == 85 ftemp = @funcparam1/cosh(1/bsum) elseif @fbmfunc == 86 ftemp = @funcparam1/sinh(1/bsum) elseif @fbmfunc == 87 ftemp = @funcparam1*sin( bsum ) * tan(@funcparam2*bsum) elseif @fbmfunc == 88 ftemp = @funcparam1*sinh(bsum) * tanh(@funcparam2*bsum) elseif @fbmfunc == 89 ftemp = @funcparam1*sinh(bsum) * cosh(@funcparam2*bsum) elseif @fbmfunc == 90 ftemp = (sinh(bsum)^@funcparam1)*(cosh(bsum)^@funcparam2) elseif @fbmfunc == 91 ftemp = (sin(bsum)^@funcparam1)*(cos(bsum)^@funcparam2) elseif @fbmfunc == 92 ftemp = 1/bsum ftemp = @funcparam1*sin(ftemp)*cos(@funcparam2*ftemp) elseif @fbmfunc == 93 ftemp = @funcparam1*(sin( 1/bsum ))^@funcparam2 elseif @fbmfunc == 94 ftemp = @funcparam1* sin(bsum) * cos(@funcparam2/bsum) elseif @fbmfunc == 95 ftemp = @funcparam1* sin(bsum) * sin(@funcparam2/bsum) elseif @fbmfunc == 96 ftemp = (log(bsum))^@funcparam1 elseif @fbmfunc == 97 ftemp = @funcparam1*sin(bsum) * sin(@funcparam2*bsum) elseif @fbmfunc == 98 ftemp = exp(2*bsum) elseif @fbmfunc == 99 ftemp = exp(-2*bsum) elseif @fbmfunc == 100 ftemp = 1/bsum ftemp = @funcparam1*sinh(ftemp)*cosh(@funcparam2*ftemp) elseif @fbmfunc == 101 ftemp = @funcparam1*(sinh( 1/bsum )^@funcparam2) elseif @fbmfunc == 102 ftemp = @funcparam1*sinh(bsum) * cosh(@funcparam2/bsum) elseif @fbmfunc == 103 ftemp = @funcparam1*sinh(bsum) * sinh(@funcparam2/bsum) elseif @fbmfunc == 104 ftemp = @funcparam1*sin(bsum) * sinh(@funcparam2*bsum) elseif @fbmfunc == 105 ftemp = @funcparam1*sin(bsum) * cosh(@funcparam2*bsum) elseif @fbmfunc == 106 ftemp = (sin(bsum)^@funcparam1)*(sinh(bsum)^@funcparam2) elseif @fbmfunc == 107 ftemp = @funcparam1*sin(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 108 ftemp = @funcparam1*cos(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 109 ftemp = @funcparam1*sinh(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 110 ftemp = @funcparam1*cosh(bsum)*exp(@funcparam2*bsum) elseif @fbmfunc == 111 ftemp = @funcparam1*sin(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 112 ftemp = @funcparam1*cos(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 113 ftemp = @funcparam1*sinh(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 114 ftemp = @funcparam1*cosh(bsum)*log(@funcparam2*bsum) elseif @fbmfunc == 115 ftemp = @funcparam1*exp(bsum^@funcparam2) elseif @fbmfunc == 116 ftemp = @funcparam1*exp(1/(bsum^@funcparam2)) elseif @fbmfunc == 117 ftemp = abs(bsum) elseif @fbmfunc == 118 ftemp = round(bsum) elseif @fbmfunc == 119 ftemp = trunc(bsum) elseif @fbmfunc == 120 ftemp = ceil(bsum) elseif @fbmfunc == 121 ftemp = floor(bsum) elseif @fbmfunc == 122 ftemp = @funcparam1*bsum/log(bsum) elseif @fbmfunc == 123 ftemp = @funcparam1*log(bsum)/bsum elseif @fbmfunc == 124 ftemp = @funcparam1*exp(bsum)/bsum elseif @fbmfunc == 125 ftemp = @funcparam1*exp(1/bsum)/bsum elseif @fbmfunc == 126 ftemp = @funcparam1*exp(bsum^@funcparam2)/bsum elseif @fbmfunc == 127 ftemp = @funcparam1*exp(1/(bsum^@funcparam2))/bsum elseif @fbmfunc == 128 ftemp = @funcparam1*bsum * exp(bsum^@funcparam2) elseif @fbmfunc == 129 ftemp = @funcparam1*bsum * exp(1/(bsum^@funcparam2)) elseif @fbmfunc == 130 ftemp = @funcparam1*exp(-(bsum^@funcparam2)) elseif @fbmfunc == 131 ftemp = @funcparam1*exp(-1/(bsum^@funcparam2)) elseif @fbmfunc == 132 ftemp = @funcparam1*exp(-(bsum^@funcparam2))/bsum elseif @fbmfunc == 133 ftemp = @funcparam1*exp(-1/(bsum^@funcparam2))/bsum elseif @fbmfunc == 134 ftemp = @funcparam1*bsum * exp(-(bsum^@funcparam2)) elseif @fbmfunc == 135 ftemp = @funcparam1*bsum * exp(-1/(bsum^@funcparam2)) else ; @fbmfunc == 136 ftemp = bsum % @funcparam1 endif ; bsumwarp bsum = ftemp endif ; @fbmfunc bsum = (bsum + @bsumoffset) * @bpostscale bfreq = bfreq * @bstep bp = bp * br2 / @bstep bi = bi - 1 endwhile ; bi fbmadjust = @fbmamount * (bsum + 1) endif ; @fBm if @biocolortype == "1" tempcolor = zbioangle * scaledcolor2 ; range is 0.0-1.0 elseif @biocolortype == "2" tempcolor = zbioangle * scaledcolor4 ; rangle is 0.0-0.5 if real (zbiomorph) > @colorsplit tempcolor = tempcolor + 0.5 endif ; real() endif ; @biocolortype if ( @colorwarp == 0 ) ftemp = tempcolor elseif ( @colorwarp == 1 ) ftemp = 1/tempcolor elseif ( @colorwarp == 2 ) ftemp = tempcolor * tempcolor elseif ( @colorwarp == 3 ) ftemp = 1 / ( tempcolor * tempcolor ) elseif ( @colorwarp == 4 ) ftemp = log(@cpower*(1+tempcolor)) elseif ( @colorwarp == 5 ) ftemp = exp( @cpower*tempcolor) elseif ( @colorwarp == 6 ) ftemp = tempcolor^(@cpower*tempcolor) elseif ( @colorwarp == 7 ) ftemp = sin( @cpower*tempcolor ) elseif ( @colorwarp == 8 ) ftemp = cos( @cpower*tempcolor ) elseif ( @colorwarp == 9 ) ftemp = tan( @cpower*tempcolor ) elseif ( @colorwarp == 10 ) ftemp = asin( @cpower*tempcolor ) elseif ( @colorwarp == 11 ) ftemp = acos( @cpower*tempcolor ) elseif ( @colorwarp == 12 ) ftemp = atan( @cpower*tempcolor ) elseif ( @colorwarp == 13 ) ftemp = sinh( @cpower*tempcolor ) elseif ( @colorwarp == 14 ) ftemp = cosh( @cpower*tempcolor ) elseif ( @colorwarp == 15 ) ftemp = tanh( @cpower*tempcolor ) elseif ( @colorwarp == 16 ) ftemp = asinh(@cpower* tempcolor ) elseif ( @colorwarp == 17 ) ftemp = acosh( @cpower*tempcolor ) elseif ( @colorwarp == 18 ) ftemp = atanh( @cpower*tempcolor ) elseif ( @colorwarp == 19 ) ftemp = log( 1+@cpower/tempcolor ) elseif ( @colorwarp == 20 ) ftemp = log( 1+log( @cpower+tempcolor )) elseif ( @colorwarp == 21 ) ftemp = exp( -@cpower*tempcolor ) elseif ( @colorwarp == 22 ) ftemp = exp( @cpower/tempcolor ) elseif ( @colorwarp == 23 ) ftemp = tempcolor^(-@cpower*tempcolor) elseif ( @colorwarp == 24 ) ftemp = sin( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 25 ) ftemp = cos( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 26 ) ftemp = tan( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 27 ) ftemp = cotan( @cpower*tempcolor ) elseif ( @colorwarp == 28 ) ftemp = 1/cos( @cpower*tempcolor ) elseif ( @colorwarp == 29 ) ftemp = 1/sin( @cpower*tempcolor ) elseif ( @colorwarp == 30 ) ftemp = cotan( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 31 ) ftemp = 1/cos( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 32 ) ftemp = 1/sin( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif ( @colorwarp == 33 ) ftemp = tempcolor^(tempcolor) ftemp = tempcolor^(@cpower*ftemp) elseif ( @colorwarp == 34 ) ftemp = tempcolor^(tempcolor) ftemp = 1/( tempcolor^(@cpower*ftemp )) elseif ( @colorwarp == 35 ) ftemp = log(-@cpower*tempcolor) elseif ( @colorwarp == 36 ) ftemp = 1/log(@cpower*(1+ tempcolor )) elseif ( @colorwarp == 37 ) ftemp = tempcolor * log(1+ @cpower*tempcolor ) elseif ( @colorwarp == 38 ) ftemp = sin( @cpower*tempcolor ) / tempcolor elseif ( @colorwarp == 39 ) ftemp = cos( @cpower*tempcolor ) / tempcolor elseif ( @colorwarp == 40 ) ftemp = sin( @cpower*tempcolor ) * cos( tempcolor ) elseif ( @colorwarp == 41 ) ftemp = sin( tempcolor^(@cpower*2 )) elseif ( @colorwarp == 42 ) ftemp = exp( -@cpower/tempcolor ) elseif ( @colorwarp == 43 ) ftemp = tempcolor * exp( @cpower*tempcolor ) elseif ( @colorwarp == 44 ) ftemp = tempcolor * exp( -@cpower*tempcolor ) elseif ( @colorwarp == 45 ) ftemp = tempcolor * exp( @cpower/tempcolor ) elseif ( @colorwarp == 46 ) ftemp = tempcolor * exp( -@cpower/tempcolor ) elseif ( @colorwarp == 47 ) ftemp = tempcolor * tempcolor * tempcolor elseif ( @colorwarp == 48 ) ftemp = 1 / ( tempcolor * tempcolor * tempcolor ) elseif ( @colorwarp == 49 ) ftemp = atan( @cpower / tempcolor ) elseif ( @colorwarp == 50 ) ftemp = acos( @cpower / tempcolor ) elseif ( @colorwarp == 51 ) ftemp = asin( @cpower / tempcolor ) elseif ( @colorwarp == 52 ) ftemp = tan( @cpower*tempcolor ) / tempcolor elseif ( @colorwarp == 53 ) ftemp = cotan( @cpower*tempcolor ) / tempcolor elseif ( @colorwarp == 54 ) ftemp = 1 / ( tempcolor * cos( @cpower*tempcolor )) elseif ( @colorwarp == 55 ) ftemp = 1 / ( tempcolor * sin( @cpower*tempcolor )) elseif ( @colorwarp == 56 ) ftemp = tempcolor * sin( @cpower*tempcolor ) elseif ( @colorwarp == 57 ) ftemp = tempcolor * cos( @cpower*tempcolor ) elseif ( @colorwarp == 58 ) ftemp = tempcolor * tan( @cpower*tempcolor ) elseif ( @colorwarp == 59 ) ftemp = tempcolor * cotan( @cpower*tempcolor ) elseif ( @colorwarp == 60 ) ftemp = tempcolor/cos( @cpower*tempcolor ) elseif ( @colorwarp == 61 ) ftemp = tempcolor/sin( @cpower*tempcolor ) elseif ( @colorwarp == 62 ) ftemp = sin( @cpower/tempcolor ) elseif ( @colorwarp == 63 ) ftemp = cos( @cpower/tempcolor ) elseif ( @colorwarp == 64 ) ftemp = tan( @cpower/tempcolor ) elseif ( @colorwarp == 65 ) ftemp = cotan( @cpower/tempcolor ) elseif ( @colorwarp == 66 ) ftemp = 1/cos( @cpower/tempcolor ) elseif ( @colorwarp == 67 ) ftemp = 1/sin( @cpower/tempcolor ) elseif ( @colorwarp == 68 ) ftemp = cotanh( @cpower*tempcolor ) elseif ( @colorwarp == 69 ) ftemp = 1/cosh( @cpower*tempcolor ) elseif ( @colorwarp == 70 ) ftemp = 1/sinh( @cpower*tempcolor ) elseif ( @colorwarp == 71 ) ftemp = atanh( @cpower/tempcolor ) elseif ( @colorwarp == 72 ) ftemp = acosh( @cpower/tempcolor ) elseif ( @colorwarp == 73 ) ftemp = asinh( @cpower/tempcolor ) elseif @colorwarp == 74 ftemp = tempcolor^@cpower elseif @colorwarp == 75 ftemp = sinh(@cpower*tempcolor) ftemp = ftemp * ftemp elseif @colorwarp == 76 ftemp = cosh( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == 77 ftemp = tanh(@cpower*tempcolor) ftemp = ftemp * ftemp elseif @colorwarp == 78 ftemp = cotanh( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == 79 ftemp = 1/cosh(@cpower*tempcolor) ftemp = ftemp * ftemp elseif @colorwarp == 80 ftemp = 1 / sinh( @cpower*tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == 81 ftemp = sinh(@cpower/tempcolor) elseif @colorwarp == 82 ftemp = cosh(@cpower/tempcolor) elseif @colorwarp == 83 ftemp = tanh(@cpower/tempcolor) elseif @colorwarp == 84 ftemp = cotanh(@cpower/tempcolor) elseif @colorwarp == 85 ftemp = 1/cosh(@cpower/tempcolor) elseif @colorwarp == 86 ftemp = 1/sinh(@cpower/tempcolor) elseif @colorwarp == 87 ftemp = sin( @cpower*tempcolor ) * tan(tempcolor) elseif @colorwarp == 88 ftemp = sinh(@cpower*tempcolor) * tanh(tempcolor) elseif @colorwarp == 89 ftemp = sinh(@cpower*tempcolor) * cosh(tempcolor) elseif @colorwarp == 90 ftemp = sinh(@cpower*tempcolor), ftemp2 = cosh(tempcolor) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == 91 ftemp = sin(@cpower*tempcolor), ftemp2 = cos(tempcolor) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == 92 ftemp = 1/tempcolor ftemp = sin(@cpower*ftemp)*cos(ftemp) elseif @colorwarp == 93 ftemp = sin( @cpower/tempcolor ) ftemp = ftemp*ftemp elseif @colorwarp == 94 ftemp = sin(@cpower*tempcolor) * cos(1/tempcolor) elseif @colorwarp == 95 ftemp = sin(tempcolor) * sin(@cpower/tempcolor) elseif @colorwarp == 96 ftemp = log(1+@cpower*tempcolor) ftemp = ftemp*ftemp elseif @colorwarp == 97 ftemp = sin(tempcolor) * sin(2*tempcolor) elseif @colorwarp == 98 ftemp = exp(2*tempcolor) elseif @colorwarp == 99 ftemp = exp(-2*tempcolor) elseif @colorwarp == 100 ftemp = 1/tempcolor ftemp = sinh(@cpower*ftemp)*cosh(ftemp) elseif @colorwarp == 101 ftemp = sinh( @cpower/tempcolor ) ftemp = ftemp*ftemp elseif @colorwarp == 102 ftemp = sinh(@cpower*tempcolor) * cosh(1/tempcolor) elseif @colorwarp == 103 ftemp = sinh(tempcolor) * sinh(@cpower/tempcolor) elseif @colorwarp == 104 ftemp = sin(@cpower*tempcolor) * sinh(tempcolor) elseif @colorwarp == 105 ftemp = sin(tempcolor) * cosh(@cpower*tempcolor) elseif @colorwarp == 106 ftemp = sin(@cpower*tempcolor), ftemp2 = sinh(tempcolor) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == 107 ftemp = sin(@cpower*tempcolor)*exp(tempcolor) elseif @colorwarp == 108 ftemp = cos(@cpower*tempcolor)*exp(tempcolor) elseif @colorwarp == 109 ftemp = sinh(tempcolor)*exp(@cpower*tempcolor) elseif @colorwarp == 110 ftemp = cosh(@cpower*tempcolor)*exp(tempcolor) elseif @colorwarp == 111 ftemp = sin(@cpower*tempcolor)*log(1+tempcolor) elseif @colorwarp == 112 ftemp = cos(tempcolor)*log(1+@cpower*tempcolor) elseif @colorwarp == 113 ftemp = sinh(@cpower*tempcolor)*log(1+tempcolor) elseif @colorwarp == 114 ftemp = cosh(tempcolor)*log(1+@cpower*tempcolor) elseif @colorwarp == 115 ftemp = exp(@cpower*(tempcolor^2)) elseif @colorwarp == 116 ftemp = exp(@cpower/(tempcolor^2)) elseif @colorwarp == 117 ftemp = abs(@cpower*tempcolor) elseif @colorwarp == 118 ftemp = round(@cpower*tempcolor) elseif @colorwarp == 119 ftemp = trunc(@cpower*tempcolor) elseif @colorwarp == 120 ftemp = ceil(@cpower*tempcolor) elseif @colorwarp == 121 ftemp = floor(@cpower*tempcolor) elseif @colorwarp == 122 ftemp = tempcolor/log(1+@cpower*tempcolor) elseif @colorwarp == 123 ftemp = log(1+@cpower*tempcolor)/tempcolor elseif @colorwarp == 124 ftemp = exp(@cpower*tempcolor)/tempcolor elseif @colorwarp == 125 ftemp = exp(@cpower/tempcolor)/tempcolor elseif @colorwarp == 126 ftemp = exp(@cpower*(tempcolor^2))/tempcolor elseif @colorwarp == 127 ftemp = exp(@cpower/(tempcolor^2))/tempcolor elseif @colorwarp == 128 ftemp = tempcolor * exp(@cpower*(tempcolor^2)) elseif @colorwarp == 129 ftemp = tempcolor * exp(@cpower/(tempcolor^2)) elseif @colorwarp == 130 ftemp = exp(-(@cpower*(tempcolor^2))) elseif @colorwarp == 131 ftemp = exp(-@cpower/(tempcolor^2)) elseif @colorwarp == 132 ftemp = exp(-@cpower*(tempcolor^2))/tempcolor elseif @colorwarp == 133 ftemp = exp(-@cpower/(tempcolor^2))/tempcolor elseif @colorwarp == 134 ftemp = tempcolor * exp(-@cpower*(tempcolor^2)) else ; @colorwarp == 135 ftemp = tempcolor * exp(-@cpower/(tempcolor^2)) endif ; tempcolorwarp if @maskA if @maskwhat == "iteration" if @maskifA == "falls above" if iter > @maskAmin #solid = TRUE endif ; iter elseif @maskifA == "falls below" if iter < @maskAmin #solid = TRUE endif ; iter elseif @maskifA == "falls between" if (iter > @maskAmin) && (iter < @maskAmax) #solid = TRUE endif ; iter elseif @maskifA == "falls outside" if (iter < @maskAmin) || (iter > @maskAmax) #solid = TRUE endif ; iter elseif @maskifA == "equals" if iter == @maskAmin #solid = TRUE endif ; iter elseif @maskifA == "not equal" if iter != @maskAmin #solid = TRUE endif ; iter endif ; @maskifA elseif @maskwhat == "biomorph test" if @maskifA == "falls above" if biomotest > @maskAmin #solid = TRUE endif ; biomotest elseif @maskifA == "falls below" if biomotest < @maskAmin #solid = TRUE endif ; biomotest elseif @maskifA == "falls between" if (biomotest > @maskAmin) && (biomotest < @maskAmax) #solid = TRUE endif ; biomotest elseif @maskifA == "falls outside" if (biomotest < @maskAmin) || (biomotest > @maskAmax) #solid = TRUE endif ; biomotest elseif @maskifA == "equals" if biomotest == @maskAmin #solid = TRUE endif ; biomotest elseif @maskifA == "not equal" if biomotest != @maskAmin #solid = TRUE endif ; biomotest endif ; @maskifA elseif @maskwhat == "real 1" ftemp2 = real(#z) if @maskifA == "falls above" if ftemp2 > @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls below" if ftemp2 < @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls between" if (ftemp2 > @maskAmin) && (ftemp2 < @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls outside" if (ftemp2 < @maskAmin) || (ftemp2 > @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "equals" if ftemp2 == @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "not equal" if ftemp2 != @maskAmin #solid = TRUE endif ; ftemp2 endif ; @maskifA elseif @maskwhat == "real 2" ftemp2 = abs(real(#z)) if @maskifA == "falls above" if ftemp2 > @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls below" if ftemp2 < @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls between" if (ftemp2 > @maskAmin) && (ftemp2 < @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls outside" if (ftemp2 < @maskAmin) || (ftemp2 > @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "equals" if ftemp2 == @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "not equal" if ftemp2 != @maskAmin #solid = TRUE endif ; ftemp2 endif ; @maskifA elseif @maskwhat == "imag 1" ftemp2 = imag(#z) if @maskifA == "falls above" if ftemp2 > @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls below" if ftemp2 < @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls between" if (ftemp2 > @maskAmin) && (ftemp2 < @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls outside" if (ftemp2 < @maskAmin) || (ftemp2 > @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "equals" if ftemp2 == @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "not equal" if ftemp2 != @maskAmin #solid = TRUE endif ; ftemp2 endif ; @maskifA elseif @maskwhat == "imag 2" ftemp2 = abs(imag(#z)) if @maskifA == "falls above" if ftemp2 > @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls below" if ftemp2 < @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls between" if (ftemp2 > @maskAmin) && (ftemp2 < @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls outside" if (ftemp2 < @maskAmin) || (ftemp2 > @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "equals" if ftemp2 == @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "not equal" if ftemp2 != @maskAmin #solid = TRUE endif ; ftemp2 endif ; @maskifA elseif @maskwhat == "sum 1" ftemp2 = real(#z) + imag(#z) if @maskifA == "falls above" if ftemp2 > @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls below" if ftemp2 < @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls between" if (ftemp2 > @maskAmin) && (ftemp2 < @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls outside" if (ftemp2 < @maskAmin) || (ftemp2 > @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "equals" if ftemp2 == @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "not equal" if ftemp2 != @maskAmin #solid = TRUE endif ; ftemp2 endif ; @maskifA elseif @maskwhat == "sum 2" ftemp2 = abs(real(#z)) + abs(imag(#z)) if @maskifA == "falls above" if ftemp2 > @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls below" if ftemp2 < @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls between" if (ftemp2 > @maskAmin) && (ftemp2 < @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls outside" if (ftemp2 < @maskAmin) || (ftemp2 > @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "equals" if ftemp2 == @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "not equal" if ftemp2 != @maskAmin #solid = TRUE endif ; ftemp2 endif ; @maskifA elseif @maskwhat == "sum 3" ftemp2 = abs(real(#z)) + abs(imag(#z)) + cabs(#z) if @maskifA == "falls above" if ftemp2 > @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls below" if ftemp2 < @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls between" if (ftemp2 > @maskAmin) && (ftemp2 < @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls outside" if (ftemp2 < @maskAmin) || (ftemp2 > @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "equals" if ftemp2 == @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "not equal" if ftemp2 != @maskAmin #solid = TRUE endif ; ftemp2 endif ; @maskifA elseif @maskwhat == "product" ftemp2 = abs(real(#z) * imag(#z)) if @maskifA == "falls above" if ftemp2 > @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls below" if ftemp2 < @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls between" if (ftemp2 > @maskAmin) && (ftemp2 < @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls outside" if (ftemp2 < @maskAmin) || (ftemp2 > @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "equals" if ftemp2 == @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "not equal" if ftemp2 != @maskAmin #solid = TRUE endif ; ftemp2 endif ; @maskifA elseif @maskwhat == "cabs" ftemp2 = cabs(#z) if @maskifA == "falls above" if ftemp2 > @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls below" if ftemp2 < @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls between" if (ftemp2 > @maskAmin) && (ftemp2 < @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "falls outside" if (ftemp2 < @maskAmin) || (ftemp2 > @maskAmax) #solid = TRUE endif ; ftemp2 elseif @maskifA == "equals" if ftemp2 == @maskAmin #solid = TRUE endif ; ftemp2 elseif @maskifA == "not equal" if ftemp2 != @maskAmin #solid = TRUE endif ; ftemp2 endif ; @maskifA elseif @maskwhat == "angle" if @maskifA == "falls above" if zbioangle > @maskAmin #solid = TRUE endif ; zbioangle elseif @maskifA == "falls below" if zbioangle < @maskAmin #solid = TRUE endif ; zbioangle elseif @maskifA == "falls between" if (zbioangle > @maskAmin) && (zbioangle < @maskAmax) #solid = TRUE endif ; zbioangle elseif @maskifA == "falls outside" if (zbioangle < @maskAmin) || (zbioangle > @maskAmax) #solid = TRUE endif ; zbioangle elseif @maskifA == "equals" if zbioangle == @maskAmin #solid = TRUE endif ; zbioangle elseif @maskifA == "not equal" if zbioangle != @maskAmin #solid = TRUE endif ; zbioangle endif ; @maskifA endif ; @maskwhat endif ; maskA #index = abs(ftemp) + fbmadjust default: title = "Biomorph" heading text = "'Biomorph' is designed to be used with a fractal formula \ that supports Pickover's biomorph bailout conditions, such \ as '3 Functions Mk II' in the public folder 'jam3.ufm'. If using \ that formula, enable the final parameter, 'Biomorph Bailout'." endheading heading endheading heading text = "Biomorph Parameters" endheading param @scalefactor caption = "Scale Factor" default = 1.0 hint = "This parameter acts like a color density." endparam param biomorphvalue caption = "Biomorph Value" default = 10.0 hint = "This value affects which points are trapped by the coloring \ algorithm. A higher value results in more points being trapped." endparam param biomorphtest caption = "Biomorph Test" enum = "real" "imag" "sum" "sum 2" "product" "cabs" default = 0 hint = "This setting determines how Biomorph is interpreted." endparam param biocolortype caption = "Biomorph Algorithm" enum = "1" "2" default = 0 hint = "This setting determines how the Biomorph Test is applies to \ determine the gradient value." endparam param colorsplit caption = "Split Criterion" default = 2.0 hint = "If 'Biomorph Algorithm' is set to '2', then this parameter \ determines how the gradient gets split into two ranges." visible = @biocolortype == "2" endparam heading text = "Other Coloring Parameters" endheading param @colorwarp caption = "Color Warp Factor" enum = "c" "1/c" "c^2" "1/c^2" "log(c)" "e^c" "c^c" "sin(c)" "cos(c)" \ "tan(c)" "asin(c)" "acos(c)" "atan(c)" "sinh(c)" "cosh(c)" "tanh(c)" \ "asinh(c)" "acosh(c)" "atanh(c)" "log(1/c)" "log(log(c))" "e^-c" \ "e^(1/c)" "c^-c" "sin(c)^2" "cos(c)^2" "tan(c)^2" "cot(c)" "sec(c)" \ "csc(c)" "cot(c)^2" "sec(c)^2" "csc(c)^2" "c^c^c" "1/c^c^c" "log(-c)" \ "1/log(c)" "clog(c)" "sin(c)/c" "cos(c)/c" "sin(c)*cos(c)" "sin(c^2)" \ "e^(-1/c)" "ce^c" "ce^-c" "ce^(1/c)" "ce^(-1/c)" "c^3" "1/c^3" \ "acot(c)" "asec(c)" "acsc(c)" "tan(c)/c" "cot(c)/c" "sec(c)/c" \ "csc(c)/c" "csin(c)" "ccos(c)" "ctan(c)" "ccot(c)" "csec(c)" "ccsc(c)" \ "sin(1/c)" "cos(1/c)" "tan(1/c)" "cot(1/c)" "sec(1/c)" "csc(1/c)" \ "cotanh(c)" "sech(c)" "cosech(c)" "acoth(c)" "asech(c)" "acosech(c)" "c^power" \ "sinh(c)^2" "cosh(c)^2" "tanh(c)^2" "cotanh(c)^2" \ "sech(c)^2" "cosech(c)^2" "sinh(1/c)" "cosh(1/c)" "tanh(1/c)" \ "cotanh(1/c)" "sech(1/c)" "cosech(1/c)" "sin(c)tan(c)" "sinh(c)tanh(c)" \ "sinh(c)cosh(c)" "sinh(c)^2*cosh(c)^2" "sin(c)^2*cos(c)^2" \ "sin(1/c)*cos(1/c)" "sin(1/c)^2" "sin(c)cos(1/c)" "sin(c)sin(1/c)" \ "log(c)^2" "sin(c)sin(2c)" "e^2c" "e^-2c" "sinh(1/c)cosh(1/c)" \ "sinh(1/c)^2" "sinh(c)cosh(1/c)" "sinh(c)sinh(1/c)" "sin(c)sinh(c)" \ "sin(c)cosh(c)" "sin(c)^2*sinh(c)^2" "sin(c)e^c" "cos(c)e^c" \ "sinh(c)e^c" "cosh(c)e^c" "sin(c)log(c)" "cos(c)log(c)" "sinh(c)log(c)" \ "cosh(c)log(c)" \ "e^(c^2)" "e^(1/(c^2))" "abs(c)" "round(c)" "trunc(c)" \ "ceil(c)" "floor(c)" "c/log(c)" "log(c)/c" "(e^c)/c" "(e^(1/c))/c" \ "(e^(c^2))/c" "(e^(1/(c^2))/c" "c*e^(c^2)" "c*e^(1/(c^2))" \ "e^(-c^2)" "e^(-1/(c^2))" "(e^(-c^2))/c" "(e^(-1/(c^2))/c" \ "c*e^(-c^2)" "c*e^(1/(-c^2))" default = 0 hint = "The final color index can be warped by this function; default is \ 'c' (no change in color index). A transfer function" endparam param cpower caption = "Color Parameter" default = 1.0 hint = "Color index exponent if param 'Color Warp Factor' is set to 'c^power'; \ otherwise, this is a general parameter that usually affects the 'Color \ Warp Factor' (for example, in the sin/cos options, it sets the frequency)" endparam heading caption = "fBm Settings" endheading param showfbm caption = "Show fBm Params?" default = TRUE endparam param fBm caption = "Enable fBm?" default = FALSE hint = "Adds fBm distortion to coloring; overall amount of turbulence \ is set by parameter 'fBm Amount'" visible = @showfbm endparam param fbmamount caption = "fBm Amount" default = 1.0 hint = "Overall degree of fBm texturing, if enabled" visible = @fBm && @showfbm endparam param fbminit caption = "fBm Initialization" enum = "min z" "first z" "second z" "last z" "penult z" "pixel" "biomorph" default = 0 hint = "This setting defines the input to the fBm algorithm" visible = @fBm && @showfbm endparam param bscale caption = "fBm Scale" default = 1.0 hint = "The overall scale of the fBm turbulence" visible = @fBm && @showfbm endparam param bangle caption = "fBm Rotation" default = 0.0 hint = "Angular parameter for fBm noise" visible = @fBm && @showfbm endparam param bstep caption = "fBm Stepsize" default = 0.5 hint = "Scale step size for fBm noise iterations" visible = @fBm && @showfbm endparam param banglestep caption = "fBm Rotation Step" default = 53.0 hint = "The angle in degrees for noise function rotation after \ each fBm iteration; used if fBm is enabled" visible = @fBm && @showfbm endparam param boctaves caption = "fBm Octaves" default = 7 min = 1 hint = "The number of iterations of the fBm noise function" visible = @fBm && @showfbm endparam param bpower caption = "fBm Exponent" default = 2.0 hint = "The exponent used if param fBm is enabled \ for fBm randomization" visible = @fBm && @showfbm endparam param bbfreq caption = "fBm Frequency" default = 1.0 hint = "Frequency multiplier for fBm noise" visible = @fBm && @showfbm endparam param boffset caption = "fBm Offset" default = (0.0,0.0) hint = "Offset added to fBm noise initializer" visible = @fBm && @showfbm endparam param bsumoffset caption = "fBm Sum Offset" default = 0.0 hint = "This term adjusts the cumulative fBm sum" visible = @fBm && @showfbm endparam param bpostscale caption = "fBm Postscale" default = 1.0 hint = "This factor scales the cumulative fBm sum after the \ 'fBm Warp Factor' function" visible = @fBm && @showfbm endparam param @fbmfunc caption = "fBm Warp Factor" enum = "none" "1/c" "c^2" "1/c^2" "log(c)" "e^c" "c^c" "sin(c)" "cos(c)" \ "tan(c)" "asin(c)" "acos(c)" "atan(c)" "sinh(c)" "cosh(c)" "tanh(c)" \ "asinh(c)" "acosh(c)" "atanh(c)" "log(1/c)" "log(log(c))" "e^-c" \ "e^(1/c)" "c^-c" "sin(c)^n" "cos(c)^n" "tan(c)^n" "cot(c)" "sec(c)" \ "csc(c)" "cot(c)^n" "sec(c)^n" "csc(c)^n" "c^c^c" "1/c^c^c" "log(-c)" \ "1/log(c)" "clog(c)" "sin(c)/c" "cos(c)/c" "sin(c)*cos(n*c)" "sin(c^n)" \ "e^(-1/c)" "ce^c" "ce^-c" "ce^(1/c)" "ce^(-1/c)" "c^3" "1/c^3" \ "acot(c)" "asec(c)" "acsc(c)" "tan(c)/c" "cot(c)/c" "sec(c)/c" \ "csc(c)/c" "csin(c)" "ccos(c)" "ctan(c)" "ccot(c)" "csec(c)" "ccsc(c)" \ "sin(1/c)" "cos(1/c)" "tan(1/c)" "cot(1/c)" "sec(1/c)" "csc(1/c)" \ "cotanh(c)" "sech(c)" "cosech(c)" "acoth(c)" "asech(c)" "acosech(c)" "c^power" \ "sinh(c)^n" "cosh(c)^n" "tanh(c)^n" "cotanh(c)^n" \ "sech(c)^n" "cosech(c)^n" "sinh(1/c)" "cosh(1/c)" "tanh(1/c)" \ "cotanh(1/c)" "sech(1/c)" "cosech(1/c)" "sin(c)tan(n*c)" "sinh(c)tanh(n*c)" \ "sinh(c)cosh(n*c)" "sinh(c)^m*cosh(c)^n" "sin(c)^m*cos(c)^n" \ "sin(1/c)*cos(n/c)" "sin(1/c)^n" "sin(c)cos(n/c)" "sin(c)sin(n/c)" \ "log(c)^n" "sin(c)sin(n*c)" "e^2c" "e^-2c" "sinh(1/c)cosh(n/c)" \ "sinh(1/c)^n" "sinh(c)cosh(n/c)" "sinh(c)sinh(n/c)" "sin(c)sinh(n*c)" \ "sin(c)cosh(n*c)" "sin(c)^m*sinh(c)^n" "sin(c)e^c" "cos(c)e^c" \ "sinh(c)e^c" "cosh(c)e^c" "sin(c)log(c)" "cos(c)log(c)" "sinh(c)log(c)" \ "cosh(c)log(c)" \ "e^(c^n)" "e^(1/(c^n))" "abs(c)" "round(c)" "trunc(c)" \ "ceil(c)" "floor(c)" "c/log(c)" "log(c)/c" "(e^c)/c" "(e^(1/c))/c" \ "(e^(c^n))/c" "(e^(1/(c^n))/c" "c*e^(c^n)" "c*e^(1/(c^n))" \ "e^(-c^n)" "e^(-1/(c^n))" "(e^(-c^n))/c" "(e^(-1/(c^n))/c" \ "c*e^(-c^n)" "c*e^(1/(-c^n))" "c%n" default = 0 hint = "This function modifies the fBm noise algorithm" visible = @fBm && @showfbm endparam param funcpower caption = "fBm Warp Power" default = 0.333333333333333 hint = "If param 'fBm Warp Factor' is set to 'c^power', then this is the power" visible = (@fbmfunc == "c^power") && @fBm && @showfbm endparam param funcprescale caption = "fBm Warp Prescale" default = 1.0 hint = "This factor scales the argument to the 'fBm Warp Factor' function" visible = @fBm && @showfbm && @fbmfunc != "none" endparam param funcparam1 caption = "fBm Warp Param1" default = 1.0 hint = "If the 'fBm Warp Factor' function uses extra parameters, then \ this number is the first of those" visible = @fBm && @showfbm && (@fbmfunc > 3) endparam param funcparam2 caption = "fBm Warp Param2" default = 2.0 hint = "If the 'fBm Warp Factor' function uses extra parameters, then \ this number is the second of those" visible = @fBm && @showfbm && ( (@fbmfunc == 20) || (@fbmfunc == 24) || \ (@fbmfunc == 25) || (@fbmfunc == 26) || (@fbmfunc == 30) || \ (@fbmfunc == 31) || (@fbmfunc == 32) || (@fbmfunc == 33) || \ (@fbmfunc == 34) || (@fbmfunc == 40) || (@fbmfunc == 75) || \ (@fbmfunc == 76) || (@fbmfunc == 77) || (@fbmfunc == 78) || \ (@fbmfunc == 79) || (@fbmfunc == 80) || (@fbmfunc == 87) || \ (@fbmfunc == 88) || (@fbmfunc == 89) || (@fbmfunc == 90) || \ (@fbmfunc == 91) || (@fbmfunc == 92) || (@fbmfunc == 93) || \ (@fbmfunc == 94) || (@fbmfunc == 95) || (@fbmfunc == 97) || \ (@fbmfunc == 100) || (@fbmfunc == 101) || (@fbmfunc == 102) || \ (@fbmfunc == 103) || (@fbmfunc == 104) || (@fbmfunc == 105) || \ (@fbmfunc == 106) || (@fbmfunc == 107) || (@fbmfunc == 108) || \ (@fbmfunc == 109) || (@fbmfunc == 110) || (@fbmfunc == 111) || \ (@fbmfunc == 112) || (@fbmfunc == 113) || (@fbmfunc == 114) || \ (@fbmfunc == 115) || (@fbmfunc == 116) || (@fbmfunc == 126) || \ (@fbmfunc == 127) || (@fbmfunc == 128) || (@fbmfunc == 129) || \ (@fbmfunc == 130) || (@fbmfunc == 131) || (@fbmfunc == 132) || \ (@fbmfunc == 133) || (@fbmfunc == 134) || (@fbmfunc == 135) ) endparam heading caption = "Mask Settings" endheading param showmasks caption = "Show Mask Params?" default = TRUE endparam param maskA caption = "Enable Mask?" default = FALSE hint = "If enabled, pixels can be masked by iteration depending upon the values \ of parameter 'Mask If?' \ Masked pixels will be colored the solid color" visible = @showmasks endparam param maskwhat caption = "Mask What?" enum = "iteration" "biomorph test" "real 1" "real 2" "imag 1" "imag 2" \ "sum 1" "sum 2" "sum 3" "product" "cabs" "angle" default = 0 hint = "This parameter determines which aspect of #z is used for masking." visible = @showmasks && @maskA endparam param maskifA caption = "Mask If?" enum = "falls above" "falls below" "falls between" "falls outside" "equals" "not equal" default = 0 hint = "If 'Enable Mask?' is active, then this param sets the range of \ values that will be masked" visible = @showmasks && @maskA endparam param maskAmin caption = "Mask Threshold" default = 1.99 hint = "If 'Enable Mask?' is active, then this param sets the iteration threshold \ for masking. If two values are needed, then this is the lower value \ for masking" visible = @showmasks && @maskA endparam param maskAmax caption = "Mask Maximum" default = 50.1 hint = "If 'Enable Mask?' is active and 'Mask If?' is set to \ 'falls between' or 'falls below', then this param sets the upper iteration value \ for masking" visible = @showmasks && @maskA && ( (@maskifA == 2) || (@maskifA == 3) ) endparam } jam-OrbitTrapRepriseV3.1 { ; June 2019 --- Major revision incorporating some Trapestry trap shapes into the Reprise format. ; Sept 2017 --- Incorporated new orbit trap routines based on line segments and isolated points ; atop Trapestry++ skeleton. ; Generalized traps based on simple geometric shapes. ; One or two trap shapes may be specified. If more than one trap ; is specified, they can be merged in various ways. ; jamaddry@gmail.com ; For my own convenience: ; NEXT TRAPARRAY INDEX: 224 (for "lines & points" type) ; pi = 3.1415926535897932384626433832795 ; e = 2.7182818284590452353602874713527 ; phi = 1.6180339887498948482045868343656 ; sqrt(2) = 1.4142135623730950488016887242097 ; sqrt(3) = 1.7320508075688772935274463415059 ; sqrt(pi) = 1.7724538509055 ; gamma = 0.5772156649 ; omega = 0.5671432904097838729999686622103 ; zeta(2) = 1.6449340668482 global: int numberoftraps = 0 int numbervertices = 0 ; change to accomodate trap shape (for 'lines & points') int cursality[2] ; number of disjoint line segments for traps 1 & 2 -- changes to accomodate trap shape int cincrement[2] ; cursality increments, i.e., number of vertices in each distinct line segment float scratchfloat = 0.0 float scratchfloat2 = float scratchfloat3 = float scratchfloat4 = 0.0 int scratchint = int scratchint2 = 0 int glindex = 0 ; for loops in the global section int glindex2 = 0 ; global outer loop index int glindex3 = 0 ; extra index int maxvertices = 402 ; maximum number of vertices for each trap complex vertex[2,402] ; maximum number of vertices for each trap float xcoord[2,402] ; x-coordinates of vertices float ycoord[2,402] ; y-coordinates vertices int trptype[2] ; each trap can be 'lines & points', 'polar functions', parametric funcs', etc. int traparray[2] ; the two trap shapes float trapscales[2] ; for individually manipulating the trap sizes ; variables specific for some of the 'lines & points' trap shapes int unityroots[2] ; for 'roots of unity' option bool singleroot[2] ; flag for 'roots of unity' option int whichroot[2] ; for 'roots of unity' option int collinearspots[2] ; for 'collinear spots' option int squaresize[2] ; for 'square array' option int triarraysize[2] ; for 'triangular array' and some other array options int spiralsize[2] ; for the 'polygonal spiral' options float shrink2 = 0.5, float shrink3 = 1/3 float ellipseH[2] ; for 'superellipse' option float ellipseW[2] float ellipseX[2] float hypotroA[2] ; for 'hypotrochoid' and 'epitrochoid' options float hypotroB[2] float hypotroH[2] int granularity = 100 ; for smoother curves int granularity2= 101 float lissajdomain = 0.0 ; for 'lissajous 3' option int numbercircles[2] ; for 'nested circles', 'osculant circles' options int dotnum[2] ; for the 'dotted star' options int raynum[2] int dashnum[2] ; for the 'dashed star' options float cycloidamp[2] float cycloidconst[2] float cycloidlength[2] float moritzamp[2] float moritzfreqN[2] float moritzfreqD[2] float moritzconst[2] ; variables specific for some of the 'polar functions' trap shapes bool polarimplicit[2] ; flag for marking some polar curves as defined implicitly rather than radially bool polarsmoothing[2] ; to soften coloring float polarsmoothmod[2] int rosepetals[2] ; for the polar rose shape float folium[2] ; folium shaping parameters float foliumperturb[2] float cardioid[2] ; cardioid shaping parameters float cardioidperturb[2] float cissoidDioA[2] ; cissoid of Diocles float cissoidDioB[2] float cochleoid[2] ; cochleoid float conchoidA[2] ; various conchoid shaping parameters float conchoidB[2] float conchoidC[2] float cubicpA[2] ; cubical parabola shaping parameters float cubicpB[2] float cubicpC[2] float majaxis[2] float minaxis[2] float epower[2] float tanfreq[2] float fosinfreq[2] float focosfreq[2] float sinfreq2[2] float hyperbolic[2] float kampfreq[2] float kamppower[2] float nodalfreq[2] float lemfreq[2] float lempower[2] float limfreq[2] float limamp[2] float limoffset[2] float litpower[2] float logspiA[2] float logspiB[2] float parafreq[2] float paraamp[2] float paraoffset[2] float paraspi[2] float paraspioffset[2] float semicubtanfreq[2] float semicubcosfreq[2] float semicubpower[2] float archspioffset[2] float strophcosfreqA[2] float strophcosfreqB[2] float polarfreqA[2] float polarampA[2] float trefoilcosamp[2] float trefoilsinamp[2] float trefoilcossym[2] float trefoilsinsym[2] float trefoilconst[2] float trilimA[2] float trilimB[2] float trilimamp[2] float trilimfreq[2] float folioidamp[2] float folioidfreqN[2] float folioidfreqD[2] float folioidconstA[2] float folioidconstB[2] ; variables specific for the 'parametric functions' shapes int hyponumer[2] ; hypocycloid shaping parameters int hypodenom[2] ; hypocycloid shaping parameters float companC1[2] float companC2[2] float companfreq[2] float cycampA[2] float cycampB[2] float cycxscale[2] float cycyoffset[2] float cycsinfreq[2] float cyccosfreq[2] float cycangle[2] float epicycAN[2] float epicycAD[2] float epicycB[2] float epicycC[2] float nephconstA[2] float nephconstB[2] float nephsinfreq[2] float nephcosfreq[2] float parafreqA[2] float parafreqB[2] float paraconstA[2] float paraconstB[2] float wavysinfreq[2] float wavysinamp[2] float wavyradius[2] float paraxaxis[2] float parayaxis[2] float epiradiusA[2] float epiradiusB[2] float epiradiusC[2] ; variables specific for the 'cartesian' trap shapes float cartsmooth[2] float cartxcoeff[2] float cartycoeff[2] float cartconst[2] float cartconstB[2] float cartconstC[2] float cartexexp[2] float carteyexp[2] float coniceccent[2] float conchmod[2] ; variables specific for the 'simple functions' trap shapes int funcmode[2] float sfuncfreq[2] float sfuncamp[2] float sfuncpower[2] float sfuncbase[2] ; Common constants float twopi = 2.0 * #pi float halfpi = #pi/2 float degconversion = twopi/360 float onehalf = 1.0/2 float onethird = 1.0/3 float onefourth = 1.0/4 trapscales[0] = @nscale1 trapscales[1] = @nscale2 ; shaping variables for 'lines & points' traps lissajdomain = #pi * @lissadomain if @traptype == "lines & points" unityroots[0] = @unityroot1 singleroot[0] = @singleroot1 whichroot[0] = @whichroot1 - 1 ; indeces should run from 0-(#roots-1) collinearspots[0] = @collinearspot1 squaresize[0] = @squarespot1 triarraysize[0] = @triarray1 spiralsize[0] = @spiralorder1 ellipseH[0] = @ellipseheight1 ellipseW[0] = @ellipsewidth1 ellipseX[0] = @ellipseexponent1 hypotroA[0] = @hypotrochA1 hypotroB[0] = @hypotrochB1 hypotroH[0] = @hypotrochH1 numbercircles[0] = @circlenum1 raynum[0] = @raynumber dotnum[0] = @dotnumber dashnum[0] = @dashnumber cycloidamp[0] = @cycloidamp1 cycloidconst[0] = @cycloidconst1 cycloidlength[0] = @cycloidlength1 moritzamp[0] = @moritzamp1 moritzfreqN[0] = @moritzfreqN1 moritzfreqD[0] = @moritzfreqD1 moritzconst[0] = @moritzconst1 endif ; @traptype if @traptype2 == "lines & points" unityroots[1] = @unityroot2 singleroot[1] = @singleroot2 whichroot[1] = @whichroot2 - 1 collinearspots[1] = @collinearspot2 squaresize[1] = @squarespot2 triarraysize[1] = @triarray2 spiralsize[1] = @spiralorder2 ellipseH[1] = @ellipseheight2 ellipseW[1] = @ellipsewidth2 ellipseX[1] = @ellipseexponent2 hypotroA[1] = @hypotrochA2 hypotroB[1] = @hypotrochB2 hypotroH[1] = @hypotrochH2 numbercircles[1] = @circlenum2 raynum[1] = @raynumber2 dotnum[1] = @dotnumber2 dashnum[1] = @dashnumber2 cycloidamp[1] = @cycloidamp2 cycloidconst[1] = @cycloidconst2 cycloidlength[1] = @cycloidlength2 moritzamp[1] = @moritzamp2 moritzfreqN[1] = @moritzfreqN2 moritzfreqD[1] = @moritzfreqD2 moritzconst[1] = @moritzconst2 endif ; @traptype2 ; shaping variables for 'polar functions' traps if @traptype == "polar functions" if @polarmode1 == "normal" polarimplicit[0] = FALSE ; radial function, not implicit curve else ; polar implicit function polarimplicit[0] = TRUE trapscales[0] = recip(trapscales[0]) endif ; @polarmode1 polarsmoothing[0] = @polarsmoothing1 polarsmoothmod[0] = recip(@polarsmoothmod1) rosepetals[0] = @rose1 folium[0] = @folium1 foliumperturb[0] = @foliumperturb1 cardioid[0] = @cardioid1 cardioidperturb[0] = @cardioidperturb1 cissoidDioA[0] = @cissoidDioA1 cissoidDioB[0] = @cissoidDioB1 cochleoid[0] = @cochleoid1 conchoidA[0] = @conchoidA1 conchoidB[0] = @conchoidB1 conchoidC[0] = @conchoidC1 conchoidA[0] = @conchoidA1 conchoidB[0] = @conchoidB1 conchoidC[0] = @conchoidC1 cubicpA[0] = @cubicpA1 cubicpB[0] = @cubicpB1 cubicpC[0] = @cubicpC1 majaxis[0] = @majaxis1 minaxis[0] = @minaxis1 epower[0] = @epower1 tanfreq[0] = @tanfreq1 fosinfreq[0] = @fosinfreq1 focosfreq[0] = @focosfreq1 sinfreq2[0] = @sinfreq21 hyperbolic[0] = @hyperbolic1 kampfreq[0] = @kampfreq1 kamppower[0] = @kamppower1 nodalfreq[0] = @nodalfreq1 lemfreq[0] = @lemfreq1 lempower[0] = @lempower1 limfreq[0] = @limfreq1 limamp[0] = @limamp1 limoffset[0] = @limoffset1 litpower[0] = @litpower1 logspiA[0] = @logspiA1 logspiB[0] = 0.2 * @logspiB1 parafreq[0] = @parafreq1 paraamp[0] = @paraamp1 paraoffset[0] = @paraoffset1 paraspi[0] = @paraspi1 paraspioffset[0] = @paraspioffset1 semicubtanfreq[0] = @semicubtanfreq1 semicubcosfreq[0] = @semicubcosfreq1 semicubpower[0] = @semicubpower1 archspioffset[0] = 3.0 * @archspioffset1 strophcosfreqA[0] = @strophcosfreqA1 strophcosfreqB[0] = @strophcosfreqB1 polarfreqA[0] = @polarfreqA1 polarampA[0] = @polarampA1 trefoilcosamp[0] = @trefoilcosamp1 trefoilsinamp[0] = @trefoilsinamp1 trefoilcossym[0] = @trefoilcossymmetry1 trefoilsinsym[0] = @trefoilsinsymmetry1 trefoilconst[0] = @trefoilconstant1 trilimA[0] = @trilimA1 trilimB[0] = @trilimB1 trilimamp[0] = @trilimamp1 trilimfreq[0] = @trilimfreq1 folioidamp[0] = @folioidamp1 folioidfreqN[0] = @folioidfreqN1 folioidfreqD[0] = @folioidfreqD1 folioidconstA[0] = @folioidconstA1 folioidconstB[0] = @folioidconstB1 endif ; @traptype if @traptype2 == "polar functions" if @polarmode2 == "normal" polarimplicit[1] = FALSE ; radial function, not implicit curve else polarimplicit[1] = TRUE trapscales[1] = recip(trapscales[1]) endif ; @polarmode2 polarsmoothing[1] = @polarsmoothing2 polarsmoothmod[1] = recip(@polarsmoothmod2) rosepetals[1] = @rose2 folium[1] = @folium2 foliumperturb[1] = @foliumperturb2 cardioid[1] = @cardioid2 cardioidperturb[1] = @cardioidperturb2 cissoidDioA[1] = @cissoidDioA2 cissoidDioB[1] = @cissoidDioB2 cochleoid[1] = @cochleoid2 conchoidA[1] = @conchoidA1 conchoidB[1] = @conchoidB1 conchoidC[1] = @conchoidC1 conchoidA[1] = @conchoidA2 conchoidB[1] = @conchoidB2 conchoidC[1] = @conchoidC2 cubicpA[1] = @cubicpA2 cubicpB[1] = @cubicpB2 cubicpC[1] = @cubicpC2 majaxis[1] = @majaxis2 minaxis[1] = @minaxis2 epower[1] = @epower2 tanfreq[1] = @tanfreq2 fosinfreq[1] = @fosinfreq2 focosfreq[1] = @focosfreq2 sinfreq2[1] = @sinfreq22 hyperbolic[1] = @hyperbolic2 kampfreq[1] = @kampfreq2 kamppower[1] = @kamppower2 nodalfreq[1] = @nodalfreq2 lemfreq[1] = @lemfreq2 lempower[1] = @lempower2 limfreq[1] = @limfreq2 limamp[1] = @limamp2 limoffset[1] = @limoffset2 litpower[1] = @litpower2 logspiA[1] = @logspiA2 logspiB[1] = 0.2 * @logspiB2 parafreq[1] = @parafreq2 paraamp[1] = @paraamp2 paraoffset[1] = @paraoffset2 paraspi[1] = @paraspi2 paraspioffset[1] = @paraspioffset2 semicubtanfreq[1] = @semicubtanfreq2 semicubcosfreq[1] = @semicubcosfreq2 semicubpower[1] = @semicubpower2 archspioffset[1] = 3.0 * @archspioffset2 strophcosfreqA[1] = @strophcosfreqA2 strophcosfreqB[1] = @strophcosfreqB2 polarfreqA[1] = @polarfreqA2 polarampA[1] = @polarampA2 trefoilcosamp[1] = @trefoilcosamp2 trefoilsinamp[1] = @trefoilsinamp2 trefoilcossym[1] = @trefoilcossymmetry2 trefoilsinsym[1] = @trefoilsinsymmetry2 trefoilconst[1] = @trefoilconstant2 trilimA[1] = @trilimA2 trilimB[1] = @trilimB2 trilimamp[1] = @trilimamp2 trilimfreq[1] = @trilimfreq2 folioidamp[1] = @folioidamp2 folioidfreqN[1] = @folioidfreqN2 folioidfreqD[1] = @folioidfreqD2 folioidconstA[1] = @folioidconstA2 folioidconstB[1] = @folioidconstB2 endif ; @traptype2 ; shaping variables for 'parametric functions' traps if @traptype == "parametric functions" hyponumer[0] = @hyponumerator1 hypodenom[0] = @hypodenom1 companC1[0] = @companC11 companC2[0] = @companC21 companfreq[0] = @companfreq1 cycampA[0] = @cycampA1 cycampB[0] = @cycampB1 cycxscale[0] = @cycxscale1 cycyoffset[0] = @cycyoffset1 cycsinfreq[0] = @cycsinfreq1 cyccosfreq[0] = @cyccosfreq1 cycangle[0] = @cycangle1 epicycAN[0] = @epicycAN1 epicycAD[0] = @epicycAD1 epicycB[0] = @epicycB1 epicycC[0]= @epicycC1 nephsinfreq[0] = @nephsinfreq1 nephcosfreq[0] = @nephcosfreq1 nephconstA[0] = @nephconstA1 nephconstB[0] = @nephconstB1 parafreqA[0] = @parafreqA1 parafreqB[0] = @parafreqB1 paraconstA[0] = @paraconstA1 paraconstB[0] = @paraconstB1 wavysinfreq[0] = @wavysinfreq1 wavysinamp[0] = @wavysinamp1 wavyradius[0] = @wavyradius1 paraxaxis[0] = @paraxaxis1 parayaxis[0] = @parayaxis1 epiradiusA[0] = @epiradiusA1 epiradiusB[0] = @epiradiusB1 epiradiusC[0] = @epiradiusC1 endif ; @traptype if @traptype2 == "parametric functions" hyponumer[1] = @hyponumerator2 hypodenom[1] = @hypodenom2 companC1[1] = @companC12 companC2[1] = @companC22 companfreq[1] = @companfreq2 cycampA[1] = @cycampA2 cycampB[1] = @cycampB2 cycxscale[1] = @cycxscale2 cycyoffset[1] = @cycyoffset2 cycsinfreq[1] = @cycsinfreq2 cyccosfreq[1] = @cyccosfreq2 cycangle[1] = @cycangle2 epicycAN[1] = @epicycAN2 epicycAD[1] = @epicycAD2 epicycB[1] = @epicycB2 epicycC[1]= @epicycC2 nephsinfreq[1] = @nephsinfreq2 nephcosfreq[1] = @nephcosfreq2 nephconstA[1] = @nephconstA2 nephconstB[1] = @nephconstB2 parafreqA[1] = @parafreqA2 parafreqB[1] = @parafreqB2 paraconstA[1] = @paraconstA2 paraconstB[1] = @paraconstB2 wavysinfreq[1] = @wavysinfreq2 wavysinamp[1] = @wavysinamp2 wavyradius[1] = @wavyradius2 paraxaxis[1] = @paraxaxis2 parayaxis[1] = @parayaxis2 epiradiusA[1] = @epiradiusA2 epiradiusB[1] = @epiradiusB2 epiradiusC[1] = @epiradiusC2 endif ; @traptype2 if @traptype == "cartesian" trapscales[0] = 1/trapscales[0] cartsmooth[0] = 1/@cartsmoothing cartxcoeff[0] = @cartxcoeff1 cartycoeff[0] = @cartycoeff1 cartconst[0] = @cartconstant1 cartconstB[0] = @cartconstantB1 cartconstC[0] = @cartconstantC1 cartexexp[0] = @cartexexp1 carteyexp[0] = @carteyexp1 coniceccent[0] = @coniceccent1 conchmod[0] = @conchmod1 endif ; @traptype if @traptype2 == "cartesian" trapscales[1] = 1/trapscales[1] cartsmooth[1] = 1/@cartsmoothing2 cartxcoeff[1] = @cartxcoeff2 cartycoeff[1] = @cartycoeff2 cartconst[1] = @cartconstant2 cartconstB[1] = @cartconstantB2 cartconstC[1] = @cartconstantC2 cartexexp[1] = @cartexexp2 carteyexp[1] = @carteyexp2 coniceccent[1] = @coniceccent2 conchmod[1] = @conchmod2 endif ; @traptype2 if @traptype == "simple functions" if @funcmode1 == "cartesian" trapscales[0] = 1/trapscales[0] cartsmooth[0] = 1/@cartsmoothing endif ; @funcmode1 sfuncfreq[0] = @sfuncfreq1 sfuncamp[0] = @sfuncamp1 sfuncpower[0] = @sfuncpower1 sfuncbase[0] = @sfuncbase1 endif ; @traptype if @traptype2 == "simple functions" if @funcmode2 == "cartesian" trapscales[1] = 1/trapscales[1] cartsmooth[1] = 1/@cartsmoothing2 endif ; @funcmode1 sfuncfreq[1] = @sfuncfreq2 sfuncamp[1] = @sfuncamp2 sfuncpower[1] = @sfuncpower2 sfuncbase[1] = @sfuncbase2 endif ; @traptype2 ; make sure the selection for individual roots is within bounds if whichroot[0] >= @unityroot1 whichroot[0] = @unityroot1 - 1 endif ; whichroot[0] if whichroot[1] >= @unityroot2 whichroot[1] = @unityroot2 - 1 endif ; whichroot[1] ; the following roundabout code is solely for the convenience of being able ; to insert new trap shapes into the enumerated list anywhere I please, ; without having to renumber the entire list. if @twotrapstrue numberoftraps = 2 else numberoftraps = 1 endif ; @twotrapstrue if @traptype == "lines & points" trptype[0] = 0 if @trapshape == "line" traparray[0] = 0 elseif @trapshape == "triangle" traparray[0] = 1 elseif @trapshape == "isosceles" traparray[0] = 2 elseif @trapshape == "3-asterisk" traparray[0] = 3 elseif @trapshape == "3-star" traparray[0] = 4 elseif @trapshape == "polytriangle" traparray[0] = 5 elseif @trapshape == "trigram" traparray[0] = 6 elseif @trapshape == "nested triangles" traparray[0] = 7 elseif @trapshape == "nested triangle 2" traparray[0] = 8 elseif @trapshape == "twisted triangles" traparray[0] = 9 elseif @trapshape == "twisted triangle 2" traparray[0] = 10 elseif @trapshape == "square" traparray[0] = 11 elseif @trapshape == "square 2" traparray[0] = 12 elseif @trapshape == "rhombus" traparray[0] = 13 elseif @trapshape == "kite" traparray[0] = 14 elseif @trapshape == "dart" traparray[0] = 15 elseif @trapshape == "rectangle" traparray[0] = 214 elseif @trapshape == "4-asterisk" traparray[0] = 16 elseif @trapshape == "4-star" traparray[0] = 17 elseif @trapshape == "flat 4-star" traparray[0] = 18 elseif @trapshape == "bowtie" traparray[0] = 19 elseif @trapshape == "windowpane" traparray[0] = 20 elseif @trapshape == "tetragram" traparray[0] = 21 elseif @trapshape == "nested squares" traparray[0] = 22 elseif @trapshape == "nested square 2" traparray[0] = 23 elseif @trapshape == "twisted squares" traparray[0] = 24 elseif @trapshape == "twisted square 2" traparray[0] = 25 elseif @trapshape == "windmill" traparray[0] = 26 elseif @trapshape == "windmill 2" traparray[0] = 27 elseif @trapshape == "pentagon" traparray[0] = 28 elseif @trapshape == "pentagon 2" traparray[0] = 29 elseif @trapshape == "pentagram" traparray[0] = 30 elseif @trapshape == "pentagram 2" traparray[0] = 31 elseif @trapshape == "pentagram 3" traparray[0] = 32 elseif @trapshape == "pentagram 4" traparray[0] = 33 elseif @trapshape == "5-asterisk" traparray[0] = 34 elseif @trapshape == "5-star" traparray[0] = 35 elseif @trapshape == "nested pentagons" traparray[0] = 36 elseif @trapshape == "nested pentagon 2" traparray[0] = 37 elseif @trapshape == "twisted pentagons" traparray[0] = 38 elseif @trapshape == "twisted pentagon 2" traparray[0] = 39 elseif @trapshape == "hexagon" traparray[0] = 40 elseif @trapshape == "hexagon 2" traparray[0] = 41 elseif @trapshape == "hexagram" traparray[0] = 42 elseif @trapshape == "hexagram 2" traparray[0] = 43 elseif @trapshape == "hexagram 3" traparray[0] = 44 elseif @trapshape == "hexagram 4" traparray[0] = 45 elseif @trapshape == "hexagram 5" traparray[0] = 46 elseif @trapshape == "hexagram 6" traparray[0] = 47 elseif @trapshape == "hexagram 7" traparray[0] = 48 elseif @trapshape == "6-asterisk" traparray[0] = 49 elseif @trapshape == "6-star" traparray[0] = 50 elseif @trapshape == "nested hexagons" traparray[0] = 51 elseif @trapshape == "nested hexagon 2" traparray[0] = 52 elseif @trapshape == "twisted hexagons" traparray[0] = 53 elseif @trapshape == "twisted hexagon 2" traparray[0] = 54 elseif @trapshape == "hand" traparray[0] = 55 elseif @trapshape == "zigzag-3" traparray[0] = 56 elseif @trapshape == "zigzag-4" traparray[0] = 57 elseif @trapshape == "zigzag-5" traparray[0] = 58 elseif @trapshape == "zigzag-6" traparray[0] = 59 elseif @trapshape == "zigzag-7" traparray[0] = 60 elseif @trapshape == "sawtooth-1" traparray[0] = 61 elseif @trapshape == "sawtooth-2" traparray[0] = 62 elseif @trapshape == "sawtooth-3" traparray[0] = 63 elseif @trapshape == "sawtooth-4" traparray[0] = 64 elseif @trapshape == "5-star 2" traparray[0] = 65 elseif @trapshape == "3-star 2" traparray[0] = 66 elseif @trapshape == "tetragram 2" traparray[0] = 67 elseif @trapshape == "pentagram 5" traparray[0] = 68 elseif @trapshape == "4-star 2" traparray[0] = 69 elseif @trapshape == "5-star 3" traparray[0] = 70 elseif @trapshape == "6-star 2" traparray[0] = 71 elseif @trapshape == "6-star 3" traparray[0] = 72 elseif @trapshape == "square-1" traparray[0] = 73 elseif @trapshape == "square-2" traparray[0] = 74 elseif @trapshape == "square-3" traparray[0] = 75 elseif @trapshape == "square-4" traparray[0] = 76 elseif @trapshape == "heptagon" traparray[0] = 77 elseif @trapshape == "heptagon 2" traparray[0] = 78 elseif @trapshape == "heptagram" traparray[0] = 79 elseif @trapshape == "heptagram 2" traparray[0] = 80 elseif @trapshape == "heptagram 3" traparray[0] = 81 elseif @trapshape == "heptagram 4" traparray[0] = 82 elseif @trapshape == "heptagram 5" traparray[0] = 83 elseif @trapshape == "heptagram 6" traparray[0] = 84 elseif @trapshape == "heptagram 7" traparray[0] = 85 elseif @trapshape == "7-asterisk" traparray[0] = 86 elseif @trapshape == "7-star" traparray[0] = 87 elseif @trapshape == "7-star 2" traparray[0] = 88 elseif @trapshape == "nested heptagons" traparray[0] = 89 elseif @trapshape == "nested heptagon 2" traparray[0] = 90 elseif @trapshape == "twisted heptagons" traparray[0] = 91 elseif @trapshape == "twisted heptagon 2" traparray[0] = 92 elseif @trapshape == "peano curve" traparray[0] = 93 elseif @trapshape == "octagon" traparray[0] = 94 elseif @trapshape == "octagon 2" traparray[0] = 95 elseif @trapshape == "octagram" traparray[0] = 96 elseif @trapshape == "octagram 2" traparray[0] = 97 elseif @trapshape == "octagram 3" traparray[0] = 98 elseif @trapshape == "octagram 4" traparray[0] = 99 elseif @trapshape == "octagram 5" traparray[0] = 100 elseif @trapshape == "octagram 6" traparray[0] = 101 elseif @trapshape == "octagram 7" traparray[0] = 102 elseif @trapshape == "8-asterisk" traparray[0] = 103 elseif @trapshape == "8-star" traparray[0] = 104 elseif @trapshape == "8-star 2" traparray[0] = 105 elseif @trapshape == "octagram 8" traparray[0] = 106 elseif @trapshape == "octagram 9" traparray[0] = 107 elseif @trapshape == "octagram 10" traparray[0] = 108 elseif @trapshape == "roots of unity" traparray[0] = 109 elseif @trapshape == "7-star 3" traparray[0] = 110 elseif @trapshape == "lissajous 1" traparray[0] = 111 elseif @trapshape == "nonagon" traparray[0] = 112 elseif @trapshape == "nonagram" traparray[0] = 113 elseif @trapshape == "nonagram 2" traparray[0] = 114 elseif @trapshape == "nonagram 3" traparray[0] = 115 elseif @trapshape == "nonagram 4" traparray[0] = 116 elseif @trapshape == "nonagram 5" traparray[0] = 117 elseif @trapshape == "nonagram 6" traparray[0] = 118 elseif @trapshape == "9-star" traparray[0] = 119 elseif @trapshape == "9-asterisk" traparray[0] = 120 elseif @trapshape == "9-star 2" traparray[0] = 121 elseif @trapshape == "9-star 3" traparray[0] = 122 elseif @trapshape == "decagon" traparray[0] = 123 elseif @trapshape == "10-asterisk" traparray[0] = 124 elseif @trapshape == "decagram" traparray[0] = 125 elseif @trapshape == "decagram 2" traparray[0] = 126 elseif @trapshape == "decagram 3" traparray[0] = 127 elseif @trapshape == "decagram 4" traparray[0] = 128 elseif @trapshape == "10-star" traparray[0] = 129 elseif @trapshape == "10-star 2" traparray[0] = 130 elseif @trapshape == "10-star 3" traparray[0] = 131 elseif @trapshape == "decagram 5" traparray[0] = 132 elseif @trapshape == "lissajous 2" traparray[0] = 133 elseif @trapshape == "collinear spots" traparray[0] = 134 elseif @trapshape == "square array" traparray[0] = 135 elseif @trapshape == "triangular array" traparray[0] = 136 elseif @trapshape == "triangular spiral" traparray[0] = 137 elseif @trapshape == "square spiral" traparray[0] = 138 elseif @trapshape == "pentagonal array" traparray[0] = 139 elseif @trapshape == "hexagonal array" traparray[0] = 140 elseif @trapshape == "pentagonal spiral" traparray[0] = 141 elseif @trapshape == "hexagonal spiral" traparray[0] = 142 elseif @trapshape == "octagonal spiral" traparray[0] = 143 elseif @trapshape == "superellipse" traparray[0] = 144 elseif @trapshape == "hypotrochoid" traparray[0] = 145 elseif @trapshape == "epitrochoid" traparray[0] = 146 elseif @trapshape == "lissajous 3" traparray[0] = 147 elseif @trapshape == "honeycomb" traparray[0] = 148 elseif @trapshape == "nested circles" traparray[0] = 149 elseif @trapshape == "osculant circles" traparray[0] = 150 elseif @trapshape == "nonagram 7" traparray[0] = 151 elseif @trapshape == "more polygons" if @morepolygons1 == "11-gon" traparray[0] = 152 elseif @morepolygons1 == "11-gram 1" traparray[0] = 153 elseif @morepolygons1 == "11-gram 2" traparray[0] = 154 elseif @morepolygons1 == "11-gram 3" traparray[0] = 155 elseif @morepolygons1 == "11-gram 4" traparray[0] = 156 elseif @morepolygons1 == "11-star" traparray[0] = 163 elseif @morepolygons1 == "11-star 2" traparray[0] = 165 elseif @morepolygons1 == "11-asterisk" traparray[0] = 164 elseif @morepolygons1 == "12-gon" traparray[0] = 157 elseif @morepolygons1 == "12-gram 1" traparray[0] = 158 elseif @morepolygons1 == "12-gram 2" traparray[0] = 159 elseif @morepolygons1 == "12-gram 3" traparray[0] = 160 elseif @morepolygons1 == "12-gram 4" traparray[0] = 161 elseif @morepolygons1 == "12-gram 5" traparray[0] = 162 elseif @morepolygons1 == "12-star" traparray[0] = 166 elseif @morepolygons1 == "12-star 2" traparray[0] = 167 elseif @morepolygons1 == "12-asterisk" traparray[0] = 168 elseif @morepolygons1 == "13-gon" traparray[0] = 189 elseif @morepolygons1 == "14-gon" traparray[0] = 190 elseif @morepolygons1 == "15-gon" traparray[0] = 191 elseif @morepolygons1 == "16-gon" traparray[0] = 192 elseif @morepolygons1 == "13-asterisk" traparray[0] = 193 elseif @morepolygons1 == "14-asterisk" traparray[0] = 194 elseif @morepolygons1 == "15-asterisk" traparray[0] = 195 elseif @morepolygons1 == "16-asterisk" traparray[0] = 196 elseif @morepolygons1 == "13-star" traparray[0] = 197 elseif @morepolygons1 == "14-star" traparray[0] = 198 elseif @morepolygons1 == "15-star" traparray[0] = 199 elseif @morepolygons1 == "16-star" traparray[0] = 200 elseif @morepolygons1 == "11-rhombstar" traparray[0] = 208 elseif @morepolygons1 == "12-rhombstar" traparray[0] = 209 elseif @morepolygons1 == "13-rhombstar" traparray[0] = 210 elseif @morepolygons1 == "14-rhombstar" traparray[0] = 211 elseif @morepolygons1 == "15-rhombstar" traparray[0] = 212 elseif @morepolygons1 == "16-rhombstar" traparray[0] = 213 endif ; @morepolygons1 elseif @trapshape == "more spirolaterals" if @morespirolaterals1 == "1,1,1,2,3;1/2" traparray[0] = 169 elseif @morespirolaterals1 == "1,1,2,1,3;1/2" traparray[0] = 170 elseif @morespirolaterals1 == "1,1,2,2,4;1/2" traparray[0] = 171 elseif @morespirolaterals1 == "1,1,4,5,4;1/2" traparray[0] = 172 elseif @morespirolaterals1 == "1,2,2,2,5;1/2" traparray[0] = 173 elseif @morespirolaterals1 == "1,2,5,3,5;1/2" traparray[0] = 174 elseif @morespirolaterals1 == "2,2,1,4,3;1/2" traparray[0] = 175 elseif @morespirolaterals1 == "2,2,4,4,3;1/2" traparray[0] = 176 elseif @morespirolaterals1 == "2,3,5,3,2;1/2" traparray[0] = 177 elseif @morespirolaterals1 == "1,6,6,6;1/4,1/4,-5/6" traparray[0] = 178 elseif @morespirolaterals1 == "1,6,6,2;3/4,-1/4,-1/6" traparray[0] = 179 elseif @morespirolaterals1 == "1,2,1,3;-4/5" traparray[0] = 180 elseif @morespirolaterals1 == "1,2,1,3;-4/5,-4/5,0" traparray[0] = 181 elseif @morespirolaterals1 == "1,2,1,3;-4/5,-1/5,-4/5" traparray[0] = 182 elseif @morespirolaterals1 == "1,3;1/5,3/5,-1/5" traparray[0] = 183 elseif @morespirolaterals1 == "1,2,3,3,2,1;5/6,1/6,1/6" traparray[0] = 184 elseif @morespirolaterals1 == "1,1,3,1;-5/6,-1/6,3/7" traparray[0] = 185 elseif @morespirolaterals1 == "1,1,3,1;-1/6,1/6,-3/7" traparray[0] = 186 elseif @morespirolaterals1 == "1,1,3,1;5/6,1/6,4/7" traparray[0] = 187 elseif @morespirolaterals1 == "1,3,1,4,2;-1/2,1/6" traparray[0] = 188 endif ; @morespirolaterals1 elseif @trapshape == "3-rhombstar" traparray[0] = 201 elseif @trapshape == "5-rhombstar" traparray[0] = 202 elseif @trapshape == "6-rhombstar" traparray[0] = 203 elseif @trapshape == "7-rhombstar" traparray[0] = 204 elseif @trapshape == "8-rhombstar" traparray[0] = 205 elseif @trapshape == "9-rhombstar" traparray[0] = 206 elseif @trapshape == "10-rhombstar" traparray[0] = 207 elseif @trapshape == "4-rhombstar" traparray[0] = 20 elseif @trapshape == "dotted star" traparray[0] = 215 elseif @trapshape == "dashed star" traparray[0] = 216 elseif @trapshape == "more curves" if @morecurves1 == "rhodonea" traparray[0] = 217 elseif @morecurves1 == "cycloid" traparray[0] = 218 elseif @morecurves1 == "parabolic lissajous" traparray[0] = 219 elseif @morecurves1 == "polar lissajous" traparray[0] = 220 elseif @morecurves1 == "Moritz cyclic harmonic" traparray[0] = 221 elseif @morecurves1 == "elliptic lissajous" traparray[0] = 222 elseif @morecurves1 == "bipolar lissajous" traparray[0] = 223 endif ; @morecurves endif ; @trapshape elseif @traptype == "polar functions" trptype[0] = 1 if @polarshape1 == "rose" traparray[0] = 0 elseif @polarshape1 == "folium" traparray[0] = 1 elseif @polarshape1 == "cardioid" traparray[0] = 2 elseif @polarshape1 == "circle" traparray[0] = 3 elseif @polarshape1 == "cissoid of Diocles" traparray[0] = 4 elseif @polarshape1 == "cochleoid" traparray[0] = 5 elseif @polarshape1 == "conchoid of De Sluze" traparray[0] = 7 elseif @polarshape1 == "conchoid of Nicomedes" traparray[0] = 8 elseif @polarshape1 == "cubical parabola" traparray[0] = 9 elseif @polarshape1 == "ellipse" traparray[0] = 10 elseif @polarshape1 == "folium of Descartes" traparray[0] = 11 elseif @polarshape1 == "hyperbolic spiral" traparray[0] = 12 elseif @polarshape1 == "kampyle of Eudoxus" traparray[0] = 13 elseif @polarshape1 == "kappa" traparray[0] = 14 elseif @polarshape1 == "lemniscate of Bernoulli" traparray[0] = 15 elseif @polarshape1 == "limacon of Pascal" traparray[0] = 16 elseif @polarshape1 == "lituus" traparray[0] = 17 elseif @polarshape1 == "logarithmic spiral" traparray[0] = 18 elseif @polarshape1 == "parabola" traparray[0] = 19 elseif @polarshape1 == "parabolic spiral" traparray[0] = 20 elseif @polarshape1 == "semicubical parabola" traparray[0] = 21 elseif @polarshape1 == "spiral of Archimedes" traparray[0] = 22 elseif @polarshape1 == "strophoid" traparray[0] = 23 elseif @polarshape1 == "Cayley's sextic" traparray[0] = 24 elseif @polarshape1 == "trisectrix limacon" traparray[0] = 25 elseif @polarshape1 == "trefoil of Habenicht" traparray[0] = 27 elseif @polarshape1 == "Cayley's sextic 2" traparray[0] = 28 elseif @polarshape1 == "lituus 2" traparray[0] = 29 litpower[0] = recip(litpower[0]) elseif @polarshape1 == "hippopede" traparray[0] = 30 elseif @polarshape1 == "folioid" traparray[0] = 31 endif ; @polarshape1 elseif @traptype == "parametric functions" trptype[0] = 2 if @parashape1 == "hypocycloid" traparray[0] = 0 elseif @parashape1 == "companion of cycloid" traparray[0] = 1 elseif @parashape1 == "cycloid" traparray[0] = 2 elseif @parashape1 == "cycloid variant" traparray[0] = 3 elseif @parashape1 == "epicycloid" traparray[0] = 4 elseif @parashape1 == "nephroid" traparray[0] = 5 elseif @parashape1 == "hyperbola" traparray[0] = 6 elseif @parashape1 == "tractrix" traparray[0] = 7 elseif @parashape1 == "wavy circle" traparray[0] = 8 elseif @parashape1 == "ellipse" traparray[0] = 9 elseif @parashape1 == "serpentine" traparray[0] = 10 elseif @parashape1 == "witch of Agnesi" traparray[0] = 11 elseif @parashape1 == "Abdank quadratrix" traparray[0] = 12 elseif @parashape1 == "cornoid" traparray[0] = 13 elseif @parashape1 == "epicycloid 2" traparray[0] = 14 elseif @parashape1 == "epitrochoid" traparray[0] = 15 endif ; @parashape1 elseif @traptype == "cartesian" trptype[0] = 3 if @xyshape1 == "ampersand" traparray[0] = 0 elseif @xyshape1 == "Alain's curve" traparray[0] = 1 elseif @xyshape1 == "arcs of Samothrace" traparray[0] = 2 elseif @xyshape1 == "astroid" traparray[0] = 3 elseif @xyshape1 == "atriphthaloid" traparray[0] = 4 elseif @xyshape1 == "bean curve 1" traparray[0] = 5 elseif @xyshape1 == "bean curve 2" traparray[0] = 6 elseif @xyshape1 == "beetle curve" traparray[0] = 7 elseif @xyshape1 == "bicorn" traparray[0] = 8 elseif @xyshape1 == "bicuspid" traparray[0] = 9 elseif @xyshape1 == "biquartic of Sacre" traparray[0] = 10 elseif @xyshape1 == "cubic egg" traparray[0] = 11 elseif @xyshape1 == "Bolza curve" traparray[0] = 12 elseif @xyshape1 == "bow curve" traparray[0] = 13 elseif @xyshape1 == "bullet nose curve" traparray[0] = 14 elseif @xyshape1 == "butterfly sextic" traparray[0] = 15 elseif @xyshape1 == "butterfly 2" traparray[0] = 16 elseif @xyshape1 == "cardioid" traparray[0] = 17 elseif @xyshape1 == "Cartesian oval" traparray[0] = 18 elseif @xyshape1 == "Cassini oval" traparray[0] = 19 elseif @xyshape1 == "catenary" traparray[0] = 20 elseif @xyshape1 == "Cayley's sextic" traparray[0] = 21 elseif @xyshape1 == "Ceva's trisectrix" traparray[0] = 22 elseif @xyshape1 == "Chasles cubic" traparray[0] = 23 elseif @xyshape1 == "circle" traparray[0] = 24 elseif @xyshape1 == "circular cubic" traparray[0] = 25 elseif @xyshape1 == "cissoid of Diocles" traparray[0] = 26 elseif @xyshape1 == "clinoid" traparray[0] = 27 elseif @xyshape1 == "cochleoid" traparray[0] = 28 elseif @xyshape1 == "conchoid of circle" traparray[0] = 29 elseif @xyshape1 == "conchoid of Nicomedes" traparray[0] = 30 elseif @xyshape1 == "conchoid of de Sluze" traparray[0] = 31 elseif @xyshape1 == "cornoid" traparray[0] = 32 elseif @xyshape1 == "cross curve" traparray[0] = 33 elseif @xyshape1 == "cubic of Apollonius" traparray[0] = 34 elseif @xyshape1 == "cranoid" traparray[0] = 35 elseif @xyshape1 == "Jerabek curve" traparray[0] = 36 elseif @xyshape1 == "Rosillo curve" traparray[0] = 37 elseif @xyshape1 == "deltoid" traparray[0] = 38 elseif @xyshape1 == "devil's curve" traparray[0] = 39 elseif @xyshape1 == "dipole curve" traparray[0] = 40 elseif @xyshape1 == "double egg" traparray[0] = 41 elseif @xyshape1 == "double folium" traparray[0] = 42 elseif @xyshape1 == "double U curve" traparray[0] = 43 elseif @xyshape1 == "dumbbell curve" traparray[0] = 44 elseif @xyshape1 == "cubic duplicatrix" traparray[0] = 45 elseif @xyshape1 == "Durer's conchoid" traparray[0] = 46 elseif @xyshape1 == "Sillke's egg of Columbus" traparray[0] = 47 elseif @xyshape1 == "Granville's egg" traparray[0] = 48 elseif @xyshape1 == "Kepler's egg" traparray[0] = 49 elseif @xyshape1 == "eight curve" traparray[0] = 50 elseif @xyshape1 == "ellipse" traparray[0] = 51 elseif @xyshape1 == "superellipse" traparray[0] = 52 elseif @xyshape1 == "fish quartic" traparray[0] = 53 elseif @xyshape1 == "conic focal conchoid" traparray[0] = 54 elseif @xyshape1 == "folium 1" traparray[0] = 55 elseif @xyshape1 == "folium 2" traparray[0] = 56 elseif @xyshape1 == "folium of Descartes" traparray[0] = 57 elseif @xyshape1 == "Durer's folium" traparray[0] = 58 elseif @xyshape1 == "Gaussian curve" traparray[0] = 59 elseif @xyshape1 == "Beutel heart" traparray[0] = 60 elseif @xyshape1 == "Proclus hippopede" traparray[0] = 61 elseif @xyshape1 == "Hoerl curve" traparray[0] = 62 elseif @xyshape1 == "Humbert cubic" traparray[0] = 63 elseif @xyshape1 == "hyperbola" traparray[0] = 64 elseif @xyshape1 == "hyperbola 2" traparray[0] = 65 elseif @xyshape1 == "illumination curve" traparray[0] = 66 elseif @xyshape1 == "kampyle of Eudoxus" traparray[0] = 67 elseif @xyshape1 == "kappa curve" traparray[0] = 68 elseif @xyshape1 == "Kiepert's curve" traparray[0] = 69 elseif @xyshape1 == "kieroid" traparray[0] = 70 elseif @xyshape1 == "kiss curve" traparray[0] = 71 elseif @xyshape1 == "Klein quartic" traparray[0] = 72 elseif @xyshape1 == "Kulp quartic" traparray[0] = 73 elseif @xyshape1 == "limacon of Pascal" traparray[0] = 74 elseif @xyshape1 == "links curve" traparray[0] = 75 elseif @xyshape1 == "Lissajous sextic" traparray[0] = 76 elseif @xyshape1 == "Lissajous quartic" traparray[0] = 77 elseif @xyshape1 == "logistic curve" traparray[0] = 78 elseif @xyshape1 == "Maltese cross" traparray[0] = 79 elseif @xyshape1 == "semicubical parabola" traparray[0] = 80 elseif @xyshape1 == "diverging parabola" traparray[0] = 81 elseif @xyshape1 == "nephroid" traparray[0] = 82 elseif @xyshape1 == "Freeth's nephroid" traparray[0] = 83 elseif @xyshape1 == "nodal curve" traparray[0] = 84 elseif @xyshape1 == "strophoid" traparray[0] = 85 elseif @xyshape1 == "ophiuride" traparray[0] = 86 elseif @xyshape1 == "parabola" traparray[0] = 87 elseif @xyshape1 == "parabola 2" traparray[0] = 88 elseif @xyshape1 == "parabolic trifolium" traparray[0] = 89 elseif @xyshape1 == "piriform" traparray[0] = 90 elseif @xyshape1 == "pearls of de Sluze" traparray[0] = 91 elseif @xyshape1 == "pursuit curve" traparray[0] = 92 elseif @xyshape1 == "quadratrix" traparray[0] = 93 elseif @xyshape1 == "quadrafolium" traparray[0] = 94 elseif @xyshape1 == "trifolium" traparray[0] = 95 elseif @xyshape1 == "right strophoid" traparray[0] = 96 elseif @xyshape1 == "scarabaeus" traparray[0] = 97 elseif @xyshape1 == "scyphoid" traparray[0] = 98 elseif @xyshape1 == "anguinea" traparray[0] = 99 elseif @xyshape1 == "damped sine" traparray[0] = 100 elseif @xyshape1 == "catastrophic sine" traparray[0] = 101 elseif @xyshape1 == "plane spiric" traparray[0] = 102 elseif @xyshape1 == "spiric of Perseus" traparray[0] = 103 elseif @xyshape1 == "svastika" traparray[0] = 104 elseif @xyshape1 == "syntractrix" traparray[0] = 105 elseif @xyshape1 == "tetracuspid" traparray[0] = 106 elseif @xyshape1 == "siluroid" traparray[0] = 107 elseif @xyshape1 == "trisectrix of Longchamps" traparray[0] = 108 elseif @xyshape1 == "trident" traparray[0] = 109 elseif @xyshape1 == "trisectrix of Delanges" traparray[0] = 110 elseif @xyshape1 == "trisectrix of Maclaurin" traparray[0] = 111 elseif @xyshape1 == "Trott curve" traparray[0] = 112 elseif @xyshape1 == "Tschirnhausen's cubic" traparray[0] = 113 elseif @xyshape1 == "visiera" traparray[0] = 114 elseif @xyshape1 == "resonance curve" traparray[0] = 115 elseif @xyshape1 == "Watt's curve" traparray[0] = 116 elseif @xyshape1 == "witch of Agnesi" traparray[0] = 117 endif ; @xyshape1 elseif @traptype == "simple functions" trptype[0] = 4 if @funcmode1 == "polar" funcmode[0] = 0 elseif @funcmode1 == "cartesian" funcmode[0] = 1 else ; "complex" funcmode[0] = 2 endif ; @funcmode1 if @funcshape1 == "cosine" traparray[0] = 0 elseif @funcshape1 == "tangent" traparray[0] = 1 elseif @funcshape1 == "sine" traparray[0] = 2 elseif @funcshape1 == "cot" traparray[0] = 3 elseif @funcshape1 == "sec" traparray[0] = 4 elseif @funcshape1 == "csc" traparray[0] = 5 elseif @funcshape1 == "ver" traparray[0] = 6 elseif @funcshape1 == "vcs" traparray[0] = 7 elseif @funcshape1 == "cvs" traparray[0] = 8 elseif @funcshape1 == "cvc" traparray[0] = 9 elseif @funcshape1 == "exs" traparray[0] = 10 elseif @funcshape1 == "exc" traparray[0] = 11 elseif @funcshape1 == "crd" traparray[0] = 12 elseif @funcshape1 == "asin" traparray[0] = 13 elseif @funcshape1 == "acos" traparray[0] = 14 elseif @funcshape1 == "atan" traparray[0] = 15 elseif @funcshape1 == "acot" traparray[0] = 16 elseif @funcshape1 == "asec" traparray[0] = 17 elseif @funcshape1 == "acsc" traparray[0] = 18 elseif @funcshape1 == "aver" traparray[0] = 19 elseif @funcshape1 == "avcs" traparray[0] = 20 elseif @funcshape1 == "acvs" traparray[0] = 21 elseif @funcshape1 == "acvc" traparray[0] = 22 elseif @funcshape1 == "aexs" traparray[0] = 23 elseif @funcshape1 == "aexc" traparray[0] = 24 elseif @funcshape1 == "acrd" traparray[0] = 25 elseif @funcshape1 == "exp" traparray[0] = 26 elseif @funcshape1 == "exp(-z)" traparray[0] = 27 elseif @funcshape1 == "exp(1/z)" traparray[0] = 28 elseif @funcshape1 == "exp(-1/z)" traparray[0] = 29 elseif @funcshape1 == "exp(z^2)" traparray[0] = 30 elseif @funcshape1 == "exp(-z^2)" traparray[0] = 31 elseif @funcshape1 == "exp(1/z^2)" traparray[0] = 32 elseif @funcshape1 == "exp(-1/z^2)" traparray[0] = 33 elseif @funcshape1 == "sinh" traparray[0] = 34 elseif @funcshape1 == "asinh" traparray[0] = 35 elseif @funcshape1 == "cosh" traparray[0] = 36 elseif @funcshape1 == "acosh" traparray[0] = 37 elseif @funcshape1 == "tanh" traparray[0] = 38 elseif @funcshape1 == "atanh" traparray[0] = 39 elseif @funcshape1 == "cotanh" traparray[0] = 40 elseif @funcshape1 == "sqr" traparray[0] = 41 elseif @funcshape1 == "sqrt" traparray[0] = 42 elseif @funcshape1 == "power" traparray[0] = 43 elseif @funcshape1 == "log" traparray[0] = 44 elseif @funcshape1 == "log(-z)" traparray[0] = 45 elseif @funcshape1 == "log(1/z)" traparray[0] = 46 elseif @funcshape1 == "log(-1/z)" traparray[0] = 47 elseif @funcshape1 == "1/z" traparray[0] = 48 elseif @funcshape1 == "absolute value" traparray[0] = 49 elseif @funcshape1 == "ceiling" traparray[0] = 50 elseif @funcshape1 == "floor" traparray[0] = 51 elseif @funcshape1 == "truncation" traparray[0] = 52 elseif @funcshape1 == "rounding" traparray[0] = 53 elseif @funcshape1 == "asin 2" traparray[0] = 54 elseif @funcshape1 == "acos 2" traparray[0] = 55 elseif @funcshape1 == "atan 2" traparray[0] = 56 elseif @funcshape1 == "aexs 2" traparray[0] = 57 elseif @funcshape1 == "acot 2" traparray[0] = 58 elseif @funcshape1 == "asec 2" traparray[0] = 59 elseif @funcshape1 == "acsc 2" traparray[0] = 60 elseif @funcshape1 == "aver 2" traparray[0] = 61 elseif @funcshape1 == "avcs 2" traparray[0] = 62 elseif @funcshape1 == "acvs 2" traparray[0] = 63 elseif @funcshape1 == "acvc 2" traparray[0] = 64 elseif @funcshape1 == "aexc 2" traparray[0] = 65 elseif @funcshape1 == "acrd 2" traparray[0] = 66 elseif @funcshape1 == "log(z^2)" traparray[0] = 67 elseif @funcshape1 == "log(-z^2)" traparray[0] = 68 elseif @funcshape1 == "log(1/z^2)" traparray[0] = 69 elseif @funcshape1 == "log(-1/z^2)" traparray[0] = 70 elseif @funcshape1 == "log log" traparray[0] = 71 elseif @funcshape1 == "exp(exp)" traparray[0] = 72 elseif @funcshape1 == "z^z" traparray[0] = 73 elseif @funcshape1 == "z^z^z" traparray[0] = 74 elseif @funcshape1 == "constant^z" traparray[0] = 75 elseif @funcshape1 == "constant^z^z" traparray[0] = 76 endif ; @funcshape1 endif ; @traptype if numberoftraps == 2 if @traptype2 == "lines & points" trptype[1] = 0 if @trapshape2 == "line" traparray[1] = 0 elseif @trapshape2 == "triangle" traparray[1] = 1 elseif @trapshape2 == "isosceles" traparray[1] = 2 elseif @trapshape2 == "3-asterisk" traparray[1] = 3 elseif @trapshape2 == "3-star" traparray[1] = 4 elseif @trapshape2 == "polytriangle" traparray[1] = 5 elseif @trapshape2 == "trigram" traparray[1] = 6 elseif @trapshape2 == "nested triangles" traparray[1] = 7 elseif @trapshape2 == "nested triangle 2" traparray[1] = 8 elseif @trapshape2 == "twisted triangles" traparray[1] = 9 elseif @trapshape2 == "twisted triangle 2" traparray[1] = 10 elseif @trapshape2 == "square" traparray[1] = 11 elseif @trapshape2 == "square 2" traparray[1] = 12 elseif @trapshape2 == "rhombus" traparray[1] = 13 elseif @trapshape2 == "kite" traparray[1] = 14 elseif @trapshape2 == "dart" traparray[1] = 15 elseif @trapshape2 == "rectangle" traparray[1] = 214 elseif @trapshape2 == "4-asterisk" traparray[1] = 16 elseif @trapshape2 == "4-star" traparray[1] = 17 elseif @trapshape2 == "flat 4-star" traparray[1] = 18 elseif @trapshape2 == "bowtie" traparray[1] = 19 elseif @trapshape2 == "windowpane" traparray[1] = 20 elseif @trapshape2 == "tetragram" traparray[1] = 21 elseif @trapshape2 == "nested squares" traparray[1] = 22 elseif @trapshape2 == "nested square 2" traparray[1] = 23 elseif @trapshape2 == "twisted squares" traparray[1] = 24 elseif @trapshape2 == "twisted square 2" traparray[1] = 25 elseif @trapshape2 == "windmill" traparray[1] = 26 elseif @trapshape2 == "windmill 2" traparray[1] = 27 elseif @trapshape2 == "pentagon" traparray[1] = 28 elseif @trapshape2 == "pentagon 2" traparray[1] = 29 elseif @trapshape2 == "pentagram" traparray[1] = 30 elseif @trapshape2 == "pentagram 2" traparray[1] = 31 elseif @trapshape2 == "pentagram 3" traparray[1] = 32 elseif @trapshape2 == "pentagram 4" traparray[1] = 33 elseif @trapshape2 == "5-asterisk" traparray[1] = 34 elseif @trapshape2 == "5-star" traparray[1] = 35 elseif @trapshape2 == "nested pentagons" traparray[1] = 36 elseif @trapshape2 == "nested pentagon 2" traparray[1] = 37 elseif @trapshape2 == "twisted pentagons" traparray[1] = 38 elseif @trapshape2 == "twisted pentagon 2" traparray[1] = 39 elseif @trapshape2 == "hexagon" traparray[1] = 40 elseif @trapshape2 == "hexagon 2" traparray[1] = 41 elseif @trapshape2 == "hexagram" traparray[1] = 42 elseif @trapshape2 == "hexagram 2" traparray[1] = 43 elseif @trapshape2 == "hexagram 3" traparray[1] = 44 elseif @trapshape2 == "hexagram 4" traparray[1] = 45 elseif @trapshape2 == "hexagram 5" traparray[1] = 46 elseif @trapshape2 == "hexagram 6" traparray[1] = 47 elseif @trapshape2 == "hexagram 7" traparray[1] = 48 elseif @trapshape2 == "6-asterisk" traparray[1] = 49 elseif @trapshape2 == "6-star" traparray[1] = 50 elseif @trapshape2 == "nested hexagons" traparray[1] = 51 elseif @trapshape2 == "nested hexagon 2" traparray[1] = 52 elseif @trapshape2 == "twisted hexagons" traparray[1] = 53 elseif @trapshape2 == "twisted hexagon 2" traparray[1] = 54 elseif @trapshape2 == "hand" traparray[1] = 55 elseif @trapshape2 == "zigzag-3" traparray[1] = 56 elseif @trapshape2 == "zigzag-4" traparray[1] = 57 elseif @trapshape2 == "zigzag-5" traparray[1] = 58 elseif @trapshape2 == "zigzag-6" traparray[1] = 59 elseif @trapshape2 == "zigzag-7" traparray[1] = 60 elseif @trapshape2 == "sawtooth-1" traparray[1] = 61 elseif @trapshape2 == "sawtooth-2" traparray[1] = 62 elseif @trapshape2 == "sawtooth-3" traparray[1] = 63 elseif @trapshape2 == "sawtooth-4" traparray[1] = 64 elseif @trapshape2 == "5-star 2" traparray[1] = 65 elseif @trapshape2 == "3-star 2" traparray[1] = 66 elseif @trapshape2 == "tetragram 2" traparray[1] = 67 elseif @trapshape2 == "pentagram 5" traparray[1] = 68 elseif @trapshape2 == "4-star 2" traparray[1] = 69 elseif @trapshape2 == "5-star 3" traparray[1] = 70 elseif @trapshape2 == "6-star 2" traparray[1] = 71 elseif @trapshape2 == "6-star 3" traparray[1] = 72 elseif @trapshape2 == "square-1" traparray[1] = 73 elseif @trapshape2 == "square-2" traparray[1] = 74 elseif @trapshape2 == "square-3" traparray[1] = 75 elseif @trapshape2 == "square-4" traparray[1] = 76 elseif @trapshape2 == "heptagon" traparray[1] = 77 elseif @trapshape2 == "heptagon 2" traparray[1] = 78 elseif @trapshape2 == "heptagram" traparray[1] = 79 elseif @trapshape2 == "heptagram 2" traparray[1] = 80 elseif @trapshape2 == "heptagram 3" traparray[1] = 81 elseif @trapshape2 == "heptagram 4" traparray[1] = 82 elseif @trapshape2 == "heptagram 5" traparray[1] = 83 elseif @trapshape2 == "heptagram 6" traparray[1] = 84 elseif @trapshape2 == "heptagram 7" traparray[1] = 85 elseif @trapshape2 == "7-asterisk" traparray[1] = 86 elseif @trapshape2 == "7-star" traparray[1] = 87 elseif @trapshape2 == "7-star 2" traparray[1] = 88 elseif @trapshape2 == "nested heptagons" traparray[1] = 89 elseif @trapshape2 == "nested heptagon 2" traparray[1] = 90 elseif @trapshape2 == "twisted heptagons" traparray[1] = 91 elseif @trapshape2 == "twisted heptagon 2" traparray[1] = 92 elseif @trapshape2 == "peano curve" traparray[1] = 93 elseif @trapshape2 == "octagon" traparray[1] = 94 elseif @trapshape2 == "octagon 2" traparray[1] = 95 elseif @trapshape2 == "octagram" traparray[1] = 96 elseif @trapshape2 == "octagram 2" traparray[1] = 97 elseif @trapshape2 == "octagram 3" traparray[1] = 98 elseif @trapshape2 == "octagram 4" traparray[1] = 99 elseif @trapshape2 == "octagram 5" traparray[1] = 100 elseif @trapshape2 == "octagram 6" traparray[1] = 101 elseif @trapshape2 == "octagram 7" traparray[1] = 102 elseif @trapshape2 == "8-asterisk" traparray[1] = 103 elseif @trapshape2 == "8-star" traparray[1] = 104 elseif @trapshape2 == "8-star 2" traparray[1] = 105 elseif @trapshape2 == "octagram 8" traparray[1] = 106 elseif @trapshape2 == "octagram 9" traparray[1] = 107 elseif @trapshape2 == "octagram 10" traparray[1] = 108 elseif @trapshape2 == "roots of unity" traparray[1] = 109 elseif @trapshape2 == "7-star 3" traparray[1] = 110 elseif @trapshape2 == "lissajous 1" traparray[1] = 111 elseif @trapshape2 == "nonagon" traparray[1] = 112 elseif @trapshape2 == "nonagram" traparray[1] = 113 elseif @trapshape2 == "nonagram 2" traparray[1] = 114 elseif @trapshape2 == "nonagram 3" traparray[1] = 115 elseif @trapshape2 == "nonagram 4" traparray[1] = 116 elseif @trapshape2 == "nonagram 5" traparray[1] = 117 elseif @trapshape2 == "nonagram 6" traparray[1] = 118 elseif @trapshape2 == "9-star" traparray[1] = 119 elseif @trapshape2 == "9-asterisk" traparray[1] = 120 elseif @trapshape2 == "9-star 2" traparray[1] = 121 elseif @trapshape2 == "9-star 3" traparray[1] = 122 elseif @trapshape2 == "decagon" traparray[1] = 123 elseif @trapshape2 == "10-asterisk" traparray[1] = 124 elseif @trapshape2 == "decagram" traparray[1] = 125 elseif @trapshape2 == "decagram 2" traparray[1] = 126 elseif @trapshape2 == "decagram 3" traparray[1] = 127 elseif @trapshape2 == "decagram 4" traparray[1] = 128 elseif @trapshape2 == "10-star" traparray[1] = 129 elseif @trapshape2 == "10-star 2" traparray[1] = 130 elseif @trapshape2 == "10-star 3" traparray[1] = 131 elseif @trapshape2 == "decagram 5" traparray[1] = 132 elseif @trapshape2 == "lissajous 2" traparray[1] = 133 elseif @trapshape2 == "collinear spots" traparray[1] = 134 elseif @trapshape2 == "square array" traparray[1] = 135 elseif @trapshape2 == "triangular array" traparray[1] = 136 elseif @trapshape2 == "triangular spiral" traparray[1] = 137 elseif @trapshape2 == "square spiral" traparray[1] = 138 elseif @trapshape2 == "pentagonal array" traparray[1] = 139 elseif @trapshape2 == "hexagonal array" traparray[1] = 140 elseif @trapshape2 == "pentagonal spiral" traparray[1] = 141 elseif @trapshape2 == "hexagonal spiral" traparray[1] = 142 elseif @trapshape2 == "octagonal spiral" traparray[1] = 143 elseif @trapshape2 == "superellipse" traparray[1] = 144 elseif @trapshape2 == "hypotrochoid" traparray[1] = 145 elseif @trapshape2 == "epitrochoid" traparray[1] = 146 elseif @trapshape2 == "lissajous 3" traparray[1] = 147 elseif @trapshape2 == "honeycomb" traparray[1] = 148 elseif @trapshape2 == "nested circles" traparray[1] = 149 elseif @trapshape2 == "osculant circles" traparray[1] = 150 elseif @trapshape2 == "nonagram 7" traparray[1] = 151 elseif @trapshape2 == "more polygons" if @morepolygons2 == "11-gon" traparray[1] = 152 elseif @morepolygons2 == "11-gram 1" traparray[1] = 153 elseif @morepolygons2 == "11-gram 2" traparray[1] = 154 elseif @morepolygons2 == "11-gram 3" traparray[1] = 155 elseif @morepolygons2 == "11-gram 4" traparray[1] = 156 elseif @morepolygons2 == "11-star" traparray[1] = 163 elseif @morepolygons2 == "11-star 2" traparray[1] = 165 elseif @morepolygons2 == "11-asterisk" traparray[1] = 164 elseif @morepolygons2 == "12-gon" traparray[1] = 157 elseif @morepolygons2 == "12-gram 1" traparray[1] = 158 elseif @morepolygons2 == "12-gram 2" traparray[1] = 159 elseif @morepolygons2 == "12-gram 3" traparray[1] = 160 elseif @morepolygons2 == "12-gram 4" traparray[1] = 161 elseif @morepolygons2 == "12-gram 5" traparray[1] = 162 elseif @morepolygons2 == "12-star" traparray[1] = 166 elseif @morepolygons2 == "12-star 2" traparray[1] = 167 elseif @morepolygons2 == "12-asterisk" traparray[1] = 168 elseif @morepolygons2 == "13-gon" traparray[1] = 189 elseif @morepolygons2 == "14-gon" traparray[1] = 190 elseif @morepolygons2 == "15-gon" traparray[1] = 191 elseif @morepolygons2 == "16-gon" traparray[1] = 192 elseif @morepolygons2 == "13-asterisk" traparray[1] = 193 elseif @morepolygons2 == "14-asterisk" traparray[1] = 194 elseif @morepolygons2 == "15-asterisk" traparray[1] = 195 elseif @morepolygons2 == "16-asterisk" traparray[1] = 196 elseif @morepolygons2 == "13-star" traparray[1] = 197 elseif @morepolygons2 == "14-star" traparray[1] = 198 elseif @morepolygons2 == "15-star" traparray[1] = 199 elseif @morepolygons2 == "16-star" traparray[1] = 200 elseif @morepolygons2 == "11-rhombstar" traparray[1] = 208 elseif @morepolygons2 == "12-rhombstar" traparray[1] = 209 elseif @morepolygons2 == "13-rhombstar" traparray[1] = 210 elseif @morepolygons2 == "14-rhombstar" traparray[1] = 211 elseif @morepolygons2 == "15-rhombstar" traparray[1] = 212 elseif @morepolygons2 == "16-rhombstar" traparray[1] = 213 endif ; @morepolygons2 elseif @trapshape2 == "more spirolaterals" if @morespirolaterals2 == "1,1,1,2,3;1/2" traparray[1] = 169 elseif @morespirolaterals2 == "1,1,2,1,3;1/2" traparray[1] = 170 elseif @morespirolaterals2 == "1,1,2,2,4;1/2" traparray[1] = 171 elseif @morespirolaterals2 == "1,1,4,5,4;1/2" traparray[1] = 172 elseif @morespirolaterals2 == "1,2,2,2,5;1/2" traparray[1] = 173 elseif @morespirolaterals2 == "1,2,5,3,5;1/2" traparray[1] = 174 elseif @morespirolaterals2 == "2,2,1,4,3;1/2" traparray[1] = 175 elseif @morespirolaterals2 == "2,2,4,4,3;1/2" traparray[1] = 176 elseif @morespirolaterals2 == "2,3,5,3,2;1/2" traparray[1] = 177 elseif @morespirolaterals2 == "1,6,6,6;1/4,1/4,-5/6" traparray[1] = 178 elseif @morespirolaterals2 == "1,6,6,2;3/4,-1/4,-1/6" traparray[1] = 179 elseif @morespirolaterals2 == "1,2,1,3;-4/5" traparray[1] = 180 elseif @morespirolaterals2 == "1,2,1,3;-4/5,-4/5,0" traparray[1] = 181 elseif @morespirolaterals2 == "1,2,1,3;-4/5,-1/5,-4/5" traparray[1] = 182 elseif @morespirolaterals2 == "1,3;1/5,3/5,-1/5" traparray[1] = 183 elseif @morespirolaterals2 == "1,2,3,3,2,1;5/6,1/6,1/6" traparray[1] = 184 elseif @morespirolaterals2 == "1,1,3,1;-5/6,-1/6,3/7" traparray[1] = 185 elseif @morespirolaterals2 == "1,1,3,1;-1/6,1/6,-3/7" traparray[1] = 186 elseif @morespirolaterals2 == "1,1,3,1;5/6,1/6,4/7" traparray[1] = 187 elseif @morespirolaterals2 == "1,3,1,4,2;-1/2,1/6" traparray[1] = 188 endif ; @morespirolaterals2 elseif @trapshape2 == "3-rhombstar" traparray[1] = 201 elseif @trapshape2 == "5-rhombstar" traparray[1] = 202 elseif @trapshape2 == "6-rhombstar" traparray[1] = 203 elseif @trapshape2 == "7-rhombstar" traparray[1] = 204 elseif @trapshape2 == "8-rhombstar" traparray[1] = 205 elseif @trapshape2 == "9-rhombstar" traparray[1] = 206 elseif @trapshape2 == "10-rhombstar" traparray[1] = 207 elseif @trapshape2 == "4-rhombstar" traparray[1] = 20 elseif @trapshape2 == "dotted star" traparray[1] = 215 elseif @trapshape2 == "dashed star" traparray[1] = 216 elseif @trapshape2 == "more curves" if @morecurves2 == "rhodonea" traparray[1] = 217 elseif @morecurves2 == "cycloid" traparray[1] = 218 elseif @morecurves2 == "parabolic lissajous" traparray[1] = 219 elseif @morecurves2 == "polar lissajous" traparray[1] = 220 elseif @morecurves2 == "Moritz cyclic harmonic" traparray[1] = 221 elseif @morecurves2 == "elliptic lissajous" traparray[1] = 222 elseif @morecurves2 == "bipolar lissajous" traparray[1] = 223 endif ; @morecurves endif ; @trapshape2 elseif @traptype2 == "polar functions" trptype[1] = 1 if @polarshape2 == "rose" traparray[1] = 0 elseif @polarshape2 == "folium" traparray[1] = 1 elseif @polarshape2 == "cardioid" traparray[1] = 2 elseif @polarshape2 == "circle" traparray[1] = 3 elseif @polarshape2 == "cissoid of Diocles" traparray[1] = 4 elseif @polarshape2 == "cochleoid" traparray[1] = 5 elseif @polarshape2 == "conchoid of De Sluze" traparray[1] = 7 elseif @polarshape2 == "conchoid of Nicomedes" traparray[1] = 8 elseif @polarshape2 == "cubical parabola" traparray[1] = 9 elseif @polarshape2 == "ellipse" traparray[1] = 10 elseif @polarshape2 == "folium of Descartes" traparray[1] = 11 elseif @polarshape2 == "hyperbolic spiral" traparray[1] = 12 elseif @polarshape2 == "kampyle of Eudoxus" traparray[1] = 13 elseif @polarshape2 == "kappa" traparray[1] = 14 elseif @polarshape2 == "lemniscate of Bernoulli" traparray[1] = 15 elseif @polarshape2 == "limacon of Pascal" traparray[1] = 16 elseif @polarshape2 == "lituus" traparray[1] = 17 elseif @polarshape2 == "logarithmic spiral" traparray[1] = 18 elseif @polarshape2 == "parabola" traparray[1] = 19 elseif @polarshape2 == "parabolic spiral" traparray[1] = 20 elseif @polarshape2 == "semicubical parabola" traparray[1] = 21 elseif @polarshape2 == "spiral of Archimedes" traparray[1] = 22 elseif @polarshape2 == "strophoid" traparray[1] = 23 elseif @polarshape2 == "Cayley's sextic" traparray[1] = 24 elseif @polarshape2 == "trisectrix limacon" traparray[1] = 25 elseif @polarshape2 == "trefoil of Habenicht" traparray[1] = 27 elseif @polarshape2 == "Cayley's sextic 2" traparray[1] = 28 elseif @polarshape2 == "lituus 2" traparray[1] = 29 litpower[1] = recip(litpower[1]) elseif @polarshape2 == "hippopede" traparray[1] = 30 elseif @polarshape2 == "folioid" traparray[1] = 31 endif ; @polarshape2 elseif @traptype2 == "parametric functions" trptype[1] = 2 if @parashape2 == "hypocycloid" traparray[1] = 0 elseif @parashape2 == "companion of cycloid" traparray[1] = 1 elseif @parashape2 == "cycloid" traparray[1] = 2 elseif @parashape2 == "cycloid variant" traparray[1] = 3 elseif @parashape2 == "epicycloid" traparray[1] = 4 elseif @parashape2 == "nephroid" traparray[1] = 5 elseif @parashape2 == "hyperbola" traparray[1] = 6 elseif @parashape2 == "tractrix" traparray[1] = 7 elseif @parashape2 == "wavy circle" traparray[1] = 8 elseif @parashape2 == "ellipse" traparray[1] = 9 elseif @parashape2 == "serpentine" traparray[1] = 10 elseif @parashape2 == "witch of Agnesi" traparray[1] = 11 elseif @parashape2 == "Abdank quadratrix" traparray[1] = 12 elseif @parashape2 == "cornoid" traparray[1] = 13 elseif @parashape2 == "epicycloid 2" traparray[1] = 14 elseif @parashape2 == "epitrochoid" traparray[1] = 15 endif ; @parashape2 elseif @traptype2 == "cartesian" trptype[1] = 3 if @xyshape2 == "ampersand" traparray[1] = 0 elseif @xyshape2 == "Alain's curve" traparray[1] = 1 elseif @xyshape2 == "arcs of Samothrace" traparray[1] = 2 elseif @xyshape2 == "astroid" traparray[1] = 3 elseif @xyshape2 == "atriphthaloid" traparray[1] = 4 elseif @xyshape2 == "bean curve 1" traparray[1] = 5 elseif @xyshape2 == "bean curve 2" traparray[1] = 6 elseif @xyshape2 == "beetle curve" traparray[1] = 7 elseif @xyshape2 == "bicorn" traparray[1] = 8 elseif @xyshape2 == "bicuspid" traparray[1] = 9 elseif @xyshape2 == "biquartic of Sacre" traparray[1] = 10 elseif @xyshape2 == "cubic egg" traparray[1] = 11 elseif @xyshape2 == "Bolza curve" traparray[1] = 12 elseif @xyshape2 == "bow curve" traparray[1] = 13 elseif @xyshape2 == "bullet nose curve" traparray[1] = 14 elseif @xyshape2 == "butterfly sextic" traparray[1] = 15 elseif @xyshape2 == "butterfly 2" traparray[1] = 16 elseif @xyshape2 == "cardioid" traparray[1] = 17 elseif @xyshape2 == "Cartesian oval" traparray[1] = 18 elseif @xyshape2 == "Cassini oval" traparray[1] = 19 elseif @xyshape2 == "catenary" traparray[1] = 20 elseif @xyshape2 == "Cayley's sextic" traparray[1] = 21 elseif @xyshape2 == "Ceva's trisectrix" traparray[1] = 22 elseif @xyshape2 == "Chasles cubic" traparray[1] = 23 elseif @xyshape2 == "circle" traparray[1] = 24 elseif @xyshape2 == "circular cubic" traparray[1] = 25 elseif @xyshape2 == "cissoid of Diocles" traparray[1] = 26 elseif @xyshape2 == "clinoid" traparray[1] = 27 elseif @xyshape2 == "cochleoid" traparray[1] = 28 elseif @xyshape2 == "conchoid of circle" traparray[1] = 29 elseif @xyshape2 == "conchoid of Nicomedes" traparray[1] = 30 elseif @xyshape2 == "conchoid of de Sluze" traparray[1] = 31 elseif @xyshape2 == "cornoid" traparray[1] = 32 elseif @xyshape2 == "cross curve" traparray[1] = 33 elseif @xyshape2 == "cubic of Apollonius" traparray[1] = 34 elseif @xyshape2 == "cranoid" traparray[1] = 35 elseif @xyshape2 == "Jerabek curve" traparray[1] = 36 elseif @xyshape2 == "Rosillo curve" traparray[1] = 37 elseif @xyshape2 == "deltoid" traparray[1] = 38 elseif @xyshape2 == "devil's curve" traparray[1] = 39 elseif @xyshape2 == "dipole curve" traparray[1] = 40 elseif @xyshape2 == "double egg" traparray[1] = 41 elseif @xyshape2 == "double folium" traparray[1] = 42 elseif @xyshape2 == "double U curve" traparray[1] = 43 elseif @xyshape2 == "dumbbell curve" traparray[1] = 44 elseif @xyshape2 == "cubic duplicatrix" traparray[1] = 45 elseif @xyshape2 == "Durer's conchoid" traparray[1] = 46 elseif @xyshape2 == "Sillke's egg of Columbus" traparray[1] = 47 elseif @xyshape2 == "Granville's egg" traparray[1] = 48 elseif @xyshape2 == "Kepler's egg" traparray[1] = 49 elseif @xyshape2 == "eight curve" traparray[1] = 50 elseif @xyshape2 == "ellipse" traparray[1] = 51 elseif @xyshape2 == "superellipse" traparray[1] = 52 elseif @xyshape2 == "fish quartic" traparray[1] = 53 elseif @xyshape2 == "conic focal conchoid" traparray[1] = 54 elseif @xyshape2 == "folium 1" traparray[1] = 55 elseif @xyshape2 == "folium 2" traparray[1] = 56 elseif @xyshape2 == "folium of Descartes" traparray[1] = 57 elseif @xyshape2 == "Durer's folium" traparray[1] = 58 elseif @xyshape2 == "Gaussian curve" traparray[1] = 59 elseif @xyshape2 == "Beutel heart" traparray[1] = 60 elseif @xyshape2 == "Proclus hippopede" traparray[1] = 61 elseif @xyshape2 == "Hoerl curve" traparray[1] = 62 elseif @xyshape2 == "Humbert cubic" traparray[1] = 63 elseif @xyshape2 == "hyperbola" traparray[1] = 64 elseif @xyshape2 == "hyperbola 2" traparray[1] = 65 elseif @xyshape2 == "illumination curve" traparray[1] = 66 elseif @xyshape2 == "kampyle of Eudoxus" traparray[1] = 67 elseif @xyshape2 == "kappa curve" traparray[1] = 68 elseif @xyshape2 == "Kiepert's curve" traparray[1] = 69 elseif @xyshape2 == "kieroid" traparray[1] = 70 elseif @xyshape2 == "kiss curve" traparray[1] = 71 elseif @xyshape2 == "Klein quartic" traparray[1] = 72 elseif @xyshape2 == "Kulp quartic" traparray[1] = 73 elseif @xyshape2 == "limacon of Pascal" traparray[1] = 74 elseif @xyshape2 == "links curve" traparray[1] = 75 elseif @xyshape2 == "Lissajous sextic" traparray[1] = 76 elseif @xyshape2 == "Lissajous quartic" traparray[1] = 77 elseif @xyshape2 == "logistic curve" traparray[1] = 78 elseif @xyshape2 == "Maltese cross" traparray[1] = 79 elseif @xyshape2 == "semicubical parabola" traparray[1] = 80 elseif @xyshape2 == "diverging parabola" traparray[1] = 81 elseif @xyshape2 == "nephroid" traparray[1] = 82 elseif @xyshape2 == "Freeth's nephroid" traparray[1] = 83 elseif @xyshape2 == "nodal curve" traparray[1] = 84 elseif @xyshape2 == "strophoid" traparray[1] = 85 elseif @xyshape2 == "ophiuride" traparray[1] = 86 elseif @xyshape2 == "parabola" traparray[1] = 87 elseif @xyshape2 == "parabola 2" traparray[1] = 88 elseif @xyshape2 == "parabolic trifolium" traparray[1] = 89 elseif @xyshape2 == "piriform" traparray[1] = 90 elseif @xyshape2 == "pearls of de Sluze" traparray[1] = 91 elseif @xyshape2 == "pursuit curve" traparray[1] = 92 elseif @xyshape2 == "quadratrix" traparray[1] = 93 elseif @xyshape2 == "quadrafolium" traparray[1] = 94 elseif @xyshape2 == "trifolium" traparray[1] = 95 elseif @xyshape2 == "right strophoid" traparray[1] = 96 elseif @xyshape2 == "scarabaeus" traparray[1] = 97 elseif @xyshape2 == "scyphoid" traparray[1] = 98 elseif @xyshape2 == "anguinea" traparray[1] = 99 elseif @xyshape2 == "damped sine" traparray[1] = 100 elseif @xyshape2 == "catastrophic sine" traparray[1] = 101 elseif @xyshape2 == "plane spiric" traparray[1] = 102 elseif @xyshape2 == "spiric of Perseus" traparray[1] = 103 elseif @xyshape2 == "svastika" traparray[1] = 104 elseif @xyshape2 == "syntractrix" traparray[1] = 105 elseif @xyshape2 == "tetracuspid" traparray[1] = 106 elseif @xyshape2 == "siluroid" traparray[1] = 107 elseif @xyshape2 == "trisectrix of Longchamps" traparray[1] = 108 elseif @xyshape2 == "trident" traparray[1] = 109 elseif @xyshape2 == "trisectrix of Delanges" traparray[1] = 110 elseif @xyshape2 == "trisectrix of Maclaurin" traparray[1] = 111 elseif @xyshape2 == "Trott curve" traparray[1] = 112 elseif @xyshape2 == "Tschirnhausen's cubic" traparray[1] = 113 elseif @xyshape2 == "visiera" traparray[1] = 114 elseif @xyshape2 == "resonance curve" traparray[1] = 115 elseif @xyshape2 == "Watt's curve" traparray[1] = 116 elseif @xyshape2 == "witch of Agnesi" traparray[1] = 117 endif ; @xyshape2 elseif @traptype2 == "simple functions" trptype[1] = 4 if @funcmode2 == "polar" funcmode[1] = 0 elseif @funcmode2 == "cartesian" funcmode[1] = 1 else ; "complex" funcmode[1] = 2 endif ; @funcmode1 if @funcshape2 == "cosine" traparray[1] = 0 elseif @funcshape2 == "tangent" traparray[1] = 1 elseif @funcshape2 == "sine" traparray[1] = 2 elseif @funcshape2 == "cot" traparray[1] = 3 elseif @funcshape2 == "sec" traparray[1] = 4 elseif @funcshape2 == "csc" traparray[1] = 5 elseif @funcshape2 == "ver" traparray[1] = 6 elseif @funcshape2 == "vcs" traparray[1] = 7 elseif @funcshape2 == "cvs" traparray[1] = 8 elseif @funcshape2 == "cvc" traparray[1] = 9 elseif @funcshape2 == "exs" traparray[1] = 10 elseif @funcshape2 == "exc" traparray[1] = 11 elseif @funcshape2 == "crd" traparray[1] = 12 elseif @funcshape2 == "asin" traparray[1] = 13 elseif @funcshape2 == "acos" traparray[1] = 14 elseif @funcshape2 == "atan" traparray[1] = 15 elseif @funcshape2 == "acot" traparray[1] = 16 elseif @funcshape2 == "asec" traparray[1] = 17 elseif @funcshape2 == "acsc" traparray[1] = 18 elseif @funcshape2 == "aver" traparray[1] = 19 elseif @funcshape2 == "avcs" traparray[1] = 20 elseif @funcshape2 == "acvs" traparray[1] = 21 elseif @funcshape2 == "acvc" traparray[1] = 22 elseif @funcshape2 == "aexs" traparray[1] = 23 elseif @funcshape2 == "aexc" traparray[1] = 24 elseif @funcshape2 == "acrd" traparray[1] = 25 elseif @funcshape2 == "exp" traparray[1] = 26 elseif @funcshape2 == "exp(-z)" traparray[1] = 27 elseif @funcshape2 == "exp(1/z)" traparray[1] = 28 elseif @funcshape2 == "exp(-1/z)" traparray[1] = 29 elseif @funcshape2 == "exp(z^2)" traparray[1] = 30 elseif @funcshape2 == "exp(-z^2)" traparray[1] = 31 elseif @funcshape2 == "exp(1/z^2)" traparray[1] = 32 elseif @funcshape2 == "exp(-1/z^2)" traparray[1] = 33 elseif @funcshape2 == "sinh" traparray[1] = 34 elseif @funcshape2 == "asinh" traparray[1] = 35 elseif @funcshape2 == "cosh" traparray[1] = 36 elseif @funcshape2 == "acosh" traparray[1] = 37 elseif @funcshape2 == "tanh" traparray[1] = 38 elseif @funcshape2 == "atanh" traparray[1] = 39 elseif @funcshape2 == "cotanh" traparray[1] = 40 elseif @funcshape2 == "sqr" traparray[1] = 41 elseif @funcshape2 == "sqrt" traparray[1] = 42 elseif @funcshape2 == "power" traparray[1] = 43 elseif @funcshape2 == "log" traparray[1] = 44 elseif @funcshape2 == "log(-z)" traparray[1] = 45 elseif @funcshape2 == "log(1/z)" traparray[1] = 46 elseif @funcshape2 == "log(-1/z)" traparray[1] = 47 elseif @funcshape2 == "1/z" traparray[1] = 48 elseif @funcshape2 == "absolute value" traparray[1] = 49 elseif @funcshape2 == "ceiling" traparray[1] = 50 elseif @funcshape2 == "floor" traparray[1] = 51 elseif @funcshape2 == "truncation" traparray[1] = 52 elseif @funcshape2 == "rounding" traparray[1] = 53 elseif @funcshape2 == "asin 2" traparray[1] = 54 elseif @funcshape2 == "acos 2" traparray[1] = 55 elseif @funcshape2 == "atan 2" traparray[1] = 56 elseif @funcshape2 == "aexs 2" traparray[1] = 57 elseif @funcshape2 == "acot 2" traparray[1] = 58 elseif @funcshape2 == "asec 2" traparray[1] = 59 elseif @funcshape2 == "acsc 2" traparray[1] = 60 elseif @funcshape2 == "aver 2" traparray[1] = 61 elseif @funcshape2 == "avcs 2" traparray[1] = 62 elseif @funcshape2 == "acvs 2" traparray[1] = 63 elseif @funcshape2 == "acvc 2" traparray[1] = 64 elseif @funcshape2 == "aexc 2" traparray[1] = 65 elseif @funcshape2 == "acrd 2" traparray[1] = 66 elseif @funcshape2 == "log(z^2)" traparray[1] = 67 elseif @funcshape2 == "log(-z^2)" traparray[1] = 68 elseif @funcshape2 == "log(1/z^2)" traparray[1] = 69 elseif @funcshape2 == "log(-1/z^2)" traparray[1] = 70 elseif @funcshape2 == "log log" traparray[1] = 71 elseif @funcshape2 == "exp(exp)" traparray[1] = 72 elseif @funcshape2 == "z^z" traparray[1] = 73 elseif @funcshape2 == "z^z^z" traparray[1] = 74 elseif @funcshape2 == "constant^z" traparray[1] = 75 elseif @funcshape2 == "constant^z^z" traparray[1] = 76 endif ; @funcshape2 endif ; @traptype2 endif ; numberoftraps ; now, back to regularly scheduled programming! glindex2 = 0 while glindex2 < numberoftraps if trptype[glindex2] == 0 ; "lines & points" if traparray[glindex2] == 0 ; "line" cursality[glindex2] = 1 numbervertices = 2 ; not a closed curve cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.5,-0.5) vertex[glindex2,1] = trapscales[glindex2] * (0.5,0.5) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 1 ; "triangle" cursality[glindex2] = 1 numbervertices = 4 ; n + cursality[glindex2] for a closed curve cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] scratchfloat = sqrt(3)/2 ; for some vertext coordinates ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0,1) vertex[glindex2,1] = trapscales[glindex2] * (-scratchfloat + flip(-0.5)) vertex[glindex2,2] = trapscales[glindex2] * (scratchfloat + flip(-0.5)) vertex[glindex2,3] = trapscales[glindex2] * (0,1) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 2 ; "isosceles" cursality[glindex2] = 1 numbervertices = 4 ; n + cursality[glindex2] for a closed curve cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = @isocwidth * trapscales[glindex2] * (0.35,-1) vertex[glindex2,1] = @isocheight * trapscales[glindex2] * (1,0) vertex[glindex2,2] = @isocwidth * trapscales[glindex2] * (-0.35,-1) vertex[glindex2,3] = @isocwidth * trapscales[glindex2] * (0.35,-1) if @fixisosceles vertex[glindex2,1] = flip(vertex[glindex2,1]) endif ; @fixisosceles glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 3 ; "3-asterisk" cursality[glindex2] = 3 numbervertices = 6 ; n + cursality[glindex2] for a closed curve cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] scratchfloat = sqrt(3)/2 ; for some vertext coordinates ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0,0) vertex[glindex2,1] = @leafAlength * trapscales[glindex2] * (0,1) vertex[glindex2,2] = trapscales[glindex2] * (0,0) vertex[glindex2,3] = @leafBlength * trapscales[glindex2] * (-scratchfloat + flip(-0.5)) vertex[glindex2,4] = trapscales[glindex2] * (0,0) vertex[glindex2,5] = @leafClength * trapscales[glindex2] * (scratchfloat + flip(-0.5)) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 4 ; "3-star" cursality[glindex2] = 1 numbervertices = 7 ; n + cursality[glindex2] for a closed curve cincrement[glindex2] = 7 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.33333333,0) vertex[glindex2,1] = @starspikiness * trapscales[glindex2] * (0.75,1.29904) vertex[glindex2,2] = trapscales[glindex2] * (-0.16666667,0.288675) vertex[glindex2,3] = @starspikiness * trapscales[glindex2] * (-1.5,0) vertex[glindex2,4] = trapscales[glindex2] * (-0.16666667,-0.288675) vertex[glindex2,5] = @starspikiness * trapscales[glindex2] * (0.75,-1.29904) vertex[glindex2,6] = trapscales[glindex2] * (0.33333333,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 66 ; "3-star 2" cursality[glindex2] = 1 numbervertices = 7 ; n + cursality[glindex2] for a closed curve cincrement[glindex2] = 7 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.289778, 0.0776457) vertex[glindex2,2] = trapscales[glindex2] * (-0.5,0.866025) vertex[glindex2,3] = trapscales[glindex2] * (-0.212132, 0.212132) vertex[glindex2,4] = trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2,5] = trapscales[glindex2] * (-0.0776457, -0.289778) vertex[glindex2,6] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 5 ; "polytriangle" cursality[glindex2] = 2 numbervertices = 8 ; n + cursality[glindex2] for a closed curve cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.5, 0) vertex[glindex2,1] = trapscales[glindex2] * (-0.25, 0.433013) vertex[glindex2,2] = trapscales[glindex2] * (-0.25, -0.433013) vertex[glindex2,3] = trapscales[glindex2] * (0.5,0) vertex[glindex2,4] = trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2,5] = trapscales[glindex2] * (-1,0) vertex[glindex2,6] = trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2,7] = trapscales[glindex2] * (0.5, 0.866025) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 6 ; "trigram" cursality[glindex2] = 1 numbervertices = 7 ; n + cursality[glindex2] for a closed curve cincrement[glindex2] = 7 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.7, 0) vertex[glindex2,1] = trapscales[glindex2] * (-0.34368,-1.55104) vertex[glindex2,2] = trapscales[glindex2] * (-0.35,0.69282) vertex[glindex2,3] = trapscales[glindex2] * (1.34718,0.435366) vertex[glindex2,4] = trapscales[glindex2] * (-0.35,-0.69282) vertex[glindex2,5] = trapscales[glindex2] * (-1.0035,1.11567) vertex[glindex2,6] = trapscales[glindex2] * (0.7,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 7 ; "nested triangles" cursality[glindex2] = 2 numbervertices = 8 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.625, 1.08253) vertex[glindex2,1] = trapscales[glindex2] * (-1.25, 0) vertex[glindex2,2] = trapscales[glindex2] * (0.625, -1.08253) vertex[glindex2,3] = trapscales[glindex2] * (0.625,1.08253) vertex[glindex2,4] = @innerscale * trapscales[glindex2] * (0.1875,0.324755) vertex[glindex2,5] = @innerscale * trapscales[glindex2] * (-0.375,0) vertex[glindex2,6] = @innerscale * trapscales[glindex2] * (0.1875,-0.324755) vertex[glindex2,7] = @innerscale * trapscales[glindex2] * (0.1875,0.324755) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 8 ; "nested triangle 2" cursality[glindex2] = 2 numbervertices = 8 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.625, 1.08253) vertex[glindex2,1] = trapscales[glindex2] * (-1.25, 0) vertex[glindex2,2] = trapscales[glindex2] * (0.625, -1.08253) vertex[glindex2,3] = trapscales[glindex2] * (0.625,1.08253) vertex[glindex2,4] = @innerscale * trapscales[glindex2] * (-0.118125,-0.24356625) vertex[glindex2,5] = @innerscale * trapscales[glindex2] * (0.28125,0) vertex[glindex2,6] = @innerscale * trapscales[glindex2] * (-0.118125,0.24356625) vertex[glindex2,7] = @innerscale * trapscales[glindex2] * (-0.118125,-0.24356625) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 9 ; "twisted triangles" cursality[glindex2] = 4 numbervertices = 16 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (-0.5,0.866025) vertex[glindex2,2] = trapscales[glindex2] * (-0.5,-0.866025) vertex[glindex2,3] = trapscales[glindex2] * (1,0) vertex[glindex2,4] = trapscales[glindex2] * (-0.113341,0.642788) vertex[glindex2,5] = trapscales[glindex2] * (-0.5,-0.41955) vertex[glindex2,6] = trapscales[glindex2] * (0.613341,-0.223238) vertex[glindex2,7] = trapscales[glindex2] * (-0.113341,0.642788) vertex[glindex2,8] = trapscales[glindex2] * (-0.40033,-0.145708) vertex[glindex2,9] = trapscales[glindex2] * (0.326352,-0.273842) vertex[glindex2,10] = trapscales[glindex2] * (0.073978,0.41955) vertex[glindex2,11] = trapscales[glindex2] * (-0.40033,-0.145708) vertex[glindex2,12] = trapscales[glindex2] * (0.139033,-0.240812) vertex[glindex2,13] = trapscales[glindex2] * (0.139033,0.240812) vertex[glindex2,14] = trapscales[glindex2] * (-0.278066,0) vertex[glindex2,15] = trapscales[glindex2] * (0.139033,-0.240812) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 10 ; "twisted triangle 2" cursality[glindex2] = 3 numbervertices = 12 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (-0.5,0.866025) vertex[glindex2,2] = trapscales[glindex2] * (-0.5,-0.866025) vertex[glindex2,3] = trapscales[glindex2] * (1,0) vertex[glindex2,4] = trapscales[glindex2] * (-0.0646021,0.614648) vertex[glindex2,5] = trapscales[glindex2] * (-0.5,-0.363271) vertex[glindex2,6] = trapscales[glindex2] * (0.564602,-0.251377) vertex[glindex2,7] = trapscales[glindex2] * (-0.0646021,0.614648) vertex[glindex2,8] = trapscales[glindex2] * (-0.373619,-0.0794152) vertex[glindex2,9] = trapscales[glindex2] * (0.255585,-0.283856) vertex[glindex2,10] = trapscales[glindex2] * (0.118034,0.363271) vertex[glindex2,11] = trapscales[glindex2] * (-0.373619,-0.0794152) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 11 ; "square" cursality[glindex2] = 1 numbervertices = 5 ; n + cursality[glindex2] cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0,1) vertex[glindex2,2] = trapscales[glindex2] * (-1,0) vertex[glindex2,3] = trapscales[glindex2] * (0,-1) vertex[glindex2,4] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 12 ; "square 2" cursality[glindex2] = 6 numbervertices = 12 cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (0.5,0.5) vertex[glindex2,1] = trapscales[glindex2] * (-0.5,0.5) vertex[glindex2,2] = trapscales[glindex2] * (-0.5,0.5) vertex[glindex2,3] = trapscales[glindex2] * (-0.5,-0.5) vertex[glindex2,4] = trapscales[glindex2] * (-0.5,-0.5) vertex[glindex2,5] = trapscales[glindex2] * (0.5,-0.5) vertex[glindex2,6] = trapscales[glindex2] * (0.5,-0.5) vertex[glindex2,7] = trapscales[glindex2] * (0.5,0.5) vertex[glindex2,8] = trapscales[glindex2] * (0.5,0.5) vertex[glindex2,9] = trapscales[glindex2] * (-0.5,-0.5) vertex[glindex2,10] = trapscales[glindex2] * (-0.5,0.5) vertex[glindex2,11] = trapscales[glindex2] * (0.5,-0.5) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 13 ; "rhombus" cursality[glindex2] = 1 numbervertices = 5 ; n + cursality[glindex2] cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = @rhombheight * trapscales[glindex2] * (-1.5,0) vertex[glindex2,1] = @rhombwidth * trapscales[glindex2] * (0,0.5) vertex[glindex2,2] = @rhombheight * trapscales[glindex2] * (1.5,0) vertex[glindex2,3] = @rhombwidth * trapscales[glindex2] * (0,-0.5) vertex[glindex2,4] = @rhombheight * trapscales[glindex2] * (-1.5,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 14 ; "kite" cursality[glindex2] = 1 numbervertices = 5 ; n + cursality[glindex2] cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = @kiteheight * trapscales[glindex2] * (0,1.25) vertex[glindex2,1] = @kitewidth * trapscales[glindex2] * (-0.5,0.75) vertex[glindex2,2] = @kiteheight * trapscales[glindex2] * (0,-1.25) vertex[glindex2,3] = @kitewidth * trapscales[glindex2] * (0.5,0.75) vertex[glindex2,4] = @kiteheight * trapscales[glindex2] * (0,1.25) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 15 ; "dart" cursality[glindex2] = 1 numbervertices = 5 ; n + cursality[glindex2] cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = @dartheight * trapscales[glindex2] * (0,0.5) vertex[glindex2,1] = @dartwidth * trapscales[glindex2] * (-0.5,1) vertex[glindex2,2] = @dartheight * trapscales[glindex2] * (0,-1) vertex[glindex2,3] = @dartwidth * trapscales[glindex2] * (0.5,1) vertex[glindex2,4] = @dartheight * trapscales[glindex2] * (0,0.5) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 214 ; "rectangle" cursality[glindex2] = 1 numbervertices = 5 ; n + cursality[glindex2] cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] scratchfloat = @rectlength * 0.5 ; x-coordinate of rectangle vertex scratchfloat2 = @rectwidth * 0.5 ; y-coordinate vertex[glindex2,0] = trapscales[glindex2] * (scratchfloat + flip(scratchfloat2)) vertex[glindex2,1] = trapscales[glindex2] * (-scratchfloat + flip(scratchfloat2)) vertex[glindex2,2] = trapscales[glindex2] * (-scratchfloat + flip(-scratchfloat2)) vertex[glindex2,3] = trapscales[glindex2] * (scratchfloat + flip(-scratchfloat2)) vertex[glindex2,4] = trapscales[glindex2] * (scratchfloat + flip(scratchfloat2)) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 16 ; "4-asterisk" cursality[glindex2] = 4 numbervertices = 8 ; n + cursality[glindex2] cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (0,0) vertex[glindex2,1] = @leafAlength * trapscales[glindex2] * (1,0) vertex[glindex2,2] = trapscales[glindex2] * (0,0) vertex[glindex2,3] = @leafBlength * trapscales[glindex2] * (0,1) vertex[glindex2,4] = trapscales[glindex2] * (0,0) vertex[glindex2,5] = @leafClength * trapscales[glindex2] * (-1,0) vertex[glindex2,6] = trapscales[glindex2] * (0,0) vertex[glindex2,7] = @leafDlength * trapscales[glindex2] * (0,-1) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 17 ; "4-star" cursality[glindex2] = 1 numbervertices = 9 ; n + cursality[glindex2] cincrement[glindex2] = 9 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (0.5,0) vertex[glindex2,1] = @starspikiness * trapscales[glindex2] * (1.06066, 1.06066) vertex[glindex2,2] = trapscales[glindex2] * (0, 0.5) vertex[glindex2,3] = @starspikiness * trapscales[glindex2] * (-1.06066, 1.06066) vertex[glindex2,4] = trapscales[glindex2] * (-0.5, 0) vertex[glindex2,5] = @starspikiness * trapscales[glindex2] * (-1.06066, -1.06066) vertex[glindex2,6] = trapscales[glindex2] * (0, -0.5) vertex[glindex2,7] = @starspikiness * trapscales[glindex2] * (1.06066, -1.06066) vertex[glindex2,8] = trapscales[glindex2] * (0.5,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 18 ; "flat 4-star" cursality[glindex2] = 1 numbervertices = 9 ; n + cursality[glindex2] cincrement[glindex2] = 9 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = @flat4height * trapscales[glindex2] * (0.5,0) vertex[glindex2,1] = @flat4width * trapscales[glindex2] * (1.06066, 0.53033) vertex[glindex2,2] = @flat4height * trapscales[glindex2] * (0, 0.25) vertex[glindex2,3] = @flat4width * trapscales[glindex2] * (-1.06066, 0.53033) vertex[glindex2,4] = @flat4height * trapscales[glindex2] * (-0.5, 0) vertex[glindex2,5] = @flat4width * trapscales[glindex2] * (-1.06066, -0.53033) vertex[glindex2,6] = @flat4height * trapscales[glindex2] * (0, -0.25) vertex[glindex2,7] = @flat4width * trapscales[glindex2] * (1.06066, -0.53033) vertex[glindex2,8] = @flat4height * trapscales[glindex2] * (0.5,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 69 ; "4-star 2" cursality[glindex2] = 1 numbervertices = 9 ; n + cursality[glindex2] cincrement[glindex2] = 9 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.289778, 0.0776457) vertex[glindex2,2] = trapscales[glindex2] * (0, 1) vertex[glindex2,3] = trapscales[glindex2] * (-0.0776457, 0.289778) vertex[glindex2,4] = trapscales[glindex2] * (-1, 0) vertex[glindex2,5] = trapscales[glindex2] * (-0.289778, -0.0776457) vertex[glindex2,6] = trapscales[glindex2] * (0, -1) vertex[glindex2,7] = trapscales[glindex2] * (0.0776457, -0.289778) vertex[glindex2,8] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 19 ; "bowtie" cursality[glindex2] = 1 numbervertices = 5 ; n + cursality[glindex2] cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (0.5,0.5) vertex[glindex2,1] = trapscales[glindex2] * (-0.5,-0.5) vertex[glindex2,2] = trapscales[glindex2] * (-0.5,0.5) vertex[glindex2,3] = trapscales[glindex2] * (0.5,-0.5) vertex[glindex2,4] = trapscales[glindex2] * (0.5,0.5) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 20 ; "windowpane" cursality[glindex2] = 6 numbervertices = 12 ; open figures (line segments) cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (0.5,0.5) vertex[glindex2,1] = trapscales[glindex2] * (-0.5,0.5) vertex[glindex2,2] = trapscales[glindex2] * (0.5,0) vertex[glindex2,3] = trapscales[glindex2] * (-0.5,0) vertex[glindex2,4] = trapscales[glindex2] * (0.5,-0.5) vertex[glindex2,5] = trapscales[glindex2] * (-0.5,-0.5) vertex[glindex2,6] = trapscales[glindex2] * (0.5,0.5) vertex[glindex2,7] = trapscales[glindex2] * (0.5,-0.5) vertex[glindex2,8] = trapscales[glindex2] * (0,0.5) vertex[glindex2,9] = trapscales[glindex2] * (0,-0.5) vertex[glindex2,10] = trapscales[glindex2] * (-0.5,0.5) vertex[glindex2,11] = trapscales[glindex2] * (-0.5,-0.5) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 21 ; "tetragram" cursality[glindex2] = 1 numbervertices = 9 ; n + cursality[glindex2] for a closed curve cincrement[glindex2] = 9 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.7, 0) vertex[glindex2,1] = trapscales[glindex2] * (0.573427,-1.27718) vertex[glindex2,2] = trapscales[glindex2] * (0,0.7) vertex[glindex2,3] = trapscales[glindex2] * (-1.27718,-0.573427) vertex[glindex2,4] = trapscales[glindex2] * (0.7,0) vertex[glindex2,5] = trapscales[glindex2] * (-0.573427,1.27718) vertex[glindex2,6] = trapscales[glindex2] * (0,-0.7) vertex[glindex2,7] = trapscales[glindex2] * (1.27718,0.573427) vertex[glindex2,8] = trapscales[glindex2] * (-0.7, 0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 67 ; "tetragram 2" cursality[glindex2] = 2 numbervertices = 10 ; n + cursality[glindex2] for a closed curve cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,1] = trapscales[glindex2] * (-0.207912, -0.978148) vertex[glindex2,2] = trapscales[glindex2] * (-0.978148, -0.207912) vertex[glindex2,3] = trapscales[glindex2] * (0.207912, 0.978148) vertex[glindex2,4] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,5] = trapscales[glindex2] * (-0.207912, 0.978148) vertex[glindex2,6] = trapscales[glindex2] * (0.978148, -0.207912) vertex[glindex2,7] = trapscales[glindex2] * (0.207912, -0.978148) vertex[glindex2,8] = trapscales[glindex2] * (-0.978148, 0.207912) vertex[glindex2,9] = trapscales[glindex2] * (-0.207912, 0.978148) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 22 ; "nested squares" cursality[glindex2] = 2 numbervertices = 10 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1.2, 0) vertex[glindex2,1] = trapscales[glindex2] * (0,1.2) vertex[glindex2,2] = trapscales[glindex2] * (-1.2,0) vertex[glindex2,3] = trapscales[glindex2] * (0,-1.2) vertex[glindex2,4] = trapscales[glindex2] * (1.2,0) vertex[glindex2,5] = @innerscale * trapscales[glindex2] * (0.75,0) vertex[glindex2,6] = @innerscale * trapscales[glindex2] * (0,0.75) vertex[glindex2,7] = @innerscale * trapscales[glindex2] * (-0.75,0) vertex[glindex2,8] = @innerscale * trapscales[glindex2] * (0,-0.75) vertex[glindex2,9] = @innerscale * trapscales[glindex2] * (0.75,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 23 ; "nested square 2" cursality[glindex2] = 2 numbervertices = 10 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1.2, 0) vertex[glindex2,1] = trapscales[glindex2] * (0,1.2) vertex[glindex2,2] = trapscales[glindex2] * (-1.2,0) vertex[glindex2,3] = trapscales[glindex2] * (0,-1.2) vertex[glindex2,4] = trapscales[glindex2] * (1.2,0) vertex[glindex2,5] = @innerscale * trapscales[glindex2] * (0.35,0.35) vertex[glindex2,6] = @innerscale * trapscales[glindex2] * (-0.35,0.35) vertex[glindex2,7] = @innerscale * trapscales[glindex2] * (-0.35,-0.35) vertex[glindex2,8] = @innerscale * trapscales[glindex2] * (0.35,-0.35) vertex[glindex2,9] = @innerscale * trapscales[glindex2] * (0.35,0.35) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 24 ; "twisted squares" cursality[glindex2] = 3 numbervertices = 15 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1, 0) vertex[glindex2,1] = trapscales[glindex2] * (0,1) vertex[glindex2,2] = trapscales[glindex2] * (-1,0) vertex[glindex2,3] = trapscales[glindex2] * (0,-1) vertex[glindex2,4] = trapscales[glindex2] * (1,0) vertex[glindex2,5] = trapscales[glindex2] * (0.266846,0.733154) vertex[glindex2,6] = trapscales[glindex2] * (-0.733154,0.266846) vertex[glindex2,7] = trapscales[glindex2] * (-0.266846,-0.733154) vertex[glindex2,8] = trapscales[glindex2] * (0.733154,-0.266846) vertex[glindex2,9] = trapscales[glindex2] * (0.266846,0.733154) vertex[glindex2,10] = trapscales[glindex2] * (-0.466308,0.391279) vertex[glindex2,11] = trapscales[glindex2] * (-0.391279,-0.466308) vertex[glindex2,12] = trapscales[glindex2] * (0.466308,-0.391279) vertex[glindex2,13] = trapscales[glindex2] * (0.391279,0.466308) vertex[glindex2,14] = trapscales[glindex2] * (-0.466308,0.391279) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 25 ; "twisted square 2" cursality[glindex2] = 4 numbervertices = 20 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1, 0) vertex[glindex2,1] = trapscales[glindex2] * (0,1) vertex[glindex2,2] = trapscales[glindex2] * (-1,0) vertex[glindex2,3] = trapscales[glindex2] * (0,-1) vertex[glindex2,4] = trapscales[glindex2] * (1,0) vertex[glindex2,5] = trapscales[glindex2] * (0.366025,0.633975) vertex[glindex2,6] = trapscales[glindex2] * (-0.633975,0.366025) vertex[glindex2,7] = trapscales[glindex2] * (-0.366025,-0.633975) vertex[glindex2,8] = trapscales[glindex2] * (0.633975,-0.366025) vertex[glindex2,9] = trapscales[glindex2] * (0.366025,0.633975) vertex[glindex2,10] = trapscales[glindex2] * (-0.267949,0.464102) vertex[glindex2,11] = trapscales[glindex2] * (-0.464102,-0.267949) vertex[glindex2,12] = trapscales[glindex2] * (0.267949,-0.464102) vertex[glindex2,13] = trapscales[glindex2] * (0.464102,0.267949) vertex[glindex2,14] = trapscales[glindex2] * (-0.267949,0.464102) vertex[glindex2,15] = trapscales[glindex2] * (-0.392305, 0) vertex[glindex2,16] = trapscales[glindex2] * (0,-0.392305) vertex[glindex2,17] = trapscales[glindex2] * (0.392305,0) vertex[glindex2,18] = trapscales[glindex2] * (0,0.392305) vertex[glindex2,19] = trapscales[glindex2] * (-0.392305,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 26 ; "windmill" cursality[glindex2] = 2 numbervertices = 10 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.965926, 0.258819) vertex[glindex2,1] = trapscales[glindex2] * (-0.965926, 0.258819) vertex[glindex2,2] = trapscales[glindex2] * (-0.965926, -0.258819) vertex[glindex2,3] = trapscales[glindex2] * (0.965926, -0.258819) vertex[glindex2,4] = trapscales[glindex2] * (0.965926, 0.258819) vertex[glindex2,5] = trapscales[glindex2] * ((@windwidth * -0.258819) + flip(@windheight * 0.965926)) vertex[glindex2,6] = trapscales[glindex2] * ((@windwidth * -0.258819) + flip(@windheight * -0.965926)) vertex[glindex2,7] = trapscales[glindex2] * ((@windwidth * 0.258819) + flip(@windheight * -0.965926)) vertex[glindex2,8] = trapscales[glindex2] * ((@windwidth * 0.258819) + flip(@windheight * 0.965926)) vertex[glindex2,9] = trapscales[glindex2] * ((@windwidth * -0.258819) + flip(@windheight * 0.965926)) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 27 ; "windmill 2" cursality[glindex2] = 2 numbervertices = 10 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.965926, 0.258819) vertex[glindex2,1] = trapscales[glindex2] * (-0.965926, -0.258819) vertex[glindex2,2] = trapscales[glindex2] * (-0.965926, 0.258819) vertex[glindex2,3] = trapscales[glindex2] * (0.965926, -0.258819) vertex[glindex2,4] = trapscales[glindex2] * (0.965926, 0.258819) vertex[glindex2,5] = trapscales[glindex2] * ((@windwidth * -0.258819) + flip(@windheight * 0.965926)) vertex[glindex2,6] = trapscales[glindex2] * ((@windwidth * 0.258819) + flip(@windheight * -0.965926)) vertex[glindex2,7] = trapscales[glindex2] * ((@windwidth * -0.258819) + flip(@windheight * -0.965926)) vertex[glindex2,8] = trapscales[glindex2] * ((@windwidth * 0.258819) + flip(@windheight * 0.965926)) vertex[glindex2,9] = trapscales[glindex2] * ((@windwidth * -0.258819) + flip(@windheight * 0.965926)) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 28 ; "pentagon" cursality[glindex2] = 1 numbervertices = 6 ; n + cursality[glindex2] cincrement[glindex2] = 6 ; numbervertices/cursality[glindex2] scratchfloat = 0.951056516295153572 scratchfloat2 = -0.809016994374947424 scratchfloat3 = 0.587785252292473129 scratchfloat4 = 0.309016994374947424 vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (scratchfloat4 + flip(scratchfloat)) vertex[glindex2,2] = trapscales[glindex2] * (scratchfloat2 + flip(scratchfloat3)) vertex[glindex2,3] = trapscales[glindex2] * (scratchfloat2 + flip(-scratchfloat3)) vertex[glindex2,4] = trapscales[glindex2] * (scratchfloat4 + flip(-scratchfloat)) vertex[glindex2,5] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 29 ; "pentagon 2" cursality[glindex2] = 5 numbervertices = 15 ; open pieces cincrement[glindex2] = 3 ; numbervertices/cursality[glindex2] scratchfloat = 0.951056516295153572 scratchfloat2 = -0.809016994374947424 scratchfloat3 = 0.587785252292473129 scratchfloat4 = 0.309016994374947424 vertex[glindex2,0] = trapscales[glindex2] * (0,0) vertex[glindex2,1] = trapscales[glindex2] * (1,0) vertex[glindex2,2] = trapscales[glindex2] * (scratchfloat4 + flip(scratchfloat)) vertex[glindex2,3] = trapscales[glindex2] * (0,0) vertex[glindex2,4] = trapscales[glindex2] * (scratchfloat4 + flip(scratchfloat)) vertex[glindex2,5] = trapscales[glindex2] * (scratchfloat2 + flip(scratchfloat3)) vertex[glindex2,6] = trapscales[glindex2] * (0,0) vertex[glindex2,7] = trapscales[glindex2] * (scratchfloat2 + flip(scratchfloat3)) vertex[glindex2,8] = trapscales[glindex2] * (scratchfloat2 + flip(-scratchfloat3)) vertex[glindex2,9] = trapscales[glindex2] * (0,0) vertex[glindex2,10] = trapscales[glindex2] * (scratchfloat2 + flip(-scratchfloat3)) vertex[glindex2,11] = trapscales[glindex2] * (scratchfloat4 + flip(-scratchfloat)) vertex[glindex2,12] = trapscales[glindex2] * (0,0) vertex[glindex2,13] = trapscales[glindex2] * (scratchfloat4 + flip(-scratchfloat)) vertex[glindex2,14] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 30 ; "pentagram" cursality[glindex2] = 1 numbervertices = 6 cincrement[glindex2] = 6 ; numbervertices/cursality[glindex2] scratchfloat = 0.951056516295153572 scratchfloat2 = -0.809016994374947424 scratchfloat3 = 0.587785252292473129 scratchfloat4 = 0.309016994374947424 vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (scratchfloat2 + flip(scratchfloat3)) vertex[glindex2,2] = trapscales[glindex2] * (scratchfloat4 + flip(-scratchfloat)) vertex[glindex2,3] = trapscales[glindex2] * (scratchfloat4 + flip(scratchfloat)) vertex[glindex2,4] = trapscales[glindex2] * (scratchfloat2 + flip(-scratchfloat3)) vertex[glindex2,5] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 31 ; "pentagram 2" cursality[glindex2] = 1 numbervertices = 11 ; 10 + cursality[glindex2] for closed figure cincrement[glindex2] = 11 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (-0.48541,0.352671) vertex[glindex2,1] = trapscales[glindex2] * (-0.488084,-1.09625) vertex[glindex2,2] = trapscales[glindex2] * (0.18541,0.570634) vertex[glindex2,3] = trapscales[glindex2] * (-1.19343,0.125434) vertex[glindex2,4] = trapscales[glindex2] * (0.6,0) vertex[glindex2,5] = trapscales[glindex2] * (-0.249494,1.17378) vertex[glindex2,6] = trapscales[glindex2] * (0.18541,-0.570634) vertex[glindex2,7] = trapscales[glindex2] * (1.03923,0.6) vertex[glindex2,8] = trapscales[glindex2] * (-0.48541,-0.352671) vertex[glindex2,9] = trapscales[glindex2] * (0.891774,-0.802957) vertex[glindex2,10] = trapscales[glindex2] * (-0.48541,0.352671) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 32 ; "pentagram 3" cursality[glindex2] = 1 numbervertices = 11 ; 10 + cursality[glindex2] for closed figure cincrement[glindex2] = 11 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (0.965926, 0.258819) vertex[glindex2,1] = trapscales[glindex2] * (-0.62932, 0.777146) vertex[glindex2,2] = trapscales[glindex2] * (-0.93358, 0.358368) vertex[glindex2,3] = trapscales[glindex2] * (0.052336, -0.99863) vertex[glindex2,4] = trapscales[glindex2] * (0.544639, -0.838671) vertex[glindex2,5] = trapscales[glindex2] * (0.544639, 0.838671) vertex[glindex2,6] = trapscales[glindex2] * (0.052336, 0.99863) vertex[glindex2,7] = trapscales[glindex2] * (-0.93358, -0.358368) vertex[glindex2,8] = trapscales[glindex2] * (-0.62932, -0.777146) vertex[glindex2,9] = trapscales[glindex2] * (0.965926, -0.258819) vertex[glindex2,10] = trapscales[glindex2] * (0.965926, 0.258819) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 33 ; "pentagram 4" cursality[glindex2] = 1 numbervertices = 11 ; 10 + cursality[glindex2] for closed figure cincrement[glindex2] = 11 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (0.965926, 0.258819) vertex[glindex2,1] = trapscales[glindex2] * (-0.93358, -0.358368) vertex[glindex2,2] = trapscales[glindex2] * (-0.93358, 0.358368) vertex[glindex2,3] = trapscales[glindex2] * (0.965926, -0.258819) vertex[glindex2,4] = trapscales[glindex2] * (0.544639, -0.838671) vertex[glindex2,5] = trapscales[glindex2] * (-0.62932, 0.777146) vertex[glindex2,6] = trapscales[glindex2] * (0.052336, 0.99863) vertex[glindex2,7] = trapscales[glindex2] * (0.052336, -0.99863) vertex[glindex2,8] = trapscales[glindex2] * (-0.62932, -0.777146) vertex[glindex2,9] = trapscales[glindex2] * (0.544639, 0.838671) vertex[glindex2,10] = trapscales[glindex2] * (0.965926, 0.258819) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 68 ; "pentagram 5" cursality[glindex2] = 1 numbervertices = 11 ; 10 + cursality[glindex2] for closed figure cincrement[glindex2] = 11 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,1] = trapscales[glindex2] * (-0.913545, -0.406737) vertex[glindex2,2] = trapscales[glindex2] * (-0.913545, 0.406737) vertex[glindex2,3] = trapscales[glindex2] * (0.978148, -0.207912) vertex[glindex2,4] = trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2,5] = trapscales[glindex2] * (-0.669131, 0.743145) vertex[glindex2,6] = trapscales[glindex2] * (0.104528, 0.994522) vertex[glindex2,7] = trapscales[glindex2] * (0.104528, -0.994522) vertex[glindex2,8] = trapscales[glindex2] * (-0.669131, -0.743145) vertex[glindex2,9] = trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2,10] = trapscales[glindex2] * (0.978148, 0.207912) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 34 ; "5-asterisk" cursality[glindex2] = 5 numbervertices = 10 ; n + cursality[glindex2] cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] scratchfloat = 0.951056 ;516295153572 scratchfloat2 = -0.809016 ;994374947424 scratchfloat3 = 0.587785 ;252292473129 scratchfloat4 = 0.309016 ;994374947424 vertex[glindex2,0] = trapscales[glindex2] * (0,0) vertex[glindex2,1] = @leafAlength * trapscales[glindex2] * (1,0) vertex[glindex2,2] = trapscales[glindex2] * (0,0) vertex[glindex2,3] = @leafBlength * trapscales[glindex2] * (scratchfloat4 + flip(scratchfloat)) vertex[glindex2,4] = trapscales[glindex2] * (0,0) vertex[glindex2,5] = @leafClength * trapscales[glindex2] * (scratchfloat2 + flip(scratchfloat3)) vertex[glindex2,6] = trapscales[glindex2] * (0,0) vertex[glindex2,7] = @leafDlength * trapscales[glindex2] * (scratchfloat2 + flip(-scratchfloat3)) vertex[glindex2,8] = trapscales[glindex2] * (0,0) vertex[glindex2,9] = @leafElength * trapscales[glindex2] * (scratchfloat4 + flip(-scratchfloat)) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 35 ; "5-star" cursality[glindex2] = 1 numbervertices = 11 ; n + cursality[glindex2] cincrement[glindex2] = 11 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (0.625,0) vertex[glindex2,1] = @starspikiness * trapscales[glindex2] * (1.01127,0.734732) vertex[glindex2,2] = trapscales[glindex2] * (0.193136,0.59441) vertex[glindex2,3] = @starspikiness * trapscales[glindex2] * (-0.386271,1.18882) vertex[glindex2,4] = trapscales[glindex2] * (-0.505636,0.367366) vertex[glindex2,5] = @starspikiness * trapscales[glindex2] * (-1.25,0) vertex[glindex2,6] = trapscales[glindex2] * (-0.505636,-0.367366) vertex[glindex2,7] = @starspikiness * trapscales[glindex2] * (-0.386271,-1.18882) vertex[glindex2,8] = trapscales[glindex2] * (0.193136,-0.59441) vertex[glindex2,9] = @starspikiness * trapscales[glindex2] * (1.01127,-0.734732) vertex[glindex2,10] = trapscales[glindex2] * (0.625,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 65 ; "5-star 2" cursality[glindex2] = 1 numbervertices = 11 ; n + cursality[glindex2] cincrement[glindex2] = 11 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.5, 0) vertex[glindex2,2] = trapscales[glindex2] * (0.309017, 0.951057) vertex[glindex2,3] = trapscales[glindex2] * (0.154508, 0.475528) vertex[glindex2,4] = trapscales[glindex2] * (-0.809017, 0.587785) vertex[glindex2,5] = trapscales[glindex2] * (-0.404508, 0.293893) vertex[glindex2,6] = trapscales[glindex2] * (-0.809017, -0.587785) vertex[glindex2,7] = trapscales[glindex2] * (-0.404508, -0.293893) vertex[glindex2,8] = trapscales[glindex2] * (0.309017, -0.951057) vertex[glindex2,9] = trapscales[glindex2] * (0.154508, -0.475528) vertex[glindex2,10] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 70 ; "5-star 3" cursality[glindex2] = 1 numbervertices = 11 ; n + cursality[glindex2] cincrement[glindex2] = 11 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (0.866025, 0.5) vertex[glindex2,1] = trapscales[glindex2] * (0.433013, -0.25) vertex[glindex2,2] = trapscales[glindex2] * (-0.207912, 0.978148) vertex[glindex2,3] = trapscales[glindex2] * (0.371572, 0.334565) vertex[glindex2,4] = trapscales[glindex2] * (-0.994522, 0.104528) vertex[glindex2,5] = trapscales[glindex2] * (-0.203368, 0.456773) vertex[glindex2,6] = trapscales[glindex2] * (-0.406737, -0.913545) vertex[glindex2,7] = trapscales[glindex2] * (-0.497261, -0.0522642) vertex[glindex2,8] = trapscales[glindex2] * (0.743145, -0.669131) vertex[glindex2,9] = trapscales[glindex2] * (-0.103956, -0.489074) vertex[glindex2,10] = trapscales[glindex2] * (0.866025, 0.5) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 36 ; "nested pentagons" cursality[glindex2] = 2 numbervertices = 12 ; 10 + cursality[glindex2] cincrement[glindex2] = 6 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.309017,0.951057) vertex[glindex2,2] = trapscales[glindex2] * (-0.809017,0.587785) vertex[glindex2,3] = trapscales[glindex2] * (-0.809017,-0.587785) vertex[glindex2,4] = trapscales[glindex2] * (0.309017,-0.951057) vertex[glindex2,5] = trapscales[glindex2] * (1,0) vertex[glindex2,6] = @innerscale * trapscales[glindex2] * (0.4,0) vertex[glindex2,7] = @innerscale * trapscales[glindex2] * (0.123607,0.380423) vertex[glindex2,8] = @innerscale * trapscales[glindex2] * (-0.323607,0.235114) vertex[glindex2,9] = @innerscale * trapscales[glindex2] * (-0.323607,-0.235114) vertex[glindex2,10] = @innerscale * trapscales[glindex2] * (0.123607,-0.380423) vertex[glindex2,11] = @innerscale * trapscales[glindex2] * (0.4,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 37 ; "nested pentagon 2" cursality[glindex2] = 2 numbervertices = 12 ; 10 + cursality[glindex2] cincrement[glindex2] = 6 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.309017,0.951057) vertex[glindex2,2] = trapscales[glindex2] * (-0.809017,0.587785) vertex[glindex2,3] = trapscales[glindex2] * (-0.809017,-0.587785) vertex[glindex2,4] = trapscales[glindex2] * (0.309017,-0.951057) vertex[glindex2,5] = trapscales[glindex2] * (1,0) vertex[glindex2,6] = @innerscale * trapscales[glindex2] * (0.323607,0.235114) vertex[glindex2,7] = @innerscale * trapscales[glindex2] * (-0.123607,0.380423) vertex[glindex2,8] = @innerscale * trapscales[glindex2] * (-0.4,0) vertex[glindex2,9] = @innerscale * trapscales[glindex2] * (-0.123607,-0.380423) vertex[glindex2,10] = @innerscale * trapscales[glindex2] * (0.323607,-0.235114) vertex[glindex2,11] = @innerscale * trapscales[glindex2] * (0.323607,0.235114) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 38 ; "twisted pentagons" cursality[glindex2] = 3 numbervertices = 18 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 6 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1, 0) vertex[glindex2,1] = trapscales[glindex2] * (0.309017,0.951057) vertex[glindex2,2] = trapscales[glindex2] * (-0.809017,0.587785) vertex[glindex2,3] = trapscales[glindex2] * (-0.809017,-0.587785) vertex[glindex2,4] = trapscales[glindex2] * (0.309017,-0.951057) vertex[glindex2,5] = trapscales[glindex2] * (1,0) vertex[glindex2,6] = trapscales[glindex2] * (0.553432,0.614648) vertex[glindex2,7] = trapscales[glindex2] * (-0.413545,0.716282) vertex[glindex2,8] = trapscales[glindex2] * (-0.809017,-0.171962) vertex[glindex2,9] = trapscales[glindex2] * (-0.0864545,-0.82256) vertex[glindex2,10] = trapscales[glindex2] * (0.755585,-0.336408) vertex[glindex2,11] = trapscales[glindex2] * (0.553432,0.614648) vertex[glindex2,12] = trapscales[glindex2] * (-0.0715058,0.680332) vertex[glindex2,13] = trapscales[glindex2] * (-0.669131,0.142228) vertex[glindex2,14] = trapscales[glindex2] * (-0.34204,-0.59243) vertex[glindex2,15] = trapscales[glindex2] * (0.457738,-0.50837) vertex[glindex2,16] = trapscales[glindex2] * (0.624938,0.27824) vertex[glindex2,17] = trapscales[glindex2] * (-0.0715058,0.680332) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 39 ; "twisted pentagon 2" cursality[glindex2] = 4 numbervertices = 24 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 6 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1, 0) vertex[glindex2,1] = trapscales[glindex2] * (0.309017,0.951057) vertex[glindex2,2] = trapscales[glindex2] * (-0.809017,0.587785) vertex[glindex2,3] = trapscales[glindex2] * (-0.809017,-0.587785) vertex[glindex2,4] = trapscales[glindex2] * (0.309017,-0.951057) vertex[glindex2,5] = trapscales[glindex2] * (1,0) vertex[glindex2,6] = trapscales[glindex2] * (0.553432,0.614648) vertex[glindex2,7] = trapscales[glindex2] * (-0.413545,0.716282) vertex[glindex2,8] = trapscales[glindex2] * (-0.809017,-0.171962) vertex[glindex2,9] = trapscales[glindex2] * (-0.0864545,-0.82256) vertex[glindex2,10] = trapscales[glindex2] * (0.755585,-0.336408) vertex[glindex2,11] = trapscales[glindex2] * (0.553432,0.614648) vertex[glindex2,12] = trapscales[glindex2] * (-0.0715058,0.680332) vertex[glindex2,13] = trapscales[glindex2] * (-0.669131,0.142228) vertex[glindex2,14] = trapscales[glindex2] * (-0.34204,-0.59243) vertex[glindex2,15] = trapscales[glindex2] * (0.457738,-0.50837) vertex[glindex2,16] = trapscales[glindex2] * (0.624938,0.27824) vertex[glindex2,17] = trapscales[glindex2] * (-0.0715058,0.680332) vertex[glindex2,18] = trapscales[glindex2] * (-0.457738,0.332566) vertex[glindex2,19] = trapscales[glindex2] * (-0.457738,-0.332566) vertex[glindex2,20] = trapscales[glindex2] * (0.174841,-0.538104) vertex[glindex2,21] = trapscales[glindex2] * (0.565796,0) vertex[glindex2,22] = trapscales[glindex2] * (0.174841,0.538104) vertex[glindex2,23] = trapscales[glindex2] * (-0.457738,0.332566) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 40 ; "hexagon" cursality[glindex2] = 1 numbervertices = 7 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 7 ; numbervertices/cursality[glindex2] scratchfloat = sqrt(3)/2 ; for some vertext coordinates ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0,1) vertex[glindex2,1] = trapscales[glindex2] * (-scratchfloat + flip(0.5)) vertex[glindex2,2] = trapscales[glindex2] * (-scratchfloat + flip(-0.5)) vertex[glindex2,3] = trapscales[glindex2] * (0,-1) vertex[glindex2,4] = trapscales[glindex2] * (scratchfloat + flip(-0.5)) vertex[glindex2,5] = trapscales[glindex2] * (scratchfloat + flip(0.5)) vertex[glindex2,6] = trapscales[glindex2] * (0,1) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 41 ; "hexagon 2" cursality[glindex2] = 6 numbervertices = 18 ; open curves cincrement[glindex2] = 3 ; numbervertices/cursality[glindex2] scratchfloat = sqrt(3)/2 ; for some vertext coordinates ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0,0) vertex[glindex2,1] = trapscales[glindex2] * (0,1) vertex[glindex2,2] = trapscales[glindex2] * (-scratchfloat + flip(0.5)) vertex[glindex2,3] = trapscales[glindex2] * (0,0) vertex[glindex2,4] = trapscales[glindex2] * (-scratchfloat + flip(0.5)) vertex[glindex2,5] = trapscales[glindex2] * (-scratchfloat + flip(-0.5)) vertex[glindex2,6] = trapscales[glindex2] * (0,0) vertex[glindex2,7] = trapscales[glindex2] * (-scratchfloat + flip(-0.5)) vertex[glindex2,8] = trapscales[glindex2] * (0,-1) vertex[glindex2,9] = trapscales[glindex2] * (0,0) vertex[glindex2,10] = trapscales[glindex2] * (0,-1) vertex[glindex2,11] = trapscales[glindex2] * (scratchfloat + flip(-0.5)) vertex[glindex2,12] = trapscales[glindex2] * (0,0) vertex[glindex2,13] = trapscales[glindex2] * (scratchfloat + flip(-0.5)) vertex[glindex2,14] = trapscales[glindex2] * (scratchfloat + flip(0.5)) vertex[glindex2,15] = trapscales[glindex2] * (0,0) vertex[glindex2,16] = trapscales[glindex2] * (scratchfloat + flip(0.5)) vertex[glindex2,17] = trapscales[glindex2] * (0,1) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 42 ; "hexagram" cursality[glindex2] = 2 numbervertices = 8 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] scratchfloat = sqrt(3)/2 ; for some vertext coordinates ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0,1) vertex[glindex2,1] = trapscales[glindex2] * (-scratchfloat + flip(-0.5)) vertex[glindex2,2] = trapscales[glindex2] * (scratchfloat + flip(-0.5)) vertex[glindex2,3] = trapscales[glindex2] * (0,1) vertex[glindex2,4] = trapscales[glindex2] * (-scratchfloat + flip(0.5)) vertex[glindex2,5] = trapscales[glindex2] * (0,-1) vertex[glindex2,6] = trapscales[glindex2] * (scratchfloat + flip(0.5)) vertex[glindex2,7] = trapscales[glindex2] * (-scratchfloat + flip(0.5)) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 43 ; "hexagram 2" cursality[glindex2] = 1 numbervertices = 7 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 7 ; numbervertices/cursality[glindex2] scratchfloat = sqrt(3)/2 ; for some vertext coordinates ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0,1) vertex[glindex2,1] = trapscales[glindex2] * (-scratchfloat + flip(-0.5)) vertex[glindex2,2] = trapscales[glindex2] * (scratchfloat + flip(0.5)) vertex[glindex2,3] = trapscales[glindex2] * (0,-1) vertex[glindex2,4] = trapscales[glindex2] * (-scratchfloat + flip(0.5)) vertex[glindex2,5] = trapscales[glindex2] * (scratchfloat + flip(-0.5)) vertex[glindex2,6] = trapscales[glindex2] * (0,1) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 44 ; "hexagram 3" cursality[glindex2] = 1 numbervertices = 13 ; 10 + cursality[glindex2] for closed figure cincrement[glindex2] = 13 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (-0.3,0.519615) vertex[glindex2,1] = trapscales[glindex2] * (-0.879474,-0.475947) vertex[glindex2,2] = trapscales[glindex2] * (0.3,0.519615) vertex[glindex2,3] = trapscales[glindex2] * (-0.851919,0.523673) vertex[glindex2,4] = trapscales[glindex2] * (0.6,0) vertex[glindex2,5] = trapscales[glindex2] * (0.0275543,0.99962) vertex[glindex2,6] = trapscales[glindex2] * (0.3,-0.519615) vertex[glindex2,7] = trapscales[glindex2] * (0.879474,0.475947) vertex[glindex2,8] = trapscales[glindex2] * (-0.3,-0.519615) vertex[glindex2,9] = trapscales[glindex2] * (0.851919,-0.523673) vertex[glindex2,10] = trapscales[glindex2] * (-0.6,0) vertex[glindex2,11] = trapscales[glindex2] * (-0.0275543,-0.99962) vertex[glindex2,12] = trapscales[glindex2] * (-0.3,0.519615) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 45 ; "hexagram 4" cursality[glindex2] = 2 numbervertices = 14 ; 12 + cursality[glindex2] for closed figures cincrement[glindex2] = 7 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,1] = trapscales[glindex2] * (-0.309017, 0.951057) vertex[glindex2,2] = trapscales[glindex2] * (-0.669131, 0.743145) vertex[glindex2,3] = trapscales[glindex2] * (-0.669131, -0.743145) vertex[glindex2,4] = trapscales[glindex2] * (-0.309017, -0.951057) vertex[glindex2,5] = trapscales[glindex2] * (0.978148, -0.207912) vertex[glindex2,6] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,7] = trapscales[glindex2] * (0.309017, 0.951057) vertex[glindex2,8] = trapscales[glindex2] * (-0.978148, 0.207912) vertex[glindex2,9] = trapscales[glindex2] * (-0.978148, -0.207912) vertex[glindex2,10] = trapscales[glindex2] * (0.309017, -0.951057) vertex[glindex2,11] = trapscales[glindex2] * (0.669131, -0.743145) vertex[glindex2,12] = trapscales[glindex2] * (0.669131, 0.743145) vertex[glindex2,13] = trapscales[glindex2] * (0.309017, 0.951057) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 46 ; "hexagram 5" cursality[glindex2] = 3 numbervertices = 15 ; 12 + cursality[glindex2] for closed figures cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,1] = trapscales[glindex2] * (-0.978148, 0.207912) vertex[glindex2,2] = trapscales[glindex2] * (-0.978148, -0.207912) vertex[glindex2,3] = trapscales[glindex2] * (0.978148, -0.207912) vertex[glindex2,4] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,5] = trapscales[glindex2] * (0.309017, 0.951057) vertex[glindex2,6] = trapscales[glindex2] * (-0.669131, -0.743145) vertex[glindex2,7] = trapscales[glindex2] * (-0.309017, -0.951057) vertex[glindex2,8] = trapscales[glindex2] * (0.669131, 0.743145) vertex[glindex2,9] = trapscales[glindex2] * (0.309017, 0.951057) vertex[glindex2,10] = trapscales[glindex2] * (-0.669131, 0.743145) vertex[glindex2,11] = trapscales[glindex2] * (0.309017, -0.951057) vertex[glindex2,12] = trapscales[glindex2] * (0.669131, -0.743145) vertex[glindex2,13] = trapscales[glindex2] * (-0.309017, 0.951057) vertex[glindex2,14] = trapscales[glindex2] * (-0.669131, 0.743145) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 47 ; "hexagram 6" cursality[glindex2] = 3 numbervertices = 15 ; 12 + cursality[glindex2] for closed figures cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,1] = trapscales[glindex2] * (-0.978148, -0.207912) vertex[glindex2,2] = trapscales[glindex2] * (-0.978148, 0.207912) vertex[glindex2,3] = trapscales[glindex2] * (0.978148, -0.207912) vertex[glindex2,4] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,5] = trapscales[glindex2] * (0.309017, 0.951057) vertex[glindex2,6] = trapscales[glindex2] * (-0.309017, -0.951057) vertex[glindex2,7] = trapscales[glindex2] * (-0.669131, -0.743145) vertex[glindex2,8] = trapscales[glindex2] * (0.669131, 0.743145) vertex[glindex2,9] = trapscales[glindex2] * (0.309017, 0.951057) vertex[glindex2,10] = trapscales[glindex2] * (-0.669131, 0.743145) vertex[glindex2,11] = trapscales[glindex2] * (0.669131, -0.743145) vertex[glindex2,12] = trapscales[glindex2] * (0.309017, -0.951057) vertex[glindex2,13] = trapscales[glindex2] * (-0.309017, 0.951057) vertex[glindex2,14] = trapscales[glindex2] * (-0.669131, 0.743145) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 48 ; "hexagram 7" cursality[glindex2] = 2 numbervertices = 14 ; 12 + cursality[glindex2] for closed figures cincrement[glindex2] = 7 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,1] = trapscales[glindex2] * (-0.978148, 0.207912) vertex[glindex2,2] = trapscales[glindex2] * (-0.669131, 0.743145) vertex[glindex2,3] = trapscales[glindex2] * (0.309017, -0.951057) vertex[glindex2,4] = trapscales[glindex2] * (-0.309017, -0.951057) vertex[glindex2,5] = trapscales[glindex2] * (0.669131, 0.743145) vertex[glindex2,6] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,7] = trapscales[glindex2] * (0.309017, 0.951057) vertex[glindex2,8] = trapscales[glindex2] * (-0.669131, -0.743145) vertex[glindex2,9] = trapscales[glindex2] * (-0.978148, -0.207912) vertex[glindex2,10] = trapscales[glindex2] * (0.978148, -0.207912) vertex[glindex2,11] = trapscales[glindex2] * (0.669131, -0.743145) vertex[glindex2,12] = trapscales[glindex2] * (-0.309017, 0.951057) vertex[glindex2,13] = trapscales[glindex2] * (0.309017, 0.951057) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 49 ; "6-asterisk" cursality[glindex2] = 6 numbervertices = 12 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] scratchfloat = sqrt(3)/2 ; for some vertext coordinates ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0,0) vertex[glindex2,1] = @leafAlength * trapscales[glindex2] * (0,1) vertex[glindex2,2] = trapscales[glindex2] * (0,0) vertex[glindex2,3] = @leafBlength * trapscales[glindex2] * (-scratchfloat + flip(0.5)) vertex[glindex2,4] = trapscales[glindex2] * (0,0) vertex[glindex2,5] = @leafClength * trapscales[glindex2] * (-scratchfloat + flip(-0.5)) vertex[glindex2,6] = trapscales[glindex2] * (0,0) vertex[glindex2,7] = @leafDlength * trapscales[glindex2] * (0,-1) vertex[glindex2,8] = trapscales[glindex2] * (0,0) vertex[glindex2,9] = @leafElength * trapscales[glindex2] * (scratchfloat + flip(-0.5)) vertex[glindex2,10] = trapscales[glindex2] * (0,0) vertex[glindex2,11] = @leafFlength * trapscales[glindex2] * (scratchfloat + flip(0.5)) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 50 ; "6-star" cursality[glindex2] = 1 numbervertices = 13 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 13 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.7,0) vertex[glindex2,1] = @starspikiness * trapscales[glindex2] * (1.08253,0.625) vertex[glindex2,2] = trapscales[glindex2] * (0.35,0.606218) vertex[glindex2,3] = @starspikiness * trapscales[glindex2] * (0,1.25) vertex[glindex2,4] = trapscales[glindex2] * (-0.35,0.606218) vertex[glindex2,5] = @starspikiness * trapscales[glindex2] * (-1.08253,0.625) vertex[glindex2,6] = trapscales[glindex2] * (-0.7,0) vertex[glindex2,7] = @starspikiness * trapscales[glindex2] * (-1.08253,-0.625) vertex[glindex2,8] = trapscales[glindex2] * (-0.35,-0.606218) vertex[glindex2,9] = @starspikiness * trapscales[glindex2] * (0,-1.125) vertex[glindex2,10] = trapscales[glindex2] * (0.35,-0.606218) vertex[glindex2,11] = @starspikiness * trapscales[glindex2] * (1.08253,-0.625) vertex[glindex2,12] = trapscales[glindex2] * (0.7,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 71 ; "6-star 2" cursality[glindex2] = 1 numbervertices = 13 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 13 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.5,0) vertex[glindex2,2] = trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2,3] = trapscales[glindex2] * (0.25, 0.433013) vertex[glindex2,4] = trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2,5] = trapscales[glindex2] * (-0.25, 0.433013) vertex[glindex2,6] = trapscales[glindex2] * (-1,0) vertex[glindex2,7] = trapscales[glindex2] * (-0.5,0) vertex[glindex2,8] = trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2,9] = trapscales[glindex2] * (-0.25, -0.433013) vertex[glindex2,10] = trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2,11] = trapscales[glindex2] * (0.25, -0.433013) vertex[glindex2,12] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 72 ; "6-star 3" cursality[glindex2] = 1 numbervertices = 13 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 13 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.720775, 0.347107) vertex[glindex2,1] = trapscales[glindex2] * (0.450484, -0.216942) vertex[glindex2,2] = trapscales[glindex2] * (0.0597841, 0.797763) vertex[glindex2,3] = trapscales[glindex2] * (0.413119, 0.28166) vertex[glindex2,4] = trapscales[glindex2] * (-0.660991, 0.450656) vertex[glindex2,5] = trapscales[glindex2] * (-0.037365, 0.498602) vertex[glindex2,6] = trapscales[glindex2] * (-0.720775, -0.347107) vertex[glindex2,7] = trapscales[glindex2] * (-0.450484, 0.216942) vertex[glindex2,8] = trapscales[glindex2] * (-0.0597841, -0.797763) vertex[glindex2,9] = trapscales[glindex2] * (-0.413119, -0.28166) vertex[glindex2,10] = trapscales[glindex2] * (0.660991, -0.450656) vertex[glindex2,11] = trapscales[glindex2] * (0.037365, -0.498602) vertex[glindex2,12] = trapscales[glindex2] * (0.720775, 0.347107) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 51 ; "nested hexagons" cursality[glindex2] = 2 numbervertices = 14 ; 10 + cursality[glindex2] cincrement[glindex2] = 7 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.5,0.866025) vertex[glindex2,2] = trapscales[glindex2] * (-0.5,0.866025) vertex[glindex2,3] = trapscales[glindex2] * (-1,0) vertex[glindex2,4] = trapscales[glindex2] * (-0.5,-0.866025) vertex[glindex2,5] = trapscales[glindex2] * (0.5,-0.866025) vertex[glindex2,6] = trapscales[glindex2] * (1,0) vertex[glindex2,7] = @innerscale * trapscales[glindex2] * (0.4,0) vertex[glindex2,8] = @innerscale * trapscales[glindex2] * (0.2,0.34641) vertex[glindex2,9] = @innerscale * trapscales[glindex2] * (-0.2,0.34641) vertex[glindex2,10] = @innerscale * trapscales[glindex2] * (-0.4,0) vertex[glindex2,11] = @innerscale * trapscales[glindex2] * (-0.2,-0.34641) vertex[glindex2,12] = trapscales[glindex2] * (0.2,-0.34641) vertex[glindex2,13] = @innerscale * trapscales[glindex2] * (0.4,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 52 ; "nested hexagon 2" cursality[glindex2] = 2 numbervertices = 14 ; 10 + cursality[glindex2] cincrement[glindex2] = 7 ; numbervertices/cursality[glindex2] vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.5,0.866025) vertex[glindex2,2] = trapscales[glindex2] * (-0.5,0.866025) vertex[glindex2,3] = trapscales[glindex2] * (-1,0) vertex[glindex2,4] = trapscales[glindex2] * (-0.5,-0.866025) vertex[glindex2,5] = trapscales[glindex2] * (0.5,-0.866025) vertex[glindex2,6] = trapscales[glindex2] * (1,0) vertex[glindex2,7] = @innerscale * trapscales[glindex2] * (0.34641,0.2) vertex[glindex2,8] = @innerscale * trapscales[glindex2] * (0,0.4) vertex[glindex2,9] = @innerscale * trapscales[glindex2] * (-0.34641,0.2) vertex[glindex2,10] = @innerscale * trapscales[glindex2] * (-0.34641,-0.2) vertex[glindex2,11] = @innerscale * trapscales[glindex2] * (0,-0.4) vertex[glindex2,12] = trapscales[glindex2] * (0.34641,-0.2) vertex[glindex2,13] = @innerscale * trapscales[glindex2] * (0.34641,0.2) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 53 ; "twisted hexagons" cursality[glindex2] = 3 numbervertices = 21 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 7 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1, 0) vertex[glindex2,1] = trapscales[glindex2] * (0.5,0.866025) vertex[glindex2,2] = trapscales[glindex2] * (-0.5,0.866025) vertex[glindex2,3] = trapscales[glindex2] * (-1,0) vertex[glindex2,4] = trapscales[glindex2] * (-0.5,-0.866025) vertex[glindex2,5] = trapscales[glindex2] * (0.5,-0.866025) vertex[glindex2,6] = trapscales[glindex2] * (1,0) vertex[glindex2,7] = trapscales[glindex2] * (0.704489,0.511841) vertex[glindex2,8] = trapscales[glindex2] * (-0.0910229,0.866025) vertex[glindex2,9] = trapscales[glindex2] * (-0.795511,0.354185) vertex[glindex2,10] = trapscales[glindex2] * (-0.704489,-0.511841) vertex[glindex2,11] = trapscales[glindex2] * (0.0910229,-0.866025) vertex[glindex2,12] = trapscales[glindex2] * (0.795511,-0.354185) vertex[glindex2,13] = trapscales[glindex2] * (0.704489,0.511841) vertex[glindex2,14] = trapscales[glindex2] * (0.234323,0.721172) vertex[glindex2,15] = trapscales[glindex2] * (-0.507392,0.563516) vertex[glindex2,16] = trapscales[glindex2] * (-0.741715,-0.157656) vertex[glindex2,17] = trapscales[glindex2] * (-0.234323,-0.721172) vertex[glindex2,18] = trapscales[glindex2] * (0.507392,-0.563516) vertex[glindex2,19] = trapscales[glindex2] * (0.741715,0.157656) vertex[glindex2,20] = trapscales[glindex2] * (0.234323,0.721172) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 54 ; "twisted hexagon 2" cursality[glindex2] = 4 numbervertices = 28 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 7 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1, 0) vertex[glindex2,1] = trapscales[glindex2] * (0.5,0.866025) vertex[glindex2,2] = trapscales[glindex2] * (-0.5,0.866025) vertex[glindex2,3] = trapscales[glindex2] * (-1,0) vertex[glindex2,4] = trapscales[glindex2] * (-0.5,-0.866025) vertex[glindex2,5] = trapscales[glindex2] * (0.5,-0.866025) vertex[glindex2,6] = trapscales[glindex2] * (1,0) vertex[glindex2,7] = trapscales[glindex2] * (0.673648, 0.565258) vertex[glindex2,8] = trapscales[glindex2] * (-0.152704, 0.866025) vertex[glindex2,9] = trapscales[glindex2] * (-0.826352, 0.300767) vertex[glindex2,10] = trapscales[glindex2] * (-0.673648, -0.565258) vertex[glindex2,11] = trapscales[glindex2] * (0.152704, -0.866025) vertex[glindex2,12] = trapscales[glindex2] * (0.826352, -0.300767) vertex[glindex2,13] = trapscales[glindex2] * (0.673648, 0.565258) vertex[glindex2,14] = trapscales[glindex2] * (0.134285, 0.76157) vertex[glindex2,15] = trapscales[glindex2] * (-0.592396, 0.497079) vertex[glindex2,16] = trapscales[glindex2] * (-0.726682, -0.26449) vertex[glindex2,17] = trapscales[glindex2] * (-0.134285, -0.76157) vertex[glindex2,18] = trapscales[glindex2] * (0.592396, -0.497079) vertex[glindex2,19] = trapscales[glindex2] * (0.726682, 0.26449) vertex[glindex2,20] = trapscales[glindex2] * (0.134285, 0.76157) vertex[glindex2,21] = trapscales[glindex2] * (-0.340022, 0.588936) vertex[glindex2,22] = trapscales[glindex2] * (-0.680045, 0) vertex[glindex2,23] = trapscales[glindex2] * (-0.340022, -0.588936) vertex[glindex2,24] = trapscales[glindex2] * (0.340022, -0.588936) vertex[glindex2,25] = trapscales[glindex2] * (0.680045, 0) vertex[glindex2,26] = trapscales[glindex2] * (0.340022, 0.588936) vertex[glindex2,27] = trapscales[glindex2] * (-0.340022, 0.588936) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 77 ; "heptagon" cursality[glindex2] = 1 numbervertices = 8 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 8 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.62349, 0.781831) vertex[glindex2,2] = trapscales[glindex2] * (-0.222521, 0.974928) vertex[glindex2,3] = trapscales[glindex2] * (-0.900969, 0.433884) vertex[glindex2,4] = trapscales[glindex2] * (-0.900969, -0.433884) vertex[glindex2,5] = trapscales[glindex2] * (-0.222521, -0.974928) vertex[glindex2,6] = trapscales[glindex2] * (0.62349, -0.781831) vertex[glindex2,7] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 78 ; "heptagon 2" cursality[glindex2] = 7 numbervertices = 21 ; open curves cincrement[glindex2] = 3 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0,0) vertex[glindex2,1] = trapscales[glindex2] * (1,0) vertex[glindex2,2] = trapscales[glindex2] * (0.62349, 0.781831) vertex[glindex2,3] = trapscales[glindex2] * (0,0) vertex[glindex2,4] = trapscales[glindex2] * (0.62349, 0.781831) vertex[glindex2,5] = trapscales[glindex2] * (-0.222521, 0.974928) vertex[glindex2,6] = trapscales[glindex2] * (0,0) vertex[glindex2,7] = trapscales[glindex2] * (-0.222521, 0.974928) vertex[glindex2,8] = trapscales[glindex2] * (-0.900969, 0.433884) vertex[glindex2,9] = trapscales[glindex2] * (0,0) vertex[glindex2,10] = trapscales[glindex2] * (-0.900969, 0.433884) vertex[glindex2,11] = trapscales[glindex2] * (-0.900969, -0.433884) vertex[glindex2,12] = trapscales[glindex2] * (0,0) vertex[glindex2,13] = trapscales[glindex2] * (-0.900969, -0.433884) vertex[glindex2,14] = trapscales[glindex2] * (-0.222521, -0.974928) vertex[glindex2,15] = trapscales[glindex2] * (0,0) vertex[glindex2,16] = trapscales[glindex2] * (-0.222521, -0.974928) vertex[glindex2,17] = trapscales[glindex2] * (0.62349, -0.781831) vertex[glindex2,18] = trapscales[glindex2] * (0,0) vertex[glindex2,19] = trapscales[glindex2] * (0.62349, -0.781831) vertex[glindex2,20] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 79 ; "heptagram" cursality[glindex2] = 1 numbervertices = 8 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 8 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (-0.222521, 0.974928) vertex[glindex2,2] = trapscales[glindex2] * (-0.900969, -0.433884) vertex[glindex2,3] = trapscales[glindex2] * (0.62349, -0.781831) vertex[glindex2,4] = trapscales[glindex2] * (0.62349, 0.781831) vertex[glindex2,5] = trapscales[glindex2] * (-0.900969, 0.433884) vertex[glindex2,6] = trapscales[glindex2] * (-0.222521, -0.974928) vertex[glindex2,7] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 80 ; "heptagram 2" cursality[glindex2] = 1 numbervertices = 8 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 8 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (-0.900969, 0.433884) vertex[glindex2,2] = trapscales[glindex2] * (0.62349, -0.781831) vertex[glindex2,3] = trapscales[glindex2] * (-0.222521, 0.974928) vertex[glindex2,4] = trapscales[glindex2] * (-0.222521, -0.974928) vertex[glindex2,5] = trapscales[glindex2] * (0.62349, 0.781831) vertex[glindex2,6] = trapscales[glindex2] * (-0.900969, -0.433884) vertex[glindex2,7] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 81 ; "heptagram 3" cursality[glindex2] = 1 numbervertices = 15 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 15 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.133513, 0.584957) vertex[glindex2,1] = trapscales[glindex2] * (-0.995974, -0.0896393) vertex[glindex2,2] = trapscales[glindex2] * (0.374094, 0.469099) vertex[glindex2,3] = trapscales[glindex2] * (-0.691063, 0.722795) vertex[glindex2,4] = trapscales[glindex2] * (0.6, 0) vertex[glindex2,5] = trapscales[glindex2] * (0.134233, 0.99095) vertex[glindex2,6] = trapscales[glindex2] * (0.374094, -0.469099) vertex[glindex2,7] = trapscales[glindex2] * (0.858449, 0.512899) vertex[glindex2,8] = trapscales[glindex2] * (-0.133513, -0.584957) vertex[glindex2,9] = trapscales[glindex2] * (0.936235, -0.351375) vertex[glindex2,10] = trapscales[glindex2] * (-0.540581, -0.26033) vertex[glindex2,11] = trapscales[glindex2] * (0.309017, -0.951057) vertex[glindex2,12] = trapscales[glindex2] * (-0.540581, 0.26033) vertex[glindex2,13] = trapscales[glindex2] * (-0.550897, -0.834573) vertex[glindex2,14] = trapscales[glindex2] * (-0.133513, 0.584957) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 82 ; "heptagram 4" cursality[glindex2] = 1 numbervertices = 15 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 15 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,1] = trapscales[glindex2] * (-0.0149594, 0.999888) vertex[glindex2,2] = trapscales[glindex2] * (-0.420357, 0.907359) vertex[glindex2,3] = trapscales[glindex2] * (-0.97149, -0.23708) vertex[glindex2,4] = trapscales[glindex2] * (-0.791071, -0.611724) vertex[glindex2,5] = trapscales[glindex2] * (0.447313, -0.894377) vertex[glindex2,6] = trapscales[glindex2] * (0.772417, -0.635116) vertex[glindex2,7] = trapscales[glindex2] * (0.772417, 0.635116) vertex[glindex2,8] = trapscales[glindex2] * (0.447313, 0.894377) vertex[glindex2,9] = trapscales[glindex2] * (-0.791071, 0.611724) vertex[glindex2,10] = trapscales[glindex2] * (-0.97149, 0.23708) vertex[glindex2,11] = trapscales[glindex2] * (-0.420357, -0.907359) vertex[glindex2,12] = trapscales[glindex2] * (-0.0149594, -0.999888) vertex[glindex2,13] = trapscales[glindex2] * (0.978148, -0.207912) vertex[glindex2,14] = trapscales[glindex2] * (0.978148, 0.207912) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 83 ; "heptagram 5" cursality[glindex2] = 1 numbervertices = 15 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 15 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,1] = trapscales[glindex2] * (-0.791071, 0.611724) vertex[glindex2,2] = trapscales[glindex2] * (-0.97149, 0.23708) vertex[glindex2,3] = trapscales[glindex2] * (0.447313, -0.894377) vertex[glindex2,4] = trapscales[glindex2] * (0.772417, -0.635116) vertex[glindex2,5] = trapscales[glindex2] * (-0.0149594, 0.999888) vertex[glindex2,6] = trapscales[glindex2] * (-0.420357, 0.907359) vertex[glindex2,7] = trapscales[glindex2] * (-0.420357, -0.907359) vertex[glindex2,8] = trapscales[glindex2] * (-0.0149594, -0.999888) vertex[glindex2,9] = trapscales[glindex2] * (0.772417, 0.635116) vertex[glindex2,10] = trapscales[glindex2] * (0.447313, 0.894377) vertex[glindex2,11] = trapscales[glindex2] * (-0.97149, -0.23708) vertex[glindex2,12] = trapscales[glindex2] * (-0.791071, -0.611724) vertex[glindex2,13] = trapscales[glindex2] * (0.978148, -0.207912) vertex[glindex2,14] = trapscales[glindex2] * (0.978148, 0.207912) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 84 ; "heptagram 6" cursality[glindex2] = 1 numbervertices = 15 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 15 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,1] = trapscales[glindex2] * (-0.791071, 0.611724) vertex[glindex2,2] = trapscales[glindex2] * (-0.420357, 0.907359) vertex[glindex2,3] = trapscales[glindex2] * (-0.420357, -0.907359) vertex[glindex2,4] = trapscales[glindex2] * (-0.791071, -0.611724) vertex[glindex2,5] = trapscales[glindex2] * (0.978148, -0.207912) vertex[glindex2,6] = trapscales[glindex2] * (0.772417, -0.635116) vertex[glindex2,7] = trapscales[glindex2] * (-0.0149594, 0.999888) vertex[glindex2,8] = trapscales[glindex2] * (0.447313, 0.894377) vertex[glindex2,9] = trapscales[glindex2] * (-0.97149, -0.23708) vertex[glindex2,10] = trapscales[glindex2] * (-0.97149, 0.23708) vertex[glindex2,11] = trapscales[glindex2] * (0.447313, -0.894377) vertex[glindex2,12] = trapscales[glindex2] * (-0.0149594, -0.999888) vertex[glindex2,13] = trapscales[glindex2] * (0.772417, 0.635116) vertex[glindex2,14] = trapscales[glindex2] * (0.978148, 0.207912) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 85 ; "heptagram 7" cursality[glindex2] = 1 numbervertices = 15 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 15 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,1] = trapscales[glindex2] * (-0.97149, -0.23708) vertex[glindex2,2] = trapscales[glindex2] * (-0.97149, 0.23708) vertex[glindex2,3] = trapscales[glindex2] * (0.978148, -0.207912) vertex[glindex2,4] = trapscales[glindex2] * (0.772417, -0.635116) vertex[glindex2,5] = trapscales[glindex2] * (-0.791071, 0.611724) vertex[glindex2,6] = trapscales[glindex2] * (-0.420357, 0.907359) vertex[glindex2,7] = trapscales[glindex2] * (0.447313, -0.894377) vertex[glindex2,8] = trapscales[glindex2] * (-0.0149594, -0.999888) vertex[glindex2,9] = trapscales[glindex2] * (-0.0149594, 0.999888) vertex[glindex2,10] = trapscales[glindex2] * (0.447313, 0.894377) vertex[glindex2,11] = trapscales[glindex2] * (-0.420357, -0.907359) vertex[glindex2,12] = trapscales[glindex2] * (-0.791071, -0.611724) vertex[glindex2,13] = trapscales[glindex2] * (0.772417, 0.635116) vertex[glindex2,14] = trapscales[glindex2] * (0.978148, 0.207912) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 86 ; "7-asterisk" cursality[glindex2] = 7 numbervertices = 14 ; n for open curves cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0,0) vertex[glindex2,1] = @leafAlength * trapscales[glindex2] * (1,0) vertex[glindex2,2] = trapscales[glindex2] * (0,0) vertex[glindex2,3] = @leafBlength * trapscales[glindex2] * (0.62349, 0.781831) vertex[glindex2,4] = trapscales[glindex2] * (0,0) vertex[glindex2,5] = @leafClength * trapscales[glindex2] * (-0.222521, 0.974928) vertex[glindex2,6] = trapscales[glindex2] * (0,0) vertex[glindex2,7] = @leafDlength * trapscales[glindex2] * (-0.900969, 0.433884) vertex[glindex2,8] = trapscales[glindex2] * (0,0) vertex[glindex2,9] = @leafElength * trapscales[glindex2] * (-0.900969, -0.433884) vertex[glindex2,10] = trapscales[glindex2] * (0,0) vertex[glindex2,11] = @leafFlength * trapscales[glindex2] * (-0.222521, -0.974928) vertex[glindex2,12] = trapscales[glindex2] * (0,0) vertex[glindex2,13] = @leafGlength * trapscales[glindex2] * (0.62349, -0.781831) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 87 ; "7-star" cursality[glindex2] = 1 numbervertices = 15 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 15 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.5,0) vertex[glindex2,1] = @starspikiness * trapscales[glindex2] * (0.900969, 0.433884) vertex[glindex2,2] = trapscales[glindex2] * (0.311745, 0.390916) vertex[glindex2,3] = @starspikiness * trapscales[glindex2] * (0.222521, 0.974928) vertex[glindex2,4] = trapscales[glindex2] * (-0.11126, 0.487464) vertex[glindex2,5] = @starspikiness * trapscales[glindex2] * (-0.62349, 0.781831) vertex[glindex2,6] = trapscales[glindex2] * (-0.450484, 0.216942) vertex[glindex2,7] = @starspikiness * trapscales[glindex2] * (-1,0) vertex[glindex2,8] = trapscales[glindex2] * (-0.450484, -0.216942) vertex[glindex2,9] = @starspikiness * trapscales[glindex2] * (-0.62349, -0.781831) vertex[glindex2,10] = trapscales[glindex2] * (-0.11126, -0.487464) vertex[glindex2,11] = @starspikiness * trapscales[glindex2] * (0.222521, -0.974928) vertex[glindex2,12] = trapscales[glindex2] * (0.311745, -0.390916) vertex[glindex2,13] = @starspikiness * trapscales[glindex2] * (0.900969, -0.433884) vertex[glindex2,14] = trapscales[glindex2] * (0.5,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 88 ; "7-star 2" cursality[glindex2] = 1 numbervertices = 15 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 15 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.5,0) vertex[glindex2,2] = trapscales[glindex2] * (0.62349, 0.781831) vertex[glindex2,3] = trapscales[glindex2] * (0.311745, 0.390916) vertex[glindex2,4] = trapscales[glindex2] * (-0.222521, 0.974928) vertex[glindex2,5] = trapscales[glindex2] * (-0.11126, 0.487464) vertex[glindex2,6] = trapscales[glindex2] * (-0.900969, 0.433884) vertex[glindex2,7] = trapscales[glindex2] * (-0.450484, 0.216942) vertex[glindex2,8] = trapscales[glindex2] * (-0.900969, -0.433884) vertex[glindex2,9] = trapscales[glindex2] * (-0.450484, -0.216942) vertex[glindex2,10] = trapscales[glindex2] * (-0.222521, -0.974928) vertex[glindex2,11] = trapscales[glindex2] * (-0.11126, -0.487464) vertex[glindex2,12] = trapscales[glindex2] * (0.62349, -0.781831) vertex[glindex2,13] = trapscales[glindex2] * (0.311745, -0.390916) vertex[glindex2,14] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 110 ; "7-star 3" cursality[glindex2] = 1 numbervertices = 22 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 22 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.675727, 0.325413) vertex[glindex2,2] = trapscales[glindex2] * (0.205644, 0.455753) vertex[glindex2,3] = trapscales[glindex2] * (-0.222521, 0.974928) vertex[glindex2,4] = trapscales[glindex2] * (-0.467617, 0.586374) vertex[glindex2,5] = trapscales[glindex2] * (-0.490086, 0.0990731) vertex[glindex2,6] = trapscales[glindex2] * (-0.900969, -0.433884) vertex[glindex2,7] = trapscales[glindex2] * (-0.467617, -0.586374) vertex[glindex2,8] = trapscales[glindex2] * (0.0124653, -0.499845) vertex[glindex2,9] = trapscales[glindex2] * (0.62349, -0.781831) vertex[glindex2,10] = trapscales[glindex2] * (0.675727, -0.325413) vertex[glindex2,11] = trapscales[glindex2] * (0.484539, 0.123379) vertex[glindex2,12] = trapscales[glindex2] * (0.62349, 0.781831) vertex[glindex2,13] = trapscales[glindex2] * (0.166891, 0.731196) vertex[glindex2,14] = trapscales[glindex2] * (-0.228105, 0.444936) vertex[glindex2,15] = trapscales[glindex2] * (-0.900969, 0.433884) vertex[glindex2,16] = trapscales[glindex2] * (-0.75, 0) vertex[glindex2,17] = trapscales[glindex2] * (-0.383022, -0.321394) vertex[glindex2,18] = trapscales[glindex2] * (-0.222521, -0.974928) vertex[glindex2,19] = trapscales[glindex2] * (0.166891, -0.731196) vertex[glindex2,20] = trapscales[glindex2] * (0.398566, -0.301902) vertex[glindex2,21] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 89 ; "nested heptagons" cursality[glindex2] = 2 numbervertices = 16 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 8 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.62349, 0.781831) vertex[glindex2,2] = trapscales[glindex2] * (-0.222521, 0.974928) vertex[glindex2,3] = trapscales[glindex2] * (-0.900969, 0.433884) vertex[glindex2,4] = trapscales[glindex2] * (-0.900969, -0.433884) vertex[glindex2,5] = trapscales[glindex2] * (-0.222521, -0.974928) vertex[glindex2,6] = trapscales[glindex2] * (0.62349, -0.781831) vertex[glindex2,7] = trapscales[glindex2] * (1,0) vertex[glindex2,8] = @innerscale * trapscales[glindex2] * (0.5,0) vertex[glindex2,9] = @innerscale * trapscales[glindex2] * (0.311745, 0.390916) vertex[glindex2,10] = @innerscale * trapscales[glindex2] * (-0.11126, 0.487464) vertex[glindex2,11] = @innerscale * trapscales[glindex2] * (-0.450484, 0.216942) vertex[glindex2,12] = @innerscale * trapscales[glindex2] * (-0.450484, -0.216942) vertex[glindex2,13] = @innerscale * trapscales[glindex2] * (-0.11126, -0.487464) vertex[glindex2,14] = @innerscale * trapscales[glindex2] * (0.311745, -0.390916) vertex[glindex2,15] = @innerscale * trapscales[glindex2] * (0.5,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 90 ; "nested heptagon 2" cursality[glindex2] = 2 numbervertices = 16 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 8 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.900969, 0.433884) vertex[glindex2,1] = trapscales[glindex2] * (0.222521, 0.974928) vertex[glindex2,2] = trapscales[glindex2] * (-0.62349, 0.781831) vertex[glindex2,3] = trapscales[glindex2] * (-1,0) vertex[glindex2,4] = trapscales[glindex2] * (-0.62349, -0.781831) vertex[glindex2,5] = trapscales[glindex2] * (0.222521, -0.974928) vertex[glindex2,6] = trapscales[glindex2] * (0.900969, -0.433884) vertex[glindex2,7] = trapscales[glindex2] * (0.900969, 0.433884) vertex[glindex2,8] = @innerscale * trapscales[glindex2] * (0.5,0) vertex[glindex2,9] = @innerscale * trapscales[glindex2] * (0.311745, 0.390916) vertex[glindex2,10] = @innerscale * trapscales[glindex2] * (-0.11126, 0.487464) vertex[glindex2,11] = @innerscale * trapscales[glindex2] * (-0.450484, 0.216942) vertex[glindex2,12] = @innerscale * trapscales[glindex2] * (-0.450484, -0.216942) vertex[glindex2,13] = @innerscale * trapscales[glindex2] * (-0.11126, -0.487464) vertex[glindex2,14] = @innerscale * trapscales[glindex2] * (0.311745, -0.390916) vertex[glindex2,15] = @innerscale * trapscales[glindex2] * (0.5,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 91 ; "twisted heptagons" cursality[glindex2] = 3 numbervertices = 24 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 8 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1, 0) vertex[glindex2,1] = trapscales[glindex2] * (0.62349, 0.781831) vertex[glindex2,2] = trapscales[glindex2] * (-0.222521, 0.974928) vertex[glindex2,3] = trapscales[glindex2] * (-0.900969, 0.433884) vertex[glindex2,4] = trapscales[glindex2] * (-0.900969, -0.433884) vertex[glindex2,5] = trapscales[glindex2] * (-0.222521, -0.974928) vertex[glindex2,6] = trapscales[glindex2] * (0.62349, -0.781831) vertex[glindex2,7] = trapscales[glindex2] * (1,0) vertex[glindex2,8] = trapscales[glindex2] * (0.887876, 0.232828) vertex[glindex2,9] = trapscales[glindex2] * (0.371549, 0.839335) vertex[glindex2,10] = trapscales[glindex2] * (-0.424562, 0.813806) vertex[glindex2,11] = trapscales[glindex2] * (-0.900969, 0.175464) vertex[glindex2,12] = trapscales[glindex2] * (-0.698928, -0.595006) vertex[glindex2,13] = trapscales[glindex2] * (0.02942, -0.917424) vertex[glindex2,14] = trapscales[glindex2] * (0.735614, -0.549003) vertex[glindex2,15] = trapscales[glindex2] * (0.887876, 0.232828) vertex[glindex2,16] = trapscales[glindex2] * (0.734114, 0.413445) vertex[glindex2,17] = trapscales[glindex2] * (0.134468, 0.831733) vertex[glindex2,18] = trapscales[glindex2] * (-0.566435, 0.623708) vertex[glindex2,19] = trapscales[glindex2] * (-0.840801, -0.0539812) vertex[glindex2,20] = trapscales[glindex2] * (-0.482027, -0.691022) vertex[glindex2,21] = trapscales[glindex2] * (0.239724, -0.807709) vertex[glindex2,22] = trapscales[glindex2] * (0.780957, -0.316175) vertex[glindex2,23] = trapscales[glindex2] * (0.734114, 0.413445) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 92 ; "twisted heptagon 2" cursality[glindex2] = 5 numbervertices = 40 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 8 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1, 0) vertex[glindex2,1] = trapscales[glindex2] * (0.62349, 0.781831) vertex[glindex2,2] = trapscales[glindex2] * (-0.222521, 0.974928) vertex[glindex2,3] = trapscales[glindex2] * (-0.900969, 0.433884) vertex[glindex2,4] = trapscales[glindex2] * (-0.900969, -0.433884) vertex[glindex2,5] = trapscales[glindex2] * (-0.222521, -0.974928) vertex[glindex2,6] = trapscales[glindex2] * (0.62349, -0.781831) vertex[glindex2,7] = trapscales[glindex2] * (1,0) vertex[glindex2,8] = trapscales[glindex2] * (0.761342, 0.495579) vertex[glindex2,9] = trapscales[glindex2] * (0.0872299, 0.904229) vertex[glindex2,10] = trapscales[glindex2] * (-0.652568, 0.631977) vertex[glindex2,11] = trapscales[glindex2] * (-0.900969, -0.116167) vertex[glindex2,12] = trapscales[glindex2] * (-0.470922, -0.776835) vertex[glindex2,13] = trapscales[glindex2] * (0.313739, -0.85253) vertex[glindex2,14] = trapscales[glindex2] * (0.862148, -0.286253) vertex[glindex2,15] = trapscales[glindex2] * (0.761342, 0.495579) vertex[glindex2,16] = trapscales[glindex2] * (0.334043, 0.75461) vertex[glindex2,17] = trapscales[glindex2] * (-0.381705, 0.731657) vertex[glindex2,18] = trapscales[glindex2] * (-0.810022, 0.157752) vertex[glindex2,19] = trapscales[glindex2] * (-0.628375, -0.534944) vertex[glindex2,20] = trapscales[glindex2] * (0.0264502, -0.824816) vertex[glindex2,21] = trapscales[glindex2] * (0.661358, -0.493585) vertex[glindex2,22] = trapscales[glindex2] * (0.79825, 0.209326) vertex[glindex2,23] = trapscales[glindex2] * (0.334043, 0.75461) vertex[glindex2,24] = trapscales[glindex2] * (-0.119647, 0.740061) vertex[glindex2,25] = trapscales[glindex2] * (-0.653202, 0.367876) vertex[glindex2,26] = trapscales[glindex2] * (-0.694882, -0.281326) vertex[glindex2,27] = trapscales[glindex2] * (-0.213302, -0.718685) vertex[glindex2,28] = trapscales[glindex2] * (0.428899, -0.614859) vertex[glindex2,29] = trapscales[glindex2] * (0.74813, -0.0480315) vertex[glindex2,30] = trapscales[glindex2] * (0.504004, 0.554964) vertex[glindex2,31] = trapscales[glindex2] * (-0.119647, 0.740061) vertex[glindex2,32] = trapscales[glindex2] * (-0.457851, 0.504145) vertex[glindex2,33] = trapscales[glindex2] * (-0.679621, -0.0436331) vertex[glindex2,34] = trapscales[glindex2] * (-0.389623, -0.558554) vertex[glindex2,35] = trapscales[glindex2] * (0.193769, -0.652873) vertex[glindex2,36] = trapscales[glindex2] * (0.631249, -0.255565) vertex[glindex2,37] = trapscales[glindex2] * (0.593386, 0.334189) vertex[glindex2,38] = trapscales[glindex2] * (0.108691, 0.672291) vertex[glindex2,39] = trapscales[glindex2] * (-0.457851, 0.504145) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 55 ; "hand" cursality[glindex2] = 5 numbervertices = 10 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] scratchfloat = sqrt(3)/2 ; for some vertext coordinates ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0,1) vertex[glindex2,1] = @finger1length * trapscales[glindex2] * (-scratchfloat + flip(0.5)) vertex[glindex2,2] = trapscales[glindex2] * (0,1) vertex[glindex2,3] = @finger2length * trapscales[glindex2] * (-scratchfloat + flip(-0.5)) vertex[glindex2,4] = trapscales[glindex2] * (0,1) vertex[glindex2,5] = @finger3length * trapscales[glindex2] * (0,-1) vertex[glindex2,6] = trapscales[glindex2] * (0,1) vertex[glindex2,7] = @finger4length * trapscales[glindex2] * (scratchfloat + flip(-0.5)) vertex[glindex2,8] = trapscales[glindex2] * (0,1) vertex[glindex2,9] = @finger5length * trapscales[glindex2] * (scratchfloat + flip(0.5)) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 111 ; "lissajous 1" cursality[glindex2] = 1 numbervertices = 77 ; n + cursality for closed curves cincrement[glindex2] = 77 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 scratchfloat = 0.0 scratchfloat2 = (3 * twopi + 0.2)/numbervertices while glindex < numbervertices xcoord[glindex2,glindex] = trapscales[glindex2] * sin(0.66667 * scratchfloat) ycoord[glindex2,glindex] = trapscales[glindex2] * sin(scratchfloat) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) scratchfloat = scratchfloat + scratchfloat2 glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 133 ; "lissajous 2" cursality[glindex2] = 1 numbervertices = 77 ; n + cursality for closed curves cincrement[glindex2] = 77 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 scratchfloat = 0.0 scratchfloat2 = (4 * twopi + 0.2)/numbervertices while glindex < numbervertices xcoord[glindex2,glindex] = trapscales[glindex2] * sin(0.75 * scratchfloat) ycoord[glindex2,glindex] = trapscales[glindex2] * sin(scratchfloat) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) scratchfloat = scratchfloat + scratchfloat2 glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 147 ; "lissajous 3" if @grain == "36" granularity = 36 elseif @grain == "72" granularity = 72 elseif @grain == "100" granularity = 100 elseif @grain == "200" granularity = 200 elseif @grain == "300" granularity = 300 else ; @grain == "400" granularity = 400 endif ; @grain granularity2 = granularity + 1 cursality[glindex2] = 1 numbervertices = granularity2 ; n + cursality for closed curves cincrement[glindex2] = granularity2 ; numbervertices/cursality[glindex2] ; initialize arrays scratchfloat = lissajdomain/granularity2 ; angular domain increment glindex = 0 while glindex < granularity xcoord[glindex2,glindex] = trapscales[glindex2] * (@lissaamp1 * cos(@lissafreq1*glindex*scratchfloat - @lissaphase1)) ycoord[glindex2,glindex] = trapscales[glindex2] * (@lissaamp2 * cos(@lissafreq2*glindex*scratchfloat - @lissaphase2)) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex xcoord[glindex2,glindex] = xcoord[glindex2,0] ; close the curve ycoord[glindex2,glindex] = ycoord[glindex2,0] vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) if @lissaopen ; do not connect the first and last points of the curve numbervertices = numbervertices - 1 cincrement[glindex2] = cincrement[glindex2] - 1 endif ; lissaopen elseif traparray[glindex2] == 56 ; "zigzag-3" cursality[glindex2] = 1 numbervertices = 3 ; n for open curves cincrement[glindex2] = 3 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.8,-0.4) vertex[glindex2,1] = trapscales[glindex2] * (0,0.4) vertex[glindex2,2] = trapscales[glindex2] * (0.8,-0.4) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 57 ; "zigzag-4" cursality[glindex2] = 1 numbervertices = 4 ; n for open curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.9,-0.3) vertex[glindex2,1] = trapscales[glindex2] * (-0.3,0.3) vertex[glindex2,2] = trapscales[glindex2] * (0.3,-0.3) vertex[glindex2,3] = trapscales[glindex2] * (0.9,0.3) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 58 ; "zigzag-5" cursality[glindex2] = 1 numbervertices = 5 ; n for open curves cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.8,0.2) vertex[glindex2,1] = trapscales[glindex2] * (-0.4,-0.2) vertex[glindex2,2] = trapscales[glindex2] * (0,0.2) vertex[glindex2,3] = trapscales[glindex2] * (0.4,-0.2) vertex[glindex2,4] = trapscales[glindex2] * (0.8,0.2) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 59 ; "zigzag-6" cursality[glindex2] = 1 numbervertices = 6 ; n for open curves cincrement[glindex2] = 6 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-1,0.2) vertex[glindex2,1] = trapscales[glindex2] * (-0.6,-0.2) vertex[glindex2,2] = trapscales[glindex2] * (-0.2,0.2) vertex[glindex2,3] = trapscales[glindex2] * (0.2,-0.2) vertex[glindex2,4] = trapscales[glindex2] * (0.6,0.2) vertex[glindex2,5] = trapscales[glindex2] * (1,-0.2) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 60 ; "zigzag-7" cursality[glindex2] = 1 numbervertices = 7 ; n for open curves cincrement[glindex2] = 7 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.6,-0.1) vertex[glindex2,1] = trapscales[glindex2] * (-0.4,0.1) vertex[glindex2,2] = trapscales[glindex2] * (-0.2,-0.1) vertex[glindex2,3] = trapscales[glindex2] * (0,0.1) vertex[glindex2,4] = trapscales[glindex2] * (0.2,-0.1) vertex[glindex2,5] = trapscales[glindex2] * (0.4,0.1) vertex[glindex2,6] = trapscales[glindex2] * (0.6,-0.1) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 61 ; "sawtooth-1" cursality[glindex2] = 1 numbervertices = 3 ; n for open curves cincrement[glindex2] = 3 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.1,-0.3) vertex[glindex2,1] = trapscales[glindex2] * (0.1 + flip(@sawheight * 0.3)) vertex[glindex2,2] = trapscales[glindex2] * (0.1,-0.3) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 62 ; "sawtooth-2" cursality[glindex2] = 1 numbervertices = 5 ; n for open curves cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.2,-0.3) vertex[glindex2,1] = @sawheight * trapscales[glindex2] * (0,0.3) vertex[glindex2,2] = trapscales[glindex2] * (0,-0.3) vertex[glindex2,3] = trapscales[glindex2] * (0.2 + flip(@sawheight * 0.3)) vertex[glindex2,4] = trapscales[glindex2] * (0.2,-0.3) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 63 ; "sawtooth-3" cursality[glindex2] = 1 numbervertices = 7 ; n for open curves cincrement[glindex2] = 7 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.3,-0.3) vertex[glindex2,1] = trapscales[glindex2] * (-0.1 + flip(@sawheight * 0.3)) vertex[glindex2,2] = trapscales[glindex2] * (-0.1,-0.3) vertex[glindex2,3] = trapscales[glindex2] * (0.1 + flip(@sawheight * 0.3)) vertex[glindex2,4] = trapscales[glindex2] * (0.1,-0.3) vertex[glindex2,5] = trapscales[glindex2] * (0.3 + flip(@sawheight * 0.3)) vertex[glindex2,6] = trapscales[glindex2] * (0.3,-0.3) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 64 ; "sawtooth-4" cursality[glindex2] = 1 numbervertices = 9 ; n for open curves cincrement[glindex2] = 9 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.4,-0.3) vertex[glindex2,1] = trapscales[glindex2] * (-0.2 + flip(@sawheight * 0.3)) vertex[glindex2,2] = trapscales[glindex2] * (-0.2,-0.3) vertex[glindex2,3] = @sawheight * trapscales[glindex2] * (0,0.3) vertex[glindex2,4] = trapscales[glindex2] * (0,-0.3) vertex[glindex2,5] = trapscales[glindex2] * (0.2 + flip(@sawheight * 0.3)) vertex[glindex2,6] = trapscales[glindex2] * (0.2,-0.3) vertex[glindex2,7] = trapscales[glindex2] * (0.4 + flip(@sawheight * 0.3)) vertex[glindex2,8] = trapscales[glindex2] * (0.4,-0.3) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 73 ; "square-1" cursality[glindex2] = 1 numbervertices = 6 ; n for open curves cincrement[glindex2] = 6 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * ((@sqrwidth * -0.8) + flip(@sqrheight * -0.4)) vertex[glindex2,1] = trapscales[glindex2] * ((@sqrwidth * -0.4) + flip(@sqrheight * -0.4)) vertex[glindex2,2] = trapscales[glindex2] * ((@sqrwidth * -0.4) + flip(@sqrheight * 0.4)) vertex[glindex2,3] = trapscales[glindex2] * ((@sqrwidth * 0.4) + flip(@sqrheight * 0.4)) vertex[glindex2,4] = trapscales[glindex2] * ((@sqrwidth * 0.4) + flip(@sqrheight * -0.4)) vertex[glindex2,5] = trapscales[glindex2] * ((@sqrwidth * 0.8) + flip(@sqrheight * -0.4)) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 74 ; "square-2" cursality[glindex2] = 1 numbervertices = 10 ; n for open curves cincrement[glindex2] = 10 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * ((@sqrwidth * -0.8) + flip(@sqrheight * -0.2)) vertex[glindex2,1] = trapscales[glindex2] * ((@sqrwidth * -0.6) + flip(@sqrheight * -0.2)) vertex[glindex2,2] = trapscales[glindex2] * ((@sqrwidth * -0.6) + flip(@sqrheight * 0.2)) vertex[glindex2,3] = trapscales[glindex2] * ((@sqrwidth * -0.2) + flip(@sqrheight * 0.2)) vertex[glindex2,4] = trapscales[glindex2] * ((@sqrwidth * -0.2) + flip(@sqrheight * -0.2)) vertex[glindex2,5] = trapscales[glindex2] * ((@sqrwidth * 0.2) + flip(@sqrheight * -0.2)) vertex[glindex2,6] = trapscales[glindex2] * ((@sqrwidth * 0.2) + flip(@sqrheight * 0.2)) vertex[glindex2,7] = trapscales[glindex2] * ((@sqrwidth * 0.6) + flip(@sqrheight * 0.2)) vertex[glindex2,8] = trapscales[glindex2] * ((@sqrwidth * 0.6) + flip(@sqrheight * -0.2)) vertex[glindex2,9] = trapscales[glindex2] * ((@sqrwidth * 0.8) + flip(@sqrheight * -0.2)) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 75 ; "square-3" cursality[glindex2] = 1 numbervertices = 14 ; n for open curves cincrement[glindex2] = 14 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * ((@sqrwidth * -1.2) + flip(@sqrheight * -0.2)) vertex[glindex2,1] = trapscales[glindex2] * ((@sqrwidth * -1) + flip(@sqrheight * -0.2)) vertex[glindex2,2] = trapscales[glindex2] * ((@sqrwidth * -1) + flip(@sqrheight * 0.2)) vertex[glindex2,3] = trapscales[glindex2] * ((@sqrwidth * -0.6) + flip(@sqrheight * 0.2)) vertex[glindex2,4] = trapscales[glindex2] * ((@sqrwidth * -0.6) + flip(@sqrheight * -0.2)) vertex[glindex2,5] = trapscales[glindex2] * ((@sqrwidth * -0.2) + flip(@sqrheight * -0.2)) vertex[glindex2,6] = trapscales[glindex2] * ((@sqrwidth * -0.2) + flip(@sqrheight * 0.2)) vertex[glindex2,7] = trapscales[glindex2] * ((@sqrwidth * 0.2) + flip(@sqrheight * 0.2)) vertex[glindex2,8] = trapscales[glindex2] * ((@sqrwidth * 0.2) + flip(@sqrheight * -0.2)) vertex[glindex2,9] = trapscales[glindex2] * ((@sqrwidth * 0.6) + flip(@sqrheight * -0.2)) vertex[glindex2,10] = trapscales[glindex2] * ((@sqrwidth * 0.6) + flip(@sqrheight * 0.2)) vertex[glindex2,11] = trapscales[glindex2] * ((@sqrwidth * 1) + flip(@sqrheight * 0.2)) vertex[glindex2,12] = trapscales[glindex2] * ((@sqrwidth * 1) + flip(@sqrheight * -0.2)) vertex[glindex2,13] = trapscales[glindex2] * ((@sqrwidth * 1.2) + flip(@sqrheight * -0.2)) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 76 ; "square-4" cursality[glindex2] = 1 numbervertices = 18 ; n for open curves cincrement[glindex2] = 18 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * ((@sqrwidth * -1.6) + flip(@sqrheight * -0.2)) vertex[glindex2,1] = trapscales[glindex2] * ((@sqrwidth * -1.4) + flip(@sqrheight * -0.2)) vertex[glindex2,2] = trapscales[glindex2] * ((@sqrwidth * -1.4) + flip(@sqrheight * 0.2)) vertex[glindex2,3] = trapscales[glindex2] * ((@sqrwidth * -1) + flip(@sqrheight * 0.2)) vertex[glindex2,4] = trapscales[glindex2] * ((@sqrwidth * -1) + flip(@sqrheight * -0.2)) vertex[glindex2,5] = trapscales[glindex2] * ((@sqrwidth * -0.6) + flip(@sqrheight * -0.2)) vertex[glindex2,6] = trapscales[glindex2] * ((@sqrwidth * -0.6) + flip(@sqrheight * 0.2)) vertex[glindex2,7] = trapscales[glindex2] * ((@sqrwidth * -0.2) + flip(@sqrheight * 0.2)) vertex[glindex2,8] = trapscales[glindex2] * ((@sqrwidth * -0.2) + flip(@sqrheight * -0.2)) vertex[glindex2,9] = trapscales[glindex2] * ((@sqrwidth * 0.2) + flip(@sqrheight * -0.2)) vertex[glindex2,10] = trapscales[glindex2] * ((@sqrwidth * 0.2) + flip(@sqrheight * 0.2)) vertex[glindex2,11] = trapscales[glindex2] * ((@sqrwidth * 0.6) + flip(@sqrheight * 0.2)) vertex[glindex2,12] = trapscales[glindex2] * ((@sqrwidth * 0.6) + flip(@sqrheight * -0.2)) vertex[glindex2,13] = trapscales[glindex2] * ((@sqrwidth * 1) + flip(@sqrheight * -0.2)) vertex[glindex2,14] = trapscales[glindex2] * ((@sqrwidth * 1) + flip(@sqrheight * 0.2)) vertex[glindex2,15] = trapscales[glindex2] * ((@sqrwidth * 1.4) + flip(@sqrheight * 0.2)) vertex[glindex2,16] = trapscales[glindex2] * ((@sqrwidth * 1.4) + flip(@sqrheight * -0.2)) vertex[glindex2,17] = trapscales[glindex2] * ((@sqrwidth * 1.6) + flip(@sqrheight * -0.2)) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 93 ; "peano curve" cursality[glindex2] = 1 numbervertices = 42 ; n for open curves cincrement[glindex2] = 42 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.6, -0.6) vertex[glindex2,1] = trapscales[glindex2] * (-0.3,-0.6) vertex[glindex2,2] = trapscales[glindex2] * (-0.3,-0.45) vertex[glindex2,3] = trapscales[glindex2] * (-0.6,-0.45) vertex[glindex2,4] = trapscales[glindex2] * (-0.6,-0.3) vertex[glindex2,5] = trapscales[glindex2] * (0.15,-0.3) vertex[glindex2,6] = trapscales[glindex2] * (0.15,-0.45) vertex[glindex2,7] = trapscales[glindex2] * (-0.15,-0.45) vertex[glindex2,8] = trapscales[glindex2] * (-0.15,-0.6) vertex[glindex2,9] = trapscales[glindex2] * (0.6,-0.6) vertex[glindex2,10] = trapscales[glindex2] * (0.6,-0.45) vertex[glindex2,11] = trapscales[glindex2] * (0.3,-0.45) vertex[glindex2,12] = trapscales[glindex2] * (0.3,-0.3) vertex[glindex2,13] = trapscales[glindex2] * (0.6,-0.3) vertex[glindex2,14] = trapscales[glindex2] * (0.6,-0.15) vertex[glindex2,15] = trapscales[glindex2] * (0.3,-0.15) vertex[glindex2,16] = trapscales[glindex2] * (0.3,0) vertex[glindex2,17] = trapscales[glindex2] * (0.6,0) vertex[glindex2,18] = trapscales[glindex2] * (0.6,0.15) vertex[glindex2,19] = trapscales[glindex2] * (-0.15,0.15) vertex[glindex2,20] = trapscales[glindex2] * (-0.15,0) vertex[glindex2,21] = trapscales[glindex2] * (0.15,0) vertex[glindex2,22] = trapscales[glindex2] * (0.15,-0.15) vertex[glindex2,23] = trapscales[glindex2] * (-0.6,-0.15) vertex[glindex2,24] = trapscales[glindex2] * (-0.6,0) vertex[glindex2,25] = trapscales[glindex2] * (-0.3,0) vertex[glindex2,26] = trapscales[glindex2] * (-0.3,0.15) vertex[glindex2,27] = trapscales[glindex2] * (-0.6,0.15) vertex[glindex2,28] = trapscales[glindex2] * (-0.6,0.3) vertex[glindex2,29] = trapscales[glindex2] * (-0.3,0.3) vertex[glindex2,30] = trapscales[glindex2] * (-0.3,0.45) vertex[glindex2,31] = trapscales[glindex2] * (-0.6,0.45) vertex[glindex2,32] = trapscales[glindex2] * (-0.6,0.6) vertex[glindex2,33] = trapscales[glindex2] * (0.15,0.6) vertex[glindex2,34] = trapscales[glindex2] * (0.15,0.45) vertex[glindex2,35] = trapscales[glindex2] * (-0.15,0.45) vertex[glindex2,36] = trapscales[glindex2] * (-0.15,0.3) vertex[glindex2,37] = trapscales[glindex2] * (0.6,0.3) vertex[glindex2,38] = trapscales[glindex2] * (0.6,0.45) vertex[glindex2,39] = trapscales[glindex2] * (0.3,0.45) vertex[glindex2,40] = trapscales[glindex2] * (0.3,0.6) vertex[glindex2,41] = trapscales[glindex2] * (0.6,0.6) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 94 ; "octagon" cursality[glindex2] = 1 numbervertices = 9 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 9 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.707107, 0.707107) vertex[glindex2,2] = trapscales[glindex2] * (0,1) vertex[glindex2,3] = trapscales[glindex2] * (-0.707107, 0.707107) vertex[glindex2,4] = trapscales[glindex2] * (-1,0) vertex[glindex2,5] = trapscales[glindex2] * (-0.707107, -0.707107) vertex[glindex2,6] = trapscales[glindex2] * (0,-1) vertex[glindex2,7] = trapscales[glindex2] * (0.707107, -0.707107) vertex[glindex2,8] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 95 ; "octagon 2" cursality[glindex2] = 8 numbervertices = 24 ; open curves cincrement[glindex2] = 3 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0,0) vertex[glindex2,1] = trapscales[glindex2] * (1,0) vertex[glindex2,2] = trapscales[glindex2] * (0.707107, 0.707107) vertex[glindex2,3] = trapscales[glindex2] * (0,0) vertex[glindex2,4] = trapscales[glindex2] * (0.707107, 0.707107) vertex[glindex2,5] = trapscales[glindex2] * (0,1) vertex[glindex2,6] = trapscales[glindex2] * (0,0) vertex[glindex2,7] = trapscales[glindex2] * (0,1) vertex[glindex2,8] = trapscales[glindex2] * (-0.707107, 0.707107) vertex[glindex2,9] = trapscales[glindex2] * (0,0) vertex[glindex2,10] = trapscales[glindex2] * (-0.707107, 0.707107) vertex[glindex2,11] = trapscales[glindex2] * (-1,0) vertex[glindex2,12] = trapscales[glindex2] * (0,0) vertex[glindex2,13] = trapscales[glindex2] * (-1,0) vertex[glindex2,14] = trapscales[glindex2] * (-0.707107, -0.707107) vertex[glindex2,15] = trapscales[glindex2] * (0,0) vertex[glindex2,16] = trapscales[glindex2] * (-0.707107, -0.707107) vertex[glindex2,17] = trapscales[glindex2] * (0,-1) vertex[glindex2,18] = trapscales[glindex2] * (0,0) vertex[glindex2,19] = trapscales[glindex2] * (0,-1) vertex[glindex2,20] = trapscales[glindex2] * (0.707107, -0.707107) vertex[glindex2,21] = trapscales[glindex2] * (0,0) vertex[glindex2,22] = trapscales[glindex2] * (0.707107, -0.707107) vertex[glindex2,23] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 96 ; "octagram" cursality[glindex2] = 2 numbervertices = 10 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0,1) vertex[glindex2,2] = trapscales[glindex2] * (-1,0) vertex[glindex2,3] = trapscales[glindex2] * (0,-1) vertex[glindex2,4] = trapscales[glindex2] * (1,0) vertex[glindex2,5] = trapscales[glindex2] * (0.707107, 0.707107) vertex[glindex2,6] = trapscales[glindex2] * (-0.707107, 0.707107) vertex[glindex2,7] = trapscales[glindex2] * (-0.707107, -0.707107) vertex[glindex2,8] = trapscales[glindex2] * (0.707107, -0.707107) vertex[glindex2,9] = trapscales[glindex2] * (0.707107, 0.707107) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 97 ; "octagram 2" cursality[glindex2] = 1 numbervertices = 9 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 9 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (-0.707107, 0.707107) vertex[glindex2,2] = trapscales[glindex2] * (0,-1) vertex[glindex2,3] = trapscales[glindex2] * (0.707107, 0.707107) vertex[glindex2,4] = trapscales[glindex2] * (-1,0) vertex[glindex2,5] = trapscales[glindex2] * (0.707107, -0.707107) vertex[glindex2,6] = trapscales[glindex2] * (0,1) vertex[glindex2,7] = trapscales[glindex2] * (-0.707107, -0.707107) vertex[glindex2,8] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 98 ; "octagram 3" cursality[glindex2] = 1 numbervertices = 17 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 17 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.424264, -0.424264) vertex[glindex2,1] = trapscales[glindex2] * (0.834573, 0.550897) vertex[glindex2,2] = trapscales[glindex2] * (0,-0.6) vertex[glindex2,3] = trapscales[glindex2] * (0.979675, -0.200589) vertex[glindex2,4] = trapscales[glindex2] * (-0.424264, -0.424264) vertex[glindex2,5] = trapscales[glindex2] * (0.550897, -0.834573) vertex[glindex2,6] = trapscales[glindex2] * (-0.6,0) vertex[glindex2,7] = trapscales[glindex2] * (-0.200589, -0.979675) vertex[glindex2,8] = trapscales[glindex2] * (-0.424264, 0.424264) vertex[glindex2,9] = trapscales[glindex2] * (-0.834573, -0.550897) vertex[glindex2,10] = trapscales[glindex2] * (0,0.6) vertex[glindex2,11] = trapscales[glindex2] * (-0.979675, 0.200589) vertex[glindex2,12] = trapscales[glindex2] * (0.424264, 0.424264) vertex[glindex2,13] = trapscales[glindex2] * (-0.550897, 0.834573) vertex[glindex2,14] = trapscales[glindex2] * (0.6,0) vertex[glindex2,15] = trapscales[glindex2] * (0.200589, 0.979675) vertex[glindex2,16] = trapscales[glindex2] * (0.424264, -0.424264) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 99 ; "octagram 4" cursality[glindex2] = 2 numbervertices = 18 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 9 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,1] = trapscales[glindex2] * (0.207912, 0.978148) vertex[glindex2,2] = trapscales[glindex2] * (-0.207912, 0.978148) vertex[glindex2,3] = trapscales[glindex2] * (-0.978148, 0.207912) vertex[glindex2,4] = trapscales[glindex2] * (-0.978148, -0.207912) vertex[glindex2,5] = trapscales[glindex2] * (-0.207912, -0.978148) vertex[glindex2,6] = trapscales[glindex2] * (0.207912, -0.978148) vertex[glindex2,7] = trapscales[glindex2] * (0.978148, -0.207912) vertex[glindex2,8] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,9] = trapscales[glindex2] * (0.544639, 0.838671) vertex[glindex2,10] = trapscales[glindex2] * (-0.544639, 0.838671) vertex[glindex2,11] = trapscales[glindex2] * (-0.838671, 0.544639) vertex[glindex2,12] = trapscales[glindex2] * (-0.838671, -0.544639) vertex[glindex2,13] = trapscales[glindex2] * (-0.544639, -0.838671) vertex[glindex2,14] = trapscales[glindex2] * (0.544639, -0.838671) vertex[glindex2,15] = trapscales[glindex2] * (0.838671, -0.544639) vertex[glindex2,16] = trapscales[glindex2] * (0.838671, 0.544639) vertex[glindex2,17] = trapscales[glindex2] * (0.544639, 0.838671) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 100 ; "octagram 5" cursality[glindex2] = 1 numbervertices = 17 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 17 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,1] = trapscales[glindex2] * (-0.544639, 0.838671) vertex[glindex2,2] = trapscales[glindex2] * (-0.838671, 0.544639) vertex[glindex2,3] = trapscales[glindex2] * (-0.207912, -0.978148) vertex[glindex2,4] = trapscales[glindex2] * (0.207912, -0.978148) vertex[glindex2,5] = trapscales[glindex2] * (0.838671, 0.544639) vertex[glindex2,6] = trapscales[glindex2] * (0.544639, 0.838671) vertex[glindex2,7] = trapscales[glindex2] * (-0.978148, 0.207912) vertex[glindex2,8] = trapscales[glindex2] * (-0.978148, -0.207912) vertex[glindex2,9] = trapscales[glindex2] * (0.544639, -0.838671) vertex[glindex2,10] = trapscales[glindex2] * (0.838671, -0.544639) vertex[glindex2,11] = trapscales[glindex2] * (0.207912, 0.978148) vertex[glindex2,12] = trapscales[glindex2] * (-0.207912, 0.978148) vertex[glindex2,13] = trapscales[glindex2] * (-0.838671, -0.544639) vertex[glindex2,14] = trapscales[glindex2] * (-0.544639, -0.838671) vertex[glindex2,15] = trapscales[glindex2] * (0.978148, -0.207912) vertex[glindex2,16] = trapscales[glindex2] * (0.978148, 0.207912) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 101 ; "octagram 6" cursality[glindex2] = 2 numbervertices = 18 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 9 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.987688, 0.156434) vertex[glindex2,1] = trapscales[glindex2] * (-0.587785, 0.809017) vertex[glindex2,2] = trapscales[glindex2] * (-0.156434, 0.987688) vertex[glindex2,3] = trapscales[glindex2] * (-0.809017, -0.587785) vertex[glindex2,4] = trapscales[glindex2] * (-0.987688, -0.156434) vertex[glindex2,5] = trapscales[glindex2] * (0.587785, -0.809017) vertex[glindex2,6] = trapscales[glindex2] * (0.156434, -0.987688) vertex[glindex2,7] = trapscales[glindex2] * (0.809017, 0.587785) vertex[glindex2,8] = trapscales[glindex2] * (0.987688, 0.156434) vertex[glindex2,9] = trapscales[glindex2] * (0.587785, 0.809017) vertex[glindex2,10] = trapscales[glindex2] * (-0.987688, 0.156434) vertex[glindex2,11] = trapscales[glindex2] * (-0.809017, 0.587785) vertex[glindex2,12] = trapscales[glindex2] * (-0.156434, -0.987688) vertex[glindex2,13] = trapscales[glindex2] * (-0.587785, -0.809017) vertex[glindex2,14] = trapscales[glindex2] * (0.987688, -0.156434) vertex[glindex2,15] = trapscales[glindex2] * (0.809017, -0.587785) vertex[glindex2,16] = trapscales[glindex2] * (0.156434, 0.987688) vertex[glindex2,17] = trapscales[glindex2] * (0.587785, 0.809017) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 102 ; "octagram 7" cursality[glindex2] = 1 numbervertices = 17 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 17 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2,1] = trapscales[glindex2] * (-0.978148, 0.207912) vertex[glindex2,2] = trapscales[glindex2] * (-0.838671, 0.544639) vertex[glindex2,3] = trapscales[glindex2] * (0.544639, -0.838671) vertex[glindex2,4] = trapscales[glindex2] * (0.207912, -0.978148) vertex[glindex2,5] = trapscales[glindex2] * (0.207912, 0.978148) vertex[glindex2,6] = trapscales[glindex2] * (0.544639, 0.838671) vertex[glindex2,7] = trapscales[glindex2] * (-0.838671, -0.544639) vertex[glindex2,8] = trapscales[glindex2] * (-0.978148, -0.207912) vertex[glindex2,9] = trapscales[glindex2] * (0.978148, -0.207912) vertex[glindex2,10] = trapscales[glindex2] * (0.838671, -0.544639) vertex[glindex2,11] = trapscales[glindex2] * (-0.544639, 0.838671) vertex[glindex2,12] = trapscales[glindex2] * (-0.207912, 0.978148) vertex[glindex2,13] = trapscales[glindex2] * (-0.207912, -0.978148) vertex[glindex2,14] = trapscales[glindex2] * (-0.544639, -0.838671) vertex[glindex2,15] = trapscales[glindex2] * (0.838671, 0.544639) vertex[glindex2,16] = trapscales[glindex2] * (0.978148, 0.207912) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 103 ; "8-asterisk" cursality[glindex2] = 8 numbervertices = 16 ; n for open curves cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0,0) vertex[glindex2,1] = @leafAlength * trapscales[glindex2] * (1,0) vertex[glindex2,2] = trapscales[glindex2] * (0,0) vertex[glindex2,3] = @leafBlength * trapscales[glindex2] * (0.707107, 0.707107) vertex[glindex2,4] = trapscales[glindex2] * (0,0) vertex[glindex2,5] = @leafClength * trapscales[glindex2] * (0,1) vertex[glindex2,6] = trapscales[glindex2] * (0,0) vertex[glindex2,7] = @leafDlength * trapscales[glindex2] * (-0.707107, 0.707107) vertex[glindex2,8] = trapscales[glindex2] * (0,0) vertex[glindex2,9] = @leafElength * trapscales[glindex2] * (-1,0) vertex[glindex2,10] = trapscales[glindex2] * (0,0) vertex[glindex2,11] = @leafFlength * trapscales[glindex2] * (-0.707107, -0.707107) vertex[glindex2,12] = trapscales[glindex2] * (0,0) vertex[glindex2,13] = @leafGlength * trapscales[glindex2] * (0,-1) vertex[glindex2,14] = trapscales[glindex2] * (0,0) vertex[glindex2,15] = @leafHlength * trapscales[glindex2] * (0.707107, -0.707107) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 104 ; "8-star" cursality[glindex2] = 1 numbervertices = 17 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 17 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.5,0) vertex[glindex2,1] = @starspikiness * trapscales[glindex2] * (0.92388, 0.382683) vertex[glindex2,2] = trapscales[glindex2] * (0.353553, 0.353553) vertex[glindex2,3] = @starspikiness * trapscales[glindex2] * (0.382683, 0.92388) vertex[glindex2,4] = trapscales[glindex2] * (0,0.5) vertex[glindex2,5] = @starspikiness * trapscales[glindex2] * (-0.382683, 0.92388) vertex[glindex2,6] = trapscales[glindex2] * (-0.353553, 0.353553) vertex[glindex2,7] = @starspikiness * trapscales[glindex2] * (-0.92388, 0.382683) vertex[glindex2,8] = trapscales[glindex2] * (-0.5,0) vertex[glindex2,9] = @starspikiness * trapscales[glindex2] * (-0.92388, -0.382683) vertex[glindex2,10] = trapscales[glindex2] * (-0.353553, -0.353553) vertex[glindex2,11] = @starspikiness * trapscales[glindex2] * (-0.382683, -0.92388) vertex[glindex2,12] = trapscales[glindex2] * (0,-0.5) vertex[glindex2,13] = @starspikiness * trapscales[glindex2] * (0.382683, -0.92388) vertex[glindex2,14] = trapscales[glindex2] * (0.353553, -0.353553) vertex[glindex2,15] = @starspikiness * trapscales[glindex2] * (0.92388, -0.382683) vertex[glindex2,16] = trapscales[glindex2] * (0.5,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 105 ; "8-star 2" cursality[glindex2] = 1 numbervertices = 17 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 17 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.5,0) vertex[glindex2,2] = trapscales[glindex2] * (0.707107, 0.707107) vertex[glindex2,3] = trapscales[glindex2] * (0.353553, 0.353553) vertex[glindex2,4] = trapscales[glindex2] * (0,1) vertex[glindex2,5] = trapscales[glindex2] * (0,0.5) vertex[glindex2,6] = trapscales[glindex2] * (-0.707107, 0.707107) vertex[glindex2,7] = trapscales[glindex2] * (-0.353553, 0.353553) vertex[glindex2,8] = trapscales[glindex2] * (-1,0) vertex[glindex2,9] = trapscales[glindex2] * (-0.5,0) vertex[glindex2,10] = trapscales[glindex2] * (-0.707107, -0.707107) vertex[glindex2,11] = trapscales[glindex2] * (-0.353553, -0.353553) vertex[glindex2,12] = trapscales[glindex2] * (0,-1) vertex[glindex2,13] = trapscales[glindex2] * (0,-0.5) vertex[glindex2,14] = trapscales[glindex2] * (0.707107, -0.707107) vertex[glindex2,15] = trapscales[glindex2] * (0.353553, -0.353553) vertex[glindex2,16] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 106 ; "octagram 8" cursality[glindex2] = 1 numbervertices = 9 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 9 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.707107, 0.707107) vertex[glindex2,1] = trapscales[glindex2] * (-0.6667, 0) vertex[glindex2,2] = trapscales[glindex2] * (0.707107, -0.707107) vertex[glindex2,3] = trapscales[glindex2] * (0, 0.6667) vertex[glindex2,4] = trapscales[glindex2] * (-0.707107, -0.707107) vertex[glindex2,5] = trapscales[glindex2] * (0.6667, 0) vertex[glindex2,6] = trapscales[glindex2] * (-0.707107, 0.707107) vertex[glindex2,7] = trapscales[glindex2] * (0, -0.6667) vertex[glindex2,8] = trapscales[glindex2] * (0.707107, 0.707107) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 107 ; "octagram 9" cursality[glindex2] = 4 numbervertices = 20 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.987688, 0.156434) vertex[glindex2,1] = trapscales[glindex2] * (0.809017, 0.587785) vertex[glindex2,2] = trapscales[glindex2] * (-0.809017, -0.587785) vertex[glindex2,3] = trapscales[glindex2] * (-0.987688, -0.156434) vertex[glindex2,4] = trapscales[glindex2] * (0.987688, 0.156434) vertex[glindex2,5] = trapscales[glindex2] * (0.587785, 0.809017) vertex[glindex2,6] = trapscales[glindex2] * (0.156434, 0.987688) vertex[glindex2,7] = trapscales[glindex2] * (-0.156434, -0.987688) vertex[glindex2,8] = trapscales[glindex2] * (-0.587785, -0.809017) vertex[glindex2,9] = trapscales[glindex2] * (0.587785, 0.809017) vertex[glindex2,10] = trapscales[glindex2] * (-0.156434, 0.987688) vertex[glindex2,11] = trapscales[glindex2] * (-0.587785, 0.809017) vertex[glindex2,12] = trapscales[glindex2] * (0.587785, -0.809017) vertex[glindex2,13] = trapscales[glindex2] * (0.156434, -0.987688) vertex[glindex2,14] = trapscales[glindex2] * (-0.156434, 0.987688) vertex[glindex2,15] = trapscales[glindex2] * (-0.809017, 0.587785) vertex[glindex2,16] = trapscales[glindex2] * (-0.987688, 0.156434) vertex[glindex2,17] = trapscales[glindex2] * (0.987688, -0.156434) vertex[glindex2,18] = trapscales[glindex2] * (0.809017, -0.587785) vertex[glindex2,19] = trapscales[glindex2] * (-0.809017, 0.587785) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 108 ; "octagram 10" cursality[glindex2] = 4 numbervertices = 20 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.987688, 0.156434) vertex[glindex2,1] = trapscales[glindex2] * (-0.809017, -0.587785) vertex[glindex2,2] = trapscales[glindex2] * (-0.987688, -0.156434) vertex[glindex2,3] = trapscales[glindex2] * (0.809017, 0.587785) vertex[glindex2,4] = trapscales[glindex2] * (0.987688, 0.156434) vertex[glindex2,5] = trapscales[glindex2] * (0.587785, 0.809017) vertex[glindex2,6] = trapscales[glindex2] * (-0.156434, -0.987688) vertex[glindex2,7] = trapscales[glindex2] * (-0.587785, -0.809017) vertex[glindex2,8] = trapscales[glindex2] * (0.156434, 0.987688) vertex[glindex2,9] = trapscales[glindex2] * (0.587785, 0.809017) vertex[glindex2,10] = trapscales[glindex2] * (-0.156434, 0.987688) vertex[glindex2,11] = trapscales[glindex2] * (0.587785, -0.809017) vertex[glindex2,12] = trapscales[glindex2] * (0.156434, -0.987688) vertex[glindex2,13] = trapscales[glindex2] * (-0.587785, 0.809017) vertex[glindex2,14] = trapscales[glindex2] * (-0.156434, 0.987688) vertex[glindex2,15] = trapscales[glindex2] * (-0.809017, 0.587785) vertex[glindex2,16] = trapscales[glindex2] * (0.987688, -0.156434) vertex[glindex2,17] = trapscales[glindex2] * (0.809017, -0.587785) vertex[glindex2,18] = trapscales[glindex2] * (-0.987688, 0.156434) vertex[glindex2,19] = trapscales[glindex2] * (-0.809017, 0.587785) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 109 ; "roots of unity" if !singleroot[glindex2] ; plot all the roots cursality[glindex2] = unityroots[glindex2] numbervertices = unityroots[glindex2] ; single points, not line segments cincrement[glindex2] = 1 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = trapscales[glindex2] * cos(glindex * twopi / unityroots[glindex2]) ycoord[glindex2,glindex] = trapscales[glindex2] * sin(glindex * twopi / unityroots[glindex2]) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex else ; plot only a single root cursality[glindex2] = 1 numbervertices = 1 ; single point, not line segments cincrement[glindex2] = 1 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = trapscales[glindex2] * cos(whichroot[glindex2] * twopi / unityroots[glindex2]) ycoord[glindex2,glindex] = trapscales[glindex2] * sin(whichroot[glindex2] * twopi / unityroots[glindex2]) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex endif ; !singleroot[] elseif traparray[glindex2] == 215 ; "dotted star" cursality[glindex2] = raynum[glindex2] * dotnum[glindex2] numbervertices = cursality[glindex2] ; single points, not line segments cincrement[glindex2] = 1 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 scratchfloat = trapscales[glindex2] / (dotnum[glindex2] - 1) ; spacing between dots in each ray scratchint = 0 ; current ray number while glindex < numbervertices glindex3 = 0 while glindex3 < dotnum[glindex2] xcoord[glindex2,glindex + glindex3] = glindex3 * scratchfloat * \ cos(scratchint * twopi / raynum[glindex2]) ycoord[glindex2,glindex + glindex3] = glindex3 * scratchfloat * \ sin(scratchint * twopi / raynum[glindex2]) vertex[glindex2,glindex + glindex3] = xcoord[glindex2,glindex + \ glindex3] + flip(ycoord[glindex2,glindex + glindex3]) glindex3 = glindex3 + 1 endwhile ; glindex3 scratchint = scratchint + 1 ; next ray glindex = glindex + dotnum[glindex2] endwhile ; glindex elseif traparray[glindex2] == 216 ; "dashed star" cursality[glindex2] = raynum[glindex2] * dashnum[glindex2] numbervertices = 2 * cursality[glindex2] ; line segments cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 scratchint = 2 * dashnum[glindex2] ; number of dots per ray scratchfloat2 = trapscales[glindex2] / (scratchint - 1) ; spacing between dots in each ray scratchint2 = 0 ; current ray number while glindex < numbervertices glindex3 = 0 while glindex3 < scratchint xcoord[glindex2,glindex + glindex3] = glindex3 * scratchfloat2 * \ cos(scratchint2 * twopi / raynum[glindex2]) ycoord[glindex2,glindex + glindex3] = glindex3 * scratchfloat2 * \ sin(scratchint2 * twopi / raynum[glindex2]) vertex[glindex2,glindex + glindex3] = xcoord[glindex2,glindex + \ glindex3] + flip(ycoord[glindex2,glindex + glindex3]) glindex3 = glindex3 + 1 endwhile ; glindex3 scratchint2 = scratchint2 + 1 ; next ray glindex = glindex + scratchint endwhile ; glindex elseif traparray[glindex2] == 112 ; "nonagon" cursality[glindex2] = 1 numbervertices = 10 ; vertices + cursality for closed curves cincrement[glindex2] = 10 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = trapscales[glindex2] * cos(glindex * twopi / 9) ycoord[glindex2,glindex] = trapscales[glindex2] * sin(glindex * twopi / 9) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 113 ; "nonagram" cursality[glindex2] = 1 numbervertices = 10 ; vertices + cursality for closed curves cincrement[glindex2] = 10 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = trapscales[glindex2] * cos(2 * glindex * twopi / 9) ycoord[glindex2,glindex] = trapscales[glindex2] * sin(2 * glindex * twopi / 9) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 114 ; "nonagram 2" cursality[glindex2] = 3 numbervertices = 12 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2,2] = trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2,3] = trapscales[glindex2] * (1,0) vertex[glindex2,4] = trapscales[glindex2] * (0.766044, 0.642788) vertex[glindex2,5] = trapscales[glindex2] * (-0.939693, 0.34202) vertex[glindex2,6] = trapscales[glindex2] * (0.173648, -0.984808) vertex[glindex2,7] = trapscales[glindex2] * (0.766044, 0.642788) vertex[glindex2,8] = trapscales[glindex2] * (0.173648, 0.984808) vertex[glindex2,9] = trapscales[glindex2] * (-0.939693, -0.34202) vertex[glindex2,10] = trapscales[glindex2] * (0.766044, -0.642788) vertex[glindex2,11] = trapscales[glindex2] * (0.173648, 0.984808) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 115 ; "nonagram 3" cursality[glindex2] = 1 numbervertices = 10 ; vertices + cursality for closed curves cincrement[glindex2] = 10 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = trapscales[glindex2] * cos(4 * glindex * twopi / 9) ycoord[glindex2,glindex] = trapscales[glindex2] * sin(4 * glindex * twopi / 9) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 116 ; "nonagram 4" cursality[glindex2] = 1 numbervertices = 19 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 19 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.459627, -0.385673) vertex[glindex2,1] = trapscales[glindex2] * (0.815028, 0.579421) vertex[glindex2,2] = trapscales[glindex2] * (0.104189, -0.590885) vertex[glindex2,3] = trapscales[glindex2] * (0.996793, -0.0800278) vertex[glindex2,4] = trapscales[glindex2] * (-0.3, -0.519615) vertex[glindex2,5] = trapscales[glindex2] * (0.712147, -0.702031) vertex[glindex2,6] = trapscales[glindex2] * (-0.563816, -0.205212) vertex[glindex2,7] = trapscales[glindex2] * (0.0942792, -0.995546) vertex[glindex2,8] = trapscales[glindex2] * (-0.563816, 0.205212) vertex[glindex2,9] = trapscales[glindex2] * (-0.567702, -0.823234) vertex[glindex2,10] = trapscales[glindex2] * (-0.3, 0.519615) vertex[glindex2,11] = trapscales[glindex2] * (-0.96405, -0.265722) vertex[glindex2,12] = trapscales[glindex2] * (0.104189, 0.590885) vertex[glindex2,13] = trapscales[glindex2] * (-0.909308, 0.416125) vertex[glindex2,14] = trapscales[glindex2] * (0.459627, 0.385673) vertex[glindex2,15] = trapscales[glindex2] * (-0.42909, 0.903262) vertex[glindex2,16] = trapscales[glindex2] * (0.6, 0) vertex[glindex2,17] = trapscales[glindex2] * (0.251903, 0.967752) vertex[glindex2,18] = trapscales[glindex2] * (0.459627, -0.385673) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 117 ; "nonagram 5" cursality[glindex2] = 1 numbervertices = 19 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 19 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.992115, 0.125333) vertex[glindex2,1] = trapscales[glindex2] * (-0.889416, 0.457098) vertex[glindex2,2] = trapscales[glindex2] * (0.0488498, 0.998806) vertex[glindex2,3] = trapscales[glindex2] * (-0.604599, -0.79653) vertex[glindex2,4] = trapscales[glindex2] * (-0.975149, 0.221548) vertex[glindex2,5] = trapscales[glindex2] * (0.679441, -0.73373) vertex[glindex2,6] = trapscales[glindex2] * (-0.387516, -0.921863) vertex[glindex2,7] = trapscales[glindex2] * (0.840567, 0.541708) vertex[glindex2,8] = trapscales[glindex2] * (0.840567, -0.541708) vertex[glindex2,9] = trapscales[glindex2] * (-0.387516, 0.921863) vertex[glindex2,10] = trapscales[glindex2] * (0.679441, 0.73373) vertex[glindex2,11] = trapscales[glindex2] * (-0.975149, -0.221548) vertex[glindex2,12] = trapscales[glindex2] * (-0.604599, 0.79653) vertex[glindex2,13] = trapscales[glindex2] * (0.0488498, -0.998806) vertex[glindex2,14] = trapscales[glindex2] * (-0.889416, -0.457098) vertex[glindex2,15] = trapscales[glindex2] * (0.992115, -0.125333) vertex[glindex2,16] = trapscales[glindex2] * (0.295708, -0.955278) vertex[glindex2,17] = trapscales[glindex2] * (0.295708, 0.955278) vertex[glindex2,18] = trapscales[glindex2] * (0.992115, 0.125333) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 118 ; "nonagram 6" cursality[glindex2] = 1 numbervertices = 19 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 19 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.939693, 0.34202) vertex[glindex2,1] = trapscales[glindex2] * (-0.766044, 0.642788) vertex[glindex2,2] = trapscales[glindex2] * (-0.173648, 0.984808) vertex[glindex2,3] = trapscales[glindex2] * (-0.766044, -0.642788) vertex[glindex2,4] = trapscales[glindex2] * (-1,0) vertex[glindex2,5] = trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2,6] = trapscales[glindex2] * (-0.173648, -0.984808) vertex[glindex2,7] = trapscales[glindex2] * (0.939693, 0.34202) vertex[glindex2,8] = trapscales[glindex2] * (0.939693, -0.34202) vertex[glindex2,9] = trapscales[glindex2] * (-0.173648, 0.984808) vertex[glindex2,10] = trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2,11] = trapscales[glindex2] * (-1,0) vertex[glindex2,12] = trapscales[glindex2] * (-0.766044, 0.642788) vertex[glindex2,13] = trapscales[glindex2] * (-0.173648, -0.984808) vertex[glindex2,14] = trapscales[glindex2] * (-0.766044, -0.642788) vertex[glindex2,15] = trapscales[glindex2] * (0.939693, -0.34202) vertex[glindex2,16] = trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2,17] = trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2,18] = trapscales[glindex2] * (0.939693, 0.34202) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 151 ; "nonagram 7" cursality[glindex2] = 1 numbervertices = 10 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 10 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (-0.704769, 0.256515) vertex[glindex2,2] = trapscales[glindex2] * (0.383022, -0.321394) vertex[glindex2,3] = trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2,4] = trapscales[glindex2] * (0.130236, -0.738606) vertex[glindex2,5] = trapscales[glindex2] * (0.0868241, 0.492404) vertex[glindex2,6] = trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2,7] = trapscales[glindex2] * (0.574533, 0.482091) vertex[glindex2,8] = trapscales[glindex2] * (-0.469846, -0.17101) vertex[glindex2,9] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 119 ; "9-star" cursality[glindex2] = 1 numbervertices = 19 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 19 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.5,0) vertex[glindex2,1] = @starspikiness * trapscales[glindex2] * (0.939693, 0.34202) vertex[glindex2,2] = trapscales[glindex2] * (0.383022, 0.321394) vertex[glindex2,3] = @starspikiness * trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2,4] = trapscales[glindex2] * (0.0868241, 0.492404) vertex[glindex2,5] = @starspikiness * trapscales[glindex2] * (-0.173648, 0.984808) vertex[glindex2,6] = trapscales[glindex2] * (-0.25, 0.433013) vertex[glindex2,7] = @starspikiness * trapscales[glindex2] * (-0.766044, 0.642788) vertex[glindex2,8] = trapscales[glindex2] * (-0.469846, 0.17101) vertex[glindex2,9] = @starspikiness * trapscales[glindex2] * (-1,0) vertex[glindex2,10] = trapscales[glindex2] * (-0.469846, -0.17101) vertex[glindex2,11] = @starspikiness * trapscales[glindex2] * (-0.766044, -0.642788) vertex[glindex2,12] = trapscales[glindex2] * (-0.25, -0.433013) vertex[glindex2,13] = @starspikiness * trapscales[glindex2] * (-0.173648, -0.984808) vertex[glindex2,14] = trapscales[glindex2] * (0.0868241, -0.492404) vertex[glindex2,15] = @starspikiness * trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2,16] = trapscales[glindex2] * (0.383022, -0.321394) vertex[glindex2,17] = @starspikiness * trapscales[glindex2] * (0.939693, -0.34202) vertex[glindex2,18] = trapscales[glindex2] * (0.5,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 120 ; "9-asterisk" cursality[glindex2] = 9 numbervertices = 18 ; vertices only for open curves cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices vertex[glindex2,glindex] = (0,0) xcoord[glindex2,glindex + 1] = trapscales[glindex2] * cos(glindex * #pi / 9) ycoord[glindex2,glindex + 1] = trapscales[glindex2] * sin(glindex * #pi / 9) glindex = glindex + 1 vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex vertex[glindex2,1] = @leafAlength * vertex[glindex2,1] xcoord[glindex2,1] = real(vertex[glindex2,1]) ycoord[glindex2,1] = imag(vertex[glindex2,1]) vertex[glindex2,3] = @leafBlength * vertex[glindex2,3] xcoord[glindex2,3] = real(vertex[glindex2,3]) ycoord[glindex2,3] = imag(vertex[glindex2,3]) vertex[glindex2,5] = @leafClength * vertex[glindex2,5] xcoord[glindex2,5] = real(vertex[glindex2,5]) ycoord[glindex2,5] = imag(vertex[glindex2,5]) vertex[glindex2,7] = @leafDlength * vertex[glindex2,7] xcoord[glindex2,7] = real(vertex[glindex2,7]) ycoord[glindex2,7] = imag(vertex[glindex2,7]) vertex[glindex2,9] = @leafElength * vertex[glindex2,9] xcoord[glindex2,9] = real(vertex[glindex2,9]) ycoord[glindex2,9] = imag(vertex[glindex2,9]) vertex[glindex2,11] = @leafFlength * vertex[glindex2,11] xcoord[glindex2,11] = real(vertex[glindex2,11]) ycoord[glindex2,11] = imag(vertex[glindex2,11]) vertex[glindex2,13] = @leafGlength * vertex[glindex2,13] xcoord[glindex2,13] = real(vertex[glindex2,13]) ycoord[glindex2,13] = imag(vertex[glindex2,13]) vertex[glindex2,15] = @leafHlength * vertex[glindex2,15] xcoord[glindex2,15] = real(vertex[glindex2,15]) ycoord[glindex2,15] = imag(vertex[glindex2,15]) vertex[glindex2,17] = @leafIlength * vertex[glindex2,17] xcoord[glindex2,17] = real(vertex[glindex2,17]) ycoord[glindex2,17] = imag(vertex[glindex2,17]) elseif traparray[glindex2] == 121 ; "9-star 2" cursality[glindex2] = 1 numbervertices = 19 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 19 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.965926, 0.258819) vertex[glindex2,1] = trapscales[glindex2] * (-0.996195, -0.0871557) vertex[glindex2,2] = trapscales[glindex2] * (-0.996195, 0.0871557) vertex[glindex2,3] = trapscales[glindex2] * (0.965926, -0.258819) vertex[glindex2,4] = trapscales[glindex2] * (0.906308, -0.422618) vertex[glindex2,5] = trapscales[glindex2] * (-0.819152, 0.573576) vertex[glindex2,6] = trapscales[glindex2] * (-0.707107, 0.707107) vertex[glindex2,7] = trapscales[glindex2] * (0.573576, -0.819152) vertex[glindex2,8] = trapscales[glindex2] * (0.422618, -0.906308) vertex[glindex2,9] = trapscales[glindex2] * (-0.258819, 0.965926) vertex[glindex2,10] = trapscales[glindex2] * (-0.0871557, 0.996195) vertex[glindex2,11] = trapscales[glindex2] * (-0.0871557, -0.996195) vertex[glindex2,12] = trapscales[glindex2] * (-0.258819, -0.965926) vertex[glindex2,13] = trapscales[glindex2] * (0.422618, 0.906308) vertex[glindex2,14] = trapscales[glindex2] * (0.573576, 0.819152) vertex[glindex2,15] = trapscales[glindex2] * (-0.707107, -0.707107) vertex[glindex2,16] = trapscales[glindex2] * (-0.819152, -0.573576) vertex[glindex2,17] = trapscales[glindex2] * (0.906308, 0.422618) vertex[glindex2,18] = trapscales[glindex2] * (0.965926, 0.258819) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 122 ; "9-star 3" cursality[glindex2] = 1 numbervertices = 19 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 19 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (01,0) vertex[glindex2,1] = trapscales[glindex2] * (0.5,0) vertex[glindex2,2] = trapscales[glindex2] * (0.766044, 0.642788) vertex[glindex2,3] = trapscales[glindex2] * (0.383022, 0.321394) vertex[glindex2,4] = trapscales[glindex2] * (0.173648, 0.984808) vertex[glindex2,5] = trapscales[glindex2] * (0.0868241, 0.492404) vertex[glindex2,6] = trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2,7] = trapscales[glindex2] * (-0.25, 0.433013) vertex[glindex2,8] = trapscales[glindex2] * (-0.939693, 0.34202) vertex[glindex2,9] = trapscales[glindex2] * (-0.469846, 0.17101) vertex[glindex2,10] = trapscales[glindex2] * (-0.939693, -0.34202) vertex[glindex2,11] = trapscales[glindex2] * (-0.469846, -0.17101) vertex[glindex2,12] = trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2,13] = trapscales[glindex2] * (-0.25, -0.433013) vertex[glindex2,14] = trapscales[glindex2] * (0.173648, -0.984808) vertex[glindex2,15] = trapscales[glindex2] * (0.0868241, -0.492404) vertex[glindex2,16] = trapscales[glindex2] * (0.766044, -0.642788) vertex[glindex2,17] = trapscales[glindex2] * (0.383022, -0.321394) vertex[glindex2,18] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 123 ; "decagon" cursality[glindex2] = 1 numbervertices = 11 ; vertices + cursality for closed curves cincrement[glindex2] = 11 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = trapscales[glindex2] * cos(glindex * twopi / 10) ycoord[glindex2,glindex] = trapscales[glindex2] * sin(glindex * twopi / 10) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 124 ; "10-asterisk" cursality[glindex2] = 10 numbervertices = 20 ; vertices only for open curves cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices vertex[glindex2,glindex] = (0,0) xcoord[glindex2,glindex + 1] = trapscales[glindex2] * cos(glindex * #pi / 10) ycoord[glindex2,glindex + 1] = trapscales[glindex2] * sin(glindex * #pi / 10) glindex = glindex + 1 vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex vertex[glindex2,1] = @leafAlength * vertex[glindex2,1] xcoord[glindex2,1] = real(vertex[glindex2,1]) ycoord[glindex2,1] = imag(vertex[glindex2,1]) vertex[glindex2,3] = @leafBlength * vertex[glindex2,3] xcoord[glindex2,3] = real(vertex[glindex2,3]) ycoord[glindex2,3] = imag(vertex[glindex2,3]) vertex[glindex2,5] = @leafClength * vertex[glindex2,5] xcoord[glindex2,5] = real(vertex[glindex2,5]) ycoord[glindex2,5] = imag(vertex[glindex2,5]) vertex[glindex2,7] = @leafDlength * vertex[glindex2,7] xcoord[glindex2,7] = real(vertex[glindex2,7]) ycoord[glindex2,7] = imag(vertex[glindex2,7]) vertex[glindex2,9] = @leafElength * vertex[glindex2,9] xcoord[glindex2,9] = real(vertex[glindex2,9]) ycoord[glindex2,9] = imag(vertex[glindex2,9]) vertex[glindex2,11] = @leafFlength * vertex[glindex2,11] xcoord[glindex2,11] = real(vertex[glindex2,11]) ycoord[glindex2,11] = imag(vertex[glindex2,11]) vertex[glindex2,13] = @leafGlength * vertex[glindex2,13] xcoord[glindex2,13] = real(vertex[glindex2,13]) ycoord[glindex2,13] = imag(vertex[glindex2,13]) vertex[glindex2,15] = @leafHlength * vertex[glindex2,15] xcoord[glindex2,15] = real(vertex[glindex2,15]) ycoord[glindex2,15] = imag(vertex[glindex2,15]) vertex[glindex2,17] = @leafIlength * vertex[glindex2,17] xcoord[glindex2,17] = real(vertex[glindex2,17]) ycoord[glindex2,17] = imag(vertex[glindex2,17]) vertex[glindex2,19] = @leafJlength * vertex[glindex2,19] xcoord[glindex2,19] = real(vertex[glindex2,19]) ycoord[glindex2,19] = imag(vertex[glindex2,19]) elseif traparray[glindex2] == 125 ; "decagram" cursality[glindex2] = 2 numbervertices = 12 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 6 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.309017, 0.951057) vertex[glindex2,2] = trapscales[glindex2] * (-0.809017, 0.587785) vertex[glindex2,3] = trapscales[glindex2] * (-0.809017, -0.587785) vertex[glindex2,4] = trapscales[glindex2] * (0.309017, -0.951057) vertex[glindex2,5] = trapscales[glindex2] * (1,0) vertex[glindex2,6] = trapscales[glindex2] * (0.809017, 0.587785) vertex[glindex2,7] = trapscales[glindex2] * (-0.309017, 0.951057) vertex[glindex2,8] = trapscales[glindex2] * (-1,0) vertex[glindex2,9] = trapscales[glindex2] * (-0.309017, -0.951057) vertex[glindex2,10] = trapscales[glindex2] * (0.809017, -0.587785) vertex[glindex2,11] = trapscales[glindex2] * (0.809017, 0.587785) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 126 ; "decagram 2" cursality[glindex2] = 1 numbervertices = 11 ; vertices + cursality for closed curves cincrement[glindex2] = 11 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = trapscales[glindex2] * cos(3 * glindex * twopi / 10) ycoord[glindex2,glindex] = trapscales[glindex2] * sin(3 * glindex * twopi / 10) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 127 ; "decagram 3" cursality[glindex2] = 2 numbervertices = 12 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 6 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (-0.809017, 0.587785) vertex[glindex2,2] = trapscales[glindex2] * (0.309017, -0.951057) vertex[glindex2,3] = trapscales[glindex2] * (0.309017, 0.951057) vertex[glindex2,4] = trapscales[glindex2] * (-0.809017, -0.587785) vertex[glindex2,5] = trapscales[glindex2] * (1,0) vertex[glindex2,6] = trapscales[glindex2] * (0.809017, 0.587785) vertex[glindex2,7] = trapscales[glindex2] * (-1,0) vertex[glindex2,8] = trapscales[glindex2] * (0.809017, -0.587785) vertex[glindex2,9] = trapscales[glindex2] * (-0.309017, 0.951057) vertex[glindex2,10] = trapscales[glindex2] * (-0.309017, -0.951057) vertex[glindex2,11] = trapscales[glindex2] * (0.809017, 0.587785) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 128 ; "decagram 4" cursality[glindex2] = 1 numbervertices = 11 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 11 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.809017, 0.587785) vertex[glindex2,1] = trapscales[glindex2] * (-0.647214, 0.470228) vertex[glindex2,2] = trapscales[glindex2] * (-0.309017, -0.951057) vertex[glindex2,3] = trapscales[glindex2] * (0.8,0) vertex[glindex2,4] = trapscales[glindex2] * (-0.309017, 0.951057) vertex[glindex2,5] = trapscales[glindex2] * (-0.647214, -0.470228) vertex[glindex2,6] = trapscales[glindex2] * (0.809017, -0.587785) vertex[glindex2,7] = trapscales[glindex2] * (0.247214, 0.760845) vertex[glindex2,8] = trapscales[glindex2] * (-1,0) vertex[glindex2,9] = trapscales[glindex2] * (0.247214, -0.760845) vertex[glindex2,10] = trapscales[glindex2] * (0.809017, 0.587785) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 129 ; "10-star" cursality[glindex2] = 1 numbervertices = 21 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 21 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.5,0) vertex[glindex2,1] = @starspikiness * trapscales[glindex2] * (0.951057, 0.309017) vertex[glindex2,2] = trapscales[glindex2] * (0.404508, 0.293893) vertex[glindex2,3] = @starspikiness * trapscales[glindex2] * (0.587785, 0.809017) vertex[glindex2,4] = trapscales[glindex2] * (0.154508, 0.475528) vertex[glindex2,5] = @starspikiness * trapscales[glindex2] * (0,1) vertex[glindex2,6] = trapscales[glindex2] * (-0.154508, 0.475528) vertex[glindex2,7] = @starspikiness * trapscales[glindex2] * (-0.587785, 0.809017) vertex[glindex2,8] = trapscales[glindex2] * (-0.404508, 0.293893) vertex[glindex2,9] = @starspikiness * trapscales[glindex2] * (-0.951057, 0.309017) vertex[glindex2,10] = trapscales[glindex2] * (-0.5,0) vertex[glindex2,11] = @starspikiness * trapscales[glindex2] * (-0.951057, -0.309017) vertex[glindex2,12] = trapscales[glindex2] * (-0.404508, -0.293893) vertex[glindex2,13] = @starspikiness * trapscales[glindex2] * (-0.587785, -0.809017) vertex[glindex2,14] = trapscales[glindex2] * (-0.154508, -0.475528) vertex[glindex2,15] = @starspikiness * trapscales[glindex2] * (0,-1) vertex[glindex2,16] = trapscales[glindex2] * (0.154508, -0.475528) vertex[glindex2,17] = @starspikiness * trapscales[glindex2] * (0.587785, -0.809017) vertex[glindex2,18] = trapscales[glindex2] * (0.404508, -0.293893) vertex[glindex2,19] = @starspikiness * trapscales[glindex2] * (0.951057, -0.309017) vertex[glindex2,20] = trapscales[glindex2] * (0.5,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 130 ; "10-star 2" cursality[glindex2] = 1 numbervertices = 21 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 21 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.5,0) vertex[glindex2,2] = trapscales[glindex2] * (0.809017, 0.587785) vertex[glindex2,3] = trapscales[glindex2] * (0.404508, 0.293893) vertex[glindex2,4] = trapscales[glindex2] * (0.309017, 0.951057) vertex[glindex2,5] = trapscales[glindex2] * (0.154508, 0.475528) vertex[glindex2,6] = trapscales[glindex2] * (-0.309017, 0.951057) vertex[glindex2,7] = trapscales[glindex2] * (-0.154508, 0.475528) vertex[glindex2,8] = trapscales[glindex2] * (-0.809017, 0.587785) vertex[glindex2,9] = trapscales[glindex2] * (-0.404508, 0.293893) vertex[glindex2,10] = trapscales[glindex2] * (-1,0) vertex[glindex2,11] = trapscales[glindex2] * (-0.5,0) vertex[glindex2,12] = trapscales[glindex2] * (-0.809017, -0.587785) vertex[glindex2,13] = trapscales[glindex2] * (-0.404508, -0.293893) vertex[glindex2,14] = trapscales[glindex2] * (-0.309017, -0.951057) vertex[glindex2,15] = trapscales[glindex2] * (-0.154508, -0.475528) vertex[glindex2,16] = trapscales[glindex2] * (0.309017, -0.951057) vertex[glindex2,17] = trapscales[glindex2] * (0.154508, -0.475528) vertex[glindex2,18] = trapscales[glindex2] * (0.809017, -0.587785) vertex[glindex2,19] = trapscales[glindex2] * (0.404508, -0.293893) vertex[glindex2,20] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 131 ; "10-star 3" cursality[glindex2] = 1 numbervertices = 21 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 21 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.707107, 0.707107) vertex[glindex2,1] = trapscales[glindex2] * (0.494975, -0.494975) vertex[glindex2,2] = trapscales[glindex2] * (0.156434, 0.987688) vertex[glindex2,3] = trapscales[glindex2] * (0.691382, -0.109504) vertex[glindex2,4] = trapscales[glindex2] * (-0.45399, 0.891007) vertex[glindex2,5] = trapscales[glindex2] * (0.623705, 0.317793) vertex[glindex2,6] = trapscales[glindex2] * (-0.891007, 0.45399) vertex[glindex2,7] = trapscales[glindex2] * (0.317793, 0.623705) vertex[glindex2,8] = trapscales[glindex2] * (-0.987688, -0.156434) vertex[glindex2,9] = trapscales[glindex2] * (-0.109504, 0.691382) vertex[glindex2,10] = trapscales[glindex2] * (-0.707107, -0.707107) vertex[glindex2,11] = trapscales[glindex2] * (-0.494975, 0.494975) vertex[glindex2,12] = trapscales[glindex2] * (-0.156434, -0.987688) vertex[glindex2,13] = trapscales[glindex2] * (-0.691382, 0.109504) vertex[glindex2,14] = trapscales[glindex2] * (0.45399, -0.891007) vertex[glindex2,15] = trapscales[glindex2] * (-0.623705, -0.317793) vertex[glindex2,16] = trapscales[glindex2] * (0.891007, -0.45399) vertex[glindex2,17] = trapscales[glindex2] * (-0.317793, -0.623705) vertex[glindex2,18] = trapscales[glindex2] * (0.987688, 0.156434) vertex[glindex2,19] = trapscales[glindex2] * (0.109504, -0.691382) vertex[glindex2,20] = trapscales[glindex2] * (0.707107, 0.707107) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 132 ; "decagram 5" cursality[glindex2] = 2 numbervertices = 22 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 11 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.987688, 0.156434) vertex[glindex2,1] = trapscales[glindex2] * (-0.156434, 0.987688) vertex[glindex2,2] = trapscales[glindex2] * (0.156434, 0.987688) vertex[glindex2,3] = trapscales[glindex2] * (-0.987688, 0.156434) vertex[glindex2,4] = trapscales[glindex2] * (-0.891007, 0.45399) vertex[glindex2,5] = trapscales[glindex2] * (-0.45399, -0.891007) vertex[glindex2,6] = trapscales[glindex2] * (-0.707107, -0.707107) vertex[glindex2,7] = trapscales[glindex2] * (0.707107, -0.707107) vertex[glindex2,8] = trapscales[glindex2] * (0.45399, -0.891007) vertex[glindex2,9] = trapscales[glindex2] * (0.891007, 0.45399) vertex[glindex2,10] = trapscales[glindex2] * (0.987688, 0.156434) vertex[glindex2,11] = trapscales[glindex2] * (0.707107, 0.707107) vertex[glindex2,12] = trapscales[glindex2] * (-0.707107, 0.707107) vertex[glindex2,13] = trapscales[glindex2] * (-0.45399, 0.891007) vertex[glindex2,14] = trapscales[glindex2] * (-0.891007, -0.45399) vertex[glindex2,15] = trapscales[glindex2] * (-0.987688, -0.156434) vertex[glindex2,16] = trapscales[glindex2] * (0.156434, -0.987688) vertex[glindex2,17] = trapscales[glindex2] * (-0.156434, -0.987688) vertex[glindex2,18] = trapscales[glindex2] * (0.987688, -0.156434) vertex[glindex2,19] = trapscales[glindex2] * (0.891007, -0.45399) vertex[glindex2,20] = trapscales[glindex2] * (0.45399, 0.891007) vertex[glindex2,21] = trapscales[glindex2] * (0.707107, 0.707107) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 134 ; "collinear spots" cursality[glindex2] = collinearspots[glindex2] numbervertices = collinearspots[glindex2] ; single points, not line segments cincrement[glindex2] = 1 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 if numbervertices == 1 xcoord[glindex2,glindex] = 0.0 ycoord[glindex2,glindex] = 0.0 vertex[glindex2,glindex] = (0,0) glindex = glindex + 1 else scratchfloat = trapscales[glindex2]/(numbervertices - 1) xcoord[glindex2,glindex] = -0.5 * trapscales[glindex2] ycoord[glindex2,glindex] = 0.0 vertex[glindex2,glindex] = (-0.5,0) * trapscales[glindex2] glindex = glindex + 1 while glindex < numbervertices xcoord[glindex2,glindex] = xcoord[glindex2,glindex - 1] + scratchfloat ycoord[glindex2,glindex] = 0.0 vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex endif ; numbervertices elseif traparray[glindex2] == 135 ; "square array" cursality[glindex2] = sqr(squaresize[glindex2]) numbervertices = cursality[glindex2] ; single points, not line segments cincrement[glindex2] = 1 ; numbervertices/cursality[glindex2] ; initialize arrays scratchfloat = (1.5 * trapscales[glindex2])/(squaresize[glindex2] - 1) ; distance between adjacent points scratchfloat2 = trapscales[glindex2] * -0.75 ; starting x-coordinate (upper left of array) scratchfloat3 = trapscales[glindex2] * 0.75 ; starting y-coordinate (upper left of array) scratchint = 0 ; index for calculation of y-coordinate glindex = 0 while glindex <= numbervertices glindex3 = 0 while glindex3 < squaresize[glindex2] scratchint2 = glindex + glindex3 xcoord[glindex2,scratchint2] = scratchfloat2 + scratchfloat * glindex3 ycoord[glindex2,scratchint2] = scratchfloat3 - scratchfloat * scratchint vertex[glindex2,scratchint2] = xcoord[glindex2,scratchint2] + flip(ycoord[glindex2,scratchint2]) glindex3 = glindex3 + 1 endwhile ; glindex3 glindex = glindex + squaresize[glindex2] scratchint = scratchint + 1 endwhile ; glindex elseif traparray[glindex2] == 136 ; "triangular array" cursality[glindex2] = round(3*triarraysize[glindex2]*(triarraysize[glindex2]-1)/2 + 1) ; centered triangular numbers numbervertices = cursality[glindex2] ; single points, not line segments cincrement[glindex2] = 1 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0,0) vertex[glindex2,1] = trapscales[glindex2] * (0.333333, 0) vertex[glindex2,2] = trapscales[glindex2] * (-0.166667, 0.288675) vertex[glindex2,3] = trapscales[glindex2] * (-0.166667, -0.288675) vertex[glindex2,4] = trapscales[glindex2] * (0.666667, 0) vertex[glindex2,5] = trapscales[glindex2] * (0.166667, 0.288675) vertex[glindex2,6] = trapscales[glindex2] * (-0.333333, 0.57735) vertex[glindex2,7] = trapscales[glindex2] * (-0.333333, 0) vertex[glindex2,8] = trapscales[glindex2] * (-0.333333, -0.57735) vertex[glindex2,9] = trapscales[glindex2] * (0.166667, -0.288675) vertex[glindex2,10] = trapscales[glindex2] * (1,0) vertex[glindex2,11] = trapscales[glindex2] * (0.5, 0.288675) vertex[glindex2,12] = trapscales[glindex2] * (0., 0.57735) vertex[glindex2,13] = trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2,14] = trapscales[glindex2] * (-0.5, 0.288675) vertex[glindex2,15] = trapscales[glindex2] * (-0.5, -0.288675) vertex[glindex2,16] = trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2,17] = trapscales[glindex2] * (0., -0.57735) vertex[glindex2,18] = trapscales[glindex2] * (0.5, -0.288675) glindex = 0 while glindex <= numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 137 ; "triangular spiral" cursality[glindex2] = 1 if spiralsize[glindex2] == 1 numbervertices = 4 cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] elseif spiralsize[glindex2] == 2 numbervertices = 7 cincrement[glindex2] = 7 elseif spiralsize[glindex2] == 3 numbervertices = 10 cincrement[glindex2] = 10 elseif spiralsize[glindex2] == 4 numbervertices = 13 cincrement[glindex2] = 13 endif ; spiralsize[] ; initialize arrays vertex[glindex2,0] = shrink2 * trapscales[glindex2] * (0.3,0) vertex[glindex2,1] = shrink2 * trapscales[glindex2] * (-0.2, 0.34641) vertex[glindex2,2] = shrink2 * trapscales[glindex2] * (-0.3, -0.519615) vertex[glindex2,3] = shrink2 * trapscales[glindex2] * (0.8,0) vertex[glindex2,4] = shrink2 * trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2,5] = shrink2 * trapscales[glindex2] * (-0.6, -1.03923) vertex[glindex2,6] = shrink2 * trapscales[glindex2] * (1.4,0) vertex[glindex2,7] = shrink2 * trapscales[glindex2] * (-0.8, 1.38564) vertex[glindex2,8] = shrink2 * trapscales[glindex2] * (-0.9, -1.55885) vertex[glindex2,9] = shrink2 * trapscales[glindex2] * (2,0) vertex[glindex2,10] = shrink2 * trapscales[glindex2] * (-1.1, 1.90526) vertex[glindex2,11] = shrink2 * trapscales[glindex2] * (-1.2, -2.07846) vertex[glindex2,12] = shrink2 * trapscales[glindex2] * (2.6,0) glindex = 0 while glindex <= numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 138 ; "square spiral" cursality[glindex2] = 1 if spiralsize[glindex2] == 1 numbervertices = 5 cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] elseif spiralsize[glindex2] == 2 numbervertices = 9 cincrement[glindex2] = 9 elseif spiralsize[glindex2] == 3 numbervertices = 13 cincrement[glindex2] = 13 elseif spiralsize[glindex2] == 4 numbervertices = 17 cincrement[glindex2] = 17 endif ; spiralsize[] ; initialize arrays vertex[glindex2,0] = shrink2 * trapscales[glindex2] * (0.3,0) vertex[glindex2,1] = shrink2 * trapscales[glindex2] * (0,0.4) vertex[glindex2,2] = shrink2 * trapscales[glindex2] * (-0.6,0) vertex[glindex2,3] = shrink2 * trapscales[glindex2] * (0,-0.8) vertex[glindex2,4] = shrink2 * trapscales[glindex2] * (1,0) vertex[glindex2,5] = shrink2 * trapscales[glindex2] * (0,1.2) vertex[glindex2,6] = shrink2 * trapscales[glindex2] * (-1.4,0) vertex[glindex2,7] = shrink2 * trapscales[glindex2] * (0,-1.6) vertex[glindex2,8] = shrink2 * trapscales[glindex2] * (1.8,0) vertex[glindex2,9] = shrink2 * trapscales[glindex2] * (0,2) vertex[glindex2,10] = shrink2 * trapscales[glindex2] * (-2.2,0) vertex[glindex2,11] = shrink2 * trapscales[glindex2] * (0,-2.4) vertex[glindex2,12] = shrink2 * trapscales[glindex2] * (2.6,0) vertex[glindex2,13] = shrink2 * trapscales[glindex2] * (0,2.8) vertex[glindex2,14] = shrink2 * trapscales[glindex2] * (-3,0) vertex[glindex2,15] = shrink2 * trapscales[glindex2] * (0,-3.2) vertex[glindex2,16] = shrink2 * trapscales[glindex2] * (3.4,0) glindex = 0 while glindex <= numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 139 ; "pentagonal array" scratchint = triarraysize[glindex2] - 1 cursality[glindex2] = round((5*sqr(scratchint)+(5*scratchint)+2)/2) ; centered pentagonal numbers numbervertices = cursality[glindex2] ; single points, not line segments cincrement[glindex2] = 1 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0,0) vertex[glindex2,1] = trapscales[glindex2] * (0.333333, 0) vertex[glindex2,2] = trapscales[glindex2] * (0.103006, 0.317019) vertex[glindex2,3] = trapscales[glindex2] * (-0.269672, 0.195928) vertex[glindex2,4] = trapscales[glindex2] * (-0.269672, -0.195928) vertex[glindex2,5] = trapscales[glindex2] * (0.103006, -0.317019) vertex[glindex2,6] = trapscales[glindex2] * (0.666667, 0) vertex[glindex2,7] = trapscales[glindex2] * (0.436339, 0.317019) vertex[glindex2,8] = trapscales[glindex2] * (0.206011, 0.634038) vertex[glindex2,9] = trapscales[glindex2] * (-0.166667, 0.512947) vertex[glindex2,10] = trapscales[glindex2] * (-0.539345, 0.391857) vertex[glindex2,11] = trapscales[glindex2] * (-0.539345, 0) vertex[glindex2,12] = trapscales[glindex2] * (-0.539345, -0.391857) vertex[glindex2,13] = trapscales[glindex2] * (-0.166667, -0.512947) vertex[glindex2,14] = trapscales[glindex2] * (0.206011, -0.634038) vertex[glindex2,15] = trapscales[glindex2] * (0.436339, -0.317019) vertex[glindex2,16] = trapscales[glindex2] * (1,0) vertex[glindex2,17] = trapscales[glindex2] * (0.769672, 0.317019) vertex[glindex2,18] = trapscales[glindex2] * (0.539345, 0.634038) vertex[glindex2,19] = trapscales[glindex2] * (0.309017, 0.951057) vertex[glindex2,20] = trapscales[glindex2] * (-0.063661, 0.829966) vertex[glindex2,21] = trapscales[glindex2] * (-0.436339, 0.708876) vertex[glindex2,22] = trapscales[glindex2] * (-0.809017, 0.587785) vertex[glindex2,23] = trapscales[glindex2] * (-0.809017, 0.195928) vertex[glindex2,24] = trapscales[glindex2] * (-0.809017, -0.195928) vertex[glindex2,25] = trapscales[glindex2] * (-0.809017, -0.587785) vertex[glindex2,26] = trapscales[glindex2] * (-0.436339, -0.708876) vertex[glindex2,27] = trapscales[glindex2] * (-0.063661, -0.829966) vertex[glindex2,28] = trapscales[glindex2] * (0.309017, -0.951057) vertex[glindex2,29] = trapscales[glindex2] * (0.539345, -0.634038) vertex[glindex2,30] = trapscales[glindex2] * (0.769672, -0.317019) glindex = 0 while glindex <= numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 140 ; "hexagonal array" cursality[glindex2] = round(3*(triarraysize[glindex2]-1)*(triarraysize[glindex2])+1) ; centered hexagonal numbers numbervertices = cursality[glindex2] ; single points, not line segments cincrement[glindex2] = 1 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0,0) vertex[glindex2,1] = trapscales[glindex2] * (0.333333, 0) vertex[glindex2,2] = trapscales[glindex2] * (0.166667, 0.288675) vertex[glindex2,3] = trapscales[glindex2] * (-0.166667, 0.288675) vertex[glindex2,4] = trapscales[glindex2] * (-0.333333, 0) vertex[glindex2,5] = trapscales[glindex2] * (-0.166667, -0.288675) vertex[glindex2,6] = trapscales[glindex2] * (0.166667, -0.288675) vertex[glindex2,7] = trapscales[glindex2] * (0.666667, 0) vertex[glindex2,8] = trapscales[glindex2] * (0.5, 0.288675) vertex[glindex2,9] = trapscales[glindex2] * (0.333333, 0.57735) vertex[glindex2,10] = trapscales[glindex2] * (0., 0.57735) vertex[glindex2,11] = trapscales[glindex2] * (-0.333333, 0.57735) vertex[glindex2,12] = trapscales[glindex2] * (-0.5, 0.288675) vertex[glindex2,13] = trapscales[glindex2] * (-0.666667, 0) vertex[glindex2,14] = trapscales[glindex2] * (-0.5, -0.288675) vertex[glindex2,15] = trapscales[glindex2] * (-0.333333, -0.57735) vertex[glindex2,16] = trapscales[glindex2] * (0., -0.57735) vertex[glindex2,17] = trapscales[glindex2] * (0.333333, -0.57735) vertex[glindex2,18] = trapscales[glindex2] * (0.5, -0.288675) vertex[glindex2,19] = trapscales[glindex2] * (1,0) vertex[glindex2,20] = trapscales[glindex2] * (0.833333, 0.288675) vertex[glindex2,21] = trapscales[glindex2] * (0.666667, 0.57735) vertex[glindex2,22] = trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2,23] = trapscales[glindex2] * (0.166667, 0.866025) vertex[glindex2,24] = trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2,25] = trapscales[glindex2] * (-0.666667, 0.57735) vertex[glindex2,26] = trapscales[glindex2] * (-0.833333, 0.288675) vertex[glindex2,27] = trapscales[glindex2] * (-1,0) vertex[glindex2,28] = trapscales[glindex2] * (-0.833333, -0.288675) vertex[glindex2,29] = trapscales[glindex2] * (-0.166667, 0.866025) vertex[glindex2,30] = trapscales[glindex2] * (-0.666667, -0.57735) vertex[glindex2,31] = trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2,32] = trapscales[glindex2] * (-0.166667, -0.866025) vertex[glindex2,33] = trapscales[glindex2] * (0.166667, -0.866025) vertex[glindex2,34] = trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2,35] = trapscales[glindex2] * (0.666667, -0.57735) vertex[glindex2,36] = trapscales[glindex2] * (0.833333, -0.288675) glindex = 0 while glindex <= numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 141 ; "pentagonal spiral" cursality[glindex2] = 1 if spiralsize[glindex2] == 1 numbervertices = 6 cincrement[glindex2] = 6 ; numbervertices/cursality[glindex2] elseif spiralsize[glindex2] == 2 numbervertices = 11 cincrement[glindex2] = 11 elseif spiralsize[glindex2] == 3 numbervertices = 16 cincrement[glindex2] = 16 elseif spiralsize[glindex2] == 4 numbervertices = 21 cincrement[glindex2] = 21 endif ; spiralsize[] ; initialize arrays vertex[glindex2,0] = shrink3 * trapscales[glindex2] * (0.3,0) vertex[glindex2,1] = shrink3 * trapscales[glindex2] * (0.123607, 0.380423) vertex[glindex2,2] = shrink3 * trapscales[glindex2] * (-0.48541, 0.352671) vertex[glindex2,3] = shrink3 * trapscales[glindex2] * (-0.647214, -0.470228) vertex[glindex2,4] = shrink3 * trapscales[glindex2] * (0.309017, -0.951057) vertex[glindex2,5] = shrink3 * trapscales[glindex2] * (1.2,0) vertex[glindex2,6] = shrink3 * trapscales[glindex2] * (0.432624, 1.33148) vertex[glindex2,7] = shrink3 * trapscales[glindex2] * (-1.29443, 0.940456) vertex[glindex2,8] = shrink3 * trapscales[glindex2] * (-1.45623, -1.05801) vertex[glindex2,9] = shrink3 * trapscales[glindex2] * (0.618034, -1.90211) vertex[glindex2,10] = shrink3 * trapscales[glindex2] * (2.2,0) vertex[glindex2,11] = shrink3 * trapscales[glindex2] * (0.741641, 2.28254) vertex[glindex2,12] = shrink3 * trapscales[glindex2] * (-2.10344, 1.52824) vertex[glindex2,13] = shrink3 * trapscales[glindex2] * (-2.26525, -1.6458) vertex[glindex2,14] = shrink3 * trapscales[glindex2] * (0.927051, -2.85317) vertex[glindex2,15] = shrink3 * trapscales[glindex2] * (3.2,0) vertex[glindex2,16] = shrink3 * trapscales[glindex2] * (1.05066, 3.23359) vertex[glindex2,17] = shrink3 * trapscales[glindex2] * (-2.91246, 2.11603) vertex[glindex2,18] = shrink3 * trapscales[glindex2] * (-3.07426, -2.23358) vertex[glindex2,19] = shrink3 * trapscales[glindex2] * (1.23607, -3.80423) vertex[glindex2,20] = shrink3 * trapscales[glindex2] * (4.2,0) glindex = 0 while glindex <= numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 142 ; "hexagonal spiral" cursality[glindex2] = 1 if spiralsize[glindex2] == 1 numbervertices = 7 cincrement[glindex2] = 7 ; numbervertices/cursality[glindex2] elseif spiralsize[glindex2] == 2 numbervertices = 13 cincrement[glindex2] = 13 elseif spiralsize[glindex2] == 3 numbervertices = 19 cincrement[glindex2] = 19 elseif spiralsize[glindex2] == 4 numbervertices = 25 cincrement[glindex2] = 25 endif ; spiralsize[] ; initialize arrays vertex[glindex2,0] = shrink3 * trapscales[glindex2] * (0.3,0) vertex[glindex2,1] = shrink3 * trapscales[glindex2] * (0.2, 0.34641) vertex[glindex2,2] = shrink3 * trapscales[glindex2] * (-0.3, 0.519615) vertex[glindex2,3] = shrink3 * trapscales[glindex2] * (-0.8, 0) vertex[glindex2,4] = shrink3 * trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2,5] = shrink3 * trapscales[glindex2] * (0.6, -1.03923) vertex[glindex2,6] = shrink3 * trapscales[glindex2] * (1.4,0) vertex[glindex2,7] = shrink3 * trapscales[glindex2] * (0.8, 1.38564) vertex[glindex2,8] = shrink3 * trapscales[glindex2] * (-0.9, 1.55885) vertex[glindex2,9] = shrink3 * trapscales[glindex2] * (-2,0) vertex[glindex2,10] = shrink3 * trapscales[glindex2] * (-1.1, -1.90526) vertex[glindex2,11] = shrink3 * trapscales[glindex2] * (1.2, -2.07846) vertex[glindex2,12] = shrink3 * trapscales[glindex2] * (2.6,0) vertex[glindex2,13] = shrink3 * trapscales[glindex2] * (1.4, 2.42487) vertex[glindex2,14] = shrink3 * trapscales[glindex2] * (-1.5, 2.59808) vertex[glindex2,15] = shrink3 * trapscales[glindex2] * (-3.2,0) vertex[glindex2,16] = shrink3 * trapscales[glindex2] * (-1.7, -2.94449) vertex[glindex2,17] = shrink3 * trapscales[glindex2] * (1.8, -3.11769) vertex[glindex2,18] = shrink3 * trapscales[glindex2] * (3.8,0) vertex[glindex2,19] = shrink3 * trapscales[glindex2] * (2, 3.4641) vertex[glindex2,20] = shrink3 * trapscales[glindex2] * (-2.1, 3.63731) vertex[glindex2,21] = shrink3 * trapscales[glindex2] * (-4.4,0) vertex[glindex2,22] = shrink3 * trapscales[glindex2] * (-2.3, -3.98372) vertex[glindex2,23] = shrink3 * trapscales[glindex2] * (2.4, -4.15692) vertex[glindex2,24] = shrink3 * trapscales[glindex2] * (5,0) glindex = 0 while glindex <= numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 143 ; "octagonal spiral" cursality[glindex2] = 1 if spiralsize[glindex2] == 1 numbervertices = 9 cincrement[glindex2] = 9 ; numbervertices/cursality[glindex2] elseif spiralsize[glindex2] == 2 numbervertices = 17 cincrement[glindex2] = 17 elseif spiralsize[glindex2] == 3 numbervertices = 25 cincrement[glindex2] = 25 elseif spiralsize[glindex2] == 4 numbervertices = 33 cincrement[glindex2] = 33 endif ; spiralsize[] ; initialize arrays vertex[glindex2,0] = shrink3 * trapscales[glindex2] * (0.3,0) vertex[glindex2,1] = shrink3 * trapscales[glindex2] * (0.282843, 0.282843) vertex[glindex2,2] = shrink3 * trapscales[glindex2] * (0,0.6) vertex[glindex2,3] = shrink3 * trapscales[glindex2] * (-0.565685, 0.565685) vertex[glindex2,4] = shrink3 * trapscales[glindex2] * (-1,0) vertex[glindex2,5] = shrink3 * trapscales[glindex2] * (-0.848528, -0.848528) vertex[glindex2,6] = shrink3 * trapscales[glindex2] * (0,-1.4) vertex[glindex2,7] = shrink3 * trapscales[glindex2] * (1.13137, -1.13137) vertex[glindex2,8] = shrink3 * trapscales[glindex2] * (1.8,0) vertex[glindex2,9] = shrink3 * trapscales[glindex2] * (1.41421, 1.41421) vertex[glindex2,10] = shrink3 * trapscales[glindex2] * (0,2.2) vertex[glindex2,11] = shrink3 * trapscales[glindex2] * (-1.69706, 1.69706) vertex[glindex2,12] = shrink3 * trapscales[glindex2] * (-2.6,0) vertex[glindex2,13] = shrink3 * trapscales[glindex2] * (-1.9799, -1.9799) vertex[glindex2,14] = shrink3 * trapscales[glindex2] * (0,-3) vertex[glindex2,15] = shrink3 * trapscales[glindex2] * (2.26274, -2.26274) vertex[glindex2,16] = shrink3 * trapscales[glindex2] * (3.4,0) vertex[glindex2,17] = shrink3 * trapscales[glindex2] * (2.54558, 2.54558) vertex[glindex2,18] = shrink3 * trapscales[glindex2] * (0,3.8) vertex[glindex2,19] = shrink3 * trapscales[glindex2] * (-2.82843, 2.82843) vertex[glindex2,20] = shrink3 * trapscales[glindex2] * (-4.2,0) vertex[glindex2,21] = shrink3 * trapscales[glindex2] * (-3.11127, -3.11127) vertex[glindex2,22] = shrink3 * trapscales[glindex2] * (0,-4.6) vertex[glindex2,23] = shrink3 * trapscales[glindex2] * (3.39411, -3.39411) vertex[glindex2,24] = shrink3 * trapscales[glindex2] * (5,0) vertex[glindex2,25] = shrink3 * trapscales[glindex2] * (3.67696, 3.67696) vertex[glindex2,26] = shrink3 * trapscales[glindex2] * (0,5.4) vertex[glindex2,27] = shrink3 * trapscales[glindex2] * (-3.9598, 3.9598) vertex[glindex2,28] = shrink3 * trapscales[glindex2] * (-5.8,0) vertex[glindex2,29] = shrink3 * trapscales[glindex2] * (-4.24264, -4.24264) vertex[glindex2,30] = shrink3 * trapscales[glindex2] * (0,-6.2) vertex[glindex2,31] = shrink3 * trapscales[glindex2] * (4.52548, -4.52548) vertex[glindex2,32] = shrink3 * trapscales[glindex2] * (6.6,0) glindex = 0 while glindex <= numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 144 ; "superellipse" cursality[glindex2] = 1 if @grain == "36" granularity = 36 elseif @grain == "72" granularity = 72 elseif @grain == "100" granularity = 100 elseif @grain == "200" granularity = 200 elseif @grain == "300" granularity = 300 else ; @grain == "400" granularity = 400 endif ; @grain numbervertices = granularity ; open curve as plotted cincrement[glindex2] = granularity ; numbervertices/cursality[glindex2] scratchfloat = 2/ellipseX[glindex2] scratchint = round(granularity/2) scratchint2 = round(granularity/4) ; initialize arrays glindex = 0 while glindex < scratchint2 xcoord[glindex2,glindex] = trapscales[glindex2] * ellipseH[glindex2] * \ (cos(glindex * halfpi/scratchint2)^scratchfloat) ycoord[glindex2,glindex] = trapscales[glindex2] * ellipseW[glindex2] * \ (sin(glindex * halfpi /scratchint2)^scratchfloat) glindex = glindex + 1 endwhile ; glindex glindex = 0 while glindex < scratchint2 xcoord[glindex2,glindex + scratchint2] = -xcoord[glindex2,scratchint2 - 1 - glindex] ycoord[glindex2,glindex + scratchint2] = ycoord[glindex2,scratchint2 - 1 - glindex] glindex = glindex + 1 endwhile ; glindex glindex = 0 while glindex < scratchint xcoord[glindex2,glindex + scratchint] = xcoord[glindex2, scratchint - 1 - glindex] ycoord[glindex2,glindex + scratchint] = -ycoord[glindex2, scratchint - 1 - glindex] glindex = glindex + 1 endwhile ; glindex glindex = 0 while glindex < granularity vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 145 ; "hypotrochoid" if @grain == "36" granularity = 36 elseif @grain == "72" granularity = 72 elseif @grain == "100" granularity = 100 elseif @grain == "200" granularity = 200 elseif @grain == "300" granularity = 300 else ; @grain == "400" granularity = 400 endif ; @grain granularity2 = granularity + 1 cursality[glindex2] = 1 numbervertices = granularity2 ; vertices + cursality for closed curves cincrement[glindex2] = granularity2 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 scratchfloat = hypotroA[glindex2] - hypotroB[glindex2] scratchfloat2 = scratchfloat/hypotroB[glindex2] scratchfloat3 = twopi/granularity while glindex < granularity2 xcoord[glindex2,glindex] = trapscales[glindex2] * (scratchfloat * cos(glindex * scratchfloat3) + hypotroH[glindex2] * cos(scratchfloat2 * glindex * scratchfloat3)) ycoord[glindex2,glindex] = trapscales[glindex2] * (scratchfloat * sin(glindex * scratchfloat3) - hypotroH[glindex2] * sin(scratchfloat2 * glindex * scratchfloat3)) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex xcoord[glindex2,granularity2] = xcoord[glindex2,0] ycoord[glindex2,granularity2] = ycoord[glindex2,0] vertex[glindex2,granularity2] = xcoord[glindex2,granularity2] + flip(ycoord[glindex2,granularity2]) elseif traparray[glindex2] == 146 ; "epitrochoid" if @grain == "36" granularity = 36 elseif @grain == "72" granularity = 72 elseif @grain == "100" granularity = 100 elseif @grain == "200" granularity = 200 elseif @grain == "300" granularity = 300 else ; @grain == "400" granularity = 400 endif ; @grain granularity2 = granularity + 1 cursality[glindex2] = 1 numbervertices = granularity2 ; vertices + cursality for closed curves cincrement[glindex2] = granularity2 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 scratchfloat = hypotroA[glindex2] + hypotroB[glindex2] scratchfloat2 = scratchfloat/hypotroB[glindex2] scratchfloat3 = twopi/granularity while glindex < granularity2 xcoord[glindex2,glindex] = trapscales[glindex2] * (scratchfloat * cos(glindex * scratchfloat3) - hypotroH[glindex2] * cos(scratchfloat2 * glindex * scratchfloat3)) ycoord[glindex2,glindex] = trapscales[glindex2] * (scratchfloat * sin(glindex * scratchfloat3) - hypotroH[glindex2] * sin(scratchfloat2 * glindex * scratchfloat3)) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex xcoord[glindex2,granularity2] = xcoord[glindex2,0] ycoord[glindex2,granularity2] = ycoord[glindex2,0] vertex[glindex2,granularity2] = xcoord[glindex2,granularity2] + flip(ycoord[glindex2,granularity2]) elseif traparray[glindex2] == 148 ; "honeycomb" cursality[glindex2] = 6 numbervertices = 36 ; n for open curves cincrement[glindex2] = 6 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.5,0) vertex[glindex2,1] = trapscales[glindex2] * (0.25, 0.433013) vertex[glindex2,2] = trapscales[glindex2] * (0.5, 0.866026) vertex[glindex2,3] = trapscales[glindex2] * (1., 0.866026) vertex[glindex2,4] = trapscales[glindex2] * (1.25, 0.433013) vertex[glindex2,5] = trapscales[glindex2] * (1,0) vertex[glindex2,6] = trapscales[glindex2] * (0.25, 0.433013) vertex[glindex2,7] = trapscales[glindex2] * (-0.25, 0.433013) vertex[glindex2,8] = trapscales[glindex2] * (-0.5, 0.866026) vertex[glindex2,9] = trapscales[glindex2] * (-0.25, 1.29904) vertex[glindex2,10] = trapscales[glindex2] * (0.25, 1.29904) vertex[glindex2,11] = trapscales[glindex2] * (0.5, 0.866026) vertex[glindex2,12] = trapscales[glindex2] * (-0.25, 0.433013) vertex[glindex2,13] = trapscales[glindex2] * (-0.5,0) vertex[glindex2,14] = trapscales[glindex2] * (-1,0) vertex[glindex2,15] = trapscales[glindex2] * (-1.25, 0.433013) vertex[glindex2,16] = trapscales[glindex2] * (-1., 0.866026) vertex[glindex2,17] = trapscales[glindex2] * (-0.5, 0.866026) vertex[glindex2,18] = trapscales[glindex2] * (-0.5,0) vertex[glindex2,19] = trapscales[glindex2] * (-0.25, -0.433013) vertex[glindex2,20] = trapscales[glindex2] * (-0.5, -0.866026) vertex[glindex2,21] = trapscales[glindex2] * (-1., -0.866026) vertex[glindex2,22] = trapscales[glindex2] * (-1.25, -0.433013) vertex[glindex2,23] = trapscales[glindex2] * (-1,0) vertex[glindex2,24] = trapscales[glindex2] * (-0.25, -0.433013) vertex[glindex2,25] = trapscales[glindex2] * (0.25, -0.433013) vertex[glindex2,26] = trapscales[glindex2] * (0.5, -0.866026) vertex[glindex2,27] = trapscales[glindex2] * (0.25, -1.29904) vertex[glindex2,28] = trapscales[glindex2] * (-0.25, -1.29904) vertex[glindex2,29] = trapscales[glindex2] * (-0.5, -0.866026) vertex[glindex2,30] = trapscales[glindex2] * (0.25, -0.433013) vertex[glindex2,31] = trapscales[glindex2] * (0.5,0) vertex[glindex2,32] = trapscales[glindex2] * (1,0) vertex[glindex2,33] = trapscales[glindex2] * (1.25, -0.433013) vertex[glindex2,34] = trapscales[glindex2] * (1., -0.866026) vertex[glindex2,35] = trapscales[glindex2] * (0.5, -0.866026) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 149 ; "nested circles" glindex3 = 0 if numbercircles[glindex2] == 2 cursality[glindex2] = 2 numbervertices = 120 cincrement[glindex2] = 60 ; numbervertices/cursality scratchfloat = twopi/59 ; angle increment, cincrement - 1 to close curve ; initialize arrays while glindex3 < 2 ; cursality scratchfloat2 = (glindex3+1)/2 * trapscales[glindex2] ; fixes radius of the various circles glindex = 0 while glindex < 60 ; cincrement scratchint = glindex3*60 + glindex ; saves a bit of redundant calculation xcoord[glindex2,scratchint] = scratchfloat2 * cos(scratchfloat*glindex) ycoord[glindex2,scratchint] = scratchfloat2 * sin(scratchfloat*glindex) vertex[glindex2,scratchint] = xcoord[glindex2,scratchint] + flip(ycoord[glindex2,scratchint]) glindex = glindex + 1 endwhile ; glindex glindex3 = glindex3 + 1 endwhile ; glindex3 elseif numbercircles[glindex2] == 3 cursality[glindex2] = 3 numbervertices = 150 cincrement[glindex2] = 50 ; numbervertices/cursality scratchfloat = twopi/49 ; angle increment ; initialize arrays while glindex3 < 3 scratchfloat2 = (glindex3+1)/3 * trapscales[glindex2] ; fixes radius of the various circles glindex = 0 while glindex < 50 scratchint = glindex3*50 + glindex xcoord[glindex2,scratchint] = scratchfloat2 * cos(scratchfloat*glindex) ycoord[glindex2,scratchint] = scratchfloat2 * sin(scratchfloat*glindex) vertex[glindex2,scratchint] = xcoord[glindex2,scratchint] + flip(ycoord[glindex2,scratchint]) glindex = glindex + 1 endwhile ; glindex glindex3 = glindex3 + 1 endwhile ; glindex3 elseif numbercircles[glindex2] == 4 cursality[glindex2] = 4 numbervertices = 200 cincrement[glindex2] = 50 ; numbervertices/cursality scratchfloat = twopi/49 ; angle increment ; initialize arrays while glindex3 < 4 scratchfloat2 = (glindex3+1)/4 * trapscales[glindex2] ; fixes radius of the various circles glindex = 0 while glindex < 50 scratchint = glindex3*50 + glindex xcoord[glindex2,scratchint] = scratchfloat2 * cos(scratchfloat*glindex) ycoord[glindex2,scratchint] = scratchfloat2 * sin(scratchfloat*glindex) vertex[glindex2,scratchint] = xcoord[glindex2,scratchint] + flip(ycoord[glindex2,scratchint]) glindex = glindex + 1 endwhile ; glindex glindex3 = glindex3 + 1 endwhile ; glindex3 endif ; numbercircles[] elseif traparray[glindex2] == 150 ; "osculant circles" glindex3 = 0 if numbercircles[glindex2] == 2 cursality[glindex2] = 2 numbervertices = 120 cincrement[glindex2] = 60 ; numbervertices/cursality scratchfloat = twopi/59 ; angle increment, cincrement - 1 to close curve ; initialize arrays while glindex3 < 2 ; cursality scratchfloat2 = (glindex3+1)/2 * trapscales[glindex2] ; fixes radius of the various circles scratchfloat3 = trapscales[glindex2] - scratchfloat2 ; distance to translate current circle to touch largest circle glindex = 0 while glindex < 60 ; cincrement scratchint = glindex3*60 + glindex ; saves a bit of redundant calculation xcoord[glindex2,scratchint] = scratchfloat2 * cos(scratchfloat*glindex) + scratchfloat3 ycoord[glindex2,scratchint] = scratchfloat2 * sin(scratchfloat*glindex) vertex[glindex2,scratchint] = xcoord[glindex2,scratchint] + flip(ycoord[glindex2,scratchint]) glindex = glindex + 1 endwhile ; glindex glindex3 = glindex3 + 1 endwhile ; glindex3 elseif numbercircles[glindex2] == 3 cursality[glindex2] = 3 numbervertices = 150 cincrement[glindex2] = 50 ; numbervertices/cursality scratchfloat = twopi/49 ; angle increment ; initialize arrays while glindex3 < 3 scratchfloat2 = (glindex3+1)/3 * trapscales[glindex2] ; fixes radius of the various circles scratchfloat3 = trapscales[glindex2] - scratchfloat2 ; distance to translate current circle to touch largest circle glindex = 0 while glindex < 50 scratchint = glindex3*50 + glindex xcoord[glindex2,scratchint] = scratchfloat2 * cos(scratchfloat*glindex) + scratchfloat3 ycoord[glindex2,scratchint] = scratchfloat2 * sin(scratchfloat*glindex) vertex[glindex2,scratchint] = xcoord[glindex2,scratchint] + flip(ycoord[glindex2,scratchint]) glindex = glindex + 1 endwhile ; glindex glindex3 = glindex3 + 1 endwhile ; glindex3 elseif numbercircles[glindex2] == 4 cursality[glindex2] = 4 numbervertices = 200 cincrement[glindex2] = 50 ; numbervertices/cursality scratchfloat = twopi/49 ; angle increment ; initialize arrays while glindex3 < 4 scratchfloat2 = (glindex3+1)/4 * trapscales[glindex2] ; fixes radius of the various circles scratchfloat3 = trapscales[glindex2] - scratchfloat2 ; distance to translate current circle to touch largest circle glindex = 0 while glindex < 50 scratchint = glindex3*50 + glindex xcoord[glindex2,scratchint] = scratchfloat2 * cos(scratchfloat*glindex) + scratchfloat3 ycoord[glindex2,scratchint] = scratchfloat2 * sin(scratchfloat*glindex) vertex[glindex2,scratchint] = xcoord[glindex2,scratchint] + flip(ycoord[glindex2,scratchint]) glindex = glindex + 1 endwhile ; glindex glindex3 = glindex3 + 1 endwhile ; glindex3 endif ; numbercircles[] elseif traparray[glindex2] == 152 ; "11-gon" cursality[glindex2] = 1 numbervertices = 12 ; vertices + cursality for closed curves cincrement[glindex2] = 12 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = trapscales[glindex2] * cos(glindex * twopi / 11) ycoord[glindex2,glindex] = trapscales[glindex2] * sin(glindex * twopi / 11) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 157 ; "12-gon" cursality[glindex2] = 1 numbervertices = 13 ; vertices + cursality for closed curves cincrement[glindex2] = 13 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = trapscales[glindex2] * cos(glindex * twopi / 12) ycoord[glindex2,glindex] = trapscales[glindex2] * sin(glindex * twopi / 12) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 153 ; "11-gram 1" cursality[glindex2] = 1 numbervertices = 12 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 12 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.415415, 0.909632) vertex[glindex2,2] = trapscales[glindex2] * (-0.654861, 0.75575) vertex[glindex2,3] = trapscales[glindex2] * (-0.959493, -0.281733) vertex[glindex2,4] = trapscales[glindex2] * (-0.142315, -0.989821) vertex[glindex2,5] = trapscales[glindex2] * (0.841254, -0.540641) vertex[glindex2,6] = trapscales[glindex2] * (0.841254, 0.540641) vertex[glindex2,7] = trapscales[glindex2] * (-0.142315, 0.989821) vertex[glindex2,8] = trapscales[glindex2] * (-0.959493, 0.281733) vertex[glindex2,9] = trapscales[glindex2] * (-0.654861, -0.75575) vertex[glindex2,10] = trapscales[glindex2] * (0.415415, -0.909632) vertex[glindex2,11] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 154 ; "11-gram 2" cursality[glindex2] = 1 numbervertices = 12 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 12 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (-0.142315, 0.989821) vertex[glindex2,2] = trapscales[glindex2] * (-0.959493, -0.281733) vertex[glindex2,3] = trapscales[glindex2] * (0.415415, -0.909632) vertex[glindex2,4] = trapscales[glindex2] * (0.841254, 0.540641) vertex[glindex2,5] = trapscales[glindex2] * (-0.654861, 0.75575) vertex[glindex2,6] = trapscales[glindex2] * (-0.654861, -0.75575) vertex[glindex2,7] = trapscales[glindex2] * (0.841254, -0.540641) vertex[glindex2,8] = trapscales[glindex2] * (0.415415, 0.909632) vertex[glindex2,9] = trapscales[glindex2] * (-0.959493, 0.281733) vertex[glindex2,10] = trapscales[glindex2] * (-0.142315, -0.989821) vertex[glindex2,11] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 155 ; "11-gram 3" cursality[glindex2] = 1 numbervertices = 12 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 12 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (-0.654861, 0.75575) vertex[glindex2,2] = trapscales[glindex2] * (-0.142315, -0.989821) vertex[glindex2,3] = trapscales[glindex2] * (0.841254, 0.540641) vertex[glindex2,4] = trapscales[glindex2] * (-0.959493, 0.281733) vertex[glindex2,5] = trapscales[glindex2] * (0.415415, -0.909632) vertex[glindex2,6] = trapscales[glindex2] * (0.415415, 0.909632) vertex[glindex2,7] = trapscales[glindex2] * (-0.959493, -0.281733) vertex[glindex2,8] = trapscales[glindex2] * (0.841254, -0.540641) vertex[glindex2,9] = trapscales[glindex2] * (-0.142315, 0.989821) vertex[glindex2,10] = trapscales[glindex2] * (-0.654861, -0.75575) vertex[glindex2,11] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 156 ; "11-gram 4" cursality[glindex2] = 1 numbervertices = 12 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 12 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (-0.959493, 0.281733) vertex[glindex2,2] = trapscales[glindex2] * (0.841254, -0.540641) vertex[glindex2,3] = trapscales[glindex2] * (-0.654861, 0.75575) vertex[glindex2,4] = trapscales[glindex2] * (0.415415, -0.909632) vertex[glindex2,5] = trapscales[glindex2] * (-0.142315, 0.989821) vertex[glindex2,6] = trapscales[glindex2] * (-0.142315, -0.989821) vertex[glindex2,7] = trapscales[glindex2] * (0.415415, 0.909632) vertex[glindex2,8] = trapscales[glindex2] * (-0.654861, -0.75575) vertex[glindex2,9] = trapscales[glindex2] * (0.841254, 0.540641) vertex[glindex2,10] = trapscales[glindex2] * (-0.959493, -0.281733) vertex[glindex2,11] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 158 ; "12-gram 1" cursality[glindex2] = 2 numbervertices = 14 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 7 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2,2] = trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2,3] = trapscales[glindex2] * (-1,0) vertex[glindex2,4] = trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2,5] = trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2,6] = trapscales[glindex2] * (1,0) vertex[glindex2,7] = trapscales[glindex2] * (0.866025, 0.5) vertex[glindex2,8] = trapscales[glindex2] * (0,1) vertex[glindex2,9] = trapscales[glindex2] * (-0.866025, 0.5) vertex[glindex2,10] = trapscales[glindex2] * (-0.866025, -0.5) vertex[glindex2,11] = trapscales[glindex2] * (0,-1) vertex[glindex2,12] = trapscales[glindex2] * (0.866025, -0.5) vertex[glindex2,13] = trapscales[glindex2] * (0.866025, 0.5) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 159 ; "12-gram 2" cursality[glindex2] = 3 numbervertices = 15 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 5 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (0,1) vertex[glindex2,2] = trapscales[glindex2] * (-1,0) vertex[glindex2,3] = trapscales[glindex2] * (0,-1) vertex[glindex2,4] = trapscales[glindex2] * (1,0) vertex[glindex2,5] = trapscales[glindex2] * (0.866025, 0.5) vertex[glindex2,6] = trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2,7] = trapscales[glindex2] * (-0.866025, -0.5) vertex[glindex2,8] = trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2,9] = trapscales[glindex2] * (0.866025, 0.5) vertex[glindex2,10] = trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2,11] = trapscales[glindex2] * (-0.866025, 0.5) vertex[glindex2,12] = trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2,13] = trapscales[glindex2] * (0.866025, -0.5) vertex[glindex2,14] = trapscales[glindex2] * (0.5, 0.866025) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 160 ; "12-gram 3" cursality[glindex2] = 4 numbervertices = 16 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2,2] = trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2,3] = trapscales[glindex2] * (1,0) vertex[glindex2,4] = trapscales[glindex2] * (0.866025, 0.5) vertex[glindex2,5] = trapscales[glindex2] * (-0.866025, 0.5) vertex[glindex2,6] = trapscales[glindex2] * (0,-1) vertex[glindex2,7] = trapscales[glindex2] * (0.866025, 0.5) vertex[glindex2,8] = trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2,9] = trapscales[glindex2] * (-1,0) vertex[glindex2,10] = trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2,11] = trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2,12] = trapscales[glindex2] * (0,1) vertex[glindex2,13] = trapscales[glindex2] * (-0.866025, -0.5) vertex[glindex2,14] = trapscales[glindex2] * (0.866025, -0.5) vertex[glindex2,15] = trapscales[glindex2] * (0,1) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 161 ; "12-gram 4" cursality[glindex2] = 1 numbervertices = 13 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 13 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (1,0) vertex[glindex2,1] = trapscales[glindex2] * (-0.866025, 0.5) vertex[glindex2,2] = trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2,3] = trapscales[glindex2] * (0,1) vertex[glindex2,4] = trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2,5] = trapscales[glindex2] * (0.866025, 0.5) vertex[glindex2,6] = trapscales[glindex2] * (-1,0) vertex[glindex2,7] = trapscales[glindex2] * (0.866025, -0.5) vertex[glindex2,8] = trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2,9] = trapscales[glindex2] * (0,-1) vertex[glindex2,10] = trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2,11] = trapscales[glindex2] * (-0.866025, -0.5) vertex[glindex2,12] = trapscales[glindex2] * (1,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 162 ; "12-gram 5" cursality[glindex2] = 1 numbervertices = 13 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 13 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.866025, 0.5) vertex[glindex2,1] = trapscales[glindex2] * (-0.375, -0.649519) vertex[glindex2,2] = trapscales[glindex2] * (0,1) vertex[glindex2,3] = trapscales[glindex2] * (0.375, -0.649519) vertex[glindex2,4] = trapscales[glindex2] * (-0.866025, 0.5) vertex[glindex2,5] = trapscales[glindex2] * (0.75,0) vertex[glindex2,6] = trapscales[glindex2] * (-0.866025, -0.5) vertex[glindex2,7] = trapscales[glindex2] * (0.375, 0.649519) vertex[glindex2,8] = trapscales[glindex2] * (0,-1) vertex[glindex2,9] = trapscales[glindex2] * (-0.375, 0.649519) vertex[glindex2,10] = trapscales[glindex2] * (0.866025, -0.5) vertex[glindex2,11] = trapscales[glindex2] * (-0.75,0) vertex[glindex2,12] = trapscales[glindex2] * (0.866025, 0.5) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 163 ; "11-star" cursality[glindex2] = 1 numbervertices = 23 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 23 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.5,0) vertex[glindex2,1] = @starspikiness * trapscales[glindex2] * (0.959493, 0.281733) vertex[glindex2,2] = trapscales[glindex2] * (0.420627, 0.27032) vertex[glindex2,3] = @starspikiness * trapscales[glindex2] * (0.654861, 0.75575) vertex[glindex2,4] = trapscales[glindex2] * (0.207708, 0.454816) vertex[glindex2,5] = @starspikiness * trapscales[glindex2] * (0.142315, 0.989821) vertex[glindex2,6] = trapscales[glindex2] * (-0.0711574, 0.494911) vertex[glindex2,7] = @starspikiness * trapscales[glindex2] * (-0.415415, 0.909632) vertex[glindex2,8] = trapscales[glindex2] * (-0.32743, 0.377875) vertex[glindex2,9] = @starspikiness * trapscales[glindex2] * (-0.841254, 0.540641) vertex[glindex2,10] = trapscales[glindex2] * (-0.479746, 0.140866) vertex[glindex2,11] = @starspikiness * trapscales[glindex2] * (-1,0) vertex[glindex2,12] = trapscales[glindex2] * (-0.479746, -0.140866) vertex[glindex2,13] = @starspikiness * trapscales[glindex2] * (-0.841254, -0.540641) vertex[glindex2,14] = trapscales[glindex2] * (-0.32743, -0.377875) vertex[glindex2,15] = @starspikiness * trapscales[glindex2] * (-0.415415, -0.909632) vertex[glindex2,16] = trapscales[glindex2] * (-0.0711574, -0.494911) vertex[glindex2,17] = @starspikiness * trapscales[glindex2] * (0.142315, -0.989821) vertex[glindex2,18] = trapscales[glindex2] * (0.207708, -0.454816) vertex[glindex2,19] = @starspikiness * trapscales[glindex2] * (0.654861, -0.75575) vertex[glindex2,20] = trapscales[glindex2] * (0.420627, -0.27032) vertex[glindex2,21] = @starspikiness * trapscales[glindex2] * (0.959493, -0.281733) vertex[glindex2,22] = trapscales[glindex2] * (0.5,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 165 ; "11-star 2" cursality[glindex2] = 1 numbervertices = 23 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 23 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.5,0) vertex[glindex2,1] = trapscales[glindex2] * (1,0) vertex[glindex2,2] = trapscales[glindex2] * (0.420627, 0.27032) vertex[glindex2,3] = trapscales[glindex2] * (0.841254, 0.540641) vertex[glindex2,4] = trapscales[glindex2] * (0.207708, 0.454816) vertex[glindex2,5] = trapscales[glindex2] * (0.415415, 0.909632) vertex[glindex2,6] = trapscales[glindex2] * (-0.0711574, 0.494911) vertex[glindex2,7] = trapscales[glindex2] * (-0.142315, 0.989821) vertex[glindex2,8] = trapscales[glindex2] * (-0.32743, 0.377875) vertex[glindex2,9] = trapscales[glindex2] * (-0.654861, 0.75575) vertex[glindex2,10] = trapscales[glindex2] * (-0.479746, 0.140866) vertex[glindex2,11] = trapscales[glindex2] * (-0.959493, 0.281733) vertex[glindex2,12] = trapscales[glindex2] * (-0.479746, -0.140866) vertex[glindex2,13] = trapscales[glindex2] * (-0.959493, -0.281733) vertex[glindex2,14] = trapscales[glindex2] * (-0.32743, -0.377875) vertex[glindex2,15] = trapscales[glindex2] * (-0.654861, -0.75575) vertex[glindex2,16] = trapscales[glindex2] * (-0.0711574, -0.494911) vertex[glindex2,17] = trapscales[glindex2] * (-0.142315, -0.989821) vertex[glindex2,18] = trapscales[glindex2] * (0.207708, -0.454816) vertex[glindex2,19] = trapscales[glindex2] * (0.415415, -0.909632) vertex[glindex2,20] = trapscales[glindex2] * (0.420627, -0.27032) vertex[glindex2,21] = trapscales[glindex2] * (0.841254, -0.540641) vertex[glindex2,22] = trapscales[glindex2] * (0.5,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 164 ; "11-asterisk" cursality[glindex2] = 11 numbervertices = 22 ; vertices only for open curves cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices vertex[glindex2,glindex] = (0,0) xcoord[glindex2,glindex + 1] = trapscales[glindex2] * cos(glindex * #pi / 11) ycoord[glindex2,glindex + 1] = trapscales[glindex2] * sin(glindex * #pi / 11) glindex = glindex + 1 vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex vertex[glindex2,1] = @leafAlength * vertex[glindex2,1] xcoord[glindex2,1] = real(vertex[glindex2,1]) ycoord[glindex2,1] = imag(vertex[glindex2,1]) vertex[glindex2,3] = @leafBlength * vertex[glindex2,3] xcoord[glindex2,3] = real(vertex[glindex2,3]) ycoord[glindex2,3] = imag(vertex[glindex2,3]) vertex[glindex2,5] = @leafClength * vertex[glindex2,5] xcoord[glindex2,5] = real(vertex[glindex2,5]) ycoord[glindex2,5] = imag(vertex[glindex2,5]) vertex[glindex2,7] = @leafDlength * vertex[glindex2,7] xcoord[glindex2,7] = real(vertex[glindex2,7]) ycoord[glindex2,7] = imag(vertex[glindex2,7]) vertex[glindex2,9] = @leafElength * vertex[glindex2,9] xcoord[glindex2,9] = real(vertex[glindex2,9]) ycoord[glindex2,9] = imag(vertex[glindex2,9]) vertex[glindex2,11] = @leafFlength * vertex[glindex2,11] xcoord[glindex2,11] = real(vertex[glindex2,11]) ycoord[glindex2,11] = imag(vertex[glindex2,11]) vertex[glindex2,13] = @leafGlength * vertex[glindex2,13] xcoord[glindex2,13] = real(vertex[glindex2,13]) ycoord[glindex2,13] = imag(vertex[glindex2,13]) vertex[glindex2,15] = @leafHlength * vertex[glindex2,15] xcoord[glindex2,15] = real(vertex[glindex2,15]) ycoord[glindex2,15] = imag(vertex[glindex2,15]) vertex[glindex2,17] = @leafIlength * vertex[glindex2,17] xcoord[glindex2,17] = real(vertex[glindex2,17]) ycoord[glindex2,17] = imag(vertex[glindex2,17]) vertex[glindex2,19] = @leafJlength * vertex[glindex2,19] xcoord[glindex2,19] = real(vertex[glindex2,19]) ycoord[glindex2,19] = imag(vertex[glindex2,19]) vertex[glindex2,21] = @leafKlength * vertex[glindex2,21] xcoord[glindex2,21] = real(vertex[glindex2,21]) ycoord[glindex2,21] = imag(vertex[glindex2,21]) elseif traparray[glindex2] == 166 ; "12-star" cursality[glindex2] = 1 numbervertices = 25 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 25 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.5,0) vertex[glindex2,1] = @starspikiness * trapscales[glindex2] * (0.965926, 0.258819) vertex[glindex2,2] = trapscales[glindex2] * (0.433013, 0.25) vertex[glindex2,3] = @starspikiness * trapscales[glindex2] * (0.707107, 0.707107) vertex[glindex2,4] = trapscales[glindex2] * (0.25, 0.433013) vertex[glindex2,5] = @starspikiness * trapscales[glindex2] * (0.258819, 0.965926) vertex[glindex2,6] = trapscales[glindex2] * (0,0.5) vertex[glindex2,7] = @starspikiness * trapscales[glindex2] * (-0.258819, 0.965926) vertex[glindex2,8] = trapscales[glindex2] * (-0.25, 0.433013) vertex[glindex2,9] = @starspikiness * trapscales[glindex2] * (-0.707107, 0.707107) vertex[glindex2,10] = trapscales[glindex2] * (-0.433013, 0.25) vertex[glindex2,11] = @starspikiness * trapscales[glindex2] * (-0.965926, 0.258819) vertex[glindex2,12] = trapscales[glindex2] * (-0.5, 0) vertex[glindex2,13] = @starspikiness * trapscales[glindex2] * (-0.965926, -0.258819) vertex[glindex2,14] = trapscales[glindex2] * (-0.433013, -0.25) vertex[glindex2,15] = @starspikiness * trapscales[glindex2] * (-0.707107, -0.707107) vertex[glindex2,16] = trapscales[glindex2] * (-0.25, -0.433013) vertex[glindex2,17] = @starspikiness * trapscales[glindex2] * (-0.258819, -0.965926) vertex[glindex2,18] = trapscales[glindex2] * (0,-0.5) vertex[glindex2,19] = @starspikiness * trapscales[glindex2] * (0.258819, -0.965926) vertex[glindex2,20] = trapscales[glindex2] * (0.25, -0.433013) vertex[glindex2,21] = @starspikiness * trapscales[glindex2] * (0.707107, -0.707107) vertex[glindex2,22] = trapscales[glindex2] * (0.433013, -0.25) vertex[glindex2,23] = @starspikiness * trapscales[glindex2] * (0.965926, -0.258819) vertex[glindex2,24] = trapscales[glindex2] * (0.5,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 167 ; "12-star 2" cursality[glindex2] = 1 numbervertices = 25 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 25 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.5,0) vertex[glindex2,1] = trapscales[glindex2] * (1,0) vertex[glindex2,2] = trapscales[glindex2] * (0.433013, 0.25) vertex[glindex2,3] = trapscales[glindex2] * (0.866025, 0.5) vertex[glindex2,4] = trapscales[glindex2] * (0.25, 0.433013) vertex[glindex2,5] = trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2,6] = trapscales[glindex2] * (0,0.5) vertex[glindex2,7] = trapscales[glindex2] * (0,1) vertex[glindex2,8] = trapscales[glindex2] * (-0.25, 0.433013) vertex[glindex2,9] = trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2,10] = trapscales[glindex2] * (-0.433013, 0.25) vertex[glindex2,11] = trapscales[glindex2] * (-0.866025, 0.5) vertex[glindex2,12] = trapscales[glindex2] * (-0.5,0) vertex[glindex2,13] = trapscales[glindex2] * (-1,0) vertex[glindex2,14] = trapscales[glindex2] * (-0.433013, -0.25) vertex[glindex2,15] = trapscales[glindex2] * (-0.866025, -0.5) vertex[glindex2,16] = trapscales[glindex2] * (-0.25, -0.433013) vertex[glindex2,17] = trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2,18] = trapscales[glindex2] * (0,-0.5) vertex[glindex2,19] = trapscales[glindex2] * (0,-1) vertex[glindex2,20] = trapscales[glindex2] * (0.25, -0.433013) vertex[glindex2,21] = trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2,22] = trapscales[glindex2] * (0.433013, -0.25) vertex[glindex2,23] = trapscales[glindex2] * (0.866025, -0.5) vertex[glindex2,24] = trapscales[glindex2] * (0.5,0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 168 ; "12-asterisk" cursality[glindex2] = 12 numbervertices = 24 ; vertices only for open curves cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices vertex[glindex2,glindex] = (0,0) xcoord[glindex2,glindex + 1] = trapscales[glindex2] * cos(glindex * #pi / 12) ycoord[glindex2,glindex + 1] = trapscales[glindex2] * sin(glindex * #pi / 12) glindex = glindex + 1 vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex vertex[glindex2,1] = @leafAlength * vertex[glindex2,1] xcoord[glindex2,1] = real(vertex[glindex2,1]) ycoord[glindex2,1] = imag(vertex[glindex2,1]) vertex[glindex2,3] = @leafBlength * vertex[glindex2,3] xcoord[glindex2,3] = real(vertex[glindex2,3]) ycoord[glindex2,3] = imag(vertex[glindex2,3]) vertex[glindex2,5] = @leafClength * vertex[glindex2,5] xcoord[glindex2,5] = real(vertex[glindex2,5]) ycoord[glindex2,5] = imag(vertex[glindex2,5]) vertex[glindex2,7] = @leafDlength * vertex[glindex2,7] xcoord[glindex2,7] = real(vertex[glindex2,7]) ycoord[glindex2,7] = imag(vertex[glindex2,7]) vertex[glindex2,9] = @leafElength * vertex[glindex2,9] xcoord[glindex2,9] = real(vertex[glindex2,9]) ycoord[glindex2,9] = imag(vertex[glindex2,9]) vertex[glindex2,11] = @leafFlength * vertex[glindex2,11] xcoord[glindex2,11] = real(vertex[glindex2,11]) ycoord[glindex2,11] = imag(vertex[glindex2,11]) vertex[glindex2,13] = @leafGlength * vertex[glindex2,13] xcoord[glindex2,13] = real(vertex[glindex2,13]) ycoord[glindex2,13] = imag(vertex[glindex2,13]) vertex[glindex2,15] = @leafHlength * vertex[glindex2,15] xcoord[glindex2,15] = real(vertex[glindex2,15]) ycoord[glindex2,15] = imag(vertex[glindex2,15]) vertex[glindex2,17] = @leafIlength * vertex[glindex2,17] xcoord[glindex2,17] = real(vertex[glindex2,17]) ycoord[glindex2,17] = imag(vertex[glindex2,17]) vertex[glindex2,19] = @leafJlength * vertex[glindex2,19] xcoord[glindex2,19] = real(vertex[glindex2,19]) ycoord[glindex2,19] = imag(vertex[glindex2,19]) vertex[glindex2,21] = @leafKlength * vertex[glindex2,21] xcoord[glindex2,21] = real(vertex[glindex2,21]) ycoord[glindex2,21] = imag(vertex[glindex2,21]) vertex[glindex2,23] = @leafLlength * vertex[glindex2,23] xcoord[glindex2,23] = real(vertex[glindex2,23]) ycoord[glindex2,23] = imag(vertex[glindex2,23]) elseif traparray[glindex2] == 169 ; "1,1,1,2,3;1/2" cursality[glindex2] = 1 numbervertices = 21 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 21 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.5, -0.25) vertex[glindex2,1] = trapscales[glindex2] * (-0.25, -0.25) vertex[glindex2,2] = trapscales[glindex2] * (-0.25, 0) vertex[glindex2,3] = trapscales[glindex2] * (-0.5, 0) vertex[glindex2,4] = trapscales[glindex2] * (-0.5, -0.5) vertex[glindex2,5] = trapscales[glindex2] * (0.25, -0.5) vertex[glindex2,6] = trapscales[glindex2] * (0.25, -0.25) vertex[glindex2,7] = trapscales[glindex2] * (0., -0.25) vertex[glindex2,8] = trapscales[glindex2] * (0., -0.5) vertex[glindex2,9] = trapscales[glindex2] * (0.5, -0.5) vertex[glindex2,10] = trapscales[glindex2] * (0.5, 0.25) vertex[glindex2,11] = trapscales[glindex2] * (0.25, 0.25) vertex[glindex2,12] = trapscales[glindex2] * (0.25, 0) vertex[glindex2,13] = trapscales[glindex2] * (0.5, 0) vertex[glindex2,14] = trapscales[glindex2] * (0.5, 0.5) vertex[glindex2,15] = trapscales[glindex2] * (-0.25, 0.5) vertex[glindex2,16] = trapscales[glindex2] * (-0.25, 0.25) vertex[glindex2,17] = trapscales[glindex2] * (0., 0.25) vertex[glindex2,18] = trapscales[glindex2] * (0., 0.5) vertex[glindex2,19] = trapscales[glindex2] * (-0.5, 0.5) vertex[glindex2,20] = trapscales[glindex2] * (-0.5, -0.25) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 170 ; "1,1,2,1,3;1/2" cursality[glindex2] = 1 numbervertices = 21 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 21 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.25, -0.25) vertex[glindex2,1] = trapscales[glindex2] * (0., -0.25) vertex[glindex2,2] = trapscales[glindex2] * (0, 0) vertex[glindex2,3] = trapscales[glindex2] * (-0.5, 0) vertex[glindex2,4] = trapscales[glindex2] * (-0.5, -0.25) vertex[glindex2,5] = trapscales[glindex2] * (0.25, -0.25) vertex[glindex2,6] = trapscales[glindex2] * (0.25, 0) vertex[glindex2,7] = trapscales[glindex2] * (0,0) vertex[glindex2,8] = trapscales[glindex2] * (0, -0.5) vertex[glindex2,9] = trapscales[glindex2] * (0.25, -0.5) vertex[glindex2,10] = trapscales[glindex2] * (0.25, 0.25) vertex[glindex2,11] = trapscales[glindex2] * (0., 0.25) vertex[glindex2,12] = trapscales[glindex2] * (0, 0) vertex[glindex2,13] = trapscales[glindex2] * (0.5, 0) vertex[glindex2,14] = trapscales[glindex2] * (0.5, 0.25) vertex[glindex2,15] = trapscales[glindex2] * (-0.25, 0.25) vertex[glindex2,16] = trapscales[glindex2] * (-0.25, 0) vertex[glindex2,17] = trapscales[glindex2] * (0., 0) vertex[glindex2,18] = trapscales[glindex2] * (0., 0.5) vertex[glindex2,19] = trapscales[glindex2] * (-0.25, 0.5) vertex[glindex2,20] = trapscales[glindex2] * (-0.25, -0.25) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 171 ; "1,1,2,2,4;1/2" cursality[glindex2] = 1 numbervertices = 21 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 21 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.333333, -0.166667) vertex[glindex2,1] = trapscales[glindex2] * (-0.166667, -0.166667) vertex[glindex2,2] = trapscales[glindex2] * (-0.166667, 0) vertex[glindex2,3] = trapscales[glindex2] * (-0.5, 0) vertex[glindex2,4] = trapscales[glindex2] * (-0.5, -0.333333) vertex[glindex2,5] = trapscales[glindex2] * (0.166667, -0.333333) vertex[glindex2,6] = trapscales[glindex2] * (0.166667, -0.166667) vertex[glindex2,7] = trapscales[glindex2] * (0., -0.166667) vertex[glindex2,8] = trapscales[glindex2] * (0., -0.5) vertex[glindex2,9] = trapscales[glindex2] * (0.333333, -0.5) vertex[glindex2,10] = trapscales[glindex2] * (0.333333, 0.166667) vertex[glindex2,11] = trapscales[glindex2] * (0.166667, 0.166667) vertex[glindex2,12] = trapscales[glindex2] * (0.166667, 0) vertex[glindex2,13] = trapscales[glindex2] * (0.5, 0) vertex[glindex2,14] = trapscales[glindex2] * (0.5, 0.333333) vertex[glindex2,15] = trapscales[glindex2] * (-0.166667, 0.333333) vertex[glindex2,16] = trapscales[glindex2] * (-0.166667, 0.166667) vertex[glindex2,17] = trapscales[glindex2] * (0., 0.166667) vertex[glindex2,18] = trapscales[glindex2] * (0., 0.5) vertex[glindex2,19] = trapscales[glindex2] * (-0.333333, 0.5) vertex[glindex2,20] = trapscales[glindex2] * (-0.333333, -0.166667) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 172 ; "1,1,4,5,4;1/2" cursality[glindex2] = 1 numbervertices = 21 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 21 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.227273, 0.136364) vertex[glindex2,1] = trapscales[glindex2] * (-0.136364, 0.136364) vertex[glindex2,2] = trapscales[glindex2] * (-0.136364, 0.227273) vertex[glindex2,3] = trapscales[glindex2] * (-0.5, 0.227273) vertex[glindex2,4] = trapscales[glindex2] * (-0.5, -0.227273) vertex[glindex2,5] = trapscales[glindex2] * (-0.136364, -0.227273) vertex[glindex2,6] = trapscales[glindex2] * (-0.136364, -0.136364) vertex[glindex2,7] = trapscales[glindex2] * (-0.227273, -0.136364) vertex[glindex2,8] = trapscales[glindex2] * (-0.227273, -0.5) vertex[glindex2,9] = trapscales[glindex2] * (0.227273, -0.5) vertex[glindex2,10] = trapscales[glindex2] * (0.227273, -0.136364) vertex[glindex2,11] = trapscales[glindex2] * (0.136364, -0.136364) vertex[glindex2,12] = trapscales[glindex2] * (0.136364, -0.227273) vertex[glindex2,13] = trapscales[glindex2] * (0.5, -0.227273) vertex[glindex2,14] = trapscales[glindex2] * (0.5, 0.227273) vertex[glindex2,15] = trapscales[glindex2] * (0.136364, 0.227273) vertex[glindex2,16] = trapscales[glindex2] * (0.136364, 0.136364) vertex[glindex2,17] = trapscales[glindex2] * (0.227273, 0.136364) vertex[glindex2,18] = trapscales[glindex2] * (0.227273, 0.5) vertex[glindex2,19] = trapscales[glindex2] * (-0.227273, 0.5) vertex[glindex2,20] = trapscales[glindex2] * (-0.227273, 0.136364) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 173 ; "1,2,2,2,5;1/2" cursality[glindex2] = 1 numbervertices = 21 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 21 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.333333, -0.333333) vertex[glindex2,1] = trapscales[glindex2] * (-0.166667, -0.333333) vertex[glindex2,2] = trapscales[glindex2] * (-0.166667, 0) vertex[glindex2,3] = trapscales[glindex2] * (-0.5, 0) vertex[glindex2,4] = trapscales[glindex2] * (-0.5, -0.333333) vertex[glindex2,5] = trapscales[glindex2] * (0.333333, -0.333333) vertex[glindex2,6] = trapscales[glindex2] * (0.333333, -0.166667) vertex[glindex2,7] = trapscales[glindex2] * (0., -0.166667) vertex[glindex2,8] = trapscales[glindex2] * (0., -0.5) vertex[glindex2,9] = trapscales[glindex2] * (0.333333, -0.5) vertex[glindex2,10] = trapscales[glindex2] * (0.333333, 0.333333) vertex[glindex2,11] = trapscales[glindex2] * (0.166667, 0.333333) vertex[glindex2,12] = trapscales[glindex2] * (0.166667, 0) vertex[glindex2,13] = trapscales[glindex2] * (0.5, 0) vertex[glindex2,14] = trapscales[glindex2] * (0.5, 0.333333) vertex[glindex2,15] = trapscales[glindex2] * (-0.333333, 0.333333) vertex[glindex2,16] = trapscales[glindex2] * (-0.333333, 0.166667) vertex[glindex2,17] = trapscales[glindex2] * (0., 0.166667) vertex[glindex2,18] = trapscales[glindex2] * (0., 0.5) vertex[glindex2,19] = trapscales[glindex2] * (-0.333333, 0.5) vertex[glindex2,20] = trapscales[glindex2] * (-0.333333, -0.333333) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 174 ; "1,2,5,3,5;1/2" cursality[glindex2] = 1 numbervertices = 21 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 21 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.1,0) vertex[glindex2,1] = trapscales[glindex2] * (0,0) vertex[glindex2,2] = trapscales[glindex2] * (0,0.2) vertex[glindex2,3] = trapscales[glindex2] * (-0.5, 0.2) vertex[glindex2,4] = trapscales[glindex2] * (-0.5, -0.1) vertex[glindex2,5] = trapscales[glindex2] * (0., -0.1) vertex[glindex2,6] = trapscales[glindex2] * (0,0) vertex[glindex2,7] = trapscales[glindex2] * (-0.2, 0) vertex[glindex2,8] = trapscales[glindex2] * (-0.2, -0.5) vertex[glindex2,9] = trapscales[glindex2] * (0.1, -0.5) vertex[glindex2,10] = trapscales[glindex2] * (0.1, 0) vertex[glindex2,11] = trapscales[glindex2] * (0,0) vertex[glindex2,12] = trapscales[glindex2] * (0., -0.2) vertex[glindex2,13] = trapscales[glindex2] * (0.5, -0.2) vertex[glindex2,14] = trapscales[glindex2] * (0.5, 0.1) vertex[glindex2,15] = trapscales[glindex2] * (0., 0.1) vertex[glindex2,16] = trapscales[glindex2] * (0,0) vertex[glindex2,17] = trapscales[glindex2] * (0.2, 0) vertex[glindex2,18] = trapscales[glindex2] * (0.2, 0.5) vertex[glindex2,19] = trapscales[glindex2] * (-0.1, 0.5) vertex[glindex2,20] = trapscales[glindex2] * (-0.1, 0) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 175 ; "2,2,1,4,3;1/2" cursality[glindex2] = 1 numbervertices = 21 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 21 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0., -0.166667) vertex[glindex2,1] = trapscales[glindex2] * (0.333333, -0.166667) vertex[glindex2,2] = trapscales[glindex2] * (0.333333, 0.166667) vertex[glindex2,3] = trapscales[glindex2] * (0.166667, 0.166667) vertex[glindex2,4] = trapscales[glindex2] * (0.166667, -0.5) vertex[glindex2,5] = trapscales[glindex2] * (0.666667, -0.5) vertex[glindex2,6] = trapscales[glindex2] * (0.666667, -0.166667) vertex[glindex2,7] = trapscales[glindex2] * (0.333333, -0.166667) vertex[glindex2,8] = trapscales[glindex2] * (0.333333, -0.333333) vertex[glindex2,9] = trapscales[glindex2] * (1., -0.333333) vertex[glindex2,10] = trapscales[glindex2] * (1., 0.166667) vertex[glindex2,11] = trapscales[glindex2] * (0.666667, 0.166667) vertex[glindex2,12] = trapscales[glindex2] * (0.666667, -0.166667) vertex[glindex2,13] = trapscales[glindex2] * (0.833333, -0.166667) vertex[glindex2,14] = trapscales[glindex2] * (0.833333, 0.5) vertex[glindex2,15] = trapscales[glindex2] * (0.333333, 0.5) vertex[glindex2,16] = trapscales[glindex2] * (0.333333, 0.166667) vertex[glindex2,17] = trapscales[glindex2] * (0.666667, 0.166667) vertex[glindex2,18] = trapscales[glindex2] * (0.666667, 0.333333) vertex[glindex2,19] = trapscales[glindex2] * (0., 0.333333) vertex[glindex2,20] = trapscales[glindex2] * (0., -0.166667) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 176 ; "2,2,4,4,3;1/2" cursality[glindex2] = 1 numbervertices = 21 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 21 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.214286, 0.0714286) vertex[glindex2,1] = trapscales[glindex2] * (0.0714286, 0.0714286) vertex[glindex2,2] = trapscales[glindex2] * (0.0714286, 0.357143) vertex[glindex2,3] = trapscales[glindex2] * (-0.5, 0.357143) vertex[glindex2,4] = trapscales[glindex2] * (-0.5, -0.214286) vertex[glindex2,5] = trapscales[glindex2] * (-0.0714286, -0.214286) vertex[glindex2,6] = trapscales[glindex2] * (-0.0714286, 0.0714286) vertex[glindex2,7] = trapscales[glindex2] * (-0.357143, 0.0714286) vertex[glindex2,8] = trapscales[glindex2] * (-0.357143, -0.5) vertex[glindex2,9] = trapscales[glindex2] * (0.214286, -0.5) vertex[glindex2,10] = trapscales[glindex2] * (0.214286, -0.0714286) vertex[glindex2,11] = trapscales[glindex2] * (-0.0714286, -0.0714286) vertex[glindex2,12] = trapscales[glindex2] * (-0.0714286, -0.357143) vertex[glindex2,13] = trapscales[glindex2] * (0.5, -0.357143) vertex[glindex2,14] = trapscales[glindex2] * (0.5, 0.214286) vertex[glindex2,15] = trapscales[glindex2] * (0.0714286, 0.214286) vertex[glindex2,16] = trapscales[glindex2] * (0.0714286, -0.0714286) vertex[glindex2,17] = trapscales[glindex2] * (0.357143, -0.0714286) vertex[glindex2,18] = trapscales[glindex2] * (0.357143, 0.5) vertex[glindex2,19] = trapscales[glindex2] * (-0.214286, 0.5) vertex[glindex2,20] = trapscales[glindex2] * (-0.214286, 0.0714286) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 177 ; "2,3,5,3,2;1/2" cursality[glindex2] = 1 numbervertices = 21 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 21 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.5, -0.357143) vertex[glindex2,1] = trapscales[glindex2] * (0.785714, -0.357143) vertex[glindex2,2] = trapscales[glindex2] * (0.785714, 0.0714286) vertex[glindex2,3] = trapscales[glindex2] * (0.0714286, 0.0714286) vertex[glindex2,4] = trapscales[glindex2] * (0.0714286, -0.357143) vertex[glindex2,5] = trapscales[glindex2] * (0.357143, -0.357143) vertex[glindex2,6] = trapscales[glindex2] * (0.357143, -0.0714286) vertex[glindex2,7] = trapscales[glindex2] * (-0.0714286, -0.0714286) vertex[glindex2,8] = trapscales[glindex2] * (-0.0714286, -0.785714) vertex[glindex2,9] = trapscales[glindex2] * (0.357143, -0.785714) vertex[glindex2,10] = trapscales[glindex2] * (0.357143, -0.5) vertex[glindex2,11] = trapscales[glindex2] * (0.0714286, -0.5) vertex[glindex2,12] = trapscales[glindex2] * (0.0714286, -0.928571) vertex[glindex2,13] = trapscales[glindex2] * (0.785714, -0.928571) vertex[glindex2,14] = trapscales[glindex2] * (0.785714, -0.5) vertex[glindex2,15] = trapscales[glindex2] * (0.5, -0.5) vertex[glindex2,16] = trapscales[glindex2] * (0.5, -0.785714) vertex[glindex2,17] = trapscales[glindex2] * (0.928571, -0.785714) vertex[glindex2,18] = trapscales[glindex2] * (0.928571, -0.0714286) vertex[glindex2,19] = trapscales[glindex2] * (0.5, -0.0714286) vertex[glindex2,20] = trapscales[glindex2] * (0.5, -0.357143) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 178 ; "1,6,6,6;1/4,1/4,-5/6" cursality[glindex2] = 1 numbervertices = 37 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 37 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.166667, 0.2) vertex[glindex2,1] = trapscales[glindex2] * (-0.133333, 0.2) vertex[glindex2,2] = trapscales[glindex2] * (0.00808802, 0.341421) vertex[glindex2,3] = trapscales[glindex2] * (0.00808802, 0.541421) vertex[glindex2,4] = trapscales[glindex2] * (0.108088, 0.368216) vertex[glindex2,5] = trapscales[glindex2] * (0.140286, 0.359589) vertex[glindex2,6] = trapscales[glindex2] * (0.313491, 0.459589) vertex[glindex2,7] = trapscales[glindex2] * (0.213491, 0.286384) vertex[glindex2,8] = trapscales[glindex2] * (0.265254, 0.0931987) vertex[glindex2,9] = trapscales[glindex2] * (0.294122, 0.0765321) vertex[glindex2,10] = trapscales[glindex2] * (0.094122, 0.0765321) vertex[glindex2,11] = trapscales[glindex2] * (-0.0472994, -0.0648893) vertex[glindex2,12] = trapscales[glindex2] * (-0.0472994, -0.264889) vertex[glindex2,13] = trapscales[glindex2] * (-0.0639661, -0.236022) vertex[glindex2,14] = trapscales[glindex2] * (-0.257151, -0.184258) vertex[glindex2,15] = trapscales[glindex2] * (-0.430356, -0.284258) vertex[glindex2,16] = trapscales[glindex2] * (-0.330356, -0.111053) vertex[glindex2,17] = trapscales[glindex2] * (-0.338984, -0.0788554) vertex[glindex2,18] = trapscales[glindex2] * (-0.512189, 0.0211446) vertex[glindex2,19] = trapscales[glindex2] * (-0.312189, 0.0211446) vertex[glindex2,20] = trapscales[glindex2] * (-0.170767, 0.162566) vertex[glindex2,21] = trapscales[glindex2] * (-0.170767, 0.195899) vertex[glindex2,22] = trapscales[glindex2] * (-0.0707673, 0.0226942) vertex[glindex2,23] = trapscales[glindex2] * (0.122418, -0.0290696) vertex[glindex2,24] = trapscales[glindex2] * (0.295623, 0.0709304) vertex[glindex2,25] = trapscales[glindex2] * (0.278956, 0.0420629) vertex[glindex2,26] = trapscales[glindex2] * (0.33072, -0.151122) vertex[glindex2,27] = trapscales[glindex2] * (0.503925, -0.251122) vertex[glindex2,28] = trapscales[glindex2] * (0.303925, -0.251122) vertex[glindex2,29] = trapscales[glindex2] * (0.280355, -0.274692) vertex[glindex2,30] = trapscales[glindex2] * (0.280355, -0.474692) vertex[glindex2,31] = trapscales[glindex2] * (0.180355, -0.301487) vertex[glindex2,32] = trapscales[glindex2] * (-0.0128303, -0.249724) vertex[glindex2,33] = trapscales[glindex2] * (-0.0416978, -0.26639) vertex[glindex2,34] = trapscales[glindex2] * (0.0583022, -0.0931852) vertex[glindex2,35] = trapscales[glindex2] * (0.00653841, 0.1) vertex[glindex2,36] = trapscales[glindex2] * (-0.166667, 0.2) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 179 ; "1,6,6,1;3/4,-1/4,-1/6" cursality[glindex2] = 1 numbervertices = 37 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 37 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.235294, -0.470588) vertex[glindex2,1] = trapscales[glindex2] * (-0.176471, -0.470588) vertex[glindex2,2] = trapscales[glindex2] * (-0.426038, -0.221021) vertex[glindex2,3] = trapscales[glindex2] * (-0.426038, 0.13192) vertex[glindex2,4] = trapscales[glindex2] * (-0.484861, 0.0300347) vertex[glindex2,5] = trapscales[glindex2] * (-0.428042, 0.0452593) vertex[glindex2,6] = trapscales[glindex2] * (-0.122386, -0.131211) vertex[glindex2,7] = trapscales[glindex2] * (-0.298857, 0.174445) vertex[glindex2,8] = trapscales[glindex2] * (-0.329306, 0.0608065) vertex[glindex2,9] = trapscales[glindex2] * (-0.380249, 0.0313947) vertex[glindex2,10] = trapscales[glindex2] * (-0.0273074, 0.0313947) vertex[glindex2,11] = trapscales[glindex2] * (-0.276875, 0.280962) vertex[glindex2,12] = trapscales[glindex2] * (-0.276875, 0.398609) vertex[glindex2,13] = trapscales[glindex2] * (-0.306286, 0.347666) vertex[glindex2,14] = trapscales[glindex2] * (0.0346287, 0.439014) vertex[glindex2,15] = trapscales[glindex2] * (0.340285, 0.262543) vertex[glindex2,16] = trapscales[glindex2] * (0.281461, 0.364429) vertex[glindex2,17] = trapscales[glindex2] * (0.266237, 0.30761) vertex[glindex2,18] = trapscales[glindex2] * (-0.0394195, 0.131139) vertex[glindex2,19] = trapscales[glindex2] * (0.313522, 0.131139) vertex[glindex2,20] = trapscales[glindex2] * (0.230333, 0.214328) vertex[glindex2,21] = trapscales[glindex2] * (0.230333, 0.273152) vertex[glindex2,22] = trapscales[glindex2] * (0.0538621, -0.0325044) vertex[glindex2,23] = trapscales[glindex2] * (0.394777, 0.0588435) vertex[glindex2,24] = trapscales[glindex2] * (0.496662, 0.0000199788) vertex[glindex2,25] = trapscales[glindex2] * (0.467251, 0.0509626) vertex[glindex2,26] = trapscales[glindex2] * (0.375903, -0.289952) vertex[glindex2,27] = trapscales[glindex2] * (0.0702468, -0.466423) vertex[glindex2,28] = trapscales[glindex2] * (0.187894, -0.466423) vertex[glindex2,29] = trapscales[glindex2] * (0.146299, -0.424828) vertex[glindex2,30] = trapscales[glindex2] * (0.146299, -0.0718872) vertex[glindex2,31] = trapscales[glindex2] * (-0.0301713, -0.377543) vertex[glindex2,32] = trapscales[glindex2] * (0.083467, -0.347094) vertex[glindex2,33] = trapscales[glindex2] * (0.13441, -0.376506) vertex[glindex2,34] = trapscales[glindex2] * (-0.0420609, -0.0708497) vertex[glindex2,35] = trapscales[glindex2] * (-0.133409, -0.411765) vertex[glindex2,36] = trapscales[glindex2] * (-0.235294, -0.470588) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 180 ; "1,2,1,3;-4/5" cursality[glindex2] = 1 numbervertices = 21 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 21 ; numbervertices/cursality[glindex2] scratchfloat = 1/3 ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.8, 1.5) * scratchfloat vertex[glindex2,1] = trapscales[glindex2] * (0.2, 1.5) * scratchfloat vertex[glindex2,2] = trapscales[glindex2] * (-1.41803, 0.324429) * scratchfloat vertex[glindex2,3] = trapscales[glindex2] * (-1.10902, 1.27549) * scratchfloat vertex[glindex2,4] = trapscales[glindex2] * (-0.181966, -1.57768) * scratchfloat vertex[glindex2,5] = trapscales[glindex2] * (-0.990983, -0.989898) * scratchfloat vertex[glindex2,6] = trapscales[glindex2] * (1.00902, -0.989898) * scratchfloat vertex[glindex2,7] = trapscales[glindex2] * (0.2, -1.57768) * scratchfloat vertex[glindex2,8] = trapscales[glindex2] * (1.12705, 1.27549) * scratchfloat vertex[glindex2,9] = trapscales[glindex2] * (1.43607, 0.324429) * scratchfloat vertex[glindex2,10] = trapscales[glindex2] * (-0.181966, 1.5) * scratchfloat vertex[glindex2,11] = trapscales[glindex2] * (0.818034, 1.5) * scratchfloat vertex[glindex2,12] = trapscales[glindex2] * (-1.60902, -0.263356) * scratchfloat vertex[glindex2,13] = trapscales[glindex2] * (-1.3, 0.687701) * scratchfloat vertex[glindex2,14] = trapscales[glindex2] * (-0.681966, -1.21441) * scratchfloat vertex[glindex2,15] = trapscales[glindex2] * (-1.49098, -0.626627) * scratchfloat vertex[glindex2,16] = trapscales[glindex2] * (1.50902, -0.626627) * scratchfloat vertex[glindex2,17] = trapscales[glindex2] * (0.7, -1.21441) * scratchfloat vertex[glindex2,18] = trapscales[glindex2] * (1.31803, 0.687701) * scratchfloat vertex[glindex2,19] = trapscales[glindex2] * (1.62705, -0.263356) * scratchfloat vertex[glindex2,20] = trapscales[glindex2] * (-0.8, 1.5) * scratchfloat glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 181 ; "1,2,1,3;-4/5,-4/5,0" cursality[glindex2] = 1 numbervertices = 61 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 61 ; numbervertices/cursality[glindex2] scratchfloat = 1/6 ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.0, 0.1) * scratchfloat vertex[glindex2,1] = trapscales[glindex2] * (1, 0.1) * scratchfloat vertex[glindex2,2] = trapscales[glindex2] * (-0.618034, -1.07557) * scratchfloat vertex[glindex2,3] = trapscales[glindex2] * (-0.309017, -0.124514) * scratchfloat vertex[glindex2,4] = trapscales[glindex2] * (0.618034, 2.72866) * scratchfloat vertex[glindex2,5] = trapscales[glindex2] * (0.927051, 1.7776) * scratchfloat vertex[glindex2,6] = trapscales[glindex2] * (-0.690983, 2.95317) * scratchfloat vertex[glindex2,7] = trapscales[glindex2] * (-1.5, 3.54095) * scratchfloat vertex[glindex2,8] = trapscales[glindex2] * (1.5, 3.54095) * scratchfloat vertex[glindex2,9] = trapscales[glindex2] * (0.690983, 2.95317) * scratchfloat vertex[glindex2,10] = trapscales[glindex2] * (-0.927051, 1.7776) * scratchfloat vertex[glindex2,11] = trapscales[glindex2] * (-0.618034, 2.72866) * scratchfloat vertex[glindex2,12] = trapscales[glindex2] * (0.309017, -0.124514) * scratchfloat vertex[glindex2,13] = trapscales[glindex2] * (0.618034, -1.07557) * scratchfloat vertex[glindex2,14] = trapscales[glindex2] * (-1., 0.1) * scratchfloat vertex[glindex2,15] = trapscales[glindex2] * (0., 0.1) * scratchfloat vertex[glindex2,16] = trapscales[glindex2] * (3., 0.1) * scratchfloat vertex[glindex2,17] = trapscales[glindex2] * (2.19098, -0.487785) * scratchfloat vertex[glindex2,18] = trapscales[glindex2] * (2.80902, 1.41433) * scratchfloat vertex[glindex2,19] = trapscales[glindex2] * (3.11803, 2.36538) * scratchfloat vertex[glindex2,20] = trapscales[glindex2] * (4.04508, -0.487785) * scratchfloat vertex[glindex2,21] = trapscales[glindex2] * (3.23607, 0.1) * scratchfloat vertex[glindex2,22] = trapscales[glindex2] * (1.61803, 1.27557) * scratchfloat vertex[glindex2,23] = trapscales[glindex2] * (2.61803, 1.27557) * scratchfloat vertex[glindex2,24] = trapscales[glindex2] * (0.190983, -0.487785) * scratchfloat vertex[glindex2,25] = trapscales[glindex2] * (-0.618034, -1.07557) * scratchfloat vertex[glindex2,26] = trapscales[glindex2] * (0., 0.826543) * scratchfloat vertex[glindex2,27] = trapscales[glindex2] * (0.309017, -0.124514) * scratchfloat vertex[glindex2,28] = trapscales[glindex2] * (1.23607, -2.97768) * scratchfloat vertex[glindex2,29] = trapscales[glindex2] * (0.427051, -2.3899) * scratchfloat vertex[glindex2,30] = trapscales[glindex2] * (2.42705, -2.3899) * scratchfloat vertex[glindex2,31] = trapscales[glindex2] * (3.42705, -2.3899) * scratchfloat vertex[glindex2,32] = trapscales[glindex2] * (1., -4.15325) * scratchfloat vertex[glindex2,33] = trapscales[glindex2] * (1.30902, -3.2022) * scratchfloat vertex[glindex2,34] = trapscales[glindex2] * (1.92705, -1.30008) * scratchfloat vertex[glindex2,35] = trapscales[glindex2] * (2.23607, -2.25114) * scratchfloat vertex[glindex2,36] = trapscales[glindex2] * (-0.190983, -0.487785) * scratchfloat vertex[glindex2,37] = trapscales[glindex2] * (-1., 0.1) * scratchfloat vertex[glindex2,38] = trapscales[glindex2] * (1., 0.1) * scratchfloat vertex[glindex2,39] = trapscales[glindex2] * (0.190983, -0.487785) * scratchfloat vertex[glindex2,40] = trapscales[glindex2] * (-2.23607, -2.25114) * scratchfloat vertex[glindex2,41] = trapscales[glindex2] * (-1.92705, -1.30008) * scratchfloat vertex[glindex2,42] = trapscales[glindex2] * (-1.30902, -3.2022) * scratchfloat vertex[glindex2,43] = trapscales[glindex2] * (-1., -4.15325) * scratchfloat vertex[glindex2,44] = trapscales[glindex2] * (-3.42705, -2.3899) * scratchfloat vertex[glindex2,45] = trapscales[glindex2] * (-2.42705, -2.3899) * scratchfloat vertex[glindex2,46] = trapscales[glindex2] * (-0.427051, -2.3899) * scratchfloat vertex[glindex2,47] = trapscales[glindex2] * (-1.23607, -2.97768) * scratchfloat vertex[glindex2,48] = trapscales[glindex2] * (-0.309017, -0.124514) * scratchfloat vertex[glindex2,49] = trapscales[glindex2] * (0, 0.826543) * scratchfloat vertex[glindex2,50] = trapscales[glindex2] * (0.618034, -1.07557) * scratchfloat vertex[glindex2,51] = trapscales[glindex2] * (-0.190983, -0.487785) * scratchfloat vertex[glindex2,52] = trapscales[glindex2] * (-2.61803, 1.27557) * scratchfloat vertex[glindex2,53] = trapscales[glindex2] * (-1.61803, 1.27557) * scratchfloat vertex[glindex2,54] = trapscales[glindex2] * (-3.23607, 0.1) * scratchfloat vertex[glindex2,55] = trapscales[glindex2] * (-4.04508, -0.487785) * scratchfloat vertex[glindex2,56] = trapscales[glindex2] * (-3.11803, 2.36538) * scratchfloat vertex[glindex2,57] = trapscales[glindex2] * (-2.80902, 1.41433) * scratchfloat vertex[glindex2,58] = trapscales[glindex2] * (-2.19098, -0.487785) * scratchfloat vertex[glindex2,59] = trapscales[glindex2] * (-3., 0.1) * scratchfloat vertex[glindex2,60] = trapscales[glindex2] * (0,0.1) * scratchfloat glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 182 ; "1,2,1,3;-4/5,-1/5,-4/5" cursality[glindex2] = 1 numbervertices = 61 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 61 ; numbervertices/cursality[glindex2] scratchfloat = 0.2 ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-1.5, 2.6) * scratchfloat vertex[glindex2,1] = trapscales[glindex2] * (-0.5, 2.6) * scratchfloat vertex[glindex2,2] = trapscales[glindex2] * (-2.11803, 1.42443) * scratchfloat vertex[glindex2,3] = trapscales[glindex2] * (-3.11803, 1.42443) * scratchfloat vertex[glindex2,4] = trapscales[glindex2] * (-0.690983, 3.18779) * scratchfloat vertex[glindex2,5] = trapscales[glindex2] * (-1., 2.23673) * scratchfloat vertex[glindex2,6] = trapscales[glindex2] * (-2.61803, 1.06116) * scratchfloat vertex[glindex2,7] = trapscales[glindex2] * (-2.30902, 2.01221) * scratchfloat vertex[glindex2,8] = trapscales[glindex2] * (-1.38197, -0.840955) * scratchfloat vertex[glindex2,9] = trapscales[glindex2] * (-1.69098, -1.79201) * scratchfloat vertex[glindex2,10] = trapscales[glindex2] * (-2.30902, 0.110102) * scratchfloat vertex[glindex2,11] = trapscales[glindex2] * (-1.5, -0.477684) * scratchfloat vertex[glindex2,12] = trapscales[glindex2] * (-0.572949, -3.33085) * scratchfloat vertex[glindex2,13] = trapscales[glindex2] * (-1.38197, -2.74307) * scratchfloat vertex[glindex2,14] = trapscales[glindex2] * (0.618034, -2.74307) * scratchfloat vertex[glindex2,15] = trapscales[glindex2] * (1.42705, -3.33085) * scratchfloat vertex[glindex2,16] = trapscales[glindex2] * (-1.57295, -3.33085) * scratchfloat vertex[glindex2,17] = trapscales[glindex2] * (-0.763932, -2.74307) * scratchfloat vertex[glindex2,18] = trapscales[glindex2] * (1.23607, -2.74307) * scratchfloat vertex[glindex2,19] = trapscales[glindex2] * (0.427051, -3.33085) * scratchfloat vertex[glindex2,20] = trapscales[glindex2] * (1.3541, -0.477684) * scratchfloat vertex[glindex2,21] = trapscales[glindex2] * (2.16312, 0.110102) * scratchfloat vertex[glindex2,22] = trapscales[glindex2] * (1.54508, -1.79201) * scratchfloat vertex[glindex2,23] = trapscales[glindex2] * (1.23607, -0.840955) * scratchfloat vertex[glindex2,24] = trapscales[glindex2] * (2.16312, 2.01221) * scratchfloat vertex[glindex2,25] = trapscales[glindex2] * (2.47214, 1.06116) * scratchfloat vertex[glindex2,26] = trapscales[glindex2] * (0.854102, 2.23673) * scratchfloat vertex[glindex2,27] = trapscales[glindex2] * (0.545085, 3.18779) * scratchfloat vertex[glindex2,28] = trapscales[glindex2] * (2.97214, 1.42443) * scratchfloat vertex[glindex2,29] = trapscales[glindex2] * (1.97214, 1.42443) * scratchfloat vertex[glindex2,30] = trapscales[glindex2] * (0.354102, 2.6) * scratchfloat vertex[glindex2,31] = trapscales[glindex2] * (1.3541, 2.6) * scratchfloat vertex[glindex2,32] = trapscales[glindex2] * (-1.07295, 0.836644) * scratchfloat vertex[glindex2,33] = trapscales[glindex2] * (-2.07295, 0.836644) * scratchfloat vertex[glindex2,34] = trapscales[glindex2] * (-0.454915, 2.01221) * scratchfloat vertex[glindex2,35] = trapscales[glindex2] * (-0.763932, 1.06116) * scratchfloat vertex[glindex2,36] = trapscales[glindex2] * (-3.19098, -0.702198) * scratchfloat vertex[glindex2,37] = trapscales[glindex2] * (-2.88197, 0.248859) * scratchfloat vertex[glindex2,38] = trapscales[glindex2] * (-2.26393, -1.65325) * scratchfloat vertex[glindex2,39] = trapscales[glindex2] * (-2.57295, -2.60431) * scratchfloat vertex[glindex2,40] = trapscales[glindex2] * (-3.5, 0.248859) * scratchfloat vertex[glindex2,41] = trapscales[glindex2] * (-2.69098, -0.338926) * scratchfloat vertex[glindex2,42] = trapscales[glindex2] * (-2.07295, -2.24104) * scratchfloat vertex[glindex2,43] = trapscales[glindex2] * (-2.88197, -1.65325) * scratchfloat vertex[glindex2,44] = trapscales[glindex2] * (0.118034, -1.65325) * scratchfloat vertex[glindex2,45] = trapscales[glindex2] * (0.927051, -2.24104) * scratchfloat vertex[glindex2,46] = trapscales[glindex2] * (-1.07295, -2.24104) * scratchfloat vertex[glindex2,47] = trapscales[glindex2] * (-0.263932, -1.65325) * scratchfloat vertex[glindex2,48] = trapscales[glindex2] * (2.73607, -1.65325) * scratchfloat vertex[glindex2,49] = trapscales[glindex2] * (1.92705, -2.24104) * scratchfloat vertex[glindex2,50] = trapscales[glindex2] * (2.54508, -0.338926) * scratchfloat vertex[glindex2,51] = trapscales[glindex2] * (3.3541, 0.248859) * scratchfloat vertex[glindex2,52] = trapscales[glindex2] * (2.42705, -2.60431) * scratchfloat vertex[glindex2,53] = trapscales[glindex2] * (2.11803, -1.65325) * scratchfloat vertex[glindex2,54] = trapscales[glindex2] * (2.73607, 0.248859) * scratchfloat vertex[glindex2,55] = trapscales[glindex2] * (3.04508, -0.702198) * scratchfloat vertex[glindex2,56] = trapscales[glindex2] * (0.618034, 1.06116) * scratchfloat vertex[glindex2,57] = trapscales[glindex2] * (0.309017, 2.01221) * scratchfloat vertex[glindex2,58] = trapscales[glindex2] * (1.92705, 0.836644) * scratchfloat vertex[glindex2,59] = trapscales[glindex2] * (0.927051, 0.836644) * scratchfloat vertex[glindex2,60] = trapscales[glindex2] * (-1.5, 2.6) * scratchfloat glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 183 ; "1,3;1/5,3/5,-1/5" cursality[glindex2] = 1 numbervertices = 31 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 31 ; numbervertices/cursality[glindex2] scratchfloat = 0.2 ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.5, -1.75) * scratchfloat vertex[glindex2,1] = trapscales[glindex2] * (0.5, -1.75) * scratchfloat vertex[glindex2,2] = trapscales[glindex2] * (2.92705, 0.0133558) * scratchfloat vertex[glindex2,3] = trapscales[glindex2] * (2.11803, 0.601141) * scratchfloat vertex[glindex2,4] = trapscales[glindex2] * (1.19098, 3.45431) * scratchfloat vertex[glindex2,5] = trapscales[glindex2] * (0.381966, 4.0421) * scratchfloat vertex[glindex2,6] = trapscales[glindex2] * (-0.545085, 1.18893) * scratchfloat vertex[glindex2,7] = trapscales[glindex2] * (-1.3541, 0.601141) * scratchfloat vertex[glindex2,8] = trapscales[glindex2] * (-2.28115, -2.25203) * scratchfloat vertex[glindex2,9] = trapscales[glindex2] * (-1.28115, -2.25203) * scratchfloat vertex[glindex2,10] = trapscales[glindex2] * (1.1459, -4.01538) * scratchfloat vertex[glindex2,11] = trapscales[glindex2] * (2.1459, -4.01538) * scratchfloat vertex[glindex2,12] = trapscales[glindex2] * (1.21885, -1.16221) * scratchfloat vertex[glindex2,13] = trapscales[glindex2] * (1.52786, -0.211158) * scratchfloat vertex[glindex2,14] = trapscales[glindex2] * (0.600813, 2.64201) * scratchfloat vertex[glindex2,15] = trapscales[glindex2] * (-0.208204, 2.05423) * scratchfloat vertex[glindex2,16] = trapscales[glindex2] * (-3.2082, 2.05423) * scratchfloat vertex[glindex2,17] = trapscales[glindex2] * (-4.01722, 1.46644) * scratchfloat vertex[glindex2,18] = trapscales[glindex2] * (-1.59017, -0.296915) * scratchfloat vertex[glindex2,19] = trapscales[glindex2] * (-1.28115, -1.24797) * scratchfloat vertex[glindex2,20] = trapscales[glindex2] * (1.1459, -3.01133) * scratchfloat vertex[glindex2,21] = trapscales[glindex2] * (1.45492, -2.06027) * scratchfloat vertex[glindex2,22] = trapscales[glindex2] * (3.88197, -0.296915) * scratchfloat vertex[glindex2,23] = trapscales[glindex2] * (4.19098, 0.654142) * scratchfloat vertex[glindex2,24] = trapscales[glindex2] * (1.19098, 0.654142) * scratchfloat vertex[glindex2,25] = trapscales[glindex2] * (0.381966, 1.24193) * scratchfloat vertex[glindex2,26] = trapscales[glindex2] * (-2.61803, 1.24193) * scratchfloat vertex[glindex2,27] = trapscales[glindex2] * (-2.30902, 0.29087) * scratchfloat vertex[glindex2,28] = trapscales[glindex2] * (-3.23607, -2.5623) * scratchfloat vertex[glindex2,29] = trapscales[glindex2] * (-2.92705, -3.51336) * scratchfloat vertex[glindex2,30] = trapscales[glindex2] * (-0.5, -1.75) * scratchfloat glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 184 ; "1,2,3,3,2,1;5/6,1/6,1/6" cursality[glindex2] = 1 numbervertices = 37 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 37 ; numbervertices/cursality[glindex2] ; initialize arrays scratchfloat = 2/3 vertex[glindex2,0] = trapscales[glindex2] * (0.333333, 0.638889) * scratchfloat vertex[glindex2,1] = trapscales[glindex2] * (0.555556, 0.638889) * scratchfloat vertex[glindex2,2] = trapscales[glindex2] * (0.170655, 0.861111) * scratchfloat vertex[glindex2,3] = trapscales[glindex2] * (-0.496011, 0.861111) * scratchfloat vertex[glindex2,4] = trapscales[glindex2] * (-1.07336, 0.527778) * scratchfloat vertex[glindex2,5] = trapscales[glindex2] * (-0.628917, 0.527778) * scratchfloat vertex[glindex2,6] = trapscales[glindex2] * (-0.436467, 0.638889) * scratchfloat vertex[glindex2,7] = trapscales[glindex2] * (-0.325356, 0.831339) * scratchfloat vertex[glindex2,8] = trapscales[glindex2] * (-0.710256, 0.609117) * scratchfloat vertex[glindex2,9] = trapscales[glindex2] * (-1.04359, 0.0317665) * scratchfloat vertex[glindex2,10] = trapscales[glindex2] * (-1.04359, -0.6349) * scratchfloat vertex[glindex2,11] = trapscales[glindex2] * (-0.821367, -0.25) * scratchfloat vertex[glindex2,12] = trapscales[glindex2] * (-0.821367, -0.0277778) * scratchfloat vertex[glindex2,13] = trapscales[glindex2] * (-0.932478, 0.164672) * scratchfloat vertex[glindex2,14] = trapscales[glindex2] * (-0.932478, -0.279772) * scratchfloat vertex[glindex2,15] = trapscales[glindex2] * (-0.599145, -0.857122) * scratchfloat vertex[glindex2,16] = trapscales[glindex2] * (-0.0217947, -1.19046) * scratchfloat vertex[glindex2,17] = trapscales[glindex2] * (-0.244017, -0.805556) * scratchfloat vertex[glindex2,18] = trapscales[glindex2] * (-0.436467, -0.694444) * scratchfloat vertex[glindex2,19] = trapscales[glindex2] * (-0.658689, -0.694444) * scratchfloat vertex[glindex2,20] = trapscales[glindex2] * (-0.273789, -0.916667) * scratchfloat vertex[glindex2,21] = trapscales[glindex2] * (0.392878, -0.916667) * scratchfloat vertex[glindex2,22] = trapscales[glindex2] * (0.970228, -0.583333) * scratchfloat vertex[glindex2,23] = trapscales[glindex2] * (0.525783, -0.583333) * scratchfloat vertex[glindex2,24] = trapscales[glindex2] * (0.333333, -0.694444) * scratchfloat vertex[glindex2,25] = trapscales[glindex2] * (0.222222, -0.886895) * scratchfloat vertex[glindex2,26] = trapscales[glindex2] * (0.607122, -0.664672) * scratchfloat vertex[glindex2,27] = trapscales[glindex2] * (0.940456, -0.087322) * scratchfloat vertex[glindex2,28] = trapscales[glindex2] * (0.940456, 0.579345) * scratchfloat vertex[glindex2,29] = trapscales[glindex2] * (0.718234, 0.194444) * scratchfloat vertex[glindex2,30] = trapscales[glindex2] * (0.718234, -0.0277778) * scratchfloat vertex[glindex2,31] = trapscales[glindex2] * (0.829345, -0.220228) * scratchfloat vertex[glindex2,32] = trapscales[glindex2] * (0.829345, 0.224217) * scratchfloat vertex[glindex2,33] = trapscales[glindex2] * (0.496011, 0.801567) * scratchfloat vertex[glindex2,34] = trapscales[glindex2] * (-0.081339, 1.1349) * scratchfloat vertex[glindex2,35] = trapscales[glindex2] * (0.140883, 0.75) * scratchfloat vertex[glindex2,36] = trapscales[glindex2] * (0.333333, 0.638889) * scratchfloat glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 185 ; "1,1,3,1;-5/6,-1/6,3/7" cursality[glindex2] = 1 numbervertices = 85 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 85 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.625, -0.625) vertex[glindex2,1] = trapscales[glindex2] * (0.791667, -0.625) vertex[glindex2,2] = trapscales[glindex2] * (0.647329, -0.708333) vertex[glindex2,3] = trapscales[glindex2] * (0.147329, -0.708333) vertex[glindex2,4] = trapscales[glindex2] * (0.110242, -0.870821) vertex[glindex2,5] = trapscales[glindex2] * (0.0611164, -0.711559) vertex[glindex2,6] = trapscales[glindex2] * (0.0982032, -0.549071) vertex[glindex2,7] = trapscales[glindex2] * (-0.352281, -0.332129) vertex[glindex2,8] = trapscales[glindex2] * (-0.186081, -0.319674) vertex[glindex2,9] = trapscales[glindex2] * (-0.0359191, -0.391988) vertex[glindex2,10] = trapscales[glindex2] * (0.0679959, -0.261683) vertex[glindex2,11] = trapscales[glindex2] * (-0.00652525, -0.756098) vertex[glindex2,12] = trapscales[glindex2] * (-0.11044, -0.886404) vertex[glindex2,13] = trapscales[glindex2] * (-0.00652525, -1.01671) vertex[glindex2,14] = trapscales[glindex2] * (-0.161671, -0.955819) vertex[glindex2,15] = trapscales[glindex2] * (-0.473416, -0.564903) vertex[glindex2,16] = trapscales[glindex2] * (-0.623577, -0.637217) vertex[glindex2,17] = trapscales[glindex2] * (-0.529691, -0.499511) vertex[glindex2,18] = trapscales[glindex2] * (-0.379529, -0.427197) vertex[glindex2,19] = trapscales[glindex2] * (-0.49079, 0.0602674) vertex[glindex2,20] = trapscales[glindex2] * (-0.377427, -0.0619079) vertex[glindex2,21] = trapscales[glindex2] * (-0.340341, -0.224396) vertex[glindex2,22] = trapscales[glindex2] * (-0.173674, -0.224396) vertex[glindex2,23] = trapscales[glindex2] * (-0.606687, -0.474396) vertex[glindex2,24] = trapscales[glindex2] * (-0.773353, -0.474396) vertex[glindex2,25] = trapscales[glindex2] * (-0.81044, -0.636884) vertex[glindex2,26] = trapscales[glindex2] * (-0.859566, -0.477622) vertex[glindex2,27] = trapscales[glindex2] * (-0.748306, 0.00984221) vertex[glindex2,28] = trapscales[glindex2] * (-0.898467, 0.0821562) vertex[glindex2,29] = trapscales[glindex2] * (-0.732266, 0.0946112) vertex[glindex2,30] = trapscales[glindex2] * (-0.582105, 0.0222972) vertex[glindex2,31] = trapscales[glindex2] * (-0.27036, 0.413213) vertex[glindex2,32] = trapscales[glindex2] * (-0.2952, 0.248408) vertex[glindex2,33] = trapscales[glindex2] * (-0.399115, 0.118103) vertex[glindex2,34] = trapscales[glindex2] * (-0.2952, -0.0122027) vertex[glindex2,35] = trapscales[glindex2] * (-0.760637, 0.170468) vertex[glindex2,36] = trapscales[glindex2] * (-0.864552, 0.300773) vertex[glindex2,37] = trapscales[glindex2] * (-1.01471, 0.228459) vertex[glindex2,38] = trapscales[glindex2] * (-0.920827, 0.366166) vertex[glindex2,39] = trapscales[glindex2] * (-0.470343, 0.583107) vertex[glindex2,40] = trapscales[glindex2] * (-0.507429, 0.745595) vertex[glindex2,41] = trapscales[glindex2] * (-0.394067, 0.62342) vertex[glindex2,42] = trapscales[glindex2] * (-0.35698, 0.460932) vertex[glindex2,43] = trapscales[glindex2] * (0.14302, 0.460932) vertex[glindex2,44] = trapscales[glindex2] * (-0.00131804, 0.377599) vertex[glindex2,45] = trapscales[glindex2] * (-0.167985, 0.377599) vertex[glindex2,46] = trapscales[glindex2] * (-0.205072, 0.215111) vertex[glindex2,47] = trapscales[glindex2] * (-0.352449, 0.692897) vertex[glindex2,48] = trapscales[glindex2] * (-0.315362, 0.855385) vertex[glindex2,49] = trapscales[glindex2] * (-0.465524, 0.927699) vertex[glindex2,50] = trapscales[glindex2] * (-0.299323, 0.940154) vertex[glindex2,51] = trapscales[glindex2] * (0.151161, 0.723212) vertex[glindex2,52] = trapscales[glindex2] * (0.255076, 0.853518) vertex[glindex2,53] = trapscales[glindex2] * (0.230236, 0.688712) vertex[glindex2,54] = trapscales[glindex2] * (0.126321, 0.558407) vertex[glindex2,55] = trapscales[glindex2] * (0.438066, 0.167491) vertex[glindex2,56] = trapscales[glindex2] * (0.28292, 0.228382) vertex[glindex2,57] = trapscales[glindex2] * (0.179005, 0.358687) vertex[glindex2,58] = trapscales[glindex2] * (0.0288437, 0.286373) vertex[glindex2,59] = trapscales[glindex2] * (0.310504, 0.699492) vertex[glindex2,60] = trapscales[glindex2] * (0.460665, 0.771806) vertex[glindex2,61] = trapscales[glindex2] * (0.423578, 0.934294) vertex[glindex2,62] = trapscales[glindex2] * (0.536941, 0.812119) vertex[glindex2,63] = trapscales[glindex2] * (0.648201, 0.324655) vertex[glindex2,64] = trapscales[glindex2] * (0.814868, 0.324655) vertex[glindex2,65] = trapscales[glindex2] * (0.67053, 0.241322) vertex[glindex2,66] = trapscales[glindex2] * (0.503863, 0.241322) vertex[glindex2,67] = trapscales[glindex2] * (0.392603, -0.246142) vertex[glindex2,68] = trapscales[glindex2] * (0.343477, -0.0868802) vertex[glindex2,69] = trapscales[glindex2] * (0.380564, 0.0756078) vertex[glindex2,70] = trapscales[glindex2] * (0.230402, 0.147922) vertex[glindex2,71] = trapscales[glindex2] * (0.729004, 0.185287) vertex[glindex2,72] = trapscales[glindex2] * (0.879166, 0.112973) vertex[glindex2,73] = trapscales[glindex2] * (0.983081, 0.243278) vertex[glindex2,74] = trapscales[glindex2] * (0.95824, 0.078473) vertex[glindex2,75] = trapscales[glindex2] * (0.646496, -0.312443) vertex[glindex2,76] = trapscales[glindex2] * (0.750411, -0.442748) vertex[glindex2,77] = trapscales[glindex2] * (0.595265, -0.381858) vertex[glindex2,78] = trapscales[glindex2] * (0.49135, -0.251553) vertex[glindex2,79] = trapscales[glindex2] * (0.0408655, -0.468494) vertex[glindex2,80] = trapscales[glindex2] * (0.134752, -0.330788) vertex[glindex2,81] = trapscales[glindex2] * (0.284914, -0.258474) vertex[glindex2,82] = trapscales[glindex2] * (0.247827, -0.0959861) vertex[glindex2,83] = trapscales[glindex2] * (0.587913, -0.462512) vertex[glindex2,84] = trapscales[glindex2] * (0.625, -0.625) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 186 ; "1,1,3,1;-1/6,1/6,-3/7" cursality[glindex2] = 1 numbervertices = 85 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 85 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0., 0.183333) vertex[glindex2,1] = trapscales[glindex2] * (0.133333, 0.183333) vertex[glindex2,2] = trapscales[glindex2] * (0.248803, 0.116667) vertex[glindex2,3] = trapscales[glindex2] * (0.648803, 0.116667) vertex[glindex2,4] = trapscales[glindex2] * (0.678473, -0.0133237) vertex[glindex2,5] = trapscales[glindex2] * (0.639172, -0.140733) vertex[glindex2,6] = trapscales[glindex2] * (0.668842, -0.270724) vertex[glindex2,7] = trapscales[glindex2] * (0.308454, -0.444277) vertex[glindex2,8] = trapscales[glindex2] * (0.175494, -0.434313) vertex[glindex2,9] = trapscales[glindex2] * (0.0553644, -0.492164) vertex[glindex2,10] = trapscales[glindex2] * (-0.0277676, -0.38792) vertex[glindex2,11] = trapscales[glindex2] * (-0.0873845, 0.00761206) vertex[glindex2,12] = trapscales[glindex2] * (-0.170516, 0.111856) vertex[glindex2,13] = trapscales[glindex2] * (-0.0873845, 0.2161) vertex[glindex2,14] = trapscales[glindex2] * (0.036732, 0.264813) vertex[glindex2,15] = trapscales[glindex2] * (0.286128, 0.577545) vertex[glindex2,16] = trapscales[glindex2] * (0.406257, 0.519694) vertex[glindex2,17] = trapscales[glindex2] * (0.481366, 0.409529) vertex[glindex2,18] = trapscales[glindex2] * (0.601496, 0.351678) vertex[glindex2,19] = trapscales[glindex2] * (0.512487, -0.0382935) vertex[glindex2,20] = trapscales[glindex2] * (0.421798, -0.136034) vertex[glindex2,21] = trapscales[glindex2] * (0.392128, -0.266024) vertex[glindex2,22] = trapscales[glindex2] * (0.258795, -0.266024) vertex[glindex2,23] = trapscales[glindex2] * (-0.0876154, -0.0660241) vertex[glindex2,24] = trapscales[glindex2] * (-0.220949, -0.0660241) vertex[glindex2,25] = trapscales[glindex2] * (-0.250618, 0.0639663) vertex[glindex2,26] = trapscales[glindex2] * (-0.211318, 0.191376) vertex[glindex2,27] = trapscales[glindex2] * (-0.300326, 0.581347) vertex[glindex2,28] = trapscales[glindex2] * (-0.180197, 0.639198) vertex[glindex2,29] = trapscales[glindex2] * (-0.0472362, 0.629234) vertex[glindex2,30] = trapscales[glindex2] * (0.072893, 0.687085) vertex[glindex2,31] = trapscales[glindex2] * (0.322289, 0.374353) vertex[glindex2,32] = trapscales[glindex2] * (0.342161, 0.242509) vertex[glindex2,33] = trapscales[glindex2] * (0.425293, 0.138265) vertex[glindex2,34] = trapscales[glindex2] * (0.342161, 0.0340204) vertex[glindex2,35] = trapscales[glindex2] * (-0.0301883, -0.112116) vertex[glindex2,36] = trapscales[glindex2] * (-0.11332, -0.21636) vertex[glindex2,37] = trapscales[glindex2] * (-0.233449, -0.158509) vertex[glindex2,38] = trapscales[glindex2] * (-0.308559, -0.0483439) vertex[glindex2,39] = trapscales[glindex2] * (-0.668946, 0.12521) vertex[glindex2,40] = trapscales[glindex2] * (-0.639277, 0.2552) vertex[glindex2,41] = trapscales[glindex2] * (-0.548587, 0.35294) vertex[glindex2,42] = trapscales[glindex2] * (-0.518918, 0.482931) vertex[glindex2,43] = trapscales[glindex2] * (-0.118918, 0.482931) vertex[glindex2,44] = trapscales[glindex2] * (-0.00344766, 0.416264) vertex[glindex2,45] = trapscales[glindex2] * (0.129886, 0.416264) vertex[glindex2,46] = trapscales[glindex2] * (0.159555, 0.286274) vertex[glindex2,47] = trapscales[glindex2] * (0.0416531, -0.0959556) vertex[glindex2,48] = trapscales[glindex2] * (0.0713225, -0.225946) vertex[glindex2,49] = trapscales[glindex2] * (-0.0488067, -0.283797) vertex[glindex2,50] = trapscales[glindex2] * (-0.181767, -0.273833) vertex[glindex2,51] = trapscales[glindex2] * (-0.542155, -0.447387) vertex[glindex2,52] = trapscales[glindex2] * (-0.625287, -0.343142) vertex[glindex2,53] = trapscales[glindex2] * (-0.645159, -0.211298) vertex[glindex2,54] = trapscales[glindex2] * (-0.728291, -0.107054) vertex[glindex2,55] = trapscales[glindex2] * (-0.478895, 0.205678) vertex[glindex2,56] = trapscales[glindex2] * (-0.354779, 0.254391) vertex[glindex2,57] = trapscales[glindex2] * (-0.271647, 0.358635) vertex[glindex2,58] = trapscales[glindex2] * (-0.151517, 0.300784) vertex[glindex2,59] = trapscales[glindex2] * (0.0738106, -0.0297118) vertex[glindex2,60] = trapscales[glindex2] * (0.19394, -0.087563) vertex[glindex2,61] = trapscales[glindex2] * (0.16427, -0.217553) vertex[glindex2,62] = trapscales[glindex2] * (0.0735807, -0.315294) vertex[glindex2,63] = trapscales[glindex2] * (-0.0154277, -0.705265) vertex[glindex2,64] = trapscales[glindex2] * (-0.148761, -0.705265) vertex[glindex2,65] = trapscales[glindex2] * (-0.264231, -0.638598) vertex[glindex2,66] = trapscales[glindex2] * (-0.397564, -0.638598) vertex[glindex2,67] = trapscales[glindex2] * (-0.486573, -0.248627) vertex[glindex2,68] = trapscales[glindex2] * (-0.447272, -0.121217) vertex[glindex2,69] = trapscales[glindex2] * (-0.476942, 0.00877312) vertex[glindex2,70] = trapscales[glindex2] * (-0.356812, 0.0666243) vertex[glindex2,71] = trapscales[glindex2] * (0.0420691, 0.0367322) vertex[glindex2,72] = trapscales[glindex2] * (0.162198, 0.0945834) vertex[glindex2,73] = trapscales[glindex2] * (0.24533, -0.00966079) vertex[glindex2,74] = trapscales[glindex2] * (0.265203, -0.141505) vertex[glindex2,75] = trapscales[glindex2] * (0.514599, -0.454237) vertex[glindex2,76] = trapscales[glindex2] * (0.431467, -0.558482) vertex[glindex2,77] = trapscales[glindex2] * (0.30735, -0.607194) vertex[glindex2,78] = trapscales[glindex2] * (0.224218, -0.711438) vertex[glindex2,79] = trapscales[glindex2] * (-0.136169, -0.537885) vertex[glindex2,80] = trapscales[glindex2] * (-0.211279, -0.427719) vertex[glindex2,81] = trapscales[glindex2] * (-0.331408, -0.369868) vertex[glindex2,82] = trapscales[glindex2] * (-0.301739, -0.239878) vertex[glindex2,83] = trapscales[glindex2] * (-0.0296695, 0.0533429) vertex[glindex2,84] = trapscales[glindex2] * (0., 0.183333) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 187 ; "1,1,3,1;5/6,1/6,4/7" cursality[glindex2] = 1 numbervertices = 85 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 85 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (-0.15625, 0.46875) vertex[glindex2,1] = trapscales[glindex2] * (-0.03125, 0.46875) vertex[glindex2,2] = trapscales[glindex2] * (-0.139503, 0.53125) vertex[glindex2,3] = trapscales[glindex2] * (-0.514503, 0.53125) vertex[glindex2,4] = trapscales[glindex2] * (-0.486688, 0.409384) vertex[glindex2,5] = trapscales[glindex2] * (-0.449844, 0.528831) vertex[glindex2,6] = trapscales[glindex2] * (-0.477659, 0.650697) vertex[glindex2,7] = trapscales[glindex2] * (-0.815522, 0.48799) vertex[glindex2,8] = trapscales[glindex2] * (-0.690872, 0.478649) vertex[glindex2,9] = trapscales[glindex2] * (-0.578251, 0.532884) vertex[glindex2,10] = trapscales[glindex2] * (-0.656187, 0.630613) vertex[glindex2,11] = trapscales[glindex2] * (-0.600296, 0.259802) vertex[glindex2,12] = trapscales[glindex2] * (-0.52236, 0.162073) vertex[glindex2,13] = trapscales[glindex2] * (-0.444423, 0.259802) vertex[glindex2,14] = trapscales[glindex2] * (-0.560783, 0.214134) vertex[glindex2,15] = trapscales[glindex2] * (-0.794591, -0.0790527) vertex[glindex2,16] = trapscales[glindex2] * (-0.68197, -0.133288) vertex[glindex2,17] = trapscales[glindex2] * (-0.752385, -0.0300083) vertex[glindex2,18] = trapscales[glindex2] * (-0.865006, 0.0242272) vertex[glindex2,19] = trapscales[glindex2] * (-0.948452, -0.341371) vertex[glindex2,20] = trapscales[glindex2] * (-0.86343, -0.249739) vertex[glindex2,21] = trapscales[glindex2] * (-0.835615, -0.127873) vertex[glindex2,22] = trapscales[glindex2] * (-0.960615, -0.127873) vertex[glindex2,23] = trapscales[glindex2] * (-0.635855, -0.315373) vertex[glindex2,24] = trapscales[glindex2] * (-0.510855, -0.315373) vertex[glindex2,25] = trapscales[glindex2] * (-0.538671, -0.193507) vertex[glindex2,26] = trapscales[glindex2] * (-0.575515, -0.312954) vertex[glindex2,27] = trapscales[glindex2] * (-0.49207, -0.678552) vertex[glindex2,28] = trapscales[glindex2] * (-0.379449, -0.624316) vertex[glindex2,29] = trapscales[glindex2] * (-0.504099, -0.614975) vertex[glindex2,30] = trapscales[glindex2] * (-0.61672, -0.669211) vertex[glindex2,31] = trapscales[glindex2] * (-0.382911, -0.962397) vertex[glindex2,32] = trapscales[glindex2] * (-0.401542, -0.838794) vertex[glindex2,33] = trapscales[glindex2] * (-0.479478, -0.741065) vertex[glindex2,34] = trapscales[glindex2] * (-0.557414, -0.838794) vertex[glindex2,35] = trapscales[glindex2] * (-0.208337, -0.701791) vertex[glindex2,36] = trapscales[glindex2] * (-0.1304, -0.604062) vertex[glindex2,37] = trapscales[glindex2] * (-0.243021, -0.549826) vertex[glindex2,38] = trapscales[glindex2] * (-0.172606, -0.653106) vertex[glindex2,39] = trapscales[glindex2] * (0.165257, -0.815813) vertex[glindex2,40] = trapscales[glindex2] * (0.193072, -0.693947) vertex[glindex2,41] = trapscales[glindex2] * (0.10805, -0.785578) vertex[glindex2,42] = trapscales[glindex2] * (0.0802354, -0.907444) vertex[glindex2,43] = trapscales[glindex2] * (0.455235, -0.907444) vertex[glindex2,44] = trapscales[glindex2] * (0.346982, -0.844944) vertex[glindex2,45] = trapscales[glindex2] * (0.221982, -0.844944) vertex[glindex2,46] = trapscales[glindex2] * (0.249797, -0.96681) vertex[glindex2,47] = trapscales[glindex2] * (0.36033, -0.60847) vertex[glindex2,48] = trapscales[glindex2] * (0.332515, -0.486604) vertex[glindex2,49] = trapscales[glindex2] * (0.219894, -0.54084) vertex[glindex2,50] = trapscales[glindex2] * (0.344545, -0.550181) vertex[glindex2,51] = trapscales[glindex2] * (0.682408, -0.387475) vertex[glindex2,52] = trapscales[glindex2] * (0.604472, -0.289746) vertex[glindex2,53] = trapscales[glindex2] * (0.623102, -0.413349) vertex[glindex2,54] = trapscales[glindex2] * (0.701038, -0.511078) vertex[glindex2,55] = trapscales[glindex2] * (0.934847, -0.217892) vertex[glindex2,56] = trapscales[glindex2] * (0.818488, -0.263559) vertex[glindex2,57] = trapscales[glindex2] * (0.740552, -0.361288) vertex[glindex2,58] = trapscales[glindex2] * (0.853173, -0.415524) vertex[glindex2,59] = trapscales[glindex2] * (0.641928, -0.105684) vertex[glindex2,60] = trapscales[glindex2] * (0.529307, -0.0514486) vertex[glindex2,61] = trapscales[glindex2] * (0.501491, -0.173315) vertex[glindex2,62] = trapscales[glindex2] * (0.586513, -0.0816831) vertex[glindex2,63] = trapscales[glindex2] * (0.669958, 0.283915) vertex[glindex2,64] = trapscales[glindex2] * (0.544958, 0.283915) vertex[glindex2,65] = trapscales[glindex2] * (0.653212, 0.221415) vertex[glindex2,66] = trapscales[glindex2] * (0.778212, 0.221415) vertex[glindex2,67] = trapscales[glindex2] * (0.694766, 0.587013) vertex[glindex2,68] = trapscales[glindex2] * (0.657922, 0.467566) vertex[glindex2,69] = trapscales[glindex2] * (0.685737, 0.3457) vertex[glindex2,70] = trapscales[glindex2] * (0.798358, 0.399936) vertex[glindex2,71] = trapscales[glindex2] * (0.424407, 0.427959) vertex[glindex2,72] = trapscales[glindex2] * (0.311786, 0.373724) vertex[glindex2,73] = trapscales[glindex2] * (0.389722, 0.275995) vertex[glindex2,74] = trapscales[glindex2] * (0.371091, 0.399599) vertex[glindex2,75] = trapscales[glindex2] * (0.137283, 0.692786) vertex[glindex2,76] = trapscales[glindex2] * (0.0593465, 0.595057) vertex[glindex2,77] = trapscales[glindex2] * (0.175706, 0.640724) vertex[glindex2,78] = trapscales[glindex2] * (0.253642, 0.738453) vertex[glindex2,79] = trapscales[glindex2] * (-0.0842213, 0.90116) vertex[glindex2,80] = trapscales[glindex2] * (-0.0138063, 0.79788) vertex[glindex2,81] = trapscales[glindex2] * (0.0988148, 0.743644) vertex[glindex2,82] = trapscales[glindex2] * (0.12663, 0.86551) vertex[glindex2,83] = trapscales[glindex2] * (-0.128435, 0.590616) vertex[glindex2,84] = trapscales[glindex2] * (-0.15625, 0.46875) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 188 ; "1,3,1,4,2;-1/2,1/6" cursality[glindex2] = 1 numbervertices = 73 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 73 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2,0] = trapscales[glindex2] * (0.290323, 0.870968) vertex[glindex2,1] = trapscales[glindex2] * (0.419355, 0.870968) vertex[glindex2,2] = trapscales[glindex2] * (0.419355, 0.483871) vertex[glindex2,3] = trapscales[glindex2] * (0.483871, 0.372126) vertex[glindex2,4] = trapscales[glindex2] * (0.0368901, 0.114061) vertex[glindex2,5] = trapscales[glindex2] * (-0.0921421, -0.109429) vertex[glindex2,6] = trapscales[glindex2] * (-0.203887, -0.0449131) vertex[glindex2,7] = trapscales[glindex2] * (-0.590984, -0.0449131) vertex[glindex2,8] = trapscales[glindex2] * (-0.590984, 0.0841192) vertex[glindex2,9] = trapscales[glindex2] * (-0.849049, 0.5311) vertex[glindex2,10] = trapscales[glindex2] * (-0.625558, 0.660132) vertex[glindex2,11] = trapscales[glindex2] * (-0.561042, 0.771878) vertex[glindex2,12] = trapscales[glindex2] * (-0.225806, 0.578329) vertex[glindex2,13] = trapscales[glindex2] * (-0.0967742, 0.578329) vertex[glindex2,14] = trapscales[glindex2] * (-0.0967742, 0.0622001) vertex[glindex2,15] = trapscales[glindex2] * (0.0322581, -0.16129) vertex[glindex2,16] = trapscales[glindex2] * (-0.0794871, -0.225806) vertex[glindex2,17] = trapscales[glindex2] * (-0.273036, -0.561042) vertex[glindex2,18] = trapscales[glindex2] * (-0.384781, -0.496526) vertex[glindex2,19] = trapscales[glindex2] * (-0.90091, -0.496526) vertex[glindex2,20] = trapscales[glindex2] * (-0.90091, -0.238461) vertex[glindex2,21] = trapscales[glindex2] * (-0.965426, -0.126716) vertex[glindex2,22] = trapscales[glindex2] * (-0.63019, 0.0668322) vertex[glindex2,23] = trapscales[glindex2] * (-0.565674, 0.178577) vertex[glindex2,24] = trapscales[glindex2] * (-0.118693, -0.0794871) vertex[glindex2,25] = trapscales[glindex2] * (0.139371, -0.0794871) vertex[glindex2,26] = trapscales[glindex2] * (0.139371, -0.208519) vertex[glindex2,27] = trapscales[glindex2] * (0.33292, -0.543755) vertex[glindex2,28] = trapscales[glindex2] * (0.221174, -0.608271) vertex[glindex2,29] = trapscales[glindex2] * (-0.0368901, -1.05525) vertex[glindex2,30] = trapscales[glindex2] * (-0.260381, -0.92622) vertex[glindex2,31] = trapscales[glindex2] * (-0.389413, -0.92622) vertex[glindex2,32] = trapscales[glindex2] * (-0.389413, -0.539123) vertex[glindex2,33] = trapscales[glindex2] * (-0.453929, -0.427378) vertex[glindex2,34] = trapscales[glindex2] * (-0.00694807, -0.169313) vertex[glindex2,35] = trapscales[glindex2] * (0.122084, 0.0541772) vertex[glindex2,36] = trapscales[glindex2] * (0.233829, -0.010339) vertex[glindex2,37] = trapscales[glindex2] * (0.620926, -0.010339) vertex[glindex2,38] = trapscales[glindex2] * (0.620926, -0.139371) vertex[glindex2,39] = trapscales[glindex2] * (0.878991, -0.586352) vertex[glindex2,40] = trapscales[glindex2] * (0.6555, -0.715384) vertex[glindex2,41] = trapscales[glindex2] * (0.590984, -0.82713) vertex[glindex2,42] = trapscales[glindex2] * (0.255748, -0.633581) vertex[glindex2,43] = trapscales[glindex2] * (0.126716, -0.633581) vertex[glindex2,44] = trapscales[glindex2] * (0.126716, -0.117452) vertex[glindex2,45] = trapscales[glindex2] * (-0.00231602, 0.106038) vertex[glindex2,46] = trapscales[glindex2] * (0.109429, 0.170554) vertex[glindex2,47] = trapscales[glindex2] * (0.302978, 0.50579) vertex[glindex2,48] = trapscales[glindex2] * (0.414723, 0.441274) vertex[glindex2,49] = trapscales[glindex2] * (0.930852, 0.441274) vertex[glindex2,50] = trapscales[glindex2] * (0.930852, 0.183209) vertex[glindex2,51] = trapscales[glindex2] * (0.995368, 0.0714642) vertex[glindex2,52] = trapscales[glindex2] * (0.660132, -0.122084) vertex[glindex2,53] = trapscales[glindex2] * (0.595616, -0.233829) vertex[glindex2,54] = trapscales[glindex2] * (0.148635, 0.0242351) vertex[glindex2,55] = trapscales[glindex2] * (-0.109429, 0.0242351) vertex[glindex2,56] = trapscales[glindex2] * (-0.109429, 0.153267) vertex[glindex2,57] = trapscales[glindex2] * (-0.302978, 0.488503) vertex[glindex2,58] = trapscales[glindex2] * (-0.191232, 0.553019) vertex[glindex2,59] = trapscales[glindex2] * (0.0668322, 1.) vertex[glindex2,60] = trapscales[glindex2] * (0.290323, 0.870968) vertex[glindex2,61] = trapscales[glindex2] * (0.419355, 0.870968) vertex[glindex2,62] = trapscales[glindex2] * (0.419355, 0.483871) vertex[glindex2,63] = trapscales[glindex2] * (0.483871, 0.372126) vertex[glindex2,64] = trapscales[glindex2] * (0.0368901, 0.114061) vertex[glindex2,65] = trapscales[glindex2] * (-0.0921421, -0.109429) vertex[glindex2,66] = trapscales[glindex2] * (-0.203887, -0.0449131) vertex[glindex2,67] = trapscales[glindex2] * (-0.590984, -0.0449131) vertex[glindex2,68] = trapscales[glindex2] * (-0.590984, 0.0841192) vertex[glindex2,69] = trapscales[glindex2] * (-0.849049, 0.5311) vertex[glindex2,70] = trapscales[glindex2] * (-0.625558, 0.660132) vertex[glindex2,71] = trapscales[glindex2] * (-0.561042, 0.771878) vertex[glindex2,72] = trapscales[glindex2] * (-0.225806, 0.578329) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 189 ; "13-gon" cursality[glindex2] = 1 numbervertices = 14 ; vertices + cursality for closed curves cincrement[glindex2] = 14 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = trapscales[glindex2] * cos(glindex * twopi / 13) ycoord[glindex2,glindex] = trapscales[glindex2] * sin(glindex * twopi / 13) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 190 ; "14-gon" cursality[glindex2] = 1 numbervertices = 15 ; vertices + cursality for closed curves cincrement[glindex2] = 15 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = trapscales[glindex2] * cos(glindex * twopi / 14) ycoord[glindex2,glindex] = trapscales[glindex2] * sin(glindex * twopi / 14) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 191 ; "15-gon" cursality[glindex2] = 1 numbervertices = 16 ; vertices + cursality for closed curves cincrement[glindex2] = 16 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = trapscales[glindex2] * cos(glindex * twopi / 15) ycoord[glindex2,glindex] = trapscales[glindex2] * sin(glindex * twopi / 15) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 192 ; "16-gon" cursality[glindex2] = 1 numbervertices = 17 ; vertices + cursality for closed curves cincrement[glindex2] = 17 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = trapscales[glindex2] * cos(glindex * twopi / 16) ycoord[glindex2,glindex] = trapscales[glindex2] * sin(glindex * twopi / 16) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 193 ; "13-asterisk" cursality[glindex2] = 13 numbervertices = 26 ; vertices only for open curves cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices vertex[glindex2,glindex] = (0,0) xcoord[glindex2,glindex + 1] = trapscales[glindex2] * cos(glindex * #pi / 13) ycoord[glindex2,glindex + 1] = trapscales[glindex2] * sin(glindex * #pi / 13) glindex = glindex + 1 vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex vertex[glindex2,1] = @leafAlength * vertex[glindex2,1] xcoord[glindex2,1] = real(vertex[glindex2,1]) ycoord[glindex2,1] = imag(vertex[glindex2,1]) vertex[glindex2,3] = @leafBlength * vertex[glindex2,3] xcoord[glindex2,3] = real(vertex[glindex2,3]) ycoord[glindex2,3] = imag(vertex[glindex2,3]) vertex[glindex2,5] = @leafClength * vertex[glindex2,5] xcoord[glindex2,5] = real(vertex[glindex2,5]) ycoord[glindex2,5] = imag(vertex[glindex2,5]) vertex[glindex2,7] = @leafDlength * vertex[glindex2,7] xcoord[glindex2,7] = real(vertex[glindex2,7]) ycoord[glindex2,7] = imag(vertex[glindex2,7]) vertex[glindex2,9] = @leafElength * vertex[glindex2,9] xcoord[glindex2,9] = real(vertex[glindex2,9]) ycoord[glindex2,9] = imag(vertex[glindex2,9]) vertex[glindex2,11] = @leafFlength * vertex[glindex2,11] xcoord[glindex2,11] = real(vertex[glindex2,11]) ycoord[glindex2,11] = imag(vertex[glindex2,11]) vertex[glindex2,13] = @leafGlength * vertex[glindex2,13] xcoord[glindex2,13] = real(vertex[glindex2,13]) ycoord[glindex2,13] = imag(vertex[glindex2,13]) vertex[glindex2,15] = @leafHlength * vertex[glindex2,15] xcoord[glindex2,15] = real(vertex[glindex2,15]) ycoord[glindex2,15] = imag(vertex[glindex2,15]) vertex[glindex2,17] = @leafIlength * vertex[glindex2,17] xcoord[glindex2,17] = real(vertex[glindex2,17]) ycoord[glindex2,17] = imag(vertex[glindex2,17]) vertex[glindex2,19] = @leafJlength * vertex[glindex2,19] xcoord[glindex2,19] = real(vertex[glindex2,19]) ycoord[glindex2,19] = imag(vertex[glindex2,19]) vertex[glindex2,21] = @leafKlength * vertex[glindex2,21] xcoord[glindex2,21] = real(vertex[glindex2,21]) ycoord[glindex2,21] = imag(vertex[glindex2,21]) vertex[glindex2,23] = @leafLlength * vertex[glindex2,23] xcoord[glindex2,23] = real(vertex[glindex2,23]) ycoord[glindex2,23] = imag(vertex[glindex2,23]) elseif traparray[glindex2] == 194 ; "14-asterisk" cursality[glindex2] = 14 numbervertices = 28 ; vertices only for open curves cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices vertex[glindex2,glindex] = (0,0) xcoord[glindex2,glindex + 1] = trapscales[glindex2] * cos(glindex * #pi / 14) ycoord[glindex2,glindex + 1] = trapscales[glindex2] * sin(glindex * #pi / 14) glindex = glindex + 1 vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex vertex[glindex2,1] = @leafAlength * vertex[glindex2,1] xcoord[glindex2,1] = real(vertex[glindex2,1]) ycoord[glindex2,1] = imag(vertex[glindex2,1]) vertex[glindex2,3] = @leafBlength * vertex[glindex2,3] xcoord[glindex2,3] = real(vertex[glindex2,3]) ycoord[glindex2,3] = imag(vertex[glindex2,3]) vertex[glindex2,5] = @leafClength * vertex[glindex2,5] xcoord[glindex2,5] = real(vertex[glindex2,5]) ycoord[glindex2,5] = imag(vertex[glindex2,5]) vertex[glindex2,7] = @leafDlength * vertex[glindex2,7] xcoord[glindex2,7] = real(vertex[glindex2,7]) ycoord[glindex2,7] = imag(vertex[glindex2,7]) vertex[glindex2,9] = @leafElength * vertex[glindex2,9] xcoord[glindex2,9] = real(vertex[glindex2,9]) ycoord[glindex2,9] = imag(vertex[glindex2,9]) vertex[glindex2,11] = @leafFlength * vertex[glindex2,11] xcoord[glindex2,11] = real(vertex[glindex2,11]) ycoord[glindex2,11] = imag(vertex[glindex2,11]) vertex[glindex2,13] = @leafGlength * vertex[glindex2,13] xcoord[glindex2,13] = real(vertex[glindex2,13]) ycoord[glindex2,13] = imag(vertex[glindex2,13]) vertex[glindex2,15] = @leafHlength * vertex[glindex2,15] xcoord[glindex2,15] = real(vertex[glindex2,15]) ycoord[glindex2,15] = imag(vertex[glindex2,15]) vertex[glindex2,17] = @leafIlength * vertex[glindex2,17] xcoord[glindex2,17] = real(vertex[glindex2,17]) ycoord[glindex2,17] = imag(vertex[glindex2,17]) vertex[glindex2,19] = @leafJlength * vertex[glindex2,19] xcoord[glindex2,19] = real(vertex[glindex2,19]) ycoord[glindex2,19] = imag(vertex[glindex2,19]) vertex[glindex2,21] = @leafKlength * vertex[glindex2,21] xcoord[glindex2,21] = real(vertex[glindex2,21]) ycoord[glindex2,21] = imag(vertex[glindex2,21]) vertex[glindex2,23] = @leafLlength * vertex[glindex2,23] xcoord[glindex2,23] = real(vertex[glindex2,23]) ycoord[glindex2,23] = imag(vertex[glindex2,23]) elseif traparray[glindex2] == 195 ; "15-asterisk" cursality[glindex2] = 15 numbervertices = 30 ; vertices only for open curves cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices vertex[glindex2,glindex] = (0,0) xcoord[glindex2,glindex + 1] = trapscales[glindex2] * cos(glindex * #pi / 15) ycoord[glindex2,glindex + 1] = trapscales[glindex2] * sin(glindex * #pi / 15) glindex = glindex + 1 vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex vertex[glindex2,1] = @leafAlength * vertex[glindex2,1] xcoord[glindex2,1] = real(vertex[glindex2,1]) ycoord[glindex2,1] = imag(vertex[glindex2,1]) vertex[glindex2,3] = @leafBlength * vertex[glindex2,3] xcoord[glindex2,3] = real(vertex[glindex2,3]) ycoord[glindex2,3] = imag(vertex[glindex2,3]) vertex[glindex2,5] = @leafClength * vertex[glindex2,5] xcoord[glindex2,5] = real(vertex[glindex2,5]) ycoord[glindex2,5] = imag(vertex[glindex2,5]) vertex[glindex2,7] = @leafDlength * vertex[glindex2,7] xcoord[glindex2,7] = real(vertex[glindex2,7]) ycoord[glindex2,7] = imag(vertex[glindex2,7]) vertex[glindex2,9] = @leafElength * vertex[glindex2,9] xcoord[glindex2,9] = real(vertex[glindex2,9]) ycoord[glindex2,9] = imag(vertex[glindex2,9]) vertex[glindex2,11] = @leafFlength * vertex[glindex2,11] xcoord[glindex2,11] = real(vertex[glindex2,11]) ycoord[glindex2,11] = imag(vertex[glindex2,11]) vertex[glindex2,13] = @leafGlength * vertex[glindex2,13] xcoord[glindex2,13] = real(vertex[glindex2,13]) ycoord[glindex2,13] = imag(vertex[glindex2,13]) vertex[glindex2,15] = @leafHlength * vertex[glindex2,15] xcoord[glindex2,15] = real(vertex[glindex2,15]) ycoord[glindex2,15] = imag(vertex[glindex2,15]) vertex[glindex2,17] = @leafIlength * vertex[glindex2,17] xcoord[glindex2,17] = real(vertex[glindex2,17]) ycoord[glindex2,17] = imag(vertex[glindex2,17]) vertex[glindex2,19] = @leafJlength * vertex[glindex2,19] xcoord[glindex2,19] = real(vertex[glindex2,19]) ycoord[glindex2,19] = imag(vertex[glindex2,19]) vertex[glindex2,21] = @leafKlength * vertex[glindex2,21] xcoord[glindex2,21] = real(vertex[glindex2,21]) ycoord[glindex2,21] = imag(vertex[glindex2,21]) vertex[glindex2,23] = @leafLlength * vertex[glindex2,23] xcoord[glindex2,23] = real(vertex[glindex2,23]) ycoord[glindex2,23] = imag(vertex[glindex2,23]) elseif traparray[glindex2] == 196 ; "16-asterisk" cursality[glindex2] = 16 numbervertices = 32 ; vertices only for open curves cincrement[glindex2] = 2 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 while glindex < numbervertices vertex[glindex2,glindex] = (0,0) xcoord[glindex2,glindex + 1] = trapscales[glindex2] * cos(glindex * #pi / 16) ycoord[glindex2,glindex + 1] = trapscales[glindex2] * sin(glindex * #pi / 16) glindex = glindex + 1 vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex vertex[glindex2,1] = @leafAlength * vertex[glindex2,1] xcoord[glindex2,1] = real(vertex[glindex2,1]) ycoord[glindex2,1] = imag(vertex[glindex2,1]) vertex[glindex2,3] = @leafBlength * vertex[glindex2,3] xcoord[glindex2,3] = real(vertex[glindex2,3]) ycoord[glindex2,3] = imag(vertex[glindex2,3]) vertex[glindex2,5] = @leafClength * vertex[glindex2,5] xcoord[glindex2,5] = real(vertex[glindex2,5]) ycoord[glindex2,5] = imag(vertex[glindex2,5]) vertex[glindex2,7] = @leafDlength * vertex[glindex2,7] xcoord[glindex2,7] = real(vertex[glindex2,7]) ycoord[glindex2,7] = imag(vertex[glindex2,7]) vertex[glindex2,9] = @leafElength * vertex[glindex2,9] xcoord[glindex2,9] = real(vertex[glindex2,9]) ycoord[glindex2,9] = imag(vertex[glindex2,9]) vertex[glindex2,11] = @leafFlength * vertex[glindex2,11] xcoord[glindex2,11] = real(vertex[glindex2,11]) ycoord[glindex2,11] = imag(vertex[glindex2,11]) vertex[glindex2,13] = @leafGlength * vertex[glindex2,13] xcoord[glindex2,13] = real(vertex[glindex2,13]) ycoord[glindex2,13] = imag(vertex[glindex2,13]) vertex[glindex2,15] = @leafHlength * vertex[glindex2,15] xcoord[glindex2,15] = real(vertex[glindex2,15]) ycoord[glindex2,15] = imag(vertex[glindex2,15]) vertex[glindex2,17] = @leafIlength * vertex[glindex2,17] xcoord[glindex2,17] = real(vertex[glindex2,17]) ycoord[glindex2,17] = imag(vertex[glindex2,17]) vertex[glindex2,19] = @leafJlength * vertex[glindex2,19] xcoord[glindex2,19] = real(vertex[glindex2,19]) ycoord[glindex2,19] = imag(vertex[glindex2,19]) vertex[glindex2,21] = @leafKlength * vertex[glindex2,21] xcoord[glindex2,21] = real(vertex[glindex2,21]) ycoord[glindex2,21] = imag(vertex[glindex2,21]) vertex[glindex2,23] = @leafLlength * vertex[glindex2,23] xcoord[glindex2,23] = real(vertex[glindex2,23]) ycoord[glindex2,23] = imag(vertex[glindex2,23]) elseif traparray[glindex2] == 197 ; "13-star" cursality[glindex2] = 1 numbervertices = 27 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 27 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2, 0] = trapscales[glindex2] * (0.5, 0.) vertex[glindex2, 1] = @starspikiness * trapscales[glindex2] * (0.970942, 0.239316) vertex[glindex2, 2] = trapscales[glindex2] * (0.442728, 0.232362) vertex[glindex2, 3] = @starspikiness * trapscales[glindex2] * (0.748511, 0.663123) vertex[glindex2, 4] = trapscales[glindex2] * (0.284032, 0.411492) vertex[glindex2, 5] = @starspikiness * trapscales[glindex2] * (0.354605, 0.935016) vertex[glindex2, 6] = trapscales[glindex2] * (0.0602683, 0.496354) vertex[glindex2, 7] = @starspikiness * trapscales[glindex2] * (-0.120537, 0.992709) vertex[glindex2, 8] = trapscales[glindex2] * (-0.177302, 0.467508) vertex[glindex2, 9] = @starspikiness * trapscales[glindex2] * (-0.568065, 0.822984) vertex[glindex2, 10] = trapscales[glindex2] * (-0.374255, 0.331561) vertex[glindex2, 11] = @starspikiness * trapscales[glindex2] * (-0.885456, 0.464723) vertex[glindex2, 12] = trapscales[glindex2] * (-0.485471, 0.119658) vertex[glindex2, 13] = @starspikiness * trapscales[glindex2] * (-1., 0.) vertex[glindex2, 14] = trapscales[glindex2] * (-0.485471, -0.119658) vertex[glindex2, 15] = @starspikiness * trapscales[glindex2] * (-0.885456, -0.464723) vertex[glindex2, 16] = trapscales[glindex2] * (-0.374255, -0.331561) vertex[glindex2, 17] = @starspikiness * trapscales[glindex2] * (-0.568065, -0.822984) vertex[glindex2, 18] = trapscales[glindex2] * (-0.177302, -0.467508) vertex[glindex2, 19] = @starspikiness * trapscales[glindex2] * (-0.120537, -0.992709) vertex[glindex2, 20] = trapscales[glindex2] * (0.0602683, -0.496354) vertex[glindex2, 21] = @starspikiness * trapscales[glindex2] * (0.354605, -0.935016) vertex[glindex2, 22] = trapscales[glindex2] * (0.284032, -0.411492) vertex[glindex2, 23] = @starspikiness * trapscales[glindex2] * (0.748511, -0.663123) vertex[glindex2, 24] = trapscales[glindex2] * (0.442728, -0.232362) vertex[glindex2, 25] = @starspikiness * trapscales[glindex2] * (0.970942, -0.239316) vertex[glindex2, 26] = trapscales[glindex2] * (0.5, 0.) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 198 ; "14-star" cursality[glindex2] = 1 numbervertices = 29 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 29 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2, 0] = trapscales[glindex2] * (0.5, 0.) vertex[glindex2, 1] = @starspikiness * trapscales[glindex2] * (0.974928, 0.222521) vertex[glindex2, 2] = trapscales[glindex2] * (0.450484, 0.216942) vertex[glindex2, 3] = @starspikiness * trapscales[glindex2] * (0.781831, 0.62349) vertex[glindex2, 4] = trapscales[glindex2] * (0.311745, 0.390916) vertex[glindex2, 5] = @starspikiness * trapscales[glindex2] * (0.433884, 0.900969) vertex[glindex2, 6] = trapscales[glindex2] * (0.11126, 0.487464) vertex[glindex2, 7] = @starspikiness * trapscales[glindex2] * (0., 1.) vertex[glindex2, 8] = trapscales[glindex2] * (-0.11126, 0.487464) vertex[glindex2, 9] = @starspikiness * trapscales[glindex2] * (-0.433884, 0.900969) vertex[glindex2, 10] = trapscales[glindex2] * (-0.311745, 0.390916) vertex[glindex2, 11] = @starspikiness * trapscales[glindex2] * (-0.781831, 0.62349) vertex[glindex2, 12] = trapscales[glindex2] * (-0.450484, 0.216942) vertex[glindex2, 13] = @starspikiness * trapscales[glindex2] * (-0.974928, 0.222521) vertex[glindex2, 14] = trapscales[glindex2] * (-0.5, 0.) vertex[glindex2, 15] = @starspikiness * trapscales[glindex2] * (-0.974928, -0.222521) vertex[glindex2, 16] = trapscales[glindex2] * (-0.450484, -0.216942) vertex[glindex2, 17] = @starspikiness * trapscales[glindex2] * (-0.781831, -0.62349) vertex[glindex2, 18] = trapscales[glindex2] * (-0.311745, -0.390916) vertex[glindex2, 19] = @starspikiness * trapscales[glindex2] * (-0.433884, -0.900969) vertex[glindex2, 20] = trapscales[glindex2] * (-0.11126, -0.487464) vertex[glindex2, 21] = @starspikiness * trapscales[glindex2] * (0., -1.) vertex[glindex2, 22] = trapscales[glindex2] * (0.11126, -0.487464) vertex[glindex2, 23] = @starspikiness * trapscales[glindex2] * (0.433884, -0.900969) vertex[glindex2, 24] = trapscales[glindex2] * (0.311745, -0.390916) vertex[glindex2, 25] = @starspikiness * trapscales[glindex2] * (0.781831, -0.62349) vertex[glindex2, 26] = trapscales[glindex2] * (0.450484, -0.216942) vertex[glindex2, 27] = @starspikiness * trapscales[glindex2] * (0.974928, -0.222521) vertex[glindex2, 28] = trapscales[glindex2] * (0.5, 0.) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 199 ; "15-star" cursality[glindex2] = 1 numbervertices = 31 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 31 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2, 0] = trapscales[glindex2] * (0.5, 0.) vertex[glindex2, 1] = @starspikiness * trapscales[glindex2] * (0.978148, 0.207912) vertex[glindex2, 2] = trapscales[glindex2] * (0.456773, 0.203368) vertex[glindex2, 3] = @starspikiness * trapscales[glindex2] * (0.809017, 0.587785) vertex[glindex2, 4] = trapscales[glindex2] * (0.334565, 0.371572) vertex[glindex2, 5] = @starspikiness * trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2, 6] = trapscales[glindex2] * (0.154508, 0.475528) vertex[glindex2, 7] = @starspikiness * trapscales[glindex2] * (0.104528, 0.994522) vertex[glindex2, 8] = trapscales[glindex2] * (-0.0522642, 0.497261) vertex[glindex2, 9] = @starspikiness * trapscales[glindex2] * (-0.309017, 0.951057) vertex[glindex2, 10] = trapscales[glindex2] * (-0.25, 0.433013) vertex[glindex2, 11] = @starspikiness * trapscales[glindex2] * (-0.669131, 0.743145) vertex[glindex2, 12] = trapscales[glindex2] * (-0.404508, 0.293893) vertex[glindex2, 13] = @starspikiness * trapscales[glindex2] * (-0.913545, 0.406737) vertex[glindex2, 14] = trapscales[glindex2] * (-0.489074, 0.103956) vertex[glindex2, 15] = @starspikiness * trapscales[glindex2] * (-1., 0.) vertex[glindex2, 16] = trapscales[glindex2] * (-0.489074, -0.103956) vertex[glindex2, 17] = @starspikiness * trapscales[glindex2] * (-0.913545, -0.406737) vertex[glindex2, 18] = trapscales[glindex2] * (-0.404508, -0.293893) vertex[glindex2, 19] = @starspikiness * trapscales[glindex2] * (-0.669131, -0.743145) vertex[glindex2, 20] = trapscales[glindex2] * (-0.25, -0.433013) vertex[glindex2, 21] = @starspikiness * trapscales[glindex2] * (-0.309017, -0.951057) vertex[glindex2, 22] = trapscales[glindex2] * (-0.0522642, -0.497261) vertex[glindex2, 23] = @starspikiness * trapscales[glindex2] * (0.104528, -0.994522) vertex[glindex2, 24] = trapscales[glindex2] * (0.154508, -0.475528) vertex[glindex2, 25] = @starspikiness * trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2, 26] = trapscales[glindex2] * (0.334565, -0.371572) vertex[glindex2, 27] = @starspikiness * trapscales[glindex2] * (0.809017, -0.587785) vertex[glindex2, 28] = trapscales[glindex2] * (0.456773, -0.203368) vertex[glindex2, 29] = @starspikiness * trapscales[glindex2] * (0.978148, -0.207912) vertex[glindex2, 30] = trapscales[glindex2] * (0.5, 0.) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 200 ; "16-star" cursality[glindex2] = 1 numbervertices = 33 ; n + cursality[glindex2] for closed curves cincrement[glindex2] = 33 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2, 0] = trapscales[glindex2] * (0.5, 0.) vertex[glindex2, 1] = @starspikiness * trapscales[glindex2] * (0.980785, 0.19509) vertex[glindex2, 2] = trapscales[glindex2] * (0.46194, 0.191342) vertex[glindex2, 3] = @starspikiness * trapscales[glindex2] * (0.83147, 0.55557) vertex[glindex2, 4] = trapscales[glindex2] * (0.353553, 0.353553) vertex[glindex2, 5] = @starspikiness * trapscales[glindex2] * (0.55557, 0.83147) vertex[glindex2, 6] = trapscales[glindex2] * (0.191342, 0.46194) vertex[glindex2, 7] = @starspikiness * trapscales[glindex2] * (0.19509, 0.980785) vertex[glindex2, 8] = trapscales[glindex2] * (0., 0.5) vertex[glindex2, 9] = @starspikiness * trapscales[glindex2] * (-0.19509, 0.980785) vertex[glindex2, 10] = trapscales[glindex2] * (-0.191342, 0.46194) vertex[glindex2, 11] = @starspikiness * trapscales[glindex2] * (-0.55557, 0.83147) vertex[glindex2, 12] = trapscales[glindex2] * (-0.353553, 0.353553) vertex[glindex2, 13] = @starspikiness * trapscales[glindex2] * (-0.83147, 0.55557) vertex[glindex2, 14] = trapscales[glindex2] * (-0.46194, 0.191342) vertex[glindex2, 15] = @starspikiness * trapscales[glindex2] * (-0.980785, 0.19509) vertex[glindex2, 16] = trapscales[glindex2] * (-0.5, 0.) vertex[glindex2, 17] = @starspikiness * trapscales[glindex2] * (-0.980785, -0.19509) vertex[glindex2, 18] = trapscales[glindex2] * (-0.46194, -0.191342) vertex[glindex2, 19] = @starspikiness * trapscales[glindex2] * (-0.83147, -0.55557) vertex[glindex2, 20] = trapscales[glindex2] * (-0.353553, -0.353553) vertex[glindex2, 21] = @starspikiness * trapscales[glindex2] * (-0.55557, -0.83147) vertex[glindex2, 22] = trapscales[glindex2] * (-0.191342, -0.46194) vertex[glindex2, 23] = @starspikiness * trapscales[glindex2] * (-0.19509, -0.980785) vertex[glindex2, 24] = trapscales[glindex2] * (0., -0.5) vertex[glindex2, 25] = @starspikiness * trapscales[glindex2] * (0.19509, -0.980785) vertex[glindex2, 26] = trapscales[glindex2] * (0.191342, -0.46194) vertex[glindex2, 27] = @starspikiness * trapscales[glindex2] * (0.55557, -0.83147) vertex[glindex2, 28] = trapscales[glindex2] * (0.353553, -0.353553) vertex[glindex2, 29] = @starspikiness * trapscales[glindex2] * (0.83147, -0.55557) vertex[glindex2, 30] = trapscales[glindex2] * (0.46194, -0.191342) vertex[glindex2, 31] = @starspikiness * trapscales[glindex2] * (0.980785, -0.19509) vertex[glindex2, 32] = trapscales[glindex2] * (0.5, 0.) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 201 ; "3-rhombstar" cursality[glindex2] = 3 numbervertices = 12 ; vertices only for open curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2, 0] = 0.75 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 1] = 0.75 * trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2, 2] = 0.75 * trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2, 3] = 0.75 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 4] = 0.75 * trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2, 5] = 0.75 * trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2, 6] = 0.75 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 7] = 0.75 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 8] = 0.75 * trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2, 9] = 0.75 * trapscales[glindex2] * (-1., 0.) vertex[glindex2, 10] =0.75 * trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2, 11] = 0.75 * trapscales[glindex2] * (0., 0.) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 202 ; "5-rhombstar" cursality[glindex2] = 5 numbervertices = 20 ; vertices only for open curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2, 0] = 0.5 * trapscales[glindex2] * (1.15, 0.) vertex[glindex2, 1] = 0.5 * trapscales[glindex2] * (1.45902, 0.951057) vertex[glindex2, 2] = 0.5 * trapscales[glindex2] * (0.459017, 0.951057) vertex[glindex2, 3] = 0.5 * trapscales[glindex2] * (0.15, 0.) vertex[glindex2, 4] = 0.5 * trapscales[glindex2] * (0.459017, -0.951057) vertex[glindex2, 5] = 0.5 * trapscales[glindex2] * (1.45902, -0.951057) vertex[glindex2, 6] = 0.5 * trapscales[glindex2] * (1.15, 0.) vertex[glindex2, 7] = 0.5 * trapscales[glindex2] * (0.15, 0.) vertex[glindex2, 8] = 0.5 * trapscales[glindex2] * (-0.659017, -0.587785) vertex[glindex2, 9] = 0.5 * trapscales[glindex2] * (-0.35, -1.53884) vertex[glindex2, 10] = 0.5 * trapscales[glindex2] * (0.459017, -0.951057) vertex[glindex2, 11] = 0.5 * trapscales[glindex2] * (0.15, 0.) vertex[glindex2, 12] = 0.5 * trapscales[glindex2] * (-0.659017, 0.587785) vertex[glindex2, 13] = 0.5 * trapscales[glindex2] * (-1.46803, 0.) vertex[glindex2, 14] = 0.5 * trapscales[glindex2] * (-0.659017, -0.587785) vertex[glindex2, 15] = 0.5 * trapscales[glindex2] * (0.15, 0.) vertex[glindex2, 16] = 0.5 * trapscales[glindex2] * (0.459017, 0.951057) vertex[glindex2, 17] = 0.5 * trapscales[glindex2] * (-0.35, 1.53884) vertex[glindex2, 18] = 0.5 * trapscales[glindex2] * (-0.659017, 0.587785) vertex[glindex2, 19] = 0.5 * trapscales[glindex2] * (0.15, 0.) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 203 ; "6-rhombstar" cursality[glindex2] = 6 numbervertices = 24 ; vertices only for open curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2, 0] = 0.5 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 1] = 0.5 * trapscales[glindex2] * (1.5, 0.866025) vertex[glindex2, 2] = 0.5 * trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2, 3] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 4] = 0.5 * trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2, 5] = 0.5 * trapscales[glindex2] * (1.5, -0.866025) vertex[glindex2, 6] = 0.5 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 7] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 8] = 0.5 * trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2, 9] = 0.5 * trapscales[glindex2] * (0., -1.73205) vertex[glindex2, 10] = 0.5 * trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2, 11] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 12] = 0.5 * trapscales[glindex2] * (-1., 0.) vertex[glindex2, 13] = 0.5 * trapscales[glindex2] * (-1.5, -0.866025) vertex[glindex2, 14] = 0.5 * trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2, 15] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 16] = 0.5 * trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2, 17] = 0.5 * trapscales[glindex2] * (-1.5, 0.866025) vertex[glindex2, 18] = 0.5 * trapscales[glindex2] * (-1., 0.) vertex[glindex2, 19] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 20] = 0.5 * trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2, 21] = 0.5 * trapscales[glindex2] * (0., 1.73205) vertex[glindex2, 22] = 0.5 * trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2, 23] = 0.5 * trapscales[glindex2] * (0., 0.) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 204 ; "7-rhombstar" cursality[glindex2] = 7 numbervertices = 28 ; vertices only for open curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2, 0] = 0.5 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 1] = 0.5 * trapscales[glindex2] * (1.62349, 0.781831) vertex[glindex2, 2] = 0.5 * trapscales[glindex2] * (0.62349, 0.781831) vertex[glindex2, 3] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 4] = 0.5 * trapscales[glindex2] * (0.62349, -0.781831) vertex[glindex2, 5] = 0.5 * trapscales[glindex2] * (1.62349, -0.781831) vertex[glindex2, 6] = 0.5 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 7] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 8] = 0.5 * trapscales[glindex2] * (-0.222521, -0.974928) vertex[glindex2, 9] = 0.5 * trapscales[glindex2] * (0.400969, -1.75676) vertex[glindex2, 10] = 0.5 * trapscales[glindex2] * (0.62349, -0.781831) vertex[glindex2, 11] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 12] = 0.5 * trapscales[glindex2] * (-0.900969, -0.433884) vertex[glindex2, 13] = 0.5 * trapscales[glindex2] * (-1.12349, -1.40881) vertex[glindex2, 14] = 0.5 * trapscales[glindex2] * (-0.222521, -0.974928) vertex[glindex2, 15] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 16] = 0.5 * trapscales[glindex2] * (-0.900969, 0.433884) vertex[glindex2, 17] = 0.5 * trapscales[glindex2] * (-1.80194, 0.) vertex[glindex2, 18] = 0.5 * trapscales[glindex2] * (-0.900969, -0.433884) vertex[glindex2, 19] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 20] = 0.5 * trapscales[glindex2] * (-0.222521, 0.974928) vertex[glindex2, 21] = 0.5 * trapscales[glindex2] * (-1.12349, 1.40881) vertex[glindex2, 22] = 0.5 * trapscales[glindex2] * (-0.900969, 0.433884) vertex[glindex2, 23] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 24] = 0.5 * trapscales[glindex2] * (0.62349, 0.781831) vertex[glindex2, 25] = 0.5 * trapscales[glindex2] * (0.400969, 1.75676) vertex[glindex2, 26] = 0.5 * trapscales[glindex2] * (-0.222521, 0.974928) vertex[glindex2, 27] = 0.5 * trapscales[glindex2] * (0., 0.) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 205 ; "8-rhombstar" cursality[glindex2] = 8 numbervertices = 32 ; vertices only for open curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2, 0] = 0.5 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 1] = 0.5 * trapscales[glindex2] * (1.70711, 0.707107) vertex[glindex2, 2] = 0.5 * trapscales[glindex2] * (0.707107, 0.707107) vertex[glindex2, 3] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 4] = 0.5 * trapscales[glindex2] * (0.707107, -0.707107) vertex[glindex2, 5] = 0.5 * trapscales[glindex2] * (1.70711, -0.707107) vertex[glindex2, 6] = 0.5 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 7] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 8] = 0.5 * trapscales[glindex2] * (0., -1.) vertex[glindex2, 9] = 0.5 * trapscales[glindex2] * (0.707107, -1.70711) vertex[glindex2, 10] = 0.5 * trapscales[glindex2] * (0.707107, -0.707107) vertex[glindex2, 11] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 12] = 0.5 * trapscales[glindex2] * (-0.707107, -0.707107) vertex[glindex2, 13] = 0.5 * trapscales[glindex2] * (-0.707107, -1.70711) vertex[glindex2, 14] = 0.5 * trapscales[glindex2] * (0., -1.) vertex[glindex2, 15] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 16] = 0.5 * trapscales[glindex2] * (-1., 0.) vertex[glindex2, 17] = 0.5 * trapscales[glindex2] * (-1.70711, -0.707107) vertex[glindex2, 18] = 0.5 * trapscales[glindex2] * (-0.707107, -0.707107) vertex[glindex2, 19] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 20] = 0.5 * trapscales[glindex2] * (-0.707107, 0.707107) vertex[glindex2, 21] = 0.5 * trapscales[glindex2] * (-1.70711, 0.707107) vertex[glindex2, 22] = 0.5 * trapscales[glindex2] * (-1., 0.) vertex[glindex2, 23] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 24] = 0.5 * trapscales[glindex2] * (0., 1.) vertex[glindex2, 25] = 0.5 * trapscales[glindex2] * (-0.707107, 1.70711) vertex[glindex2, 26] = 0.5 * trapscales[glindex2] * (-0.707107, 0.707107) vertex[glindex2, 27] = 0.5 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 28] = 0.5 * trapscales[glindex2] * (0.707107, 0.707107) vertex[glindex2, 29] = 0.5 * trapscales[glindex2] * (0.707107, 1.70711) vertex[glindex2, 30] = 0.5 * trapscales[glindex2] * (0., 1.) vertex[glindex2, 31] = 0.5 * trapscales[glindex2] * (0., 0.) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 206 ; "9-rhombstar" cursality[glindex2] = 9 numbervertices = 36 ; vertices only for open curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2, 0] = 0.4 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 1] = 0.4 * trapscales[glindex2] * (1.76604, 0.642788) vertex[glindex2, 2] = 0.4 * trapscales[glindex2] * (0.766044, 0.642788) vertex[glindex2, 3] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 4] = 0.4 * trapscales[glindex2] * (0.766044, -0.642788) vertex[glindex2, 5] = 0.4 * trapscales[glindex2] * (1.76604, -0.642788) vertex[glindex2, 6] = 0.4 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 7] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 8] = 0.4 * trapscales[glindex2] * (0.173648, -0.984808) vertex[glindex2, 9] = 0.4 * trapscales[glindex2] * (0.939693, -1.6276) vertex[glindex2, 10] = 0.4 * trapscales[glindex2] * (0.766044, -0.642788) vertex[glindex2, 11] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 12] = 0.4 * trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2, 13] = 0.4 * trapscales[glindex2] * (-0.326352, -1.85083) vertex[glindex2, 14] = 0.4 * trapscales[glindex2] * (0.173648, -0.984808) vertex[glindex2, 15] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 16] = 0.4 * trapscales[glindex2] * (-0.939693, -0.34202) vertex[glindex2, 17] = 0.4 * trapscales[glindex2] * (-1.43969, -1.20805) vertex[glindex2, 18] = 0.4 * trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2, 19] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 20] = 0.4 * trapscales[glindex2] * (-0.939693, 0.34202) vertex[glindex2, 21] = 0.4 * trapscales[glindex2] * (-1.87939, 0.) vertex[glindex2, 22] = 0.4 * trapscales[glindex2] * (-0.939693, -0.34202) vertex[glindex2, 23] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 24] = 0.4 * trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2, 25] = 0.4 * trapscales[glindex2] * (-1.43969, 1.20805) vertex[glindex2, 26] = 0.4 * trapscales[glindex2] * (-0.939693, 0.34202) vertex[glindex2, 27] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 28] = 0.4 * trapscales[glindex2] * (0.173648, 0.984808) vertex[glindex2, 29] = 0.4 * trapscales[glindex2] * (-0.326352, 1.85083) vertex[glindex2, 30] = 0.4 * trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2, 31] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 32] = 0.4 * trapscales[glindex2] * (0.766044, 0.642788) vertex[glindex2, 33] = 0.4 * trapscales[glindex2] * (0.939693, 1.6276) vertex[glindex2, 34] = 0.4 * trapscales[glindex2] * (0.173648, 0.984808) vertex[glindex2, 35] = 0.4 * trapscales[glindex2] * (0., 0.) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 207 ; "10-rhombstar" cursality[glindex2] = 10 numbervertices = 40 ; vertices only for open curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2, 0] = 0.4 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 1] = 0.4 * trapscales[glindex2] * (1.80902, 0.587785) vertex[glindex2, 2] = 0.4 * trapscales[glindex2] * (0.809017, 0.587785) vertex[glindex2, 3] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 4] = 0.4 * trapscales[glindex2] * (0.809017, -0.587785) vertex[glindex2, 5] = 0.4 * trapscales[glindex2] * (1.80902, -0.587785) vertex[glindex2, 6] = 0.4 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 7] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 8] = 0.4 * trapscales[glindex2] * (0.309017, -0.951057) vertex[glindex2, 9] = 0.4 * trapscales[glindex2] * (1.11803, -1.53884) vertex[glindex2, 10] = 0.4 * trapscales[glindex2] * (0.809017, -0.587785) vertex[glindex2, 11] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 12] = 0.4 * trapscales[glindex2] * (-0.309017, -0.951057) vertex[glindex2, 13] = 0.4 * trapscales[glindex2] * (0., -1.90211) vertex[glindex2, 14] = 0.4 * trapscales[glindex2] * (0.309017, -0.951057) vertex[glindex2, 15] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 16] = 0.4 * trapscales[glindex2] * (-0.809017, -0.587785) vertex[glindex2, 17] = 0.4 * trapscales[glindex2] * (-1.11803, -1.53884) vertex[glindex2, 18] = 0.4 * trapscales[glindex2] * (-0.309017, -0.951057) vertex[glindex2, 19] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 20] = 0.4 * trapscales[glindex2] * (-1., 0.) vertex[glindex2, 21] = 0.4 * trapscales[glindex2] * (-1.80902, -0.587785) vertex[glindex2, 22] = 0.4 * trapscales[glindex2] * (-0.809017, -0.587785) vertex[glindex2, 23] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 24] = 0.4 * trapscales[glindex2] * (-0.809017, 0.587785) vertex[glindex2, 25] = 0.4 * trapscales[glindex2] * (-1.80902, 0.587785) vertex[glindex2, 26] = 0.4 * trapscales[glindex2] * (-1., 0.) vertex[glindex2, 27] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 28] = 0.4 * trapscales[glindex2] * (-0.309017, 0.951057) vertex[glindex2, 29] = 0.4 * trapscales[glindex2] * (-1.11803, 1.53884) vertex[glindex2, 30] = 0.4 * trapscales[glindex2] * (-0.809017, 0.587785) vertex[glindex2, 31] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 32] = 0.4 * trapscales[glindex2] * (0.309017, 0.951057) vertex[glindex2, 33] = 0.4 * trapscales[glindex2] * (0., 1.90211) vertex[glindex2, 34] = 0.4 * trapscales[glindex2] * (-0.309017, 0.951057) vertex[glindex2, 35] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 36] = 0.4 * trapscales[glindex2] * (0.809017, 0.587785) vertex[glindex2, 37] = 0.4 * trapscales[glindex2] * (1.11803, 1.53884) vertex[glindex2, 38] = 0.4 * trapscales[glindex2] * (0.309017, 0.951057) vertex[glindex2, 39] = 0.4 * trapscales[glindex2] * (0., 0.) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 208 ; "11-rhombstar" cursality[glindex2] = 11 numbervertices = 44 ; vertices only for open curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2, 0] = 0.4 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 1] = 0.4 * trapscales[glindex2] * (1.84125, 0.540641) vertex[glindex2, 2] = 0.4 * trapscales[glindex2] * (0.841254, 0.540641) vertex[glindex2, 3] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 4] = 0.4 * trapscales[glindex2] * (0.841254, -0.540641) vertex[glindex2, 5] = 0.4 * trapscales[glindex2] * (1.84125, -0.540641) vertex[glindex2, 6] = 0.4 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 7] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 8] = 0.4 * trapscales[glindex2] * (0.415415, -0.909632) vertex[glindex2, 9] = 0.4 * trapscales[glindex2] * (1.25667, -1.45027) vertex[glindex2, 10] = 0.4 * trapscales[glindex2] * (0.841254, -0.540641) vertex[glindex2, 11] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 12] = 0.4 * trapscales[glindex2] * (-0.142315, -0.989821) vertex[glindex2, 13] = 0.4 * trapscales[glindex2] * (0.2731, -1.89945) vertex[glindex2, 14] = 0.4 * trapscales[glindex2] * (0.415415, -0.909632) vertex[glindex2, 15] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 16] = 0.4 * trapscales[glindex2] * (-0.654861, -0.75575) vertex[glindex2, 17] = 0.4 * trapscales[glindex2] * (-0.797176, -1.74557) vertex[glindex2, 18] = 0.4 * trapscales[glindex2] * (-0.142315, -0.989821) vertex[glindex2, 19] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 20] = 0.4 * trapscales[glindex2] * (-0.959493, -0.281733) vertex[glindex2, 21] = 0.4 * trapscales[glindex2] * (-1.61435, -1.03748) vertex[glindex2, 22] = 0.4 * trapscales[glindex2] * (-0.654861, -0.75575) vertex[glindex2, 23] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 24] = 0.4 * trapscales[glindex2] * (-0.959493, 0.281733) vertex[glindex2, 25] = 0.4 * trapscales[glindex2] * (-1.91899, 0.) vertex[glindex2, 26] = 0.4 * trapscales[glindex2] * (-0.959493, -0.281733) vertex[glindex2, 27] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 28] = 0.4 * trapscales[glindex2] * (-0.654861, 0.75575) vertex[glindex2, 29] = 0.4 * trapscales[glindex2] * (-1.61435, 1.03748) vertex[glindex2, 30] = 0.4 * trapscales[glindex2] * (-0.959493, 0.281733) vertex[glindex2, 31] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 32] = 0.4 * trapscales[glindex2] * (-0.142315, 0.989821) vertex[glindex2, 33] = 0.4 * trapscales[glindex2] * (-0.797176, 1.74557) vertex[glindex2, 34] = 0.4 * trapscales[glindex2] * (-0.654861, 0.75575) vertex[glindex2, 35] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 36] = 0.4 * trapscales[glindex2] * (0.415415, 0.909632) vertex[glindex2, 37] = 0.4 * trapscales[glindex2] * (0.2731, 1.89945) vertex[glindex2, 38] = 0.4 * trapscales[glindex2] * (-0.142315, 0.989821) vertex[glindex2, 39] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 40] = 0.4 * trapscales[glindex2] * (0.841254, 0.540641) vertex[glindex2, 41] = 0.4 * trapscales[glindex2] * (1.25667, 1.45027) vertex[glindex2, 42] = 0.4 * trapscales[glindex2] * (0.415415, 0.909632) vertex[glindex2, 43] = 0.4 * trapscales[glindex2] * (0., 0.) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 209 ; "12-rhombstar" cursality[glindex2] = 12 numbervertices = 48 ; vertices only for open curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2, 0] = 0.4 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 1] = 0.4 * trapscales[glindex2] * (1.86603, 0.5) vertex[glindex2, 2] = 0.4 * trapscales[glindex2] * (0.866025, 0.5) vertex[glindex2, 3] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 4] = 0.4 * trapscales[glindex2] * (0.866025, -0.5) vertex[glindex2, 5] = 0.4 * trapscales[glindex2] * (1.86603, -0.5) vertex[glindex2, 6] = 0.4 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 7] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 8] = 0.4 * trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2, 9] = 0.4 * trapscales[glindex2] * (1.36603, -1.36603) vertex[glindex2, 10] = 0.4 * trapscales[glindex2] * (0.866025, -0.5) vertex[glindex2, 11] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 12] = 0.4 * trapscales[glindex2] * (0., -1.) vertex[glindex2, 13] = 0.4 * trapscales[glindex2] * (0.5, -1.86603) vertex[glindex2, 14] = 0.4 * trapscales[glindex2] * (0.5, -0.866025) vertex[glindex2, 15] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 16] = 0.4 * trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2, 17] = 0.4 * trapscales[glindex2] * (-0.5, -1.86603) vertex[glindex2, 18] = 0.4 * trapscales[glindex2] * (0., -1.) vertex[glindex2, 19] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 20] = 0.4 * trapscales[glindex2] * (-0.866025, -0.5) vertex[glindex2, 21] = 0.4 * trapscales[glindex2] * (-1.36603, -1.36603) vertex[glindex2, 22] = 0.4 * trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2, 23] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 24] = 0.4 * trapscales[glindex2] * (-1., 0.) vertex[glindex2, 25] = 0.4 * trapscales[glindex2] * (-1.86603, -0.5) vertex[glindex2, 26] = 0.4 * trapscales[glindex2] * (-0.866025, -0.5) vertex[glindex2, 27] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 28] = 0.4 * trapscales[glindex2] * (-0.866025, 0.5) vertex[glindex2, 29] = 0.4 * trapscales[glindex2] * (-1.86603, 0.5) vertex[glindex2, 30] = 0.4 * trapscales[glindex2] * (-1., 0.) vertex[glindex2, 31] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 32] = 0.4 * trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2, 33] = 0.4 * trapscales[glindex2] * (-1.36603, 1.36603) vertex[glindex2, 34] = 0.4 * trapscales[glindex2] * (-0.866025, 0.5) vertex[glindex2, 35] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 36] = 0.4 * trapscales[glindex2] * (0., 1.) vertex[glindex2, 37] = 0.4 * trapscales[glindex2] * (-0.5, 1.86603) vertex[glindex2, 38] = 0.4 * trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2, 39] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 40] = 0.4 * trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2, 41] = 0.4 * trapscales[glindex2] * (0.5, 1.86603) vertex[glindex2, 42] = 0.4 * trapscales[glindex2] * (0., 1.) vertex[glindex2, 43] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 44] = 0.4 * trapscales[glindex2] * (0.866025, 0.5) vertex[glindex2, 45] = 0.4 * trapscales[glindex2] * (1.36603, 1.36603) vertex[glindex2, 46] = 0.4 * trapscales[glindex2] * (0.5, 0.866025) vertex[glindex2, 47] = 0.4 * trapscales[glindex2] * (0., 0.) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 210 ; "13-rhombstar" cursality[glindex2] = 13 numbervertices = 52 ; vertices only for open curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2, 0] = 0.4 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 1] = 0.4 * trapscales[glindex2] * (1.88546, 0.464723) vertex[glindex2, 2] = 0.4 * trapscales[glindex2] * (0.885456, 0.464723) vertex[glindex2, 3] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 4] = 0.4 * trapscales[glindex2] * (0.885456, -0.464723) vertex[glindex2, 5] = 0.4 * trapscales[glindex2] * (1.88546, -0.464723) vertex[glindex2, 6] = 0.4 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 7] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 8] = 0.4 * trapscales[glindex2] * (0.568065, -0.822984) vertex[glindex2, 9] = 0.4 * trapscales[glindex2] * (1.45352, -1.28771) vertex[glindex2, 10] = 0.4 * trapscales[glindex2] * (0.885456, -0.464723) vertex[glindex2, 11] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 12] = 0.4 * trapscales[glindex2] * (0.120537, -0.992709) vertex[glindex2, 13] = 0.4 * trapscales[glindex2] * (0.688601, -1.81569) vertex[glindex2, 14] = 0.4 * trapscales[glindex2] * (0.568065, -0.822984) vertex[glindex2, 15] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 16] = 0.4 * trapscales[glindex2] * (-0.354605, -0.935016) vertex[glindex2, 17] = 0.4 * trapscales[glindex2] * (-0.234068, -1.92773) vertex[glindex2, 18] = 0.4 * trapscales[glindex2] * (0.120537, -0.992709) vertex[glindex2, 19] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 20] = 0.4 * trapscales[glindex2] * (-0.748511, -0.663123) vertex[glindex2, 21] = 0.4 * trapscales[glindex2] * (-1.10312, -1.59814) vertex[glindex2, 22] = 0.4 * trapscales[glindex2] * (-0.354605, -0.935016) vertex[glindex2, 23] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 24] = 0.4 * trapscales[glindex2] * (-0.970942, -0.239316) vertex[glindex2, 25] = 0.4 * trapscales[glindex2] * (-1.71945, -0.902438) vertex[glindex2, 26] = 0.4 * trapscales[glindex2] * (-0.748511, -0.663123) vertex[glindex2, 27] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 28] = 0.4 * trapscales[glindex2] * (-0.970942, 0.239316) vertex[glindex2, 29] = 0.4 * trapscales[glindex2] * (-1.94188, 0.) vertex[glindex2, 30] = 0.4 * trapscales[glindex2] * (-0.970942, -0.239316) vertex[glindex2, 31] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 32] = 0.4 * trapscales[glindex2] * (-0.748511, 0.663123) vertex[glindex2, 33] = 0.4 * trapscales[glindex2] * (-1.71945, 0.902438) vertex[glindex2, 34] = 0.4 * trapscales[glindex2] * (-0.970942, 0.239316) vertex[glindex2, 35] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 36] = 0.4 * trapscales[glindex2] * (-0.354605, 0.935016) vertex[glindex2, 37] = 0.4 * trapscales[glindex2] * (-1.10312, 1.59814) vertex[glindex2, 38] = 0.4 * trapscales[glindex2] * (-0.748511, 0.663123) vertex[glindex2, 39] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 40] = 0.4 * trapscales[glindex2] * (0.120537, 0.992709) vertex[glindex2, 41] = 0.4 * trapscales[glindex2] * (-0.234068, 1.92773) vertex[glindex2, 42] = 0.4 * trapscales[glindex2] * (-0.354605, 0.935016) vertex[glindex2, 43] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 44] = 0.4 * trapscales[glindex2] * (0.568065, 0.822984) vertex[glindex2, 45] = 0.4 * trapscales[glindex2] * (0.688601, 1.81569) vertex[glindex2, 46] = 0.4 * trapscales[glindex2] * (0.120537, 0.992709) vertex[glindex2, 47] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 48] = 0.4 * trapscales[glindex2] * (0.885456, 0.464723) vertex[glindex2, 49] = 0.4 * trapscales[glindex2] * (1.45352, 1.28771) vertex[glindex2, 50] = 0.4 * trapscales[glindex2] * (0.568065, 0.822984) vertex[glindex2, 51] = 0.4 * trapscales[glindex2] * (0., 0.) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 211 ; "14-rhombstar" cursality[glindex2] = 14 numbervertices = 56 ; vertices only for open curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2, 0] = 0.4 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 1] = 0.4 * trapscales[glindex2] * (1.90097, 0.433884) vertex[glindex2, 2] = 0.4 * trapscales[glindex2] * (0.900969, 0.433884) vertex[glindex2, 3] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 4] = 0.4 * trapscales[glindex2] * (0.900969, -0.433884) vertex[glindex2, 5] = 0.4 * trapscales[glindex2] * (1.90097, -0.433884) vertex[glindex2, 6] = 0.4 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 7] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 8] = 0.4 * trapscales[glindex2] * (0.62349, -0.781831) vertex[glindex2, 9] = 0.4 * trapscales[glindex2] * (1.52446, -1.21572) vertex[glindex2, 10] = 0.4 * trapscales[glindex2] * (0.900969, -0.433884) vertex[glindex2, 11] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 12] = 0.4 * trapscales[glindex2] * (0.222521, -0.974928) vertex[glindex2, 13] = 0.4 * trapscales[glindex2] * (0.846011, -1.75676) vertex[glindex2, 14] = 0.4 * trapscales[glindex2] * (0.62349, -0.781831) vertex[glindex2, 15] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 16] = 0.4 * trapscales[glindex2] * (-0.222521, -0.974928) vertex[glindex2, 17] = 0.4 * trapscales[glindex2] * (0., -1.94986) vertex[glindex2, 18] = 0.4 * trapscales[glindex2] * (0.222521, -0.974928) vertex[glindex2, 19] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 20] = 0.4 * trapscales[glindex2] * (-0.62349, -0.781831) vertex[glindex2, 21] = 0.4 * trapscales[glindex2] * (-0.846011, -1.75676) vertex[glindex2, 22] = 0.4 * trapscales[glindex2] * (-0.222521, -0.974928) vertex[glindex2, 23] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 24] = 0.4 * trapscales[glindex2] * (-0.900969, -0.433884) vertex[glindex2, 25] = 0.4 * trapscales[glindex2] * (-1.52446, -1.21572) vertex[glindex2, 26] = 0.4 * trapscales[glindex2] * (-0.62349, -0.781831) vertex[glindex2, 27] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 28] = 0.4 * trapscales[glindex2] * (-1., 0.) vertex[glindex2, 29] = 0.4 * trapscales[glindex2] * (-1.90097, -0.433884) vertex[glindex2, 30] = 0.4 * trapscales[glindex2] * (-0.900969, -0.433884) vertex[glindex2, 31] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 32] = 0.4 * trapscales[glindex2] * (-0.900969, 0.433884) vertex[glindex2, 33] = 0.4 * trapscales[glindex2] * (-1.90097, 0.433884) vertex[glindex2, 34] = 0.4 * trapscales[glindex2] * (-1., 0.) vertex[glindex2, 35] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 36] = 0.4 * trapscales[glindex2] * (-0.62349, 0.781831) vertex[glindex2, 37] = 0.4 * trapscales[glindex2] * (-1.52446, 1.21572) vertex[glindex2, 38] = 0.4 * trapscales[glindex2] * (-0.900969, 0.433884) vertex[glindex2, 39] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 40] = 0.4 * trapscales[glindex2] * (-0.222521, 0.974928) vertex[glindex2, 41] = 0.4 * trapscales[glindex2] * (-0.846011, 1.75676) vertex[glindex2, 42] = 0.4 * trapscales[glindex2] * (-0.62349, 0.781831) vertex[glindex2, 43] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 44] = 0.4 * trapscales[glindex2] * (0.222521, 0.974928) vertex[glindex2, 45] = 0.4 * trapscales[glindex2] * (0., 1.94986) vertex[glindex2, 46] = 0.4 * trapscales[glindex2] * (-0.222521, 0.974928) vertex[glindex2, 47] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 48] = 0.4 * trapscales[glindex2] * (0.62349, 0.781831) vertex[glindex2, 49] = 0.4 * trapscales[glindex2] * (0.846011, 1.75676) vertex[glindex2, 50] = 0.4 * trapscales[glindex2] * (0.222521, 0.974928) vertex[glindex2, 51] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 52] = 0.4 * trapscales[glindex2] * (0.900969, 0.433884) vertex[glindex2, 53] = 0.4 * trapscales[glindex2] * (1.52446, 1.21572) vertex[glindex2, 54] = 0.4 * trapscales[glindex2] * (0.62349, 0.781831) vertex[glindex2, 55] = 0.4 * trapscales[glindex2] * (0., 0.) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 212 ; "15-rhombstar" cursality[glindex2] = 15 numbervertices = 60 ; vertices only for open curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2, 0] = 0.4 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 1] = 0.4 * trapscales[glindex2] * (1.91355, 0.406737) vertex[glindex2, 2] = 0.4 * trapscales[glindex2] * (0.913545, 0.406737) vertex[glindex2, 3] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 4] = 0.4 * trapscales[glindex2] * (0.913545, -0.406737) vertex[glindex2, 5] = 0.4 * trapscales[glindex2] * (1.91355, -0.406737) vertex[glindex2, 6] = 0.4 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 7] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 8] = 0.4 * trapscales[glindex2] * (0.669131, -0.743145) vertex[glindex2, 9] = 0.4 * trapscales[glindex2] * (1.58268, -1.14988) vertex[glindex2, 10] = 0.4 * trapscales[glindex2] * (0.913545, -0.406737) vertex[glindex2, 11] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 12] = 0.4 * trapscales[glindex2] * (0.309017, -0.951057) vertex[glindex2, 13] = 0.4 * trapscales[glindex2] * (0.978148, -1.6942) vertex[glindex2, 14] = 0.4 * trapscales[glindex2] * (0.669131, -0.743145) vertex[glindex2, 15] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 16] = 0.4 * trapscales[glindex2] * (-0.104528, -0.994522) vertex[glindex2, 17] = 0.4 * trapscales[glindex2] * (0.204489, -1.94558) vertex[glindex2, 18] = 0.4 * trapscales[glindex2] * (0.309017, -0.951057) vertex[glindex2, 19] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 20] = 0.4 * trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2, 21] = 0.4 * trapscales[glindex2] * (-0.604528, -1.86055) vertex[glindex2, 22] = 0.4 * trapscales[glindex2] * (-0.104528, -0.994522) vertex[glindex2, 23] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 24] = 0.4 * trapscales[glindex2] * (-0.809017, -0.587785) vertex[glindex2, 25] = 0.4 * trapscales[glindex2] * (-1.30902, -1.45381) vertex[glindex2, 26] = 0.4 * trapscales[glindex2] * (-0.5, -0.866025) vertex[glindex2, 27] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 28] = 0.4 * trapscales[glindex2] * (-0.978148, -0.207912) vertex[glindex2, 29] = 0.4 * trapscales[glindex2] * (-1.78716, -0.795697) vertex[glindex2, 30] = 0.4 * trapscales[glindex2] * (-0.809017, -0.587785) vertex[glindex2, 31] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 32] = 0.4 * trapscales[glindex2] * (-0.978148, 0.207912) vertex[glindex2, 33] = 0.4 * trapscales[glindex2] * (-1.9563, 0.) vertex[glindex2, 34] = 0.4 * trapscales[glindex2] * (-0.978148, -0.207912) vertex[glindex2, 35] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 36] = 0.4 * trapscales[glindex2] * (-0.809017, 0.587785) vertex[glindex2, 37] = 0.4 * trapscales[glindex2] * (-1.78716, 0.795697) vertex[glindex2, 38] = 0.4 * trapscales[glindex2] * (-0.978148, 0.207912) vertex[glindex2, 39] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 40] = 0.4 * trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2, 41] = 0.4 * trapscales[glindex2] * (-1.30902, 1.45381) vertex[glindex2, 42] = 0.4 * trapscales[glindex2] * (-0.809017, 0.587785) vertex[glindex2, 43] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 44] = 0.4 * trapscales[glindex2] * (-0.104528, 0.994522) vertex[glindex2, 45] = 0.4 * trapscales[glindex2] * (-0.604528, 1.86055) vertex[glindex2, 46] = 0.4 * trapscales[glindex2] * (-0.5, 0.866025) vertex[glindex2, 47] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 48] = 0.4 * trapscales[glindex2] * (0.309017, 0.951057) vertex[glindex2, 49] = 0.4 * trapscales[glindex2] * (0.204489, 1.94558) vertex[glindex2, 50] = 0.4 * trapscales[glindex2] * (-0.104528, 0.994522) vertex[glindex2, 51] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 52] = 0.4 * trapscales[glindex2] * (0.669131, 0.743145) vertex[glindex2, 53] = 0.4 * trapscales[glindex2] * (0.978148, 1.6942) vertex[glindex2, 54] = 0.4 * trapscales[glindex2] * (0.309017, 0.951057) vertex[glindex2, 55] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 56] = 0.4 * trapscales[glindex2] * (0.913545, 0.406737) vertex[glindex2, 57] = 0.4 * trapscales[glindex2] * (1.58268, 1.14988) vertex[glindex2, 58] = 0.4 * trapscales[glindex2] * (0.669131, 0.743145) vertex[glindex2, 59] = 0.4 * trapscales[glindex2] * (0., 0.) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 213 ; "16-rhombstar" cursality[glindex2] = 16 numbervertices = 64 ; vertices only for open curves cincrement[glindex2] = 4 ; numbervertices/cursality[glindex2] ; initialize arrays vertex[glindex2, 0] = 0.4 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 1] = 0.4 * trapscales[glindex2] * (1.92388, 0.382683) vertex[glindex2, 2] = 0.4 * trapscales[glindex2] * (0.92388, 0.382683) vertex[glindex2, 3] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 4] = 0.4 * trapscales[glindex2] * (0.92388, -0.382683) vertex[glindex2, 5] = 0.4 * trapscales[glindex2] * (1.92388, -0.382683) vertex[glindex2, 6] = 0.4 * trapscales[glindex2] * (1., 0.) vertex[glindex2, 7] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 8] = 0.4 * trapscales[glindex2] * (0.707107, -0.707107) vertex[glindex2, 9] = 0.4 * trapscales[glindex2] * (1.63099, -1.08979) vertex[glindex2, 10] = 0.4 * trapscales[glindex2] * (0.92388, -0.382683) vertex[glindex2, 11] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 12] = 0.4 * trapscales[glindex2] * (0.382683, -0.92388) vertex[glindex2, 13] = 0.4 * trapscales[glindex2] * (1.08979, -1.63099) vertex[glindex2, 14] = 0.4 * trapscales[glindex2] * (0.707107, -0.707107) vertex[glindex2, 15] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 16] = 0.4 * trapscales[glindex2] * (0., -1.) vertex[glindex2, 17] = 0.4 * trapscales[glindex2] * (0.382683, -1.92388) vertex[glindex2, 18] = 0.4 * trapscales[glindex2] * (0.382683, -0.92388) vertex[glindex2, 19] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 20] = 0.4 * trapscales[glindex2] * (-0.382683, -0.92388) vertex[glindex2, 21] = 0.4 * trapscales[glindex2] * (-0.382683, -1.92388) vertex[glindex2, 22] = 0.4 * trapscales[glindex2] * (0., -1.) vertex[glindex2, 23] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 24] = 0.4 * trapscales[glindex2] * (-0.707107, -0.707107) vertex[glindex2, 25] = 0.4 * trapscales[glindex2] * (-1.08979, -1.63099) vertex[glindex2, 26] = 0.4 * trapscales[glindex2] * (-0.382683, -0.92388) vertex[glindex2, 27] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 28] = 0.4 * trapscales[glindex2] * (-0.92388, -0.382683) vertex[glindex2, 29] = 0.4 * trapscales[glindex2] * (-1.63099, -1.08979) vertex[glindex2, 30] = 0.4 * trapscales[glindex2] * (-0.707107, -0.707107) vertex[glindex2, 31] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 32] = 0.4 * trapscales[glindex2] * (-1., 0.) vertex[glindex2, 33] = 0.4 * trapscales[glindex2] * (-1.92388, -0.382683) vertex[glindex2, 34] = 0.4 * trapscales[glindex2] * (-0.92388, -0.382683) vertex[glindex2, 35] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 36] = 0.4 * trapscales[glindex2] * (-0.92388, 0.382683) vertex[glindex2, 37] = 0.4 * trapscales[glindex2] * (-1.92388, 0.382683) vertex[glindex2, 38] = 0.4 * trapscales[glindex2] * (-1., 0.) vertex[glindex2, 39] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 40] = 0.4 * trapscales[glindex2] * (-0.707107, 0.707107) vertex[glindex2, 41] = 0.4 * trapscales[glindex2] * (-1.63099, 1.08979) vertex[glindex2, 42] = 0.4 * trapscales[glindex2] * (-0.92388, 0.382683) vertex[glindex2, 43] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 44] = 0.4 * trapscales[glindex2] * (-0.382683, 0.92388) vertex[glindex2, 45] = 0.4 * trapscales[glindex2] * (-1.08979, 1.63099) vertex[glindex2, 46] = 0.4 * trapscales[glindex2] * (-0.707107, 0.707107) vertex[glindex2, 47] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 48] = 0.4 * trapscales[glindex2] * (0., 1.) vertex[glindex2, 49] = 0.4 * trapscales[glindex2] * (-0.382683, 1.92388) vertex[glindex2, 50] = 0.4 * trapscales[glindex2] * (-0.382683, 0.92388) vertex[glindex2, 51] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 52] = 0.4 * trapscales[glindex2] * (0.382683, 0.92388) vertex[glindex2, 53] = 0.4 * trapscales[glindex2] * (0.382683, 1.92388) vertex[glindex2, 54] = 0.4 * trapscales[glindex2] * (0., 1.) vertex[glindex2, 55] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 56] = 0.4 * trapscales[glindex2] * (0.707107, 0.707107) vertex[glindex2, 57] = 0.4 * trapscales[glindex2] * (1.08979, 1.63099) vertex[glindex2, 58] = 0.4 * trapscales[glindex2] * (0.382683, 0.92388) vertex[glindex2, 59] = 0.4 * trapscales[glindex2] * (0., 0.) vertex[glindex2, 60] = 0.4 * trapscales[glindex2] * (0.92388, 0.382683) vertex[glindex2, 61] = 0.4 * trapscales[glindex2] * (1.63099, 1.08979) vertex[glindex2, 62] = 0.4 * trapscales[glindex2] * (0.707107, 0.707107) vertex[glindex2, 63] = 0.4 * trapscales[glindex2] * (0., 0.) glindex = 0 while glindex < numbervertices xcoord[glindex2,glindex] = real(vertex[glindex2,glindex]) ycoord[glindex2,glindex] = imag(vertex[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 217 ; "rhodonea" if @grain == "36" granularity = 36 elseif @grain == "72" granularity = 72 elseif @grain == "100" granularity = 100 elseif @grain == "200" granularity = 200 elseif @grain == "300" granularity = 300 else ; @grain == "400" granularity = 400 endif ; @grain granularity2 = granularity + 1 cursality[glindex2] = 1 numbervertices = granularity2 ; vertices + cursality for closed curves cincrement[glindex2] = granularity2 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 scratchfloat = hypotroA[glindex2] / hypotroB[glindex2] scratchfloat2 = twopi/granularity scratchfloat3 = scratchfloat2 * hypotroB[glindex2] while glindex < granularity2 scratchfloat4 = sin(scratchfloat * glindex * scratchfloat3) ; radius xcoord[glindex2,glindex] = trapscales[glindex2] * scratchfloat4 * cos(glindex * scratchfloat3) ycoord[glindex2,glindex] = trapscales[glindex2] * scratchfloat4 * sin(glindex * scratchfloat3) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex xcoord[glindex2,granularity2] = xcoord[glindex2,0] ycoord[glindex2,granularity2] = ycoord[glindex2,0] vertex[glindex2,granularity2] = xcoord[glindex2,granularity2] + flip(ycoord[glindex2,granularity2]) elseif traparray[glindex2] == 218 ; "cycloid" if @grain == "36" granularity = 36 elseif @grain == "72" granularity = 72 elseif @grain == "100" granularity = 100 elseif @grain == "200" granularity = 200 elseif @grain == "300" granularity = 300 else ; @grain == "400" granularity = 400 endif ; @grain cursality[glindex2] = 1 numbervertices = granularity ; vertices only for open curves cincrement[glindex2] = granularity ; numbervertices/cursality[glindex2] scratchfloat = twopi * cycloidlength[glindex2] / granularity scratchfloat3 = twopi * cycloidlength[glindex2] /2 ; recenter the resulting cycloid on its midpoint ; initialize arrays glindex = 0 while glindex < granularity scratchfloat2 = scratchfloat * glindex - scratchfloat3 xcoord[glindex2,glindex] = trapscales[glindex2] * \ (scratchfloat2 - cycloidamp[glindex2] * sin(scratchfloat2)) ycoord[glindex2,glindex] = trapscales[glindex2] * \ (cycloidconst[glindex2] - cycloidamp[glindex2] * cos(scratchfloat2)) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex elseif traparray[glindex2] == 219 ; "parabolic lissajous" if @grain == "36" granularity = 36 elseif @grain == "72" granularity = 72 elseif @grain == "100" granularity = 100 elseif @grain == "200" granularity = 200 elseif @grain == "300" granularity = 300 else ; @grain == "400" granularity = 400 endif ; @grain granularity2 = granularity + 1 cursality[glindex2] = 1 numbervertices = granularity2 ; n + cursality for closed curves cincrement[glindex2] = granularity2 ; numbervertices/cursality[glindex2] ; initialize arrays scratchfloat = lissajdomain/granularity2 ; angular domain increment glindex = 0 while glindex < granularity scratchfloat2 = @lissaamp1 * cos(@lissafreq1*glindex*scratchfloat - \ @lissaphase1) scratchfloat3 = @lissaamp2 * cos(@lissafreq2*glindex*scratchfloat - \ @lissaphase2) xcoord[glindex2,glindex] = trapscales[glindex2] * scratchfloat2 * \ scratchfloat3 ycoord[glindex2,glindex] = trapscales[glindex2] * 0.5 * \ (sqr(scratchfloat3) - sqr(scratchfloat2)) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex xcoord[glindex2,glindex] = xcoord[glindex2,0] ; close the curve ycoord[glindex2,glindex] = ycoord[glindex2,0] vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) if @lissaopen ; do not connect the first and last points of the curve numbervertices = numbervertices - 1 cincrement[glindex2] = cincrement[glindex2] - 1 endif ; lissaopen elseif traparray[glindex2] == 220 ; "polar lissajous" if @grain == "36" granularity = 36 elseif @grain == "72" granularity = 72 elseif @grain == "100" granularity = 100 elseif @grain == "200" granularity = 200 elseif @grain == "300" granularity = 300 else ; @grain == "400" granularity = 400 endif ; @grain granularity2 = granularity + 1 cursality[glindex2] = 1 numbervertices = granularity2 ; n + cursality for closed curves cincrement[glindex2] = granularity2 ; numbervertices/cursality[glindex2] ; initialize arrays scratchfloat = lissajdomain/granularity2 ; angular domain increment glindex = 0 while glindex < granularity scratchfloat2 = @lissaamp1 * cos(@lissafreq1*glindex*scratchfloat - \ @lissaphase1) ; r scratchfloat3 = @lissaamp2 * cos(@lissafreq2*glindex*scratchfloat - \ @lissaphase2) ; theta xcoord[glindex2,glindex] = trapscales[glindex2] * scratchfloat2 * \ cos(scratchfloat3) ycoord[glindex2,glindex] = trapscales[glindex2] * scratchfloat2 * \ sin(scratchfloat3) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex xcoord[glindex2,glindex] = xcoord[glindex2,0] ; close the curve ycoord[glindex2,glindex] = ycoord[glindex2,0] vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) if @lissaopen ; do not connect the first and last points of the curve numbervertices = numbervertices - 1 cincrement[glindex2] = cincrement[glindex2] - 1 endif ; lissaopen elseif traparray[glindex2] == 221 ; "Moritz cyclic harmonic" if @grain == "36" granularity = 36 elseif @grain == "72" granularity = 72 elseif @grain == "100" granularity = 100 elseif @grain == "200" granularity = 200 elseif @grain == "300" granularity = 300 else ; @grain == "400" granularity = 400 endif ; @grain granularity2 = granularity + 1 ; for closing the curve cursality[glindex2] = 1 numbervertices = granularity2 ; vertices + cursality for closed curves cincrement[glindex2] = granularity2 ; numbervertices/cursality[glindex2] ; initialize arrays glindex = 0 scratchfloat = moritzfreqD[glindex2] * twopi / (granularity + 1) ; angular increment scratchfloat2 = moritzfreqN[glindex2] / moritzfreqD[glindex2] ; cosine frequency while glindex < granularity scratchfloat3 = glindex * scratchfloat * scratchfloat2 ; current angle for Moritz curve scratchfloat4 = moritzconst[glindex2] + moritzamp[glindex2] * cos(scratchfloat3) ; r xcoord[glindex2,glindex] = trapscales[glindex2] * scratchfloat4 * cos(glindex * scratchfloat) ycoord[glindex2,glindex] = trapscales[glindex2] * scratchfloat4 * sin(glindex * scratchfloat) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex xcoord[glindex2,glindex] = xcoord[glindex2,0] ycoord[glindex2,glindex] = ycoord[glindex2,0] vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) elseif traparray[glindex2] == 222 ; "elliptic lissajous" if @grain == "36" granularity = 36 elseif @grain == "72" granularity = 72 elseif @grain == "100" granularity = 100 elseif @grain == "200" granularity = 200 elseif @grain == "300" granularity = 300 else ; @grain == "400" granularity = 400 endif ; @grain granularity2 = granularity + 1 cursality[glindex2] = 1 numbervertices = granularity2 ; n + cursality for closed curves cincrement[glindex2] = granularity2 ; numbervertices/cursality[glindex2] ; initialize arrays scratchfloat = lissajdomain/granularity2 ; angular domain increment glindex = 0 while glindex < granularity scratchfloat2 = abs(@lissaamp1 * cos(@lissafreq1*glindex*scratchfloat - \ @lissaphase1)) ; mu scratchfloat3 = @lissaamp2 * (#pi * (cos(@lissafreq2*glindex*scratchfloat - \ @lissaphase2))) + #pi ; nu xcoord[glindex2,glindex] = trapscales[glindex2] * cosh(scratchfloat2) \ * cos(scratchfloat3) ycoord[glindex2,glindex] = trapscales[glindex2] * sinh(scratchfloat2) \ * sin(scratchfloat3) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex xcoord[glindex2,glindex] = xcoord[glindex2,0] ; close the curve ycoord[glindex2,glindex] = ycoord[glindex2,0] vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) if @lissaopen ; do not connect the first and last points of the curve numbervertices = numbervertices - 1 cincrement[glindex2] = cincrement[glindex2] - 1 endif ; lissaopen elseif traparray[glindex2] == 223 ; "bipolar lissajous" if @grain == "36" granularity = 36 elseif @grain == "72" granularity = 72 elseif @grain == "100" granularity = 100 elseif @grain == "200" granularity = 200 elseif @grain == "300" granularity = 300 else ; @grain == "400" granularity = 400 endif ; @grain granularity2 = granularity + 1 cursality[glindex2] = 1 numbervertices = granularity2 ; n + cursality for closed curves cincrement[glindex2] = granularity2 ; numbervertices/cursality[glindex2] ; initialize arrays scratchfloat = lissajdomain/granularity2 ; angular domain increment glindex = 0 while glindex < granularity scratchfloat2 = @lissaamp1 * cos(@lissafreq1*glindex*scratchfloat - \ @lissaphase1) ; tau scratchfloat3 = @lissaamp2 * #pi * cos(@lissafreq2*glindex*scratchfloat - \ @lissaphase2) ; sigma xcoord[glindex2,glindex] = trapscales[glindex2] * sinh(scratchfloat2) \ / (cosh(scratchfloat2) - cos(scratchfloat3)) ycoord[glindex2,glindex] = trapscales[glindex2] * sin(scratchfloat3) \ / (cosh(scratchfloat2) - cos(scratchfloat3)) vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) glindex = glindex + 1 endwhile ; glindex xcoord[glindex2,glindex] = xcoord[glindex2,0] ; close the curve ycoord[glindex2,glindex] = ycoord[glindex2,0] vertex[glindex2,glindex] = xcoord[glindex2,glindex] + flip(ycoord[glindex2,glindex]) if @lissaopen ; do not connect the first and last points of the curve numbervertices = numbervertices - 1 cincrement[glindex2] = cincrement[glindex2] - 1 endif ; lissaopen endif ; traparray[glindex2] endif ; trptype[glindex2] glindex2 = glindex2 + 1 endwhile ; glindex2 if @reflecttrap1 if trptype[0] == 0 ; "lines & points" glindex = 0 while glindex < maxvertices xcoord[0,glindex] = -xcoord[0,glindex] scratchfloat = -real(vertex[0,glindex]) scratchfloat2 = imag(vertex[0,glindex]) vertex[0,glindex] = scratchfloat + flip(scratchfloat2) glindex = glindex + 1 endwhile ; maxvertices endif ; trptype[0] endif ; @reflecttrap1 if @twotrapstrue if @reflecttrap2 if trptype[1] == 0 ; "lines & points" glindex = 0 while glindex < maxvertices xcoord[1,glindex] = -xcoord[1,glindex] scratchfloat = -real(vertex[1,glindex]) scratchfloat2 = imag(vertex[1,glindex]) vertex[1,glindex] = scratchfloat + flip(scratchfloat2) glindex = glindex + 1 endwhile ; maxvertices endif ; trptype[1] endif ; @reflecttrap2 endif ; @twotrapstrue ; blending variables float rfbcomp = 1-@rfblend, float ifbcomp = 1-@ifblend float rbbcomp = 1-@rbblend, float ibbcomp = 1-@ibblend float trapbcomp = 1-@trapblend, float initbcomp = 1-@initblend float zhist1comp = 1-@zhist1fraction, float zhist2comp = 1-@zhist2fraction float thist1comp = 1-@thist1fraction, float thist2comp = 1-@thist2fraction float weirdcomplement = 1-@weirdfraction float screwycomplement = 1-@screwyfraction ; attractor blends float zmartincomp = 1.0-@zmartinfraction float zcosmartincomp = 1.0-@zcosmartinfraction float zpopcorncomp = 1.0-@zpopcornfraction float zvinecomp = 1.0-@zvinefraction float zvine2comp = 1.0-@zvine2fraction float zquadruptwocomp = 1.0-@zquadruptwofraction float zthreeplycomp = 1.0-@zthreeplyfraction float zhenoncomp = 1.0-@zhenonfraction float zhopalongcomp = 1.0-@zhopalongfraction float zchipcomp = 1.0-@zchipfraction float zliarcomp = 1.0-@zliarfraction float zgingerbreadcomp = 1.0-@zgingerbreadfraction float tmartincomp = 1.0-@tmartinfraction float tcosmartincomp = 1.0-@tcosmartinfraction float tpopcorncomp = 1.0-@tpopcornfraction float tvinecomp = 1.0-@tvinefraction float tvine2comp = 1.0-@tvine2fraction float tquadruptwocomp = 1.0-@tquadruptwofraction float tthreeplycomp = 1.0-@tthreeplyfraction float thenoncomp = 1.0-@thenonfraction float thopalongcomp = 1.0-@thopalongfraction float tchipcomp = 1.0-@tchipfraction float tliarcomp = 1.0-@tliarfraction float tgingerbreadcomp = 1.0-@tgingerbreadfraction if @towatch == 0 int watch = #maxiter else int watch = @skippediters + @towatch endif ; towatch ; Vars needed by the loop trapping routines int texfunc[4] ; points to selected function list members (texture functions) float tex2powers[4] ; exponent for the 4 texture functions if any are set to 'x^power' float globaltemp = 0.0 ; scratchpad variable; do not assume value between code sections ; Fix parameters for exponential color stretching float stretchconstant = 0.0, float stretchconstant2 = 0.0 ; for color stretching modes if @enablestretch if @stretchtype == "linear2" stretchconstant = (@stretchlinear22-1)/(@stretchlinear21-1.0) stretchconstant2 = 1.0-stretchconstant elseif @stretchtype == "exponential" globaltemp = exp(@stretchdelta) stretchconstant = (@stretchamount - globaltemp)/(globaltemp - 1.0) stretchconstant2 = 1.0 + (1.0/stretchconstant) elseif @stretchtype == "quadratic" stretchconstant = (@stretchquad11-@stretchquad12)/(@stretchquad11*(@stretchquad13-@stretchquad11)) stretchconstant2 = @stretchquad12/@stretchquad11 - @stretchquad11*stretchconstant elseif @stretchtype == "quadratic2" stretchconstant = (@stretchquad21-@stretchquad22)/((@stretchquad21*@stretchquad21)-@stretchquad21) stretchconstant2 = 1.0-stretchconstant elseif @stretchtype == "tanh" stretchconstant = tanh(@stretchtanhamount) endif ; @stretchtype endif ; @enablestretch ; Initialize periodicity variables int periodphase = 0 if @periodicity if @perphase < @period ; phase can only be 0, 1,..., (@period-1) periodphase = @perphase endif ; @perphase endif ; @periodicity float anglelowbound = @anglelow*twopi/360 float anglehighbound = @anglehigh*twopi/360 if anglehighbound <= anglelowbound anglelowbound = 0.0 anglehighbound = twopi endif ; anglehighbound if @texture texfunc[0] = @texfunc1 tex2powers[0] = @tex2power texfunc[1] = @texfunc2 tex2powers[1] = @tex2power2 texfunc[2] = @texfunc3 tex2powers[2] = @tex2power3 texfunc[3] = @texfunc4 tex2powers[3] = @tex2power4 endif ; @texture ; Perlin noise settings int perlinperms[2048] ; maximum grid size is 1024 float perlingrads[2048,2] int indexi = int indexj = int swapint = int tempint = 0 int seed = @perlinseed float tempfloat = 0.0 int tempint = 0 int gridfraction = int tempcount = 0 ; for @perlingridstyle 'sapphire' bool switch = FALSE int perlinarraysz = 0 if @perlingridsize == "16" perlinarraysz = 16 elseif @perlingridsize == "64" perlinarraysz = 64 elseif @perlingridsize == "256" perlinarraysz = 256 elseif @perlingridsize == "1024" perlinarraysz = 1024 endif ; @perlingridsize if @enableperlin ; Fill the first N permutation array elements with the consecutive integers 0 thru N-1. ; Simultaneously fill the first N gradient array elements with random gradient vectors, ; or with other gradient vectors depending upon parameter @perlingridstyle gridfraction = round(@perlingridsize/8) indexi = 0 while indexi < perlinarraysz perlinperms[indexi] = indexi indexj = 0 while indexj < 2 if @perlingridstyle == "Perlin" seed = random(seed) perlingrads[indexi, indexj] = seed/#randomrange ; gradient between -1 and 1 elseif @perlingridstyle == "topaz" if indexj == 0 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj elseif @perlingridstyle == "opal" if indexi%2 == 0 if indexj == 0 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj else if indexj == 1 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj endif ; indexi elseif @perlingridstyle == "ruby" if indexi%3 == 0 if indexj == 0 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj else if indexj == 1 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj endif ; indexi elseif @perlingridstyle == "emerald" if (indexi%4 == 0) || (indexi%4 == 3) if indexj == 0 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj elseif (indexi%4 == 1) || (indexi%4 == 2) if indexj == 0 perlingrads[indexi, indexj] = 1 else perlingrads[indexi, indexj] = -1 endif ; indexj endif ; indexi elseif @perlingridstyle == "sapphire" tempcount = tempcount + 1 if tempcount > gridfraction ; reset count and toggle alternation flag tempcount = 1 switch = !switch endif ; tempcount if switch if indexj == 0 perlingrads[indexi, indexj] = -1 else perlingrads[indexi, indexj] = 1 endif ; indexj else if indexj == 0 perlingrads[indexi, indexj] = 1 else perlingrads[indexi, indexj] = -1 endif ; indexj endif ; switch endif ; @perlingridstyle indexj = indexj + 1 endwhile ; indexj ; now normalize the gradient vectors tempfloat = sqrt(sqr(perlingrads[indexi,0]) + sqr(perlingrads[indexi,1])) ; gradient magnitude perlingrads[indexi,0] = perlingrads[indexi,0]/tempfloat perlingrads[indexi,1] = perlingrads[indexi,1]/tempfloat indexi = indexi + 1 endwhile ; indexi ; now scramble the N entries so that the integers 0 thru N-1 are in a random order indexi = perlinarraysz repeat indexj = indexi indexi = indexi - 1 seed = random(seed) tempint = abs(seed % indexj) swapint = perlinperms[indexi] perlinperms[indexi]= perlinperms[tempint] perlinperms[tempint] = swapint until indexi == 1 ; repeat indexj ; now duplicate the N array entries into array elements N - (2N-1) indexi = 0 while indexi < perlinarraysz perlinperms[indexi + perlinarraysz] = perlinperms[indexi] indexj = 0 while indexj < 2 perlingrads[indexi + perlinarraysz, indexj] = perlingrads[indexi, indexj] indexj = indexj + 1 endwhile ; indexj indexi = indexi + 1 endwhile ; indexi endif ; @enableperlin init: ; NEW variables and code taken from the trap shape test routine; ; see Triangle Trap test code.txt for original version of new code complex testpt = complex minpt = complex intersectpt = (0,0) float xtest = float ytest = 0.0 float tparam = 0.0 ; for parametric representation of line segments float disttemp = float distance = float seglength = 0.0 ; temp storage, length of current line segment float distmin = 1e20 ; initialize minimum distance to a high value int lindex = int lindex2 = 0 ; loop indices int cindex = 0 ; cursality index int maxlindex = int altindex = 0 int oindex = 0 ; outer loop index float tempxx[2] float tempyy[2] complex result[2] ; compatibility for storing trapping results ; The following three lines eliminate a false compiler warning, but serve no other purpose. tempyy[0] = 0.0 tempyy[1] = tempyy[0] tempyy[0] = tempxx[0] ; Original Trapestry variables and code begins HERE! complex ztemp = complex ztemp2 = (0,0) ; various uses; generally holds modifed #z complex tempc = (0,0) ; the trapped trap point complex traptemp = complex traptemp2 = (0,0) float tempangle = 0.0 ; angle of transformed, centered, etc., z float ftemp = float ftemp2 = float ftemp3 = float ftemp4 = 0.0 ; various uses; scratchpad variables float texadjust = 0.0 int index = 0 ; outer/main loop variable int index2 = 0 ; pointer to array index within main loops int maxindex = 0 int itercount = 0 ; for trapping the Nth z iterate bool solidset = bool maskAset = bool maskBset = FALSE ; flags used for masking float tempcolor = 0.0 ; Initialize periodicity variables bool periodflag = TRUE ; default setting so that main iter routine in 'loop:' section ; will execute even if periodicity is not enabled int periodcount = 0 ; for tracking the number of monitored iterations in the alternative periodicity style bool monitorperiod = TRUE ; always start out in iter monitoring mode ; Angle restriction variables bool anglerestriction = TRUE float tempangle = 0.0 ; For history options; initialize history arrays complex zhist[2,10] ; for storing past generations of #z (zhist[0,i]), zinput (zhist[1,i]) index2 = 0 while index2 < 2 index = 0, maxindex = 10 while index < maxindex zhist[index2,index] = ztemp index = index + 1 endwhile ; index index2 = index2 + 1 endwhile ; index2 complex thist[2,10] ; for storing past generations of the trap point before (thist[0,i]) & after (thist[1,i]) modulations index2 = 0 while index2 < 2 index = 0, maxindex = 10 while index < maxindex thist[index2,index] = tempc index = index + 1 endwhile ; index index2 = index2 + 1 endwhile ; index2 ; Old variables ; Change and scale variables to facilitate variation, if enabled float thresh = @threshold, float threshstep = 0.05 * @threshstp float rwidth = @ringwidth, float ringstep = 0.05 * @ringstp float rotation = @rotate * degconversion, float rotationstep = 0.05 * @rotationstp complex center = @centr, float centerstep = @centerstp float rotationT2 = @rotateT2 * degconversion ; for independent rotation and centering of the two traps complex centerT2 = @centrT2 ; General variables and options if ( rotation < 0 ) rotation = rotation + twopi endif ; rotation if @twotrapstrue && @tworotations if ( rotationT2 < 0 ) rotationT2 = rotationT2 + twopi endif ; rotationT2 endif ; @twotrapstrue float sign = 0.0 bool trapped = FALSE bool vary = TRUE float innerradius = thresh - @ringwidth if (@whattotrap > 11) && (@whattotrap != 26) innerradius = thresh + @ringwidth ; innerradius is really an outerradius if we are exceeding limits endif ; @whattotrap int iter = 0, int count = 0, int hitcount = 0 complex zinput = (0,0) ; holds the transformed/rotated etc #z; actual input to the trap float tempx = 0.0, float tempy = 0.0 ; misc. float vars complex zinputT2 = (0,0); for independently centering and rotating the two traps float tempangleT2 = 0.0 complex zcombT2 = (0,0) float tempangleB = 0.0 ; for the polar functions routine ; More general options, mostly relating to trapped values float test = 0.0 ; this will hold the value being checked for min, max, etc. float tvtrapped = float tvtrapped2 = float tvtrapped3 = float tvtrapped4 = 1e9 ; trapped test values int itrapped = int itrapped2 = int itrapped3 = int itrapped4 = 0 ; trapped iterations float zangle = float tangle = 0.0 ; angle of #z, trap point float zatrapped = float zatrapped2 = float zatrapped3 = float zatrapped4 = 0.0 ; trapped z angles float tatrapped = float tatrapped2 = float tatrapped3 = float tatrapped4 = 0.0 ; trapped trap pt angles float ziatrapped = float ziatrapped2 = float ziatrapped3 = float ziatrapped4 = 0.0 ; trapped zinput angles complex ztrapped = complex ztrapped2 = complex ztrapped3 = complex ztrapped4 = (0,0) ; trapped z values complex zitrapped = complex zitrapped2 = complex zitrapped3 = complex zitrapped4 = (0,0) ; trapped zinputs complex ttrapped = complex ttrapped2 = complex ttrapped3 = complex ttrapped4 = (0,0) ; trapped trap pts ; If we're trapping something big, initialize small if (( @whattotrap == 1 ) || ( @whattotrap == 5 ) || ( @whattotrap == 6 ) \ || ( @whattotrap == 7 )) tvtrapped = tvtrapped2 = tvtrapped3 = tvtrapped4 = -1e9 elseif (@whattotrap > 16) && (@whattotrap != 26) tvtrapped2 = -1e9 ; used to store the max when looking for min-max, min+max, etc. endif ; trapmode ; Perlin noise variables int gridx0 = int gridx1 = int gridy0 = int gridy1 = 0 int grad00 = int grad10 = int grad01 = int grad11 = 0 float fracx0 = float fracx1 = float fracy0 = float fracy1 = 0.0 float xsmoothing = float ysmoothing = 0.0 float temp1 = float temp2 = 0.0 float noisesum = float noiseamplitude = 0.0 complex zperlin = complex zrotate = complex zunit = (0,0) float utemp = float vtemp = float atemp = float btemp = 0.0 float zpart = 0.0 int perlinmodulus = 0 complex perlinzsave = complex perlinztest = (0,0) float perlinfsave = float perlinftest = 0.0 if (@perlinaverage == "geometric") || (@perlinaverage == "HG") ; initialize for multiplicative avgs perlinfsave = 1.0 perlinzsave = (1,0) endif ; @perlinaverage bool perlintest = FALSE int perlincount = 0 float perlinadjust = 0.0 ; color adjustment to #index resulting from Perlin noise function loop: iter = iter + 1 ztemp = #z if @periodicity if !@altperiodstyle if (iter % @period) == periodphase periodflag = TRUE else periodflag = FALSE endif ; iter if @reversephase periodflag = !periodflag endif ; @reversephase else periodcount = periodcount + 1 if monitorperiod if periodcount > @monitorlimit periodcount = 1 ; reset monitor counter, remembering that this iteration is the first in the now toggled mode monitorperiod = !monitorperiod ; toggle current mode flag periodflag = FALSE endif ; periodcount else if periodcount > @skiplimit periodcount = 1 monitorperiod = !monitorperiod periodflag = TRUE endif ; periodcount endif ; monitorperiod endif ; @altperiodstyle endif ; @periodicity if @anglerestrict anglerestriction = FALSE tempangle = atan2(#z) if tempangle < 0 tempangle = tempangle + twopi endif ; tempangle if tempangle >= anglelowbound if tempangle <= anglehighbound anglerestriction = TRUE endif ; tempangle endif ; tempangle endif ; @anglerestrict if @initialbias ztemp = (@ibprod*(ztemp + @ibaddend))^@ibexponent endif ; @initialbias if @history maxindex = 0, index = 9 while index > maxindex index2 = index-1 zhist[0,index] = zhist[0,index2] index = index2 endwhile ; index zhist[0,0] = ztemp endif ; @history if ( iter > @skippediters ) && ( iter <= watch ) && periodflag && anglerestriction; finished skipping --- start testing for trap if @history if @hismode == "original" || @hismode == "both" if @histype == 1 ztemp = zhist[@zmixmatch2,1] elseif @histype == 2 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,1])) elseif @histype == 3 ztemp = real(zhist[@zmixmatch2,1]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 4 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,1] elseif @histype == 5 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,1]) elseif @histype == 6 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,1])) elseif @histype == 7 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,1] elseif @histype == 8 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,1]) elseif @histype == 9 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,1])) elseif @histype == 10 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,1] elseif @histype == 11 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,1]) elseif @histype == 12 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,1])) elseif @histype == 13 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,1] elseif @histype == 14 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,1] elseif @histype == 15 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,1] elseif @histype == 16 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,1] elseif @histype == 17 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,1] elseif @histype == 18 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,1] elseif @histype == 19 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,1])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,1]))) elseif @histype == 20 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,1])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,1]))) elseif @histype == 21 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,1])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,1]))) elseif @histype == 22 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,1])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,1]))) elseif @histype == 23 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,1])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,1]))) elseif @histype == 24 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,1])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,1]))) elseif @histype == 25 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,1])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,1]))) elseif @histype == 26 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,1])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,1]))) elseif @histype == 27 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,1])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,1]))) elseif @histype == 28 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,1])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,1]))) elseif @histype == 29 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,1])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,1]))) elseif @histype == 30 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,1])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,1]))) elseif @histype == 31 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,1])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,1]))) elseif @histype == 32 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,1])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,1]))) elseif @histype == 33 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,1])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,1]))) elseif @histype == 34 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,1])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,1]))) elseif @histype == 35 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,1])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,1]))) elseif @histype == 36 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,1])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,1]))) elseif @histype == 37 ztemp = zhist[@zmixmatch2,2] elseif @histype == 38 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,2])) elseif @histype == 39 ztemp = real(zhist[@zmixmatch2,2]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 40 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,2] elseif @histype == 41 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,2]) elseif @histype == 42 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,2])) elseif @histype == 43 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,2] elseif @histype == 44 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,2]) elseif @histype == 45 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,2])) elseif @histype == 46 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,2] elseif @histype == 47 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,2]) elseif @histype == 48 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,2])) elseif @histype == 49 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,2] elseif @histype == 50 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,2] elseif @histype == 51 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,2] elseif @histype == 52 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,2] elseif @histype == 53 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,2] elseif @histype == 54 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,2] elseif @histype == 55 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,2])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,2]))) elseif @histype == 56 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,2])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,2]))) elseif @histype == 57 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,2])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,2]))) elseif @histype == 58 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,2])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,2]))) elseif @histype == 59 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,2])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,2]))) elseif @histype == 60 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,2])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,2]))) elseif @histype == 61 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,2])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,2]))) elseif @histype == 62 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,2])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,2]))) elseif @histype == 63 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,2])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,2]))) elseif @histype == 64 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,2])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,2]))) elseif @histype == 65 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,2])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,2]))) elseif @histype == 66 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,2])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,2]))) elseif @histype == 67 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,2])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,2]))) elseif @histype == 68 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,2])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,2]))) elseif @histype == 69 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,2])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,2]))) elseif @histype == 70 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,2])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,2]))) elseif @histype == 71 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,2])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,2]))) elseif @histype == 72 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,2])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,2]))) elseif @histype == 73 ztemp = zhist[@zmixmatch2,3] elseif @histype == 74 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,3])) elseif @histype == 75 ztemp = real(zhist[@zmixmatch2,3]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 76 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,3] elseif @histype == 77 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,3]) elseif @histype == 78 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,3])) elseif @histype == 79 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,3] elseif @histype == 80 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,3]) elseif @histype == 81 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,3])) elseif @histype == 82 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,3] elseif @histype == 83 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,3]) elseif @histype == 84 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,3])) elseif @histype == 85 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,3] elseif @histype == 86 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,3] elseif @histype == 87 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,3] elseif @histype == 88 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,3] elseif @histype == 89 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,3] elseif @histype == 90 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,3] elseif @histype == 91 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,3])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,3]))) elseif @histype == 92 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,3])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,3]))) elseif @histype == 93 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,3])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,3]))) elseif @histype == 94 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,3])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,3]))) elseif @histype == 95 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,3])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,3]))) elseif @histype == 96 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,3])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,3]))) elseif @histype == 97 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,3])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,3]))) elseif @histype == 98 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,3])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,3]))) elseif @histype == 99 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,3])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,3]))) elseif @histype == 100 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,3])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,3]))) elseif @histype == 101 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,3])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,3]))) elseif @histype == 102 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,3])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,3]))) elseif @histype == 103 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,3])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,3]))) elseif @histype == 104 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,3])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,3]))) elseif @histype == 105 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,3])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,3]))) elseif @histype == 106 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,3])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,3]))) elseif @histype == 107 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,3])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,3]))) elseif @histype == 108 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,3])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,3]))) elseif @histype == 109 ztemp = zhist[@zmixmatch2,4] elseif @histype == 110 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,4])) elseif @histype == 111 ztemp = real(zhist[@zmixmatch2,4]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 112 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,4] elseif @histype == 113 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,4]) elseif @histype == 114 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,4])) elseif @histype == 115 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,4] elseif @histype == 116 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,4]) elseif @histype == 117 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,4])) elseif @histype == 118 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,4] elseif @histype == 119 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,4]) elseif @histype == 120 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,4])) elseif @histype == 121 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,4] elseif @histype == 122 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,4] elseif @histype == 123 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,4] elseif @histype == 124 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,4] elseif @histype == 125 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,4] elseif @histype == 126 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,4] elseif @histype == 127 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,4])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,4]))) elseif @histype == 128 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,4])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,4]))) elseif @histype == 129 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,4])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,4]))) elseif @histype == 130 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,4])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,4]))) elseif @histype == 131 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,4])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,4]))) elseif @histype == 132 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,4])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,4]))) elseif @histype == 133 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,4])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,4]))) elseif @histype == 134 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,4])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,4]))) elseif @histype == 135 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,4])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,4]))) elseif @histype == 136 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,4])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,4]))) elseif @histype == 137 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,4])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,4]))) elseif @histype == 138 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,4])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,4]))) elseif @histype == 139 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,4])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,4]))) elseif @histype == 140 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,4])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,4]))) elseif @histype == 141 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,4])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,4]))) elseif @histype == 142 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,4])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,4]))) elseif @histype == 143 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,4])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,4]))) elseif @histype == 144 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,4])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,4]))) elseif @histype == 145 ztemp = zhist[@zmixmatch2,5] elseif @histype == 146 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,5])) elseif @histype == 147 ztemp = real(zhist[@zmixmatch2,5]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 148 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,5] elseif @histype == 149 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,5]) elseif @histype == 150 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,5])) elseif @histype == 151 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,5] elseif @histype == 152 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,5]) elseif @histype == 153 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,5])) elseif @histype == 154 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,5] elseif @histype == 155 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,5]) elseif @histype == 156 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,5])) elseif @histype == 157 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,5] elseif @histype == 158 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,5] elseif @histype == 159 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,5] elseif @histype == 160 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,5] elseif @histype == 161 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,5] elseif @histype == 162 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,5] elseif @histype == 163 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,5])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,5]))) elseif @histype == 164 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,5])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,5]))) elseif @histype == 165 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,5])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,5]))) elseif @histype == 166 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,5])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,5]))) elseif @histype == 167 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,5])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,5]))) elseif @histype == 168 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,5])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,5]))) elseif @histype == 169 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,5])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,5]))) elseif @histype == 170 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,5])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,5]))) elseif @histype == 171 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,5])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,5]))) elseif @histype == 172 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,5])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,5]))) elseif @histype == 173 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,5])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,5]))) elseif @histype == 174 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,5])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,5]))) elseif @histype == 175 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,5])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,5]))) elseif @histype == 176 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,5])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,5]))) elseif @histype == 177 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,5])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,5]))) elseif @histype == 178 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,5])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,5]))) elseif @histype == 179 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,5])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,5]))) elseif @histype == 180 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,5])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,5]))) elseif @histype == 181 ztemp = zhist[@zmixmatch2,6] elseif @histype == 182 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,6])) elseif @histype == 183 ztemp = real(zhist[@zmixmatch2,6]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 184 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,6] elseif @histype == 185 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,6]) elseif @histype == 186 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,6])) elseif @histype == 187 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,6] elseif @histype == 188 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,6]) elseif @histype == 189 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,6])) elseif @histype == 190 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,6] elseif @histype == 191 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,6]) elseif @histype == 192 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,6])) elseif @histype == 193 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,6] elseif @histype == 194 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,6] elseif @histype == 195 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,6] elseif @histype == 196 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,6] elseif @histype == 197 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,6] elseif @histype == 198 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,6] elseif @histype == 199 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,6])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,6]))) elseif @histype == 200 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,6])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,6]))) elseif @histype == 201 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,6])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,6]))) elseif @histype == 202 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,6])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,6]))) elseif @histype == 203 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,6])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,6]))) elseif @histype == 204 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,6])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,6]))) elseif @histype == 205 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,6])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,6]))) elseif @histype == 206 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,6])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,6]))) elseif @histype == 207 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,6])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,6]))) elseif @histype == 208 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,6])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,6]))) elseif @histype == 209 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,6])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,6]))) elseif @histype == 210 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,6])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,6]))) elseif @histype == 211 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,6])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,6]))) elseif @histype == 212 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,6])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,6]))) elseif @histype == 213 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,6])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,6]))) elseif @histype == 214 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,6])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,6]))) elseif @histype == 215 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,6])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,6]))) elseif @histype == 216 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,6])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,6]))) elseif @histype == 217 ztemp = zhist[@zmixmatch2,7] elseif @histype == 218 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,7])) elseif @histype == 219 ztemp = real(zhist[@zmixmatch2,7]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 220 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,7] elseif @histype == 221 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,7]) elseif @histype == 222 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,7])) elseif @histype == 223 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,7] elseif @histype == 224 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,7]) elseif @histype == 225 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,7])) elseif @histype == 226 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,7] elseif @histype == 227 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,7]) elseif @histype == 228 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,7])) elseif @histype == 229 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,7] elseif @histype == 230 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,7] elseif @histype == 231 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,7] elseif @histype == 232 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,7] elseif @histype == 233 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,7] elseif @histype == 234 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,7] elseif @histype == 235 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,7])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,7]))) elseif @histype == 236 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,7])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,7]))) elseif @histype == 237 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,7])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,7]))) elseif @histype == 238 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,7])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,7]))) elseif @histype == 239 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,7])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,7]))) elseif @histype == 240 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,7])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,7]))) elseif @histype == 241 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,7])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,7]))) elseif @histype == 242 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,7])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,7]))) elseif @histype == 243 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,7])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,7]))) elseif @histype == 244 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,7])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,7]))) elseif @histype == 245 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,7])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,7]))) elseif @histype == 246 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,7])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,7]))) elseif @histype == 247 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,7])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,7]))) elseif @histype == 248 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,7])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,7]))) elseif @histype == 249 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,7])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,7]))) elseif @histype == 250 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,7])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,7]))) elseif @histype == 251 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,7])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,7]))) elseif @histype == 252 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,7])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,7]))) elseif @histype == 253 ztemp = zhist[@zmixmatch2,8] elseif @histype == 254 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,8])) elseif @histype == 255 ztemp = real(zhist[@zmixmatch2,8]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 256 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,8] elseif @histype == 257 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,8]) elseif @histype == 258 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,8])) elseif @histype == 259 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,8] elseif @histype == 260 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,8]) elseif @histype == 261 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,8])) elseif @histype == 262 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,8] elseif @histype == 263 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,8]) elseif @histype == 264 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,8])) elseif @histype == 265 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,8] elseif @histype == 266 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,8] elseif @histype == 267 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,8] elseif @histype == 268 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,8] elseif @histype == 269 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,8] elseif @histype == 270 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,8] elseif @histype == 271 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,8])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,8]))) elseif @histype == 272 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,8])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,8]))) elseif @histype == 273 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,8])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,8]))) elseif @histype == 274 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,8])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,8]))) elseif @histype == 275 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,8])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,8]))) elseif @histype == 276 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,8])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,8]))) elseif @histype == 277 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,8])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,8]))) elseif @histype == 278 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,8])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,8]))) elseif @histype == 279 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,8])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,8]))) elseif @histype == 280 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,8])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,8]))) elseif @histype == 281 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,8])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,8]))) elseif @histype == 282 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,8])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,8]))) elseif @histype == 283 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,8])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,8]))) elseif @histype == 284 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,8])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,8]))) elseif @histype == 285 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,8])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,8]))) elseif @histype == 286 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,8])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,8]))) elseif @histype == 287 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,8])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,8]))) elseif @histype == 288 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,8])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,8]))) elseif @histype == 289 ztemp = zhist[@zmixmatch2,9] elseif @histype == 290 ztemp = real(zhist[@zmixmatch1,@histype1index]) + flip(imag(zhist[@zmixmatch2,9])) elseif @histype == 291 ztemp = real(zhist[@zmixmatch2,9]) + flip(imag(zhist[@zmixmatch1,@histype1index])) elseif @histype == 292 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,9] elseif @histype == 293 ztemp = zhist[@zmixmatch1,@histype1index] - real(zhist[@zmixmatch2,9]) elseif @histype == 294 ztemp = zhist[@zmixmatch1,@histype1index] - flip(imag(zhist[@zmixmatch2,9])) elseif @histype == 295 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,9] elseif @histype == 296 ztemp = zhist[@zmixmatch1,@histype1index] + real(zhist[@zmixmatch2,9]) elseif @histype == 297 ztemp = zhist[@zmixmatch1,@histype1index] + flip(imag(zhist[@zmixmatch2,9])) elseif @histype == 298 ztemp = zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,9] elseif @histype == 299 ztemp = zhist[@zmixmatch1,@histype1index] * real(zhist[@zmixmatch2,9]) elseif @histype == 300 ztemp = zhist[@zmixmatch1,@histype1index] * flip(imag(zhist[@zmixmatch2,9])) elseif @histype == 301 ztemp = real(zhist[@zmixmatch1,@histype1index]) - zhist[@zmixmatch2,9] elseif @histype == 302 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) - zhist[@zmixmatch2,9] elseif @histype == 303 ztemp = real(zhist[@zmixmatch1,@histype1index]) + zhist[@zmixmatch2,9] elseif @histype == 304 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) + zhist[@zmixmatch2,9] elseif @histype == 305 ztemp = real(zhist[@zmixmatch1,@histype1index]) * zhist[@zmixmatch2,9] elseif @histype == 306 ztemp = flip(imag(zhist[@zmixmatch1,@histype1index])) * zhist[@zmixmatch2,9] elseif @histype == 307 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,9])) + flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,9]))) elseif @histype == 308 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,9])) - flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,9]))) elseif @histype == 309 ztemp = (real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,9])) * flip((imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,9]))) elseif @histype == 310 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,9])) + flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,9]))) elseif @histype == 311 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,9])) - flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,9]))) elseif @histype == 312 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) * real(zhist[@zmixmatch2,9])) * flip((real(zhist[@zmixmatch1,@histype1index]) * imag(zhist[@zmixmatch2,9]))) elseif @histype == 313 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,9])) + flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,9]))) elseif @histype == 314 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,9])) - flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,9]))) elseif @histype == 315 ztemp = (real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,9])) * flip((imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,9]))) elseif @histype == 316 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,9])) + flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,9]))) elseif @histype == 317 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,9])) - flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,9]))) elseif @histype == 318 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) + real(zhist[@zmixmatch2,9])) * flip((real(zhist[@zmixmatch1,@histype1index]) + imag(zhist[@zmixmatch2,9]))) elseif @histype == 319 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,9])) + flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,9]))) elseif @histype == 320 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,9])) - flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,9]))) elseif @histype == 321 ztemp = (real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,9])) * flip((imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,9]))) elseif @histype == 322 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,9])) + flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,9]))) elseif @histype == 323 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,9])) - flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,9]))) elseif @histype == 324 ztemp = (imag(zhist[@zmixmatch1,@histype1index]) - real(zhist[@zmixmatch2,9])) * flip((real(zhist[@zmixmatch1,@histype1index]) - imag(zhist[@zmixmatch2,9]))) elseif @histype == 325 ztemp = zhist[@zmixmatch1,@histype1index]/zhist[@zmixmatch2,1] elseif @histype == 326 ztemp = zhist[@zmixmatch2,1]/zhist[@zmixmatch1,@histype1index] elseif @histype == 327 ztemp = zhist[@zmixmatch1,@histype1index]^zhist[@zmixmatch2,1] elseif @histype == 328 ztemp = zhist[@zmixmatch2,1]^zhist[@zmixmatch1,@histype1index] elseif @histype == 329 ztemp = zhist[@zmixmatch1,@histype1index]/real(zhist[@zmixmatch2,1]) elseif @histype == 330 ztemp = zhist[@zmixmatch1,@histype1index]/imag(zhist[@zmixmatch2,1]) elseif @histype == 331 ztemp = zhist[@zmixmatch2,1]/real(zhist[@zmixmatch1,@histype1index]) elseif @histype == 332 ztemp = zhist[@zmixmatch2,1]/imag(zhist[@zmixmatch1,@histype1index]) elseif @histype == 333 ztemp = zhist[@zmixmatch1,@histype1index]^real(zhist[@zmixmatch2,1]) elseif @histype == 334 ztemp = zhist[@zmixmatch1,@histype1index]^imag(zhist[@zmixmatch2,1]) elseif @histype == 335 ztemp = zhist[@zmixmatch2,1]^real(zhist[@zmixmatch1,@histype1index]) elseif @histype == 336 ztemp = zhist[@zmixmatch2,1]^imag(zhist[@zmixmatch1,@histype1index]) elseif @histype == 337 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,1] + zhist[@zmixmatch2,2] elseif @histype == 338 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,1] + zhist[@zmixmatch2,2] elseif @histype == 339 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,1] - zhist[@zmixmatch2,2] elseif @histype == 340 ztemp = -zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,1] + zhist[@zmixmatch2,2] elseif @histype == 341 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,1] - zhist[@zmixmatch2,2] elseif @histype == 342 ztemp = zhist[@zmixmatch1,@histype1index] + (zhist[@zmixmatch2,1] * zhist[@zmixmatch2,2]) elseif @histype == 343 ztemp = zhist[@zmixmatch1,@histype1index] - (zhist[@zmixmatch2,1] * zhist[@zmixmatch2,2]) elseif @histype == 344 ztemp = zhist[@zmixmatch2,1] + (zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,2]) elseif @histype == 345 ztemp = zhist[@zmixmatch2,1] - (zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,2]) elseif @histype == 346 ztemp = zhist[@zmixmatch2,2] + (zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,1]) elseif @histype == 347 ztemp = zhist[@zmixmatch2,2] - (zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,1]) elseif @histype == 348 ztemp = zhist[@zmixmatch1,@histype1index]/zhist[@zmixmatch2,2] elseif @histype == 349 ztemp = zhist[@zmixmatch2,2]/zhist[@zmixmatch1,@histype1index] elseif @histype == 350 ztemp = zhist[@zmixmatch1,@histype1index]^zhist[@zmixmatch2,2] elseif @histype == 351 ztemp = zhist[@zmixmatch2,2]^zhist[@zmixmatch1,@histype1index] elseif @histype == 352 ztemp = zhist[@zmixmatch1,@histype1index]/real(zhist[@zmixmatch2,2]) elseif @histype == 353 ztemp = zhist[@zmixmatch1,@histype1index]/imag(zhist[@zmixmatch2,2]) elseif @histype == 354 ztemp = zhist[@zmixmatch2,2]/real(zhist[@zmixmatch1,@histype1index]) elseif @histype == 355 ztemp = zhist[@zmixmatch2,2]/imag(zhist[@zmixmatch1,@histype1index]) elseif @histype == 356 ztemp = zhist[@zmixmatch1,@histype1index]^real(zhist[@zmixmatch2,2]) elseif @histype == 357 ztemp = zhist[@zmixmatch1,@histype1index]^imag(zhist[@zmixmatch2,2]) elseif @histype == 358 ztemp = zhist[@zmixmatch2,2]^real(zhist[@zmixmatch1,@histype1index]) elseif @histype == 359 ztemp = zhist[@zmixmatch2,2]^imag(zhist[@zmixmatch1,@histype1index]) elseif @histype == 360 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,2] + zhist[@zmixmatch2,3] elseif @histype == 361 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,2] + zhist[@zmixmatch2,3] elseif @histype == 362 ztemp = zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,2] - zhist[@zmixmatch2,3] elseif @histype == 363 ztemp = -zhist[@zmixmatch1,@histype1index] + zhist[@zmixmatch2,2] + zhist[@zmixmatch2,3] elseif @histype == 364 ztemp = zhist[@zmixmatch1,@histype1index] - zhist[@zmixmatch2,2] - zhist[@zmixmatch2,3] elseif @histype == 365 ztemp = zhist[@zmixmatch1,@histype1index] + (zhist[@zmixmatch2,2] * zhist[@zmixmatch2,3]) elseif @histype == 366 ztemp = zhist[@zmixmatch1,@histype1index] - (zhist[@zmixmatch2,2] * zhist[@zmixmatch2,3]) elseif @histype == 367 ztemp = zhist[@zmixmatch2,2] + (zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,3]) elseif @histype == 368 ztemp = zhist[@zmixmatch2,2] - (zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,3]) elseif @histype == 369 ztemp = zhist[@zmixmatch2,3] + (zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,2]) elseif @histype == 370 ztemp = zhist[@zmixmatch2,3] - (zhist[@zmixmatch1,@histype1index] * zhist[@zmixmatch2,2]) else ztemp = #z endif ; histype if @zhist1blend ztemp = @zhist1fraction*ztemp + zhist1comp*#z endif ; @zhist1blend else if @fixaltbug ztemp = #z endif ; @fixaltbug endif ; @hismode endif ; history if @absolutez ztemp = abs(ztemp) endif ; @absolutez if @absoluter ztemp = abs(real(ztemp)) + flip(imag(ztemp)) endif ; @absoluter if @absolutei ztemp = real(ztemp) + flip(abs(imag(ztemp))) endif ; @absolutei zangle = atan2(#z) if zangle < 0 zangle = zangle + twopi endif ; zangle if @frontendbias ztemp = (@febprod*(ztemp + @febaddend))^@febexponent endif ; @frontendbias ; Initialize front end real, front end imag, if desired ftemp = @rfscale * real(ztemp) if @absoluter2 ftemp = abs(ftemp) endif ; @absoluter2 if ( @realfront == 0 ) tempx = ftemp elseif ( @realfront == 1 ) tempx = 1/ftemp elseif ( @realfront == 2 ) tempx = ftemp * ftemp elseif ( @realfront == 3 ) tempx = 1 / ( ftemp * ftemp ) elseif ( @realfront == 4 ) tempx = log(ftemp) elseif ( @realfront == 5 ) tempx = exp( ftemp) elseif ( @realfront == 6 ) tempx = ftemp^ftemp elseif ( @realfront == 7 ) tempx = sin( ftemp ) elseif ( @realfront == 8 ) tempx = cos( ftemp ) elseif ( @realfront == 9 ) tempx = tan( ftemp ) elseif ( @realfront == 10 ) tempx = asin( ftemp ) elseif ( @realfront == 11 ) tempx = acos( ftemp ) elseif ( @realfront == 12 ) tempx = atan( ftemp ) elseif ( @realfront == 13 ) tempx = sinh( ftemp ) elseif ( @realfront == 14 ) tempx = cosh( ftemp ) elseif ( @realfront == 15 ) tempx = tanh( ftemp ) elseif ( @realfront == 16 ) tempx = asinh( ftemp ) elseif ( @realfront == 17 ) tempx = acosh( ftemp ) elseif ( @realfront == 18 ) tempx = atanh( ftemp ) elseif ( @realfront == 19 ) tempx = log( 1/ftemp ) elseif ( @realfront == 20 ) tempx = log( log( ftemp )) elseif ( @realfront == 21 ) tempx = exp( -ftemp ) elseif ( @realfront == 22 ) tempx = exp( 1/ftemp ) elseif ( @realfront == 23 ) tempx = ftemp^(-ftemp) elseif ( @realfront == 24 ) tempx = sin( ftemp ) tempx = tempx * tempx elseif ( @realfront == 25 ) tempx = cos( ftemp ) tempx = tempx * tempx elseif ( @realfront == 26 ) tempx = tan( ftemp ) tempx = tempx * tempx elseif ( @realfront == 27 ) tempx = cotan( ftemp ) elseif ( @realfront == 28 ) tempx = 1/cos( ftemp ) elseif ( @realfront == 29 ) tempx = 1/sin( ftemp ) elseif ( @realfront == 30 ) tempx = cotan( ftemp ) tempx = tempx * tempx elseif ( @realfront == 31 ) tempx = 1/cos( ftemp ) tempx = tempx * tempx elseif ( @realfront == 32 ) tempx = 1/sin( ftemp ) tempx = tempx * tempx elseif ( @realfront == 33 ) tempx = ftemp^(ftemp) tempx = ftemp^tempx elseif ( @realfront == 34 ) tempx = ftemp^(ftemp) tempx = 1/( ftemp^tempx ) elseif ( @realfront == 35 ) tempx = log(-ftemp) elseif ( @realfront == 36 ) tempx = 1/log( ftemp ) elseif ( @realfront == 37 ) tempx = ftemp * log( ftemp ) elseif ( @realfront == 38 ) tempx = sin( ftemp ) / ftemp elseif ( @realfront == 39 ) tempx = cos( ftemp ) / ftemp elseif ( @realfront == 40 ) tempx = sin( ftemp ) * cos( ftemp ) elseif ( @realfront == 41 ) tempx = sin( ftemp^2 ) elseif ( @realfront == 42 ) tempx = exp( -1/ftemp ) elseif ( @realfront == 43 ) tempx = ftemp * exp( ftemp ) elseif ( @realfront == 44 ) tempx = ftemp * exp( -ftemp ) elseif ( @realfront == 45 ) tempx = ftemp * exp( 1/ftemp ) elseif ( @realfront == 46 ) tempx = ftemp * exp( -1/ftemp ) elseif ( @realfront == 47 ) tempx = ftemp * ftemp * ftemp elseif ( @realfront == 48 ) tempx = 1 / ( ftemp * ftemp * ftemp ) elseif ( @realfront == 49 ) tempx = atan( 1 / ftemp ) elseif ( @realfront == 50 ) tempx = acos( 1 / ftemp ) elseif ( @realfront == 51 ) tempx = asin( 1 / ftemp ) elseif ( @realfront == 52 ) tempx = tan( ftemp ) / ftemp elseif ( @realfront == 53 ) tempx = cotan( ftemp ) / ftemp elseif ( @realfront == 54 ) tempx = 1 / ( ftemp * cos( ftemp )) elseif ( @realfront == 55 ) tempx = 1 / ( ftemp * sin( ftemp )) elseif ( @realfront == 56 ) tempx = ftemp * sin( ftemp ) elseif ( @realfront == 57 ) tempx = ftemp * cos( ftemp ) elseif ( @realfront == 58 ) tempx = ftemp * tan( ftemp ) elseif ( @realfront == 59 ) tempx = ftemp * cotan( ftemp ) elseif ( @realfront == 60 ) tempx = ftemp/cos( ftemp ) elseif ( @realfront == 61 ) tempx = ftemp/sin( ftemp ) elseif ( @realfront == 62 ) tempx = sin( 1/ftemp ) elseif ( @realfront == 63 ) tempx = cos( 1/ftemp ) elseif ( @realfront == 64 ) tempx = tan( 1/ftemp ) elseif ( @realfront == 65 ) tempx = cotan( 1/ftemp ) elseif ( @realfront == 66 ) tempx = 1/cos( 1/ftemp ) elseif ( @realfront == 67 ) tempx = 1/sin( 1/ftemp ) elseif ( @realfront == 68 ) tempx = cotanh( ftemp ) elseif ( @realfront == 69 ) tempx = 1/cosh( ftemp ) elseif ( @realfront == 70 ) tempx = 1/sinh( ftemp ) elseif ( @realfront == 71 ) tempx = atanh( 1/ftemp ) elseif ( @realfront == 72 ) tempx = acosh( 1/ftemp ) elseif ( @realfront == 73 ) tempx = asinh( 1/ftemp ) elseif @realfront == 74 tempx = ftemp^@rfpower elseif @realfront == 75 tempx = sinh(ftemp) tempx = tempx * tempx elseif @realfront == 76 tempx = cosh( ftemp ) tempx = tempx * tempx elseif @realfront == 77 tempx = tanh(ftemp) tempx = tempx * tempx elseif @realfront == 78 tempx = cotanh( ftemp ) tempx = tempx * tempx elseif @realfront == 79 tempx = 1/cosh(ftemp) tempx = tempx * tempx elseif @realfront == 80 tempx = 1 / sinh( ftemp ) tempx = tempx * tempx elseif @realfront == 81 tempx = sinh(1/ftemp) elseif @realfront == 82 tempx = cosh(1/ftemp) elseif @realfront == 83 tempx = tanh(1/ftemp) elseif @realfront == 84 tempx = cotanh(1/ftemp) elseif @realfront == 85 tempx = 1/cosh(1/ftemp) elseif @realfront == 86 tempx = 1/sinh(1/ftemp) elseif @realfront == 87 tempx = sin( ftemp ) * tan(ftemp) elseif @realfront == 88 tempx = sinh(ftemp) * tanh(ftemp) elseif @realfront == 89 tempx = sinh(ftemp) * cosh(ftemp) elseif @realfront == 90 tempx = sinh(ftemp), ftemp2 = cosh(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realfront == 91 tempx = sin(ftemp), ftemp2 = cos(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realfront == 92 tempx = 1/ftemp tempx = sin(tempx)*cos(tempx) elseif @realfront == 93 tempx = sin( 1/ftemp ) tempx = tempx*tempx elseif @realfront == 94 tempx = sin(ftemp) * cos(1/ftemp) elseif @realfront == 95 tempx = sin(ftemp) * sin(1/ftemp) elseif @realfront == 96 tempx = log(ftemp) tempx = tempx*tempx elseif @realfront == 97 tempx = sin(ftemp) * sin(2*ftemp) elseif @realfront == 98 tempx = exp(2*ftemp) elseif @realfront == 99 tempx = exp(-2*ftemp) elseif @realfront == 100 tempx = 1/ftemp tempx = sinh(tempx)*cosh(tempx) elseif @realfront == 101 tempx = sinh( 1/ftemp ) tempx = tempx*tempx elseif @realfront == 102 tempx = sinh(ftemp) * cosh(1/ftemp) elseif @realfront == 103 tempx = sinh(ftemp) * sinh(1/ftemp) elseif @realfront == 104 tempx = sin(ftemp) * sinh(ftemp) elseif @realfront == 105 tempx = sin(ftemp) * cosh(ftemp) elseif @realfront == 106 tempx = sin(ftemp), ftemp2 = sinh(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realfront == 107 tempx = sin(ftemp)*exp(ftemp) elseif @realfront == 108 tempx = cos(ftemp)*exp(ftemp) elseif @realfront == 109 tempx = sinh(ftemp)*exp(ftemp) elseif @realfront == 110 tempx = cosh(ftemp)*exp(ftemp) elseif @realfront == 111 tempx = sin(ftemp)*log(ftemp) elseif @realfront == 112 tempx = cos(ftemp)*log(ftemp) elseif @realfront == 113 tempx = sinh(ftemp)*log(ftemp) elseif @realfront == 114 tempx = cosh(ftemp)*log(ftemp) elseif @realfront == 115 tempx = exp(ftemp^2) elseif @realfront == 116 tempx = exp(1/(ftemp^2)) elseif @realfront == 117 tempx = abs(ftemp) elseif @realfront == 118 tempx = round(ftemp) elseif @realfront == 119 tempx = trunc(ftemp) elseif @realfront == 120 tempx = ceil(ftemp) elseif @realfront == 121 tempx = floor(ftemp) elseif @realfront == 122 tempx = ftemp/log(ftemp) elseif @realfront == 123 tempx = log(ftemp)/ftemp elseif @realfront == 124 tempx = exp(ftemp)/ftemp elseif @realfront == 125 tempx = exp(1/ftemp)/ftemp elseif @realfront == 126 tempx = exp(ftemp^2)/ftemp elseif @realfront == 127 tempx = exp(1/(ftemp^2))/ftemp elseif @realfront == 128 tempx = ftemp * exp(ftemp^2) elseif @realfront == 129 tempx = ftemp * exp(1/(ftemp^2)) elseif @realfront == 130 tempx = exp(-(ftemp^2)) elseif @realfront == 131 tempx = exp(-1/(ftemp^2)) elseif @realfront == 132 tempx = exp(-(ftemp^2))/ftemp elseif @realfront == 133 tempx = exp(-1/(ftemp^2))/ftemp elseif @realfront == 134 tempx = ftemp * exp(-(ftemp^2)) elseif @realfront == 135 tempx = ftemp * exp(-1/(ftemp^2)) elseif @realfront == 136 tempx = log(1+ftemp) elseif @realfront == 137 tempx = log(1+log(1+ftemp)) elseif @realfront == 138 tempx = sin(ftemp^@rfpower) endif ; realfront if @realfront != 0 tempx = @rfpostscale * tempx endif ; @realfront if @absoluter3 tempx = abs(tempx) endif ; @absoluter3 if @rfperturb tempx = @rfblend * tempx + rfbcomp * real(ztemp) endif ; @rfperturb ftemp = @ifscale * imag(ztemp) if @absolutei2 ftemp = abs(ftemp) endif ; @absolutei2 if ( @imagfront == 0 ) tempy = ftemp elseif ( @imagfront == 1 ) tempy = 1/ftemp elseif ( @imagfront == 2 ) tempy = ftemp * ftemp elseif ( @imagfront == 3 ) tempy = 1 / ( ftemp * ftemp ) elseif ( @imagfront == 4 ) tempy = log(ftemp) elseif ( @imagfront == 5 ) tempy = exp( ftemp) elseif ( @imagfront == 6 ) tempy = ftemp^ftemp elseif ( @imagfront == 7 ) tempy = sin( ftemp ) elseif ( @imagfront == 8 ) tempy = cos( ftemp ) elseif ( @imagfront == 9 ) tempy = tan( ftemp ) elseif ( @imagfront == 10 ) tempy = asin( ftemp ) elseif ( @imagfront == 11 ) tempy = acos( ftemp ) elseif ( @imagfront == 12 ) tempy = atan( ftemp ) elseif ( @imagfront == 13 ) tempy = sinh( ftemp ) elseif ( @imagfront == 14 ) tempy = cosh( ftemp ) elseif ( @imagfront == 15 ) tempy = tanh( ftemp ) elseif ( @imagfront == 16 ) tempy = asinh( ftemp ) elseif ( @imagfront == 17 ) tempy = acosh( ftemp ) elseif ( @imagfront == 18 ) tempy = atanh( ftemp ) elseif ( @imagfront == 19 ) tempy = log( 1/ftemp ) elseif ( @imagfront == 20 ) tempy = log( log( ftemp )) elseif ( @imagfront == 21 ) tempy = exp( -ftemp ) elseif ( @imagfront == 22 ) tempy = exp( 1/ftemp ) elseif ( @imagfront == 23 ) tempy = ftemp^(-ftemp) elseif ( @imagfront == 24 ) tempy = sin( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 25 ) tempy = cos( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 26 ) tempy = tan( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 27 ) tempy = cotan( ftemp ) elseif ( @imagfront == 28 ) tempy = 1/cos( ftemp ) elseif ( @imagfront == 29 ) tempy = 1/sin( ftemp ) elseif ( @imagfront == 30 ) tempy = cotan( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 31 ) tempy = 1/cos( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 32 ) tempy = 1/sin( ftemp ) tempy = tempy * tempy elseif ( @imagfront == 33 ) tempy = ftemp^(ftemp) tempy = ftemp^tempy elseif ( @imagfront == 34 ) tempy = ftemp^(ftemp) tempy = 1/( ftemp^tempy ) elseif ( @imagfront == 35 ) tempy = log(-ftemp) elseif ( @imagfront == 36 ) tempy = 1/log( ftemp ) elseif ( @imagfront == 37 ) tempy = ftemp * log( ftemp ) elseif ( @imagfront == 38 ) tempy = sin( ftemp ) / ftemp elseif ( @imagfront == 39 ) tempy = cos( ftemp ) / ftemp elseif ( @imagfront == 40 ) tempy = sin( ftemp ) * cos( ftemp ) elseif ( @imagfront == 41 ) tempy = sin( ftemp^2 ) elseif ( @imagfront == 42 ) tempy = exp( -1/ftemp ) elseif ( @imagfront == 43 ) tempy = ftemp * exp( ftemp ) elseif ( @imagfront == 44 ) tempy = ftemp * exp( -ftemp ) elseif ( @imagfront == 45 ) tempy = ftemp * exp( 1/ftemp ) elseif ( @imagfront == 46 ) tempy = ftemp * exp( -1/ftemp ) elseif ( @imagfront == 47 ) tempy = ftemp * ftemp * ftemp elseif ( @imagfront == 48 ) tempy = 1 / ( ftemp * ftemp * ftemp ) elseif ( @imagfront == 49 ) tempy = atan( 1 / ftemp ) elseif ( @imagfront == 50 ) tempy = acos( 1 / ftemp ) elseif ( @imagfront == 51 ) tempy = asin( 1 / ftemp ) elseif ( @imagfront == 52 ) tempy = tan( ftemp ) / ftemp elseif ( @imagfront == 53 ) tempy = cotan( ftemp ) / ftemp elseif ( @imagfront == 54 ) tempy = 1 / ( ftemp * cos( ftemp )) elseif ( @imagfront == 55 ) tempy = 1 / ( ftemp * sin( ftemp )) elseif ( @imagfront == 56 ) tempy = ftemp * sin( ftemp ) elseif ( @imagfront == 57 ) tempy = ftemp * cos( ftemp ) elseif ( @imagfront == 58 ) tempy = ftemp * tan( ftemp ) elseif ( @imagfront == 59 ) tempy = ftemp * cotan( ftemp ) elseif ( @imagfront == 60 ) tempy = ftemp/cos( ftemp ) elseif ( @imagfront == 61 ) tempy = ftemp/sin( ftemp ) elseif ( @imagfront == 62 ) tempy = sin( 1/ftemp ) elseif ( @imagfront == 63 ) tempy = cos( 1/ftemp ) elseif ( @imagfront == 64 ) tempy = tan( 1/ftemp ) elseif ( @imagfront == 65 ) tempy = cotan( 1/ftemp ) elseif ( @imagfront == 66 ) tempy = 1/cos( 1/ftemp ) elseif ( @imagfront == 67 ) tempy = 1/sin( 1/ftemp ) elseif ( @imagfront == 68 ) tempy = cotanh( ftemp ) elseif ( @imagfront == 69 ) tempy = 1/cosh( ftemp ) elseif ( @imagfront == 70 ) tempy = 1/sinh( ftemp ) elseif ( @imagfront == 71 ) tempy = atanh( 1/ftemp ) elseif ( @imagfront == 72 ) tempy = acosh( 1/ftemp ) elseif ( @imagfront == 73 ) tempy = asinh( 1/ftemp ) elseif @imagfront == 74 tempy = ftemp^@ifpower elseif @imagfront == 75 tempy = sinh(ftemp) tempy = tempy * tempy elseif @imagfront == 76 tempy = cosh( ftemp ) tempy = tempy * tempy elseif @imagfront == 77 tempy = tanh(ftemp) tempy = tempy * tempy elseif @imagfront == 78 tempy = cotanh( ftemp ) tempy = tempy * tempy elseif @imagfront == 79 tempy = 1/cosh(ftemp) tempy = tempy * tempy elseif @imagfront == 80 tempy = 1 / sinh( ftemp ) tempy = tempy * tempy elseif @imagfront == 81 tempy = sinh(1/ftemp) elseif @imagfront == 82 tempy = cosh(1/ftemp) elseif @imagfront == 83 tempy = tanh(1/ftemp) elseif @imagfront == 84 tempy = cotanh(1/ftemp) elseif @imagfront == 85 tempy = 1/cosh(1/ftemp) elseif @imagfront == 86 tempy = 1/sinh(1/ftemp) elseif @imagfront == 87 tempy = sin( ftemp ) * tan(ftemp) elseif @imagfront == 88 tempy = sinh(ftemp) * tanh(ftemp) elseif @imagfront == 89 tempy = sinh(ftemp) * cosh(ftemp) elseif @imagfront == 90 tempy = sinh(ftemp), ftemp2 = cosh(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagfront == 91 tempy = sin(ftemp), ftemp2 = cos(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagfront == 92 tempy = 1/ftemp tempy = sin(tempy)*cos(tempy) elseif @imagfront == 93 tempy = sin( 1/ftemp ) tempy = tempy*tempy elseif @imagfront == 94 tempy = sin(ftemp) * cos(1/ftemp) elseif @imagfront == 95 tempy = sin(ftemp) * sin(1/ftemp) elseif @imagfront == 96 tempy = log(ftemp) tempy = tempy*tempy elseif @imagfront == 97 tempy = sin(ftemp) * sin(2*ftemp) elseif @imagfront == 98 tempy = exp(2*ftemp) elseif @imagfront == 99 tempy = exp(-2*ftemp) elseif @imagfront == 100 tempy = 1/ftemp tempy = sinh(tempy)*cosh(tempy) elseif @imagfront == 101 tempy = sinh( 1/ftemp ) tempy = tempy*tempy elseif @imagfront == 102 tempy = sinh(ftemp) * cosh(1/ftemp) elseif @imagfront == 103 tempy = sinh(ftemp) * sinh(1/ftemp) elseif @imagfront == 104 tempy = sin(ftemp) * sinh(ftemp) elseif @imagfront == 105 tempy = sin(ftemp) * cosh(ftemp) elseif @imagfront == 106 tempy = sin(ftemp), ftemp2 = sinh(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagfront == 107 tempy = sin(ftemp)*exp(ftemp) elseif @imagfront == 108 tempy = cos(ftemp)*exp(ftemp) elseif @imagfront == 109 tempy = sinh(ftemp)*exp(ftemp) elseif @imagfront == 110 tempy = cosh(ftemp)*exp(ftemp) elseif @imagfront == 111 tempy = sin(ftemp)*log(ftemp) elseif @imagfront == 112 tempy = cos(ftemp)*log(ftemp) elseif @imagfront == 113 tempy = sinh(ftemp)*log(ftemp) elseif @imagfront == 114 tempy = cosh(ftemp)*log(ftemp) elseif @imagfront == 115 tempy = exp(ftemp^2) elseif @imagfront == 116 tempy = exp(1/(ftemp^2)) elseif @imagfront == 117 tempy = abs(ftemp) elseif @imagfront == 118 tempy = round(ftemp) elseif @imagfront == 119 tempy = trunc(ftemp) elseif @imagfront == 120 tempy = ceil(ftemp) elseif @imagfront == 121 tempy = floor(ftemp) elseif @imagfront == 122 tempy = ftemp/log(ftemp) elseif @imagfront == 123 tempy = log(ftemp)/ftemp elseif @imagfront == 124 tempy = exp(ftemp)/ftemp elseif @imagfront == 125 tempy = exp(1/ftemp)/ftemp elseif @imagfront == 126 tempy = exp(ftemp^2)/ftemp elseif @imagfront == 127 tempy = exp(1/(ftemp^2))/ftemp elseif @imagfront == 128 tempy = ftemp * exp(ftemp^2) elseif @imagfront == 129 tempy = ftemp * exp(1/(ftemp^2)) elseif @imagfront == 130 tempy = exp(-(ftemp^2)) elseif @imagfront == 131 tempy = exp(-1/(ftemp^2)) elseif @imagfront == 132 tempy = exp(-(ftemp^2))/ftemp elseif @imagfront == 133 tempy = exp(-1/(ftemp^2))/ftemp elseif @imagfront == 134 tempy = ftemp * exp(-(ftemp^2)) elseif @imagfront == 135 tempy = ftemp * exp(-1/(ftemp^2)) elseif @imagfront == 136 tempy = log(1+ftemp) elseif @imagfront == 137 tempy = log(1+log(1+ftemp)) elseif @imagfront == 138 tempy = sin(ftemp^@ifpower) endif ; imagfront if @imagfront != 0 tempy = @ifpostscale * tempy endif ; @imagfront if @absolutei3 tempy = abs(tempy) endif ; @absolutei3 if @ifperturb tempy = @ifblend * tempy + ifbcomp * imag(ztemp) endif ; @ifperturb ztemp = tempx + flip(tempy) if @zinitbias ztemp = (@zibprod*(ztemp + @zibaddend))^@zibexponent endif ; @zinitbias ; Initialize z, if desired ztemp = @ziscale * ztemp if ( @initialization == 0 ) zinput = ztemp elseif ( @initialization == 1 ) zinput = 1/ztemp elseif ( @initialization == 2 ) zinput = ztemp * ztemp elseif ( @initialization == 3 ) zinput = 1 / ( ztemp * ztemp ) elseif ( @initialization == 4 ) zinput = log(ztemp) elseif ( @initialization == 5 ) zinput = exp( ztemp) elseif ( @initialization == 6 ) zinput = ztemp^ztemp elseif ( @initialization == 7 ) zinput = sin( ztemp ) elseif ( @initialization == 8 ) zinput = cos( ztemp ) elseif ( @initialization == 9 ) zinput = tan( ztemp ) elseif ( @initialization == 10 ) zinput = asin( ztemp ) elseif ( @initialization == 11 ) zinput = acos( ztemp ) elseif ( @initialization == 12 ) zinput = atan( ztemp ) elseif ( @initialization == 13 ) zinput = sinh( ztemp ) elseif ( @initialization == 14 ) zinput = cosh( ztemp ) elseif ( @initialization == 15 ) zinput = tanh( ztemp ) elseif ( @initialization == 16 ) zinput = asinh( ztemp ) elseif ( @initialization == 17 ) zinput = acosh( ztemp ) elseif ( @initialization == 18 ) zinput = atanh( ztemp ) elseif ( @initialization == 19 ) zinput = log( 1/ztemp ) elseif ( @initialization == 20 ) zinput = log( log( ztemp )) elseif ( @initialization == 21 ) zinput = exp( -ztemp ) elseif ( @initialization == 22 ) zinput = exp( 1/ztemp ) elseif ( @initialization == 23 ) zinput = ztemp^(-ztemp) elseif ( @initialization == 24 ) zinput = sin( ztemp ) zinput = zinput * zinput elseif ( @initialization == 25 ) zinput = cos( ztemp ) zinput = zinput * zinput elseif ( @initialization == 26 ) zinput = tan( ztemp ) zinput = zinput * zinput elseif ( @initialization == 27 ) zinput = cotan( ztemp ) elseif ( @initialization == 28 ) zinput = 1/cos( ztemp ) elseif ( @initialization == 29 ) zinput = 1/sin( ztemp ) elseif ( @initialization == 30 ) zinput = cotan( ztemp ) zinput = zinput * zinput elseif ( @initialization == 31 ) zinput = 1/cos( ztemp ) zinput = zinput * zinput elseif ( @initialization == 32 ) zinput = 1/sin( ztemp ) zinput = zinput * zinput elseif ( @initialization == 33 ) zinput = ztemp^(ztemp) zinput = ztemp^zinput elseif ( @initialization == 34 ) zinput = ztemp^(ztemp) zinput = 1/( ztemp^zinput ) elseif ( @initialization == 35 ) zinput = log(-ztemp) elseif ( @initialization == 36 ) zinput = 1/log( ztemp ) elseif ( @initialization == 37 ) zinput = ztemp * log( ztemp ) elseif ( @initialization == 38 ) zinput = sin( ztemp ) / ztemp elseif ( @initialization == 39 ) zinput = cos( ztemp ) / ztemp elseif ( @initialization == 40 ) zinput = sin( ztemp ) * cos( ztemp ) elseif ( @initialization == 41 ) zinput = sin( ztemp^2 ) elseif ( @initialization == 42 ) zinput = exp( -1/ztemp ) elseif ( @initialization == 43 ) zinput = ztemp * exp( ztemp ) elseif ( @initialization == 44 ) zinput = ztemp * exp( -ztemp ) elseif ( @initialization == 45 ) zinput = ztemp * exp( 1/ztemp ) elseif ( @initialization == 46 ) zinput = ztemp * exp( -1/ztemp ) elseif ( @initialization == 47 ) zinput = ztemp * ztemp * ztemp elseif ( @initialization == 48 ) zinput = 1 / ( ztemp * ztemp * ztemp ) elseif ( @initialization == 49 ) zinput = atan( 1 / ztemp ) elseif ( @initialization == 50 ) zinput = acos( 1 / ztemp ) elseif ( @initialization == 51 ) zinput = asin( 1 / ztemp ) elseif ( @initialization == 52 ) zinput = tan( ztemp ) / ztemp elseif ( @initialization == 53 ) zinput = cotan( ztemp ) / ztemp elseif ( @initialization == 54 ) zinput = 1 / ( ztemp * cos( ztemp )) elseif ( @initialization == 55 ) zinput = 1 / ( ztemp * sin( ztemp )) elseif ( @initialization == 56 ) zinput = ztemp * sin( ztemp ) elseif ( @initialization == 57 ) zinput = ztemp * cos( ztemp ) elseif ( @initialization == 58 ) zinput = ztemp * tan( ztemp ) elseif ( @initialization == 59 ) zinput = ztemp * cotan( ztemp ) elseif ( @initialization == 60 ) zinput = ztemp/cos( ztemp ) elseif ( @initialization == 61 ) zinput = ztemp/sin( ztemp ) elseif ( @initialization == 62 ) zinput = sin( 1/ztemp ) elseif ( @initialization == 63 ) zinput = cos( 1/ztemp ) elseif ( @initialization == 64 ) zinput = tan( 1/ztemp ) elseif ( @initialization == 65 ) zinput = cotan( 1/ztemp ) elseif ( @initialization == 66 ) zinput = 1/cos( 1/ztemp ) elseif ( @initialization == 67 ) zinput = 1/sin( 1/ztemp ) elseif ( @initialization == 68 ) zinput = cotanh( ztemp ) elseif ( @initialization == 69 ) zinput = 1/cosh( ztemp ) elseif ( @initialization == 70 ) zinput = 1/sinh( ztemp ) elseif ( @initialization == 71 ) zinput = atanh( 1/ztemp ) elseif ( @initialization == 72 ) zinput = acosh( 1/ztemp ) elseif ( @initialization == 73 ) zinput = asinh( 1/ztemp ) elseif @initialization == 74 zinput = ztemp^@zpower elseif @initialization == 75 zinput = sinh(ztemp) zinput = zinput * zinput elseif @initialization == 76 zinput = cosh( ztemp ) zinput = zinput * zinput elseif @initialization == 77 zinput = tanh(ztemp) zinput = zinput * zinput elseif @initialization == 78 zinput = cotanh( ztemp ) zinput = zinput * zinput elseif @initialization == 79 zinput = 1/cosh(ztemp) zinput = zinput * zinput elseif @initialization == 80 zinput = 1 / sinh( ztemp ) zinput = zinput * zinput elseif @initialization == 81 zinput = sinh(1/ztemp) elseif @initialization == 82 zinput = cosh(1/ztemp) elseif @initialization == 83 zinput = tanh(1/ztemp) elseif @initialization == 84 zinput = cotanh(1/ztemp) elseif @initialization == 85 zinput = 1/cosh(1/ztemp) elseif @initialization == 86 zinput = 1/sinh(1/ztemp) elseif @initialization == 87 zinput = sin( ztemp ) * tan(ztemp) elseif @initialization == 88 zinput = sinh(ztemp) * tanh(ztemp) elseif @initialization == 89 zinput = sinh(ztemp) * cosh(ztemp) elseif @initialization == 90 zinput = sinh(ztemp), ztemp2 = cosh(ztemp) zinput = zinput*zinput*ztemp2*ztemp2 elseif @initialization == 91 zinput = sin(ztemp), ztemp2 = cos(ztemp) zinput = zinput*zinput*ztemp2*ztemp2 elseif @initialization == 92 zinput = 1/ztemp zinput = sin(zinput)*cos(zinput) elseif @initialization == 93 zinput = sin( 1/ztemp ) zinput = zinput*zinput elseif @initialization == 94 zinput = sin(ztemp) * cos(1/ztemp) elseif @initialization == 95 zinput = sin(ztemp) * sin(1/ztemp) elseif @initialization == 96 zinput = log(ztemp) zinput = zinput*zinput elseif @initialization == 97 zinput = sin(ztemp) * sin(2*ztemp) elseif @initialization == 98 zinput = exp(2*ztemp) elseif @initialization == 99 zinput = exp(-2*ztemp) elseif @initialization == 100 zinput = 1/ztemp zinput = sinh(zinput)*cosh(zinput) elseif @initialization == 101 zinput = sinh( 1/ztemp ) zinput = zinput*zinput elseif @initialization == 102 zinput = sinh(ztemp) * cosh(1/ztemp) elseif @initialization == 103 zinput = sinh(ztemp) * sinh(1/ztemp) elseif @initialization == 104 zinput = sin(ztemp) * sinh(ztemp) elseif @initialization == 105 zinput = sin(ztemp) * cosh(ztemp) elseif @initialization == 106 zinput = sin(ztemp), ztemp2 = sinh(ztemp) zinput = zinput*zinput*ztemp2*ztemp2 elseif @initialization == 107 zinput = sin(ztemp)*exp(ztemp) elseif @initialization == 108 zinput = cos(ztemp)*exp(ztemp) elseif @initialization == 109 zinput = sinh(ztemp)*exp(ztemp) elseif @initialization == 110 zinput = cosh(ztemp)*exp(ztemp) elseif @initialization == 111 zinput = sin(ztemp)*log(ztemp) elseif @initialization == 112 zinput = cos(ztemp)*log(ztemp) elseif @initialization == 113 zinput = sinh(ztemp)*log(ztemp) elseif @initialization == 114 zinput = cosh(ztemp)*log(ztemp) elseif @initialization == 115 zinput = exp(ztemp^2) elseif @initialization == 116 zinput = exp(1/(ztemp^2)) elseif @initialization == 117 zinput = abs(ztemp) elseif @initialization == 118 zinput = round(ztemp) elseif @initialization == 119 zinput = trunc(ztemp) elseif @initialization == 120 zinput = ceil(ztemp) elseif @initialization == 121 zinput = floor(ztemp) elseif @initialization == 122 zinput = ztemp/log(ztemp) elseif @initialization == 123 zinput = log(ztemp)/ztemp elseif @initialization == 124 zinput = exp(ztemp)/ztemp elseif @initialization == 125 zinput = exp(1/ztemp)/ztemp elseif @initialization == 126 zinput = exp(ztemp^2)/ztemp elseif @initialization == 127 zinput = exp(1/(ztemp^2))/ztemp elseif @initialization == 128 zinput = ztemp * exp(ztemp^2) elseif @initialization == 129 zinput = ztemp * exp(1/(ztemp^2)) elseif @initialization == 130 zinput = exp(-(ztemp^2)) elseif @initialization == 131 zinput = exp(-1/(ztemp^2)) elseif @initialization == 132 zinput = exp(-(ztemp^2))/ztemp elseif @initialization == 133 zinput = exp(-1/(ztemp^2))/ztemp elseif @initialization == 134 zinput = ztemp * exp(-(ztemp^2)) elseif @initialization == 135 zinput = ztemp * exp(-1/(ztemp^2)) elseif @initialization == 136 zinput = log(1+ztemp) elseif @initialization == 137 zinput = log(1+log(1+ztemp)) elseif @initialization == 138 zinput = sin(ztemp^@zpower) endif ; initialization if @absolutez2 zinput = abs(zinput) endif ; @absolutez2 if @absoluter4 zinput = abs(real(zinput)) + flip(imag(zinput)) endif ; @absoluter4 if @absolutei4 zinput = real(zinput) + flip(abs(imag(zinput))) endif ; @absolutei4 if @initperturb zinput = @initblend * zinput + initbcomp * ztemp endif ; @ifperturb if @trapvariant != 0 if @swaporder if @trapvariant == 1 ; flip zinput = flip(zinput) elseif @trapvariant == 2 ; conjugate zinput = conj(zinput) elseif @trapvariant == 3 ; flip conjugate zinput = flip(conj(zinput)) elseif @trapvariant == 4 ; negate zinput = -zinput elseif @trapvariant == 5 ; negate flip zinput = -flip(zinput) elseif @trapvariant == 6 ; negate conjugate zinput = -conj(zinput) elseif @trapvariant == 7 ; negate flip conj = conj flip zinput = -flip(conj(zinput)) elseif @trapvariant == 8 ; polar - use x as r, y as phi ftemp = real(zinput) * cos(imag(zinput)) ftemp2 = real(zinput) * sin(imag(zinput)) zinput = ftemp + flip(ftemp2) elseif @trapvariant == 9 ; polar 2 - convert to polar ftemp = cabs(zinput) ftemp2 = acos(real(zinput)/ftemp) if imag(zinput) < 0 ftemp2 = -ftemp2 endif ; imag() zinput = ftemp + flip(ftemp2) ftemp2 = real(zinput) * sin(imag(zinput)) zinput = ftemp + flip(ftemp2) elseif @trapvariant == 10 ; elliptic - use x as mu, y as nu ftemp = abs(real(zinput)) ftemp2 = imag(zinput) % twopi zinput = cosh(ftemp) * cos(ftemp2) + flip(sinh(ftemp) * sin(ftemp2)) elseif @trapvariant == 11 ; parabolic - use x as sigma, y as tau ftemp = real(zinput) * imag(zinput) ftemp2 = 0.5 * (sqr(real(zinput)) - sqr(imag(zinput))) zinput = ftemp + flip(ftemp2) elseif @trapvariant == 12 ; parabolic variant - use x as sigma, y as tau ftemp = real(zinput) * imag(zinput) ftemp2 = 0.5 * (sqr(real(zinput)) + sqr(imag(zinput))) zinput = ftemp + flip(ftemp2) endif ; trapvariant2 endif ; swaporder endif ; trapvariant1 if @operator != 0 if @operator == 1 ; multiplication zinput = zinput * @operatee elseif @operator == 2 ; addition zinput = zinput + @operatee elseif @operator == 3 ; subtraction zinput = zinput - @operatee elseif @operator == 4 ; division zinput = zinput / @operatee elseif @operator == 5 ; exponentiation zinput = zinput ^ @operatee elseif @operator == 6 ; subtraction2 zinput = @operatee - zinput elseif @operator == 7 ; division2 zinput = @operatee / zinput elseif @operator == 8 ; exponential2 zinput = @operatee ^ zinput elseif @operator == 9 ; logarithm zinput = log(zinput) / log(@operatee) elseif @operator == 10 ; logarithm2 zinput = log(@operatee) / log(zinput) endif ; operator2 endif ; operator1 if @trapvariant != 0 if !@swaporder if @trapvariant == 1 ; flip zinput = flip(zinput) elseif @trapvariant == 2 ; conjugate zinput = conj(zinput) elseif @trapvariant == 3 ; flip conjugate zinput = flip(conj(zinput)) elseif @trapvariant == 4 ; negate zinput = -zinput elseif @trapvariant == 5 ; negate flip zinput = -flip(zinput) elseif @trapvariant == 6 ; negate conjugate zinput = -conj(zinput) elseif @trapvariant == 7 ; negate flip conj = conj flip zinput = -flip(conj(zinput)) endif ; trapvariant2 elseif @trapvariant == 8 ; polar - use x as r, y as phi ftemp = real(zinput) * cos(imag(zinput)) ftemp2 = real(zinput) * sin(imag(zinput)) zinput = ftemp + flip(ftemp2) elseif @trapvariant == 9 ; polar 2 - convert to polar ftemp = cabs(zinput) ftemp2 = acos(real(zinput)/ftemp) if imag(zinput) < 0 ftemp2 = -ftemp2 endif ; imag() zinput = ftemp + flip(ftemp2) ftemp2 = real(zinput) * sin(imag(zinput)) zinput = ftemp + flip(ftemp2) elseif @trapvariant == 10 ; elliptic - use x as mu, y as nu ftemp = abs(real(zinput)) ftemp2 = imag(zinput) % twopi zinput = cosh(ftemp) * cos(ftemp2) + flip(sinh(ftemp) * sin(ftemp2)) elseif @trapvariant == 11 ; parabolic - use x as sigma, y as tau ftemp = real(zinput) * imag(zinput) ftemp2 = 0.5 * (sqr(real(zinput)) - sqr(imag(zinput))) zinput = ftemp + flip(ftemp2) elseif @trapvariant == 12 ; parabolic variant - use x as sigma, y as tau ftemp = real(zinput) * imag(zinput) ftemp2 = 0.5 * (sqr(real(zinput)) + sqr(imag(zinput))) zinput = ftemp + flip(ftemp2) endif ; swaporder endif ; trapvariant1 if @operator2 != 0 if @operator2 == 1 ; multiplication zinput = zinput * @operatee2 elseif @operator2 == 2 ; addition zinput = zinput + @operatee2 elseif @operator2 == 3 ; subtraction zinput = zinput - @operatee2 elseif @operator2 == 4 ; division zinput = zinput / @operatee2 elseif @operator2 == 5 ; exponentiation zinput = zinput ^ @operatee2 elseif @operator2 == 6 ; subtraction2 zinput = @operatee2 - zinput elseif @operator2 == 7 ; division2 zinput = @operatee2 / zinput elseif @operator2 == 8 ; exponential2 zinput = @operatee2 ^ zinput elseif @operator2 == 9 ; logarithm zinput = log(zinput) / log(@operatee2) elseif @operator2 == 10 ; logarithm2 zinput = log(@operatee2) / log(zinput) endif ; operator22 endif ; operator21 if @history if @hismode == "alternative" || @hismode == "both" maxindex = 0, index = 9 while index > maxindex index2 = index-1 zhist[1,index] = zhist[1,index2] index = index2 endwhile ; index zhist[1,0] = zinput if @histype2 == 1 zinput = zhist[@zmixmatch3,1] elseif @histype2 == 2 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,1])) elseif @histype2 == 3 zinput = real(zhist[@zmixmatch3,1]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 4 zinput = zinput - zhist[@zmixmatch3,1] elseif @histype2 == 5 zinput = zinput - real(zhist[@zmixmatch3,1]) elseif @histype2 == 6 zinput = zinput - flip(imag(zhist[@zmixmatch3,1])) elseif @histype2 == 7 zinput = zinput + zhist[@zmixmatch3,1] elseif @histype2 == 8 zinput = zinput + real(zhist[@zmixmatch3,1]) elseif @histype2 == 9 zinput = zinput + flip(imag(zhist[@zmixmatch3,1])) elseif @histype2 == 10 zinput = zinput * zhist[@zmixmatch3,1] elseif @histype2 == 11 zinput = zinput * real(zhist[@zmixmatch3,1]) elseif @histype2 == 12 zinput = zinput * flip(imag(zhist[@zmixmatch3,1])) elseif @histype2 == 13 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,1] elseif @histype2 == 14 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,1] elseif @histype2 == 15 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,1] elseif @histype2 == 16 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,1] elseif @histype2 == 17 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,1] elseif @histype2 == 18 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,1] elseif @histype2 == 19 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,1])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,1]))) elseif @histype2 == 20 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,1])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,1]))) elseif @histype2 == 21 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,1])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,1]))) elseif @histype2 == 22 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,1])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 23 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,1])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 24 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,1])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 25 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,1])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,1]))) elseif @histype2 == 26 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,1])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,1]))) elseif @histype2 == 27 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,1])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,1]))) elseif @histype2 == 28 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,1])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 29 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,1])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 30 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,1])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 31 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,1])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,1]))) elseif @histype2 == 32 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,1])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,1]))) elseif @histype2 == 33 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,1])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,1]))) elseif @histype2 == 34 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,1])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 35 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,1])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 36 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,1])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,1]))) elseif @histype2 == 37 zinput = zhist[@zmixmatch3,2] elseif @histype2 == 38 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,2])) elseif @histype2 == 39 zinput = real(zhist[@zmixmatch3,2]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 40 zinput = zinput - zhist[@zmixmatch3,2] elseif @histype2 == 41 zinput = zinput - real(zhist[@zmixmatch3,2]) elseif @histype2 == 42 zinput = zinput - flip(imag(zhist[@zmixmatch3,2])) elseif @histype2 == 43 zinput = zinput + zhist[@zmixmatch3,2] elseif @histype2 == 44 zinput = zinput + real(zhist[@zmixmatch3,2]) elseif @histype2 == 45 zinput = zinput + flip(imag(zhist[@zmixmatch3,2])) elseif @histype2 == 46 zinput = zinput * zhist[@zmixmatch3,2] elseif @histype2 == 47 zinput = zinput * real(zhist[@zmixmatch3,2]) elseif @histype2 == 48 zinput = zinput * flip(imag(zhist[@zmixmatch3,2])) elseif @histype2 == 49 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,2] elseif @histype2 == 50 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,2] elseif @histype2 == 51 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,2] elseif @histype2 == 52 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,2] elseif @histype2 == 53 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,2] elseif @histype2 == 54 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,2] elseif @histype2 == 55 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,2])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,2]))) elseif @histype2 == 56 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,2])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,2]))) elseif @histype2 == 57 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,2])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,2]))) elseif @histype2 == 58 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,2])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 59 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,2])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 60 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,2])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 61 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,2])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,2]))) elseif @histype2 == 62 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,2])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,2]))) elseif @histype2 == 63 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,2])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,2]))) elseif @histype2 == 64 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,2])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 65 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,2])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 66 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,2])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 67 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,2])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,2]))) elseif @histype2 == 68 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,2])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,2]))) elseif @histype2 == 69 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,2])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,2]))) elseif @histype2 == 70 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,2])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 71 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,2])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 72 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,2])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,2]))) elseif @histype2 == 73 zinput = zhist[@zmixmatch3,3] elseif @histype2 == 74 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,3])) elseif @histype2 == 75 zinput = real(zhist[@zmixmatch3,3]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 76 zinput = zinput - zhist[@zmixmatch3,3] elseif @histype2 == 77 zinput = zinput - real(zhist[@zmixmatch3,3]) elseif @histype2 == 78 zinput = zinput - flip(imag(zhist[@zmixmatch3,3])) elseif @histype2 == 79 zinput = zinput + zhist[@zmixmatch3,3] elseif @histype2 == 80 zinput = zinput + real(zhist[@zmixmatch3,3]) elseif @histype2 == 81 zinput = zinput + flip(imag(zhist[@zmixmatch3,3])) elseif @histype2 == 82 zinput = zinput * zhist[@zmixmatch3,3] elseif @histype2 == 83 zinput = zinput * real(zhist[@zmixmatch3,3]) elseif @histype2 == 84 zinput = zinput * flip(imag(zhist[@zmixmatch3,3])) elseif @histype2 == 85 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,3] elseif @histype2 == 86 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,3] elseif @histype2 == 87 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,3] elseif @histype2 == 88 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,3] elseif @histype2 == 89 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,3] elseif @histype2 == 90 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,3] elseif @histype2 == 91 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,3])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,3]))) elseif @histype2 == 92 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,3])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,3]))) elseif @histype2 == 93 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,3])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,3]))) elseif @histype2 == 94 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,3])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 95 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,3])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 96 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,3])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 97 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,3])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,3]))) elseif @histype2 == 98 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,3])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,3]))) elseif @histype2 == 99 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,3])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,3]))) elseif @histype2 == 100 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,3])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 101 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,3])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 102 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,3])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 103 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,3])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,3]))) elseif @histype2 == 104 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,3])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,3]))) elseif @histype2 == 105 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,3])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,3]))) elseif @histype2 == 106 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,3])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 107 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,3])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 108 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,3])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,3]))) elseif @histype2 == 109 zinput = zhist[@zmixmatch3,4] elseif @histype2 == 110 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,4])) elseif @histype2 == 111 zinput = real(zhist[@zmixmatch3,4]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 112 zinput = zinput - zhist[@zmixmatch3,4] elseif @histype2 == 113 zinput = zinput - real(zhist[@zmixmatch3,4]) elseif @histype2 == 114 zinput = zinput - flip(imag(zhist[@zmixmatch3,4])) elseif @histype2 == 115 zinput = zinput + zhist[@zmixmatch3,4] elseif @histype2 == 116 zinput = zinput + real(zhist[@zmixmatch3,4]) elseif @histype2 == 117 zinput = zinput + flip(imag(zhist[@zmixmatch3,4])) elseif @histype2 == 118 zinput = zinput * zhist[@zmixmatch3,4] elseif @histype2 == 119 zinput = zinput * real(zhist[@zmixmatch3,4]) elseif @histype2 == 120 zinput = zinput * flip(imag(zhist[@zmixmatch3,4])) elseif @histype2 == 121 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,4] elseif @histype2 == 122 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,4] elseif @histype2 == 123 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,4] elseif @histype2 == 124 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,4] elseif @histype2 == 125 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,4] elseif @histype2 == 126 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,4] elseif @histype2 == 127 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,4])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,4]))) elseif @histype2 == 128 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,4])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,4]))) elseif @histype2 == 129 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,4])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,4]))) elseif @histype2 == 130 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,4])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 131 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,4])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 132 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,4])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 133 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,4])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,4]))) elseif @histype2 == 134 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,4])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,4]))) elseif @histype2 == 135 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,4])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,4]))) elseif @histype2 == 136 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,4])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 137 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,4])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 138 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,4])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 139 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,4])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,4]))) elseif @histype2 == 140 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,4])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,4]))) elseif @histype2 == 141 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,4])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,4]))) elseif @histype2 == 142 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,4])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 143 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,4])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 144 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,4])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,4]))) elseif @histype2 == 145 zinput = zhist[@zmixmatch3,5] elseif @histype2 == 146 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,5])) elseif @histype2 == 147 zinput = real(zhist[@zmixmatch3,5]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 148 zinput = zinput - zhist[@zmixmatch3,5] elseif @histype2 == 149 zinput = zinput - real(zhist[@zmixmatch3,5]) elseif @histype2 == 150 zinput = zinput - flip(imag(zhist[@zmixmatch3,5])) elseif @histype2 == 151 zinput = zinput + zhist[@zmixmatch3,5] elseif @histype2 == 152 zinput = zinput + real(zhist[@zmixmatch3,5]) elseif @histype2 == 153 zinput = zinput + flip(imag(zhist[@zmixmatch3,5])) elseif @histype2 == 154 zinput = zinput * zhist[@zmixmatch3,5] elseif @histype2 == 155 zinput = zinput * real(zhist[@zmixmatch3,5]) elseif @histype2 == 156 zinput = zinput * flip(imag(zhist[@zmixmatch3,5])) elseif @histype2 == 157 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,5] elseif @histype2 == 158 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,5] elseif @histype2 == 159 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,5] elseif @histype2 == 160 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,5] elseif @histype2 == 161 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,5] elseif @histype2 == 162 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,5] elseif @histype2 == 163 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,5])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,5]))) elseif @histype2 == 164 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,5])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,5]))) elseif @histype2 == 165 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,5])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,5]))) elseif @histype2 == 166 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,5])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 167 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,5])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 168 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,5])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 169 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,5])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,5]))) elseif @histype2 == 170 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,5])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,5]))) elseif @histype2 == 171 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,5])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,5]))) elseif @histype2 == 172 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,5])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 173 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,5])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 174 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,5])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 175 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,5])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,5]))) elseif @histype2 == 176 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,5])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,5]))) elseif @histype2 == 177 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,5])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,5]))) elseif @histype2 == 178 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,5])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 179 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,5])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 180 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,5])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,5]))) elseif @histype2 == 181 zinput = zhist[@zmixmatch3,6] elseif @histype2 == 182 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,6])) elseif @histype2 == 183 zinput = real(zhist[@zmixmatch3,6]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 184 zinput = zinput - zhist[@zmixmatch3,6] elseif @histype2 == 185 zinput = zinput - real(zhist[@zmixmatch3,6]) elseif @histype2 == 186 zinput = zinput - flip(imag(zhist[@zmixmatch3,6])) elseif @histype2 == 187 zinput = zinput + zhist[@zmixmatch3,6] elseif @histype2 == 188 zinput = zinput + real(zhist[@zmixmatch3,6]) elseif @histype2 == 189 zinput = zinput + flip(imag(zhist[@zmixmatch3,6])) elseif @histype2 == 190 zinput = zinput * zhist[@zmixmatch3,6] elseif @histype2 == 191 zinput = zinput * real(zhist[@zmixmatch3,6]) elseif @histype2 == 192 zinput = zinput * flip(imag(zhist[@zmixmatch3,6])) elseif @histype2 == 193 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,6] elseif @histype2 == 194 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,6] elseif @histype2 == 195 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,6] elseif @histype2 == 196 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,6] elseif @histype2 == 197 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,6] elseif @histype2 == 198 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,6] elseif @histype2 == 199 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,6])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,6]))) elseif @histype2 == 200 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,6])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,6]))) elseif @histype2 == 201 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,6])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,6]))) elseif @histype2 == 202 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,6])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 203 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,6])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 204 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,6])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 205 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,6])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,6]))) elseif @histype2 == 206 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,6])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,6]))) elseif @histype2 == 207 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,6])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,6]))) elseif @histype2 == 208 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,6])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 209 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,6])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 210 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,6])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 211 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,6])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,6]))) elseif @histype2 == 212 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,6])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,6]))) elseif @histype2 == 213 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,6])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,6]))) elseif @histype2 == 214 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,6])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 215 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,6])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 216 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,6])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,6]))) elseif @histype2 == 217 zinput = zhist[@zmixmatch3,7] elseif @histype2 == 218 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,7])) elseif @histype2 == 219 zinput = real(zhist[@zmixmatch3,7]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 220 zinput = zinput - zhist[@zmixmatch3,7] elseif @histype2 == 221 zinput = zinput - real(zhist[@zmixmatch3,7]) elseif @histype2 == 222 zinput = zinput - flip(imag(zhist[@zmixmatch3,7])) elseif @histype2 == 223 zinput = zinput + zhist[@zmixmatch3,7] elseif @histype2 == 224 zinput = zinput + real(zhist[@zmixmatch3,7]) elseif @histype2 == 225 zinput = zinput + flip(imag(zhist[@zmixmatch3,7])) elseif @histype2 == 226 zinput = zinput * zhist[@zmixmatch3,7] elseif @histype2 == 227 zinput = zinput * real(zhist[@zmixmatch3,7]) elseif @histype2 == 228 zinput = zinput * flip(imag(zhist[@zmixmatch3,7])) elseif @histype2 == 229 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,7] elseif @histype2 == 230 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,7] elseif @histype2 == 231 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,7] elseif @histype2 == 232 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,7] elseif @histype2 == 233 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,7] elseif @histype2 == 234 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,7] elseif @histype2 == 235 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,7])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,7]))) elseif @histype2 == 236 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,7])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,7]))) elseif @histype2 == 237 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,7])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,7]))) elseif @histype2 == 238 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,7])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 239 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,7])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 240 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,7])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 241 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,7])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,7]))) elseif @histype2 == 242 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,7])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,7]))) elseif @histype2 == 243 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,7])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,7]))) elseif @histype2 == 244 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,7])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 245 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,7])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 246 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,7])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 247 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,7])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,7]))) elseif @histype2 == 248 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,7])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,7]))) elseif @histype2 == 249 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,7])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,7]))) elseif @histype2 == 250 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,7])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 251 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,7])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 252 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,7])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,7]))) elseif @histype2 == 253 zinput = zhist[@zmixmatch3,8] elseif @histype2 == 254 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,8])) elseif @histype2 == 255 zinput = real(zhist[@zmixmatch3,8]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 256 zinput = zinput - zhist[@zmixmatch3,8] elseif @histype2 == 257 zinput = zinput - real(zhist[@zmixmatch3,8]) elseif @histype2 == 258 zinput = zinput - flip(imag(zhist[@zmixmatch3,8])) elseif @histype2 == 259 zinput = zinput + zhist[@zmixmatch3,8] elseif @histype2 == 260 zinput = zinput + real(zhist[@zmixmatch3,8]) elseif @histype2 == 261 zinput = zinput + flip(imag(zhist[@zmixmatch3,8])) elseif @histype2 == 262 zinput = zinput * zhist[@zmixmatch3,8] elseif @histype2 == 263 zinput = zinput * real(zhist[@zmixmatch3,8]) elseif @histype2 == 264 zinput = zinput * flip(imag(zhist[@zmixmatch3,8])) elseif @histype2 == 265 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,8] elseif @histype2 == 266 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,8] elseif @histype2 == 267 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,8] elseif @histype2 == 268 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,8] elseif @histype2 == 269 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,8] elseif @histype2 == 270 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,8] elseif @histype2 == 271 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,8])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,8]))) elseif @histype2 == 272 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,8])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,8]))) elseif @histype2 == 273 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,8])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,8]))) elseif @histype2 == 274 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,8])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 275 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,8])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 276 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,8])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 277 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,8])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,8]))) elseif @histype2 == 278 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,8])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,8]))) elseif @histype2 == 279 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,8])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,8]))) elseif @histype2 == 280 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,8])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 281 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,8])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 282 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,8])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 283 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,8])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,8]))) elseif @histype2 == 284 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,8])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,8]))) elseif @histype2 == 285 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,8])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,8]))) elseif @histype2 == 286 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,8])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 287 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,8])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 288 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,8])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,8]))) elseif @histype2 == 289 zinput = zhist[@zmixmatch3,9] elseif @histype2 == 290 zinput = real(zhist[@zmixmatch4,@histype2index]) + flip(imag(zhist[@zmixmatch3,9])) elseif @histype2 == 291 zinput = real(zhist[@zmixmatch3,9]) + flip(imag(zhist[@zmixmatch4,@histype2index])) elseif @histype2 == 292 zinput = zinput - zhist[@zmixmatch3,9] elseif @histype2 == 293 zinput = zinput - real(zhist[@zmixmatch3,9]) elseif @histype2 == 294 zinput = zinput - flip(imag(zhist[@zmixmatch3,9])) elseif @histype2 == 295 zinput = zinput + zhist[@zmixmatch3,9] elseif @histype2 == 296 zinput = zinput + real(zhist[@zmixmatch3,9]) elseif @histype2 == 297 zinput = zinput + flip(imag(zhist[@zmixmatch3,9])) elseif @histype2 == 298 zinput = zinput * zhist[@zmixmatch3,9] elseif @histype2 == 299 zinput = zinput * real(zhist[@zmixmatch3,9]) elseif @histype2 == 300 zinput = zinput * flip(imag(zhist[@zmixmatch3,9])) elseif @histype2 == 301 zinput = real(zhist[@zmixmatch4,@histype2index]) - zhist[@zmixmatch3,9] elseif @histype2 == 302 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) - zhist[@zmixmatch3,9] elseif @histype2 == 303 zinput = real(zhist[@zmixmatch4,@histype2index]) + zhist[@zmixmatch3,9] elseif @histype2 == 304 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) + zhist[@zmixmatch3,9] elseif @histype2 == 305 zinput = real(zhist[@zmixmatch4,@histype2index]) * zhist[@zmixmatch3,9] elseif @histype2 == 306 zinput = flip(imag(zhist[@zmixmatch4,@histype2index])) * zhist[@zmixmatch3,9] elseif @histype2 == 307 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,9])) + flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,9]))) elseif @histype2 == 308 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,9])) - flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,9]))) elseif @histype2 == 309 zinput = (real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,9])) * flip((imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,9]))) elseif @histype2 == 310 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,9])) + flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 311 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,9])) - flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 312 zinput = (imag(zhist[@zmixmatch4,@histype2index]) * real(zhist[@zmixmatch3,9])) * flip((real(zhist[@zmixmatch4,@histype2index]) * imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 313 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,9])) + flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,9]))) elseif @histype2 == 314 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,9])) - flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,9]))) elseif @histype2 == 315 zinput = (real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,9])) * flip((imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,9]))) elseif @histype2 == 316 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,9])) + flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 317 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,9])) - flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 318 zinput = (imag(zhist[@zmixmatch4,@histype2index]) + real(zhist[@zmixmatch3,9])) * flip((real(zhist[@zmixmatch4,@histype2index]) + imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 319 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,9])) + flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,9]))) elseif @histype2 == 320 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,9])) - flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,9]))) elseif @histype2 == 321 zinput = (real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,9])) * flip((imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,9]))) elseif @histype2 == 322 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,9])) + flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 323 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,9])) - flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 324 zinput = (imag(zhist[@zmixmatch4,@histype2index]) - real(zhist[@zmixmatch3,9])) * flip((real(zhist[@zmixmatch4,@histype2index]) - imag(zhist[@zmixmatch3,9]))) elseif @histype2 == 325 zinput = zhist[@zmixmatch4,@histype2index]/zhist[@zmixmatch3,1] elseif @histype2 == 326 zinput = zhist[@zmixmatch3,1]/zhist[@zmixmatch4,@histype2index] elseif @histype2 == 327 zinput = zhist[@zmixmatch4,@histype2index]^zhist[@zmixmatch3,1] elseif @histype2 == 328 zinput = zhist[@zmixmatch3,1]^zhist[@zmixmatch4,@histype2index] elseif @histype2 == 329 zinput = zhist[@zmixmatch4,@histype2index]/real(zhist[@zmixmatch3,1]) elseif @histype2 == 330 zinput = zhist[@zmixmatch4,@histype2index]/imag(zhist[@zmixmatch3,1]) elseif @histype2 == 331 zinput = zhist[@zmixmatch3,1]/real(zhist[@zmixmatch4,@histype2index]) elseif @histype2 == 332 zinput = zhist[@zmixmatch3,1]/imag(zhist[@zmixmatch4,@histype2index]) elseif @histype2 == 333 zinput = zhist[@zmixmatch4,@histype2index]^real(zhist[@zmixmatch3,1]) elseif @histype2 == 334 zinput = zhist[@zmixmatch4,@histype2index]^imag(zhist[@zmixmatch3,1]) elseif @histype2 == 335 zinput = zhist[@zmixmatch3,1]^real(zhist[@zmixmatch4,@histype2index]) elseif @histype2 == 336 zinput = zhist[@zmixmatch3,1]^imag(zhist[@zmixmatch4,@histype2index]) elseif @histype2 == 337 zinput = zhist[@zmixmatch4,@histype2index] + zhist[@zmixmatch3,1] + zhist[@zmixmatch3,2] elseif @histype2 == 338 zinput = zhist[@zmixmatch4,@histype2index] - zhist[@zmixmatch3,1] + zhist[@zmixmatch3,2] elseif @histype2 == 339 zinput = zhist[@zmixmatch4,@histype2index] + zhist[@zmixmatch3,1] - zhist[@zmixmatch3,2] elseif @histype2 == 340 zinput = -zhist[@zmixmatch4,@histype2index] + zhist[@zmixmatch3,1] + zhist[@zmixmatch3,2] elseif @histype2 == 341 zinput = zhist[@zmixmatch4,@histype2index] - zhist[@zmixmatch3,1] - zhist[@zmixmatch3,2] elseif @histype2 == 342 zinput = zhist[@zmixmatch4,@histype2index] + (zhist[@zmixmatch3,1] * zhist[@zmixmatch3,2]) elseif @histype2 == 343 zinput = zhist[@zmixmatch4,@histype2index] - (zhist[@zmixmatch3,1] * zhist[@zmixmatch3,2]) elseif @histype2 == 344 zinput = zhist[@zmixmatch3,1] + (zhist[@zmixmatch4,@histype2index] * zhist[@zmixmatch3,2]) elseif @histype2 == 345 zinput = zhist[@zmixmatch3,1] - (zhist[@zmixmatch4,@histype2index] * zhist[@zmixmatch3,2]) elseif @histype2 == 346 zinput = zhist[@zmixmatch3,2] + (zhist[@zmixmatch4,@histype2index] * zhist[@zmixmatch3,1]) elseif @histype2 == 347 zinput = zhist[@zmixmatch3,2] - (zhist[@zmixmatch4,@histype2index] * zhist[@zmixmatch3,1]) elseif @histype2 == 348 zinput = zhist[@zmixmatch4,@histype2index]/zhist[@zmixmatch3,2] elseif @histype2 == 349 zinput = zhist[@zmixmatch3,2]/zhist[@zmixmatch4,@histype2index] elseif @histype2 == 350 zinput = zhist[@zmixmatch4,@histype2index]^zhist[@zmixmatch3,2] elseif @histype2 == 351 zinput = zhist[@zmixmatch3,2]^zhist[@zmixmatch4,@histype2index] elseif @histype2 == 352 zinput = zhist[@zmixmatch4,@histype2index]/real(zhist[@zmixmatch3,2]) elseif @histype2 == 353 zinput = zhist[@zmixmatch4,@histype2index]/imag(zhist[@zmixmatch3,2]) elseif @histype2 == 354 zinput = zhist[@zmixmatch3,2]/real(zhist[@zmixmatch4,@histype2index]) elseif @histype2 == 355 zinput = zhist[@zmixmatch3,2]/imag(zhist[@zmixmatch4,@histype2index]) elseif @histype2 == 356 zinput = zhist[@zmixmatch4,@histype2index]^real(zhist[@zmixmatch3,2]) elseif @histype2 == 357 zinput = zhist[@zmixmatch4,@histype2index]^imag(zhist[@zmixmatch3,2]) elseif @histype2 == 358 zinput = zhist[@zmixmatch3,2]^real(zhist[@zmixmatch4,@histype2index]) elseif @histype2 == 359 zinput = zhist[@zmixmatch3,2]^imag(zhist[@zmixmatch4,@histype2index]) elseif @histype2 == 360 zinput = zhist[@zmixmatch4,@histype2index] + zhist[@zmixmatch3,2] + zhist[@zmixmatch3,3] elseif @histype2 == 361 zinput = zhist[@zmixmatch4,@histype2index] - zhist[@zmixmatch3,2] + zhist[@zmixmatch3,3] elseif @histype2 == 362 zinput = zhist[@zmixmatch4,@histype2index] + zhist[@zmixmatch3,2] - zhist[@zmixmatch3,3] elseif @histype2 == 363 zinput = -zhist[@zmixmatch4,@histype2index] + zhist[@zmixmatch3,2] + zhist[@zmixmatch3,3] elseif @histype2 == 364 zinput = zhist[@zmixmatch4,@histype2index] - zhist[@zmixmatch3,2] - zhist[@zmixmatch3,3] elseif @histype2 == 365 zinput = zhist[@zmixmatch4,@histype2index] + (zhist[@zmixmatch3,2] * zhist[@zmixmatch3,3]) elseif @histype2 == 366 zinput = zhist[@zmixmatch4,@histype2index] - (zhist[@zmixmatch3,2] * zhist[@zmixmatch3,3]) elseif @histype2 == 367 zinput = zhist[@zmixmatch3,2] + (zhist[@zmixmatch4,@histype2index] * zhist[@zmixmatch3,3]) elseif @histype2 == 368 zinput = zhist[@zmixmatch3,2] - (zhist[@zmixmatch4,@histype2index] * zhist[@zmixmatch3,3]) elseif @histype2 == 369 zinput = zhist[@zmixmatch3,3] + (zhist[@zmixmatch4,@histype2index] * zhist[@zmixmatch3,2]) elseif @histype2 == 370 zinput = zhist[@zmixmatch3,3] - (zhist[@zmixmatch4,@histype2index] * zhist[@zmixmatch3,2]) else zinput = zhist[1,0] endif ; histype if @zhist2blend zinput = @zhist2fraction*zinput + zhist2comp*zhist[1,0] endif ; @zhist2blend endif ; @hismode endif ; history if @zalthisbias zinput = (@zahbprod*(zinput + @zahbaddend))^@zahbexponent endif ; @zalthisbias ; Finished front end modulating initializations ; Find coordinates and angle of point on trap graph closest to zinput (i.e., modified #z) ; The split for independent rotation and centering of the two traps happens here. ; Heretofore, each trap has been treated identically for all the modulations zinputT2 = zinput ; First, center zinput on the trap center zinput = zinput - center ; Compute rotated zinput if rotation != 0.0 zinput = zinput * exp(flip(rotation)) endif ; rotation if @twotrapstrue && @tworotations ; Center zinputT2 (second trap) on the 2nd trap center zinputT2 = zinputT2 - centerT2 ; Compute rotated zinput if rotationT2 != 0.0 zinputT2 = zinputT2 * exp(flip(rotationT2)) endif ; rotation endif ; @twotrapstrue if @absolutez3 zinput = abs(zinput) endif ; @absolutez3 if @absoluter5 zinput = abs(real(zinput)) + flip(imag(zinput)) endif ; @absoluter5 if @absolutei5 zinput = real(zinput) + flip(abs(imag(zinput))) endif ; @absolutei5 if @twotrapstrue && @tworotations if @absolutez3 zinputT2 = abs(zinputT2) endif ; @absolutez3 if @absoluter5 zinputT2 = abs(real(zinputT2)) + flip(imag(zinputT2)) endif ; @absoluter5 if @absolutei5 zinputT2 = real(zinputT2) + flip(abs(imag(zinputT2))) endif ; @absolutei5 endif ; @twotrapstrue ; 1st attractor routine (z attractors) if @zattractor if @zattractmartin ztemp2 = zinput tempx = real(zinput) * real(@zmartinscale) tempy = imag(zinput) * imag(@zmartinscale) ftemp = tempx index = 0 while index < @zmartiniters if @zattractorfix ftemp = tempx endif ; @zattractorfix tempx = tempy - sin(tempx) tempy = @zmartinparam - ftemp index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzmartin zinput = @zmartinfraction * zinput + zmartincomp * ztemp2 endif ; @blendzmartin endif ; @zattractmartin if @zattractcosmartin ztemp2 = zinput tempx = real(zinput) * real(@zcosmartinscale) tempy = imag(zinput) * imag(@zcosmartinscale) ftemp = tempx index = 0 while index < @zcosmartiniters if @zattractorfix ftemp = tempx endif ; @zattractorfix tempx = tempy - sin(tempx) tempy = @zcosmartinparam - ftemp index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzcosmartin zinput = @zcosmartinfraction * zinput + zcosmartincomp * ztemp2 endif ; @blendzcosmartin endif ; @zattractcosmartin if @zattractpopcorn ztemp2 = zinput tempx = real(zinput) * real(@zpopcornscale) tempy = imag(zinput) * imag(@zpopcornscale) ftemp = tempx index = 0 while index < @zpopcorniters if @zattractorfix ftemp = tempx endif ; @zattractorfix tempx = tempx - real(@zpopcornparam1)*sin(tempy + tan(real(@zpopcornparam2)*tempy)) tempy = tempy - imag(@zpopcornparam1)*sin(ftemp + tan(imag(@zpopcornparam2)*ftemp)) index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzpopcorn zinput = @zpopcornfraction * zinput + zpopcorncomp * ztemp2 endif ; @blendzpopcorn endif ; @zattractpopcorn if @zattractvine ztemp2 = zinput tempx = real(zinput) * real(@zvinescale) tempy = imag(zinput) * imag(@zvinescale) ftemp = tempx index = 0 while index < @zvineiters if @zattractorfix ftemp = tempx endif ; @zattractorfix tempx = tempx - real(@zvineparam1)*sin(tempy + sin(real(@zvineparam2)*tempy)) tempy = tempy + imag(@zvineparam1)*sin(ftemp + sin(imag(@zvineparam2)*ftemp)) index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzvine zinput = @zvinefraction * zinput + zvinecomp * ztemp2 endif ; @blendzvine endif ; @zattractvine if @zattractvine2 ztemp2 = zinput tempx = real(zinput) * real(@zvine2scale) tempy = imag(zinput) * imag(@zvine2scale) ftemp = tempx index = 0 while index < @zvine2iters if @zattractorfix ftemp = tempx endif ; @zattractorfix tempx = tempx - real(@zvine2param1)*sin(tempy^real(@zvine2exp1) + sin(real(@zvine2param2)*tempy)) tempy = tempy + imag(@zvine2param1)*sin(ftemp^imag(@zvine2exp1) + sin(imag(@zvine2param2)*ftemp)) index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzvine2 zinput = @zvine2fraction * zinput + zvine2comp * ztemp2 endif ; @blendzvine2 endif ; @zattractvine2 if @zattractquadruptwo ztemp2 = zinput tempx = real(zinput) * real(@zquadruptwoscale) tempy = imag(zinput) * imag(@zquadruptwoscale) ftemp = tempx index = 0 while index < @zquadruptwoiters if @zattractorfix ftemp = tempx endif ; @zattractorfix if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * sin(log(abs(imag(@zquadruptwoparam1)*tempx-real(@zquadruptwoparam2)))) \ * atan((log(abs(real(@zquadruptwoparam2)*tempx-imag(@zquadruptwoparam1)))^(imag(@zquadruptwoparam2)))) tempy = real(@zquadruptwoparam1) - ftemp else tempx = tempy - sin(log(abs(imag(@zquadruptwoparam1)*tempx-real(@zquadruptwoparam2)))) \ * atan((log(abs(real(@zquadruptwoparam2)*tempx-imag(@zquadruptwoparam1)))^(imag(@zquadruptwoparam2)))) tempy = real(@zquadruptwoparam1) - ftemp endif ; tempx index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzquadruptwo zinput = @zquadruptwofraction * zinput + zquadruptwocomp * ztemp2 endif ; @blendzquadruptwo endif ; @zattractquadruptwo if @zattractthreeply ztemp2 = zinput tempx = real(zinput) * real(@zthreeplyscale) tempy = imag(zinput) * imag(@zthreeplyscale) ftemp = tempx index = 0 while index < @zthreeplyiters if @zattractorfix ftemp = tempx endif ; @zattractorfix if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * (abs(sin(tempx)*cos(imag(@zthreeplyparam1)) + real(@zthreeplyparam2) \ - tempx*sin(real(@zthreeplyparam1)+imag(@zthreeplyparam1)+real(@zthreeplyparam2)))) tempy = real(@zthreeplyparam1) - imag(@zthreeplyparam2)*ftemp else tempx = tempy - (abs(sin(tempx)*cos(imag(@zthreeplyparam1)) + real(@zthreeplyparam2) \ - tempx*sin(real(@zthreeplyparam1)+imag(@zthreeplyparam1)+real(@zthreeplyparam2)))) tempy = real(@zthreeplyparam1) - imag(@zthreeplyparam2)*ftemp endif ; tempx index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzthreeply zinput = @zthreeplyfraction * zinput + zthreeplycomp * ztemp2 endif ; @blendzthreeply endif ; @zattractthreeply if @zattracthenon ztemp2 = zinput tempx = real(zinput) * real(@zhenonscale) tempy = imag(zinput) * imag(@zhenonscale) ftemp = tempx index = 0 while index < @zhenoniters if @zattractorfix ftemp = tempx endif ; @zattractorfix tempx = 1.0 + tempy - real(@zhenonparam1)*tempx tempy = imag(@zhenonparam1)*ftemp index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzhenon zinput = @zhenonfraction * zinput + zhenoncomp * ztemp2 endif ; @blendzhenon endif ; @zattracthenon if @zattracthopalong ztemp2 = zinput tempx = real(zinput) * real(@zhopalongscale) tempy = imag(zinput) * imag(@zhopalongscale) ftemp = tempx index = 0 while index < @zhopalongiters if @zattractorfix ftemp = tempx endif ; @zattractorfix if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * (abs(tempx*imag(@zhopalongparam1) - real(@zhopalongparam2)))^ \ imag(@zhopalongparam2) tempy = real(@zhopalongparam1) - ftemp else tempx = tempy - (abs(tempx*imag(@zhopalongparam1) - real(@zhopalongparam2)))^ \ imag(@zhopalongparam2) tempy = real(@zhopalongparam1) - ftemp endif ; tempx index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzhopalong zinput = @zhopalongfraction * zinput + zhopalongcomp * ztemp2 endif ; @blendzhopalong endif ; @zattracthopalong if @zattractchip ztemp2 = zinput tempx = real(zinput) * real(@zchipscale) tempy = imag(zinput) * imag(@zchipscale) ftemp = tempx index = 0 while index < @zchipiters if @zattractorfix ftemp = tempx endif ; @zattractorfix if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * cos((log(abs(tempx*imag(@zchipparam1) - real(@zchipparam2)))^ \ imag(@zchipparam2))) tempy = real(@zchipparam1) - ftemp else tempx = tempy - cos((log(abs(tempx*imag(@zchipparam1) - real(@zchipparam2)))^ \ imag(@zchipparam2))) tempy = real(@zchipparam1) - ftemp endif ; tempx index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzchip zinput = @zchipfraction * zinput + zchipcomp * ztemp2 endif ; @blendzchip endif ; @zattractchip if @zattractliar ztemp2 = zinput tempx = real(zinput) * real(@zliarscale) tempy = imag(zinput) * imag(@zliarscale) ftemp = tempx index = 0 while index < @zliariters if @zattractorfix ftemp = tempx endif ; @zattractorfix if (real(tempx+flip(zinput))) < real(@zliarparam1) tempx = imag(@zliarparam1) - abs(tempy-tempx) tempy = imag(@zliarparam2)*abs(real(@zliarparam2)-ftemp-tempy) endif ; real() index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzliar zinput = @zliarfraction * zinput + zliarcomp * ztemp2 endif ; @blendzliar endif ; @zattractliar if @zattractgingerbread ztemp2 = zinput tempx = real(zinput) * real(@zgingerbreadscale) tempy = imag(zinput) * imag(@zgingerbreadscale) ftemp = tempx index = 0 while index < @zgingerbreaditers if @zattractorfix ftemp = tempx endif ; @zattractorfix tempx = 1.0 - tempy + real(@zgingerbreadparam1)*abs(tempx) tempy = imag(@zgingerbreadparam1)*ftemp index = index + 1 endwhile ; index zinput = tempx + flip(tempy) if @blendzgingerbread zinput = @zgingerbreadfraction * zinput + zgingerbreadcomp * ztemp2 endif ; @blendzgingerbread endif ; @zattractgingerbread endif ; @zattractor if @twotrapstrue && @tworotations ; 1st attractor routine for the second trap if @zattractor if @zattractmartin ztemp2 = zinputT2 tempx = real(zinputT2) * real(@zmartinscale) tempy = imag(zinputT2) * imag(@zmartinscale) ftemp = tempx index = 0 while index < @zmartiniters if @zattractorfix ftemp = tempx endif ; @zattractorfix tempx = tempy - sin(tempx) tempy = @zmartinparam - ftemp index = index + 1 endwhile ; index zinputT2 = tempx + flip(tempy) if @blendzmartin zinputT2 = @zmartinfraction * zinputT2 + zmartincomp * ztemp2 endif ; @blendzmartin endif ; @zattractmartin if @zattractcosmartin ztemp2 = zinputT2 tempx = real(zinputT2) * real(@zcosmartinscale) tempy = imag(zinputT2) * imag(@zcosmartinscale) ftemp = tempx index = 0 while index < @zcosmartiniters if @zattractorfix ftemp = tempx endif ; @zattractorfix tempx = tempy - sin(tempx) tempy = @zcosmartinparam - ftemp index = index + 1 endwhile ; index zinputT2 = tempx + flip(tempy) if @blendzcosmartin zinputT2 = @zcosmartinfraction * zinputT2 + zcosmartincomp * ztemp2 endif ; @blendzcosmartin endif ; @zattractcosmartin if @zattractpopcorn ztemp2 = zinputT2 tempx = real(zinputT2) * real(@zpopcornscale) tempy = imag(zinputT2) * imag(@zpopcornscale) ftemp = tempx index = 0 while index < @zpopcorniters if @zattractorfix ftemp = tempx endif ; @zattractorfix tempx = tempx - real(@zpopcornparam1)*sin(tempy + tan(real(@zpopcornparam2)*tempy)) tempy = tempy - imag(@zpopcornparam1)*sin(ftemp + tan(imag(@zpopcornparam2)*ftemp)) index = index + 1 endwhile ; index zinputT2 = tempx + flip(tempy) if @blendzpopcorn zinputT2 = @zpopcornfraction * zinputT2 + zpopcorncomp * ztemp2 endif ; @blendzpopcorn endif ; @zattractpopcorn if @zattractvine ztemp2 = zinputT2 tempx = real(zinputT2) * real(@zvinescale) tempy = imag(zinputT2) * imag(@zvinescale) ftemp = tempx index = 0 while index < @zvineiters if @zattractorfix ftemp = tempx endif ; @zattractorfix tempx = tempx - real(@zvineparam1)*sin(tempy + sin(real(@zvineparam2)*tempy)) tempy = tempy + imag(@zvineparam1)*sin(ftemp + sin(imag(@zvineparam2)*ftemp)) index = index + 1 endwhile ; index zinputT2 = tempx + flip(tempy) if @blendzvine zinputT2 = @zvinefraction * zinputT2 + zvinecomp * ztemp2 endif ; @blendzvine endif ; @zattractvine if @zattractvine2 ztemp2 = zinputT2 tempx = real(zinputT2) * real(@zvine2scale) tempy = imag(zinputT2) * imag(@zvine2scale) ftemp = tempx index = 0 while index < @zvine2iters if @zattractorfix ftemp = tempx endif ; @zattractorfix tempx = tempx - real(@zvine2param1)*sin(tempy^real(@zvine2exp1) + sin(real(@zvine2param2)*tempy)) tempy = tempy + imag(@zvine2param1)*sin(ftemp^imag(@zvine2exp1) + sin(imag(@zvine2param2)*ftemp)) index = index + 1 endwhile ; index zinputT2 = tempx + flip(tempy) if @blendzvine2 zinputT2 = @zvine2fraction * zinputT2 + zvine2comp * ztemp2 endif ; @blendzvine2 endif ; @zattractvine2 if @zattractquadruptwo ztemp2 = zinputT2 tempx = real(zinputT2) * real(@zquadruptwoscale) tempy = imag(zinputT2) * imag(@zquadruptwoscale) ftemp = tempx index = 0 while index < @zquadruptwoiters if @zattractorfix ftemp = tempx endif ; @zattractorfix if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * sin(log(abs(imag(@zquadruptwoparam1)*tempx-real(@zquadruptwoparam2)))) \ * atan((log(abs(real(@zquadruptwoparam2)*tempx-imag(@zquadruptwoparam1)))^(imag(@zquadruptwoparam2)))) tempy = real(@zquadruptwoparam1) - ftemp else tempx = tempy - sin(log(abs(imag(@zquadruptwoparam1)*tempx-real(@zquadruptwoparam2)))) \ * atan((log(abs(real(@zquadruptwoparam2)*tempx-imag(@zquadruptwoparam1)))^(imag(@zquadruptwoparam2)))) tempy = real(@zquadruptwoparam1) - ftemp endif ; tempx index = index + 1 endwhile ; index zinputT2 = tempx + flip(tempy) if @blendzquadruptwo zinputT2 = @zquadruptwofraction * zinputT2 + zquadruptwocomp * ztemp2 endif ; @blendzquadruptwo endif ; @zattractquadruptwo if @zattractthreeply ztemp2 = zinputT2 tempx = real(zinputT2) * real(@zthreeplyscale) tempy = imag(zinputT2) * imag(@zthreeplyscale) ftemp = tempx index = 0 while index < @zthreeplyiters if @zattractorfix ftemp = tempx endif ; @zattractorfix if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * (abs(sin(tempx)*cos(imag(@zthreeplyparam1)) + real(@zthreeplyparam2) \ - tempx*sin(real(@zthreeplyparam1)+imag(@zthreeplyparam1)+real(@zthreeplyparam2)))) tempy = real(@zthreeplyparam1) - imag(@zthreeplyparam2)*ftemp else tempx = tempy - (abs(sin(tempx)*cos(imag(@zthreeplyparam1)) + real(@zthreeplyparam2) \ - tempx*sin(real(@zthreeplyparam1)+imag(@zthreeplyparam1)+real(@zthreeplyparam2)))) tempy = real(@zthreeplyparam1) - imag(@zthreeplyparam2)*ftemp endif ; tempx index = index + 1 endwhile ; index zinputT2 = tempx + flip(tempy) if @blendzthreeply zinputT2 = @zthreeplyfraction * zinputT2 + zthreeplycomp * ztemp2 endif ; @blendzthreeply endif ; @zattractthreeply if @zattracthenon ztemp2 = zinputT2 tempx = real(zinputT2) * real(@zhenonscale) tempy = imag(zinputT2) * imag(@zhenonscale) ftemp = tempx index = 0 while index < @zhenoniters if @zattractorfix ftemp = tempx endif ; @zattractorfix tempx = 1.0 + tempy - real(@zhenonparam1)*tempx tempy = imag(@zhenonparam1)*ftemp index = index + 1 endwhile ; index zinputT2 = tempx + flip(tempy) if @blendzhenon zinputT2 = @zhenonfraction * zinputT2 + zhenoncomp * ztemp2 endif ; @blendzhenon endif ; @zattracthenon if @zattracthopalong ztemp2 = zinputT2 tempx = real(zinputT2) * real(@zhopalongscale) tempy = imag(zinputT2) * imag(@zhopalongscale) ftemp = tempx index = 0 while index < @zhopalongiters if @zattractorfix ftemp = tempx endif ; @zattractorfix if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * (abs(tempx*imag(@zhopalongparam1) - real(@zhopalongparam2)))^ \ imag(@zhopalongparam2) tempy = real(@zhopalongparam1) - ftemp else tempx = tempy - (abs(tempx*imag(@zhopalongparam1) - real(@zhopalongparam2)))^ \ imag(@zhopalongparam2) tempy = real(@zhopalongparam1) - ftemp endif ; tempx index = index + 1 endwhile ; index zinputT2 = tempx + flip(tempy) if @blendzhopalong zinputT2 = @zhopalongfraction * zinputT2 + zhopalongcomp * ztemp2 endif ; @blendzhopalong endif ; @zattracthopalong if @zattractchip ztemp2 = zinputT2 tempx = real(zinputT2) * real(@zchipscale) tempy = imag(zinputT2) * imag(@zchipscale) ftemp = tempx index = 0 while index < @zchipiters if @zattractorfix ftemp = tempx endif ; @zattractorfix if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * cos((log(abs(tempx*imag(@zchipparam1) - real(@zchipparam2)))^ \ imag(@zchipparam2))) tempy = real(@zchipparam1) - ftemp else tempx = tempy - cos((log(abs(tempx*imag(@zchipparam1) - real(@zchipparam2)))^ \ imag(@zchipparam2))) tempy = real(@zchipparam1) - ftemp endif ; tempx index = index + 1 endwhile ; index zinputT2 = tempx + flip(tempy) if @blendzchip zinputT2 = @zchipfraction * zinputT2 + zchipcomp * ztemp2 endif ; @blendzchip endif ; @zattractchip if @zattractliar ztemp2 = zinputT2 tempx = real(zinputT2) * real(@zliarscale) tempy = imag(zinputT2) * imag(@zliarscale) ftemp = tempx index = 0 while index < @zliariters if @zattractorfix ftemp = tempx endif ; @zattractorfix if (real(tempx+flip(zinputT2))) < real(@zliarparam1) tempx = imag(@zliarparam1) - abs(tempy-tempx) tempy = imag(@zliarparam2)*abs(real(@zliarparam2)-ftemp-tempy) endif ; real() index = index + 1 endwhile ; index zinputT2 = tempx + flip(tempy) if @blendzliar zinputT2 = @zliarfraction * zinputT2 + zliarcomp * ztemp2 endif ; @blendzliar endif ; @zattractliar if @zattractgingerbread ztemp2 = zinputT2 tempx = real(zinputT2) * real(@zgingerbreadscale) tempy = imag(zinputT2) * imag(@zgingerbreadscale) ftemp = tempx index = 0 while index < @zgingerbreaditers if @zattractorfix ftemp = tempx endif ; @zattractorfix tempx = 1.0 - tempy + real(@zgingerbreadparam1)*abs(tempx) tempy = imag(@zgingerbreadparam1)*ftemp index = index + 1 endwhile ; index zinputT2 = tempx + flip(tempy) if @blendzgingerbread zinputT2 = @zgingerbreadfraction * zinputT2 + zgingerbreadcomp * ztemp2 endif ; @blendzgingerbread endif ; @zattractgingerbread endif ; @zattractor endif ; @twotrapstrue ; Now find angle of 'rotated' zinput tempangle = atan2( zinput ) if ( tempangle < 0 ) tempangle = tempangle + twopi ; 0 <= tempangle <= two pi endif ; tempangle if @twotrapstrue && @tworotations tempangleT2 = atan2( zinputT2 ) if ( tempangleT2 < 0 ) tempangleT2 = tempangleT2 + twopi ; 0 <= tempangleT2 <= two pi endif ; tempangleT2 endif ; @twotrapstrue ; Spread out and offset angle of zinput, if desired ; Note that, with the offset, we can no longer count on non-negative angles if @offsetangle tempangle = tempangle + @offsetfactor zinput = zinput * exp(flip(tempangle)) endif ; @offsetangle if @sprangle tempangle = tempangle*@sprangfactor zinput = zinput * exp(flip(tempangle)) endif ; @sprangle if @recipangle tempangle = 1/tempangle zinput = zinput * exp(flip(tempangle)) endif; @recipangle if @twotrapstrue && @tworotations ; Spread out and offset angle of zinputT2, if desired ; Note that, with the offset, we can no longer count on non-negative angles if @offsetangle tempangleT2 = tempangleT2 + @offsetfactor zinputT2 = zinputT2 * exp(flip(tempangleT2)) endif ; @offsetangle if @sprangle tempangleT2 = tempangleT2*@sprangfactor zinputT2 = zinputT2 * exp(flip(tempangleT2)) endif ; @sprangle if @recipangle tempangleT2 = 1/tempangleT2 zinputT2 = zinputT2 * exp(flip(tempangleT2)) endif; @recipangle endif ; @twotrapstrue if @screwmode != 0 ftemp = tempangle if @weirdness if @weirdtype == "z only" ztemp = #z elseif @weirdtype == "z+z'" ztemp = #z+zinput elseif @weirdtype == "z-z'" ztemp = #z-zinput elseif @weirdtype == "z'-z" ztemp = zinput-#z elseif @weirdtype == "z*z'" ztemp = #z*zinput elseif @weirdtype == "z/z'" ztemp = #z/zinput elseif @weirdtype == "z'/z" ztemp = zinput/#z elseif @weirdtype == "z^z'" ztemp = #z^zinput elseif @weirdtype == "z'^z" ztemp = zinput^#z elseif @weirdtype == "average" ztemp = 0.5*(#z+zinput) elseif @weirdtype == "geometric mean" ztemp = sqrt(#z*zinput) endif; @weirdtype if @blendweirdness ztemp = @weirdfraction*ztemp + weirdcomplement*zinput endif ; @blendweirdness else ztemp = zinput endif ; weirdness if @absolutelyscrewy ztemp = abs(ztemp) endif ; @absolutelyscrewy ftemp2 = real(ztemp), ftemp3 = imag(ztemp) if @recipreal ftemp2 = 1/ftemp2 endif ; @recipreal if @recipimag ftemp3 = 1/ftemp3 endif ; @recipimag tempx = cabs(ztemp) ; for magnitude modes tempy = tempx ; save the value for later if @recipmagn tempx = 1/tempx endif ; @recipmagn if @screwmode == 1 tempangle = tempangle*ftemp2 elseif @screwmode == 2 tempangle = tempangle*ftemp3 elseif @screwmode == 3 tempangle = ftemp2 elseif @screwmode == 4 tempangle = ftemp3 elseif @screwmode == 5 tempangle = tempangle + ftemp2 elseif @screwmode == 6 tempangle = tempangle + ftemp3 elseif @screwmode == 7 tempangle = ftemp2 - tempangle elseif @screwmode == 8 tempangle = ftemp3 - tempangle elseif @screwmode == 9 tempangle = tempangle*ftemp2*ftemp3 elseif @screwmode == 10 tempangle = tempangle+ftemp2+ftemp3 elseif @screwmode == 11 tempangle = tempangle+ftemp2-ftemp3 elseif @screwmode == 12 tempangle = tempangle-ftemp2+ftemp3 elseif @screwmode == 13 tempangle = tempangle-ftemp2-ftemp3 elseif @screwmode == 14 tempangle = ftemp2+ftemp3 elseif @screwmode == 15 tempangle = ftemp2-ftemp3 elseif @screwmode == 16 tempangle = ftemp2*ftemp3 elseif @screwmode == 17 tempangle = (tempangle+ftemp2)*ftemp3 elseif @screwmode == 18 tempangle = ftemp2*(tempangle+ftemp3) elseif @screwmode == 19 tempangle = (tempangle-ftemp2)*ftemp3 elseif @screwmode == 20 tempangle = ftemp2*(tempangle-ftemp3) elseif @screwmode == 21 tempangle = tempangle*(ftemp2+ftemp3) elseif @screwmode == 22 tempangle = tempangle*(ftemp2-ftemp3) elseif @screwmode == 23 tempangle = tempangle*(ftemp2-ftemp3) elseif @screwmode == 24 tempangle = tempx + tempangle elseif @screwmode == 25 tempangle = tempx - tempangle elseif @screwmode == 26 tempangle = tempx + ftemp2 elseif @screwmode == 27 tempangle = tempx - ftemp2 elseif @screwmode == 28 tempangle = tempx + ftemp3 elseif @screwmode == 29 tempangle = tempx - ftemp3 elseif @screwmode == 30 tempangle = tempangle/tempx elseif @screwmode == 31 tempangle = ftemp2/tempx elseif @screwmode == 32 tempangle = ftemp3/tempx elseif @screwmode == 33 tempangle = tempangle*(ftemp2+tempx) elseif @screwmode == 34 tempangle = tempangle*(tempx+ftemp3) elseif @screwmode == 35 tempangle = tempangle*(tempx-ftemp2) elseif @screwmode == 36 tempangle = tempangle*(tempx-ftemp3) elseif @screwmode == 37 tempangle = tempangle/ftemp2 elseif @screwmode == 38 tempangle = tempangle/ftemp3 endif ; @screwmode if @negatescrew tempangle = -tempangle endif ; @negatescrew if @dividebymagn tempangle = tempangle/tempy endif ; @dividebyangle if @blendscrewiness tempangle = @screwyfraction*tempangle + screwycomplement*ftemp endif; @blendscrewiness if @postrecipangle tempangle = 1/tempangle endif; @postrecipangle zinput = zinput * exp(flip(tempangle)) if @twotrapstrue && @tworotations ftemp = tempangleT2 if @weirdness if @weirdtype == "z only" ztemp = #z elseif @weirdtype == "z+z'" ztemp = #z+zinputT2 elseif @weirdtype == "z-z'" ztemp = #z-zinputT2 elseif @weirdtype == "z'-z" ztemp = zinputT2-#z elseif @weirdtype == "z*z'" ztemp = #z*zinputT2 elseif @weirdtype == "z/z'" ztemp = #z/zinputT2 elseif @weirdtype == "z'/z" ztemp = zinputT2/#z elseif @weirdtype == "z^z'" ztemp = #z^zinputT2 elseif @weirdtype == "z'^z" ztemp = zinputT2^#z elseif @weirdtype == "average" ztemp = 0.5*(#z+zinputT2) elseif @weirdtype == "geometric mean" ztemp = sqrt(#z*zinputT2) endif; @weirdtype if @blendweirdness ztemp = @weirdfraction*ztemp + weirdcomplement*zinputT2 endif ; @blendweirdness else ztemp = zinputT2 endif ; weirdness if @absolutelyscrewy ztemp = abs(ztemp) endif ; @absolutelyscrewy ftemp2 = real(ztemp), ftemp3 = imag(ztemp) if @recipreal ftemp2 = 1/ftemp2 endif ; @recipreal if @recipimag ftemp3 = 1/ftemp3 endif ; @recipimag tempx = cabs(ztemp) ; for magnitude modes tempy = tempx ; save the value for later if @recipmagn tempx = 1/tempx endif ; @recipmagn if @screwmode == 1 tempangleT2 = tempangleT2*ftemp2 elseif @screwmode == 2 tempangleT2 = tempangleT2*ftemp3 elseif @screwmode == 3 tempangleT2 = ftemp2 elseif @screwmode == 4 tempangleT2 = ftemp3 elseif @screwmode == 5 tempangleT2 = tempangleT2 + ftemp2 elseif @screwmode == 6 tempangleT2 = tempangleT2 + ftemp3 elseif @screwmode == 7 tempangleT2 = ftemp2 - tempangleT2 elseif @screwmode == 8 tempangleT2 = ftemp3 - tempangleT2 elseif @screwmode == 9 tempangleT2 = tempangleT2*ftemp2*ftemp3 elseif @screwmode == 10 tempangleT2 = tempangleT2+ftemp2+ftemp3 elseif @screwmode == 11 tempangleT2 = tempangleT2+ftemp2-ftemp3 elseif @screwmode == 12 tempangleT2 = tempangleT2-ftemp2+ftemp3 elseif @screwmode == 13 tempangleT2 = tempangleT2-ftemp2-ftemp3 elseif @screwmode == 14 tempangleT2 = ftemp2+ftemp3 elseif @screwmode == 15 tempangleT2 = ftemp2-ftemp3 elseif @screwmode == 16 tempangleT2 = ftemp2*ftemp3 elseif @screwmode == 17 tempangleT2 = (tempangleT2+ftemp2)*ftemp3 elseif @screwmode == 18 tempangleT2 = ftemp2*(tempangleT2+ftemp3) elseif @screwmode == 19 tempangleT2 = (tempangleT2-ftemp2)*ftemp3 elseif @screwmode == 20 tempangleT2 = ftemp2*(tempangleT2-ftemp3) elseif @screwmode == 21 tempangleT2 = tempangleT2*(ftemp2+ftemp3) elseif @screwmode == 22 tempangleT2 = tempangleT2*(ftemp2-ftemp3) elseif @screwmode == 23 tempangleT2 = tempangleT2*(ftemp2-ftemp3) elseif @screwmode == 24 tempangleT2 = tempx + tempangleT2 elseif @screwmode == 25 tempangleT2 = tempx - tempangleT2 elseif @screwmode == 26 tempangleT2 = tempx + ftemp2 elseif @screwmode == 27 tempangleT2 = tempx - ftemp2 elseif @screwmode == 28 tempangleT2 = tempx + ftemp3 elseif @screwmode == 29 tempangleT2 = tempx - ftemp3 elseif @screwmode == 30 tempangleT2 = tempangleT2/tempx elseif @screwmode == 31 tempangleT2 = ftemp2/tempx elseif @screwmode == 32 tempangleT2 = ftemp3/tempx elseif @screwmode == 33 tempangleT2 = tempangleT2*(ftemp2+tempx) elseif @screwmode == 34 tempangleT2 = tempangleT2*(tempx+ftemp3) elseif @screwmode == 35 tempangleT2 = tempangleT2*(tempx-ftemp2) elseif @screwmode == 36 tempangleT2 = tempangleT2*(tempx-ftemp3) elseif @screwmode == 37 tempangleT2 = tempangleT2/ftemp2 elseif @screwmode == 38 tempangleT2 = tempangleT2/ftemp3 endif ; @screwmode if @negatescrew tempangleT2 = -tempangleT2 endif ; @negatescrew if @dividebymagn tempangleT2 = tempangleT2/tempy endif ; @dividebyangle if @blendscrewiness tempangleT2 = @screwyfraction*tempangleT2 + screwycomplement*ftemp endif; @blendscrewiness if @postrecipangle tempangleT2 = 1/tempangleT2 endif; @postrecipangle zinputT2 = zinputT2 * exp(flip(tempangleT2)) endif ; @twotrapstrue endif ; @screwmode if @anglebias if !@twotrapstrue || (@twotrapstrue && !@tworotations) || (@twotrapstrue && @tworotations && \ @abtype != "trap 2") tempc = zinput ; tempc is needed for scratchpad variable; doesn't relate to trap point tempc = (@abprod*(tempc + @abaddend))^@abexponent tempangle = tempangle + atan2(tempc) if @abmode == "sine" tempangle = twopi * @absinamp * sin(@absinfreq * tempangle) elseif @abmode == "truncation" tempangle = trunc(@abtruncconst * tempangle)/@abtruncconst elseif @abmode == "exponential" tempangle = exp(0.1 * @abtruncconst * tempangle) elseif @abmode == "sine sqr" tempangle = twopi * @absinamp * sqr(sin(@absinfreq * tempangle)) endif ; @abmode zinput = zinput * exp(flip(tempangle)) endif ; !@twotrapstrue... if @twotrapstrue && @tworotations && @abtype != "trap 1" tempc = zinputT2 ; tempc is needed for scratchpad variable; doesn't relate to trap point tempc = (@abprod*(tempc + @abaddend))^@abexponent tempangleT2 = tempangleT2 + atan2(tempc) if @abmode == "sine" tempangleT2 = twopi * @absinamp * sin(@absinfreq * tempangleT2) elseif @abmode == "truncation" tempangleT2 = trunc(@abtruncconst * tempangleT2)/@abtruncconst elseif @abmode == "exponential" tempangleT2 = exp(0.1 * @abtruncconst * tempangleT2) elseif @abmode == "sine sqr" tempangleT2 = twopi * @absinamp * sqr(sin(@absinfreq * tempangleT2)) endif ; @abmode zinputT2 = zinputT2 * exp(flip(tempangleT2)) endif ; @twotrapstrue... endif ; @anglebias ; Main trap loop begins here!!! ; ##jj ; NEW Orbit Trap Reprise code begins HERE oindex = 0 while oindex < numberoftraps if (oindex == 1) && @twotrapstrue && @tworotations testpt = zinputT2 else testpt = zinput endif ; oindex == 1 if trptype[oindex] == 0 ; "lines & points" ; test (modified) #z against the various line segments or curves defining the trap shape xtest = real(testpt), ytest = imag(testpt) distmin = 1e20 cindex = 0 if cincrement[oindex] != 1 ; test distance to each line segment while cindex < cursality[oindex] lindex = cindex * cincrement[oindex], lindex2 = lindex + 1 maxlindex = (cindex + 1) * cincrement[oindex] while lindex2 < maxlindex ; determine length of current line segment seglength = sqr(xcoord[oindex,lindex] - xcoord[oindex,lindex2]) + sqr(ycoord[oindex,lindex] - \ ycoord[oindex,lindex2]) ; now determine the parameter t for which the current #z is closest to ; the line containing the current line segment tparam = ((xtest - xcoord[oindex,lindex]) * (xcoord[oindex,lindex2] - xcoord[oindex,lindex]) + \ (ytest - ycoord[oindex,lindex]) * (ycoord[oindex,lindex2] - ycoord[oindex,lindex]))/seglength if tparam < 0.0 ; the intersect lies off the line segment, beyond the first vertex ; so return the distance to the first segment endpoint disttemp = sqr(xtest - xcoord[oindex,lindex]) + sqr(ytest - ycoord[oindex,lindex]) intersectpt = vertex[oindex,lindex] elseif tparam > 1.0 ; the intersect lies off the segment beyond the second vertex ; so return distance to the second segment endpoint disttemp = sqr(xtest - xcoord[oindex,lindex2]) + sqr(ytest - ycoord[oindex,lindex2]) intersectpt = vertex[oindex,lindex2] else ; #z lies on a line that intersects the current line segment perpendicularly ; to the closest point intersectpt = xcoord[oindex,lindex] + tparam * (xcoord[oindex,lindex2] - xcoord[oindex,lindex]) + \ flip(ycoord[oindex,lindex] + tparam * (ycoord[oindex,lindex2] - ycoord[oindex,lindex])) disttemp = sqr(xtest - real(intersectpt)) + sqr(ytest - imag(intersectpt)) endif ; tparam if disttemp < distmin distmin = disttemp minpt = intersectpt endif ; disttemp ; increment the loop indices lindex = lindex + 1 lindex2 = lindex2 + 1 endwhile ; lindex2 cindex = cindex + 1 endwhile ; cindex else ; cincrement = 1 --- return distance to individual points, not line segments while cindex < cursality[oindex] disttemp = sqr(xtest - xcoord[oindex,cindex]) + sqr(ytest - ycoord[oindex,cindex]) intersectpt = vertex[oindex,cindex] if disttemp < distmin distmin = disttemp minpt = intersectpt endif ; disttemp ; increment the loop indices cindex = cindex + 1 endwhile ; cindex endif ; cincrement[] ; save the correct trap point tempxx[oindex] = real(minpt) tempyy[oindex] = imag(minpt) result[oindex] = minpt elseif trptype[oindex] == 1 ; "polar functions" ; In 'polar functions', the variable ; tempxx[oindex] is initially used to store the polar distance from #z, ; not the x-coordinate if (oindex == 1) && @twotrapstrue && @tworotations tempangleB = atan2(zinputT2) if tempangleB < 0 tempangleB = tempangleB + twopi endif ; tempangleB ztemp = zinputT2 else tempangleB = atan2(zinput) if tempangleB < 0 tempangleB = tempangleB + twopi endif ; tempangleB ztemp = zinput endif ; oindex == 1 disttemp = cabs(ztemp) distance = disttemp if !polarimplicit[oindex] ; distance not determined implicitly if traparray[oindex] == 0 ; "rose" tempxx[oindex] = sin(rosepetals[oindex] * tempangleB) elseif traparray[oindex] == 1 ; "folium" tempxx[oindex] = (sqr(sin(foliumperturb[oindex]*tempangleB)) - \ folium[oindex]) * cos(tempangleB) elseif traparray[oindex] == 2 ; "cardioid" tempxx[oindex] = cardioid[oindex] + sin(cardioidperturb[oindex] \ * tempangleB) elseif traparray[oindex] == 3 ; "circle" tempxx[oindex] = 1.0 elseif traparray[oindex] == 4 ; "cissoid of Diocles" tempxx[oindex] = sin(cissoidDioA[oindex]*tempangleB) * \ tan(cissoidDioB[oindex]*tempangleB) elseif traparray[oindex] == 5 ; "cochleoid" tempxx[oindex] = sin(cochleoid[oindex]*tempangleB)/tempangleB elseif traparray[oindex] == 7 ; "conchoid of De Sluze" tempxx[oindex] = conchoidA[oindex]*cos(conchoidB[oindex]*tempangleB) + \ conchoidC[oindex]/cos(conchoidB[oindex]*tempangleB) elseif traparray[oindex] == 8 ; "conchoid of Nicomedes" tempxx[oindex] = conchoidA[oindex] + \ conchoidC[oindex]/cos(conchoidB[oindex]*tempangleB) elseif traparray[oindex] == 9 ; "cubical parabola" ftemp = cubicpC[oindex]/cos(cubicpB[oindex]*tempangleB) tempxx[oindex] = sqrt(ftemp*ftemp*tan(cubicpA[oindex]*tempangleB)) elseif traparray[oindex] == 10 ; "ellipse" ftemp = abs(tan(tanfreq[oindex]*tempangleB)) tempxx[oindex] = majaxis[oindex]*minaxis[oindex]*sqrt(1+sqr(ftemp))/ \ (minaxis[oindex]^epower[oindex] + ((majaxis[oindex]*ftemp)^epower[oindex]))^ \ (1/epower[oindex]) elseif traparray[oindex] == 11 ; "folium of Descartes" ftemp = sin(fosinfreq[oindex]*tempangleB) ftemp2 = cos(focosfreq[oindex]*tempangleB) tempxx[oindex] = sin(sinfreq2[oindex]*tempangleB)/(ftemp*sqr(ftemp)+ftemp2*sqr(ftemp2)) elseif traparray[oindex] == 12 ; "hyperbolic spiral" ftemp = cabs(ztemp) ; r ftemp2 = hyperbolic[oindex]/ftemp ; angle ztemp2 = ftemp * (cos(ftemp2) + flip(sin(ftemp2))) ; point on spiral tempxx[oindex] = 2.4 * cabs(ztemp - ztemp2) ; scaled distance between spiral pt and mod z elseif traparray[oindex] == 13 ; "kampyle of Eudoxus" tempxx[oindex] = 0.1/(cos(kampfreq[oindex]*tempangleB)^kamppower[oindex]) elseif traparray[oindex] == 14 ; "kappa" tempxx[oindex] = tan(nodalfreq[oindex]*tempangleB) elseif traparray[oindex] == 15 ; "lemniscate of Bernoulli" tempxx[oindex] = cos(lemfreq[oindex]*tempangleB)^lempower[oindex] elseif traparray[oindex] == 16 ; "limacon of Pascal" tempxx[oindex] = limoffset[oindex] + limamp[oindex]*sin(limfreq[oindex]*tempangleB) elseif traparray[oindex] == 17 ; "lituus" tempxx[oindex] = 1/(tempangleB^litpower[oindex]) elseif traparray[oindex] == 18 ; "logarithmic spiral" ftemp = cabs(ztemp) ; r of current modified z ftemp2 = (log(ftemp) - log(logspiA[oindex])) / logspiB[oindex] ; angle of pt on spiral ztemp2 = ftemp * (cos(ftemp2) + flip(sin(ftemp2))) ; point on spiral tempxx[oindex] = 2.4 * cabs(ztemp - ztemp2) ; scaled distance between spiral pt and mod z elseif traparray[oindex] == 19 ; "parabola" tempxx[oindex] = 0.25/(paraoffset[oindex] - paraamp[oindex]*cos(parafreq[oindex]*tempangleB)) elseif traparray[oindex] == 20 ; "parabolic spiral" ftemp = cabs(ztemp) ; r of current modified z ftemp2 = (ftemp * paraspioffset[oindex])^paraspi[oindex] ; angle of pt on spiral ztemp2 = ftemp * (cos(ftemp2) + flip(sin(ftemp2))) ; point on spiral tempxx[oindex] = 2.4 * cabs(ztemp - ztemp2) ; scaled distance between spiral pt and mod z elseif traparray[oindex] == 21 ; "semicubical parabola" ftemp = tan(semicubtanfreq[oindex]*tempangleB) tempxx[oindex] = 0.25 * (ftemp^semicubpower[oindex])/cos(semicubcosfreq[oindex]*tempangleB) elseif traparray[oindex] == 22 ; "spiral of Archimedes" ftemp = cabs(ztemp) ; r of current modified z ftemp2 = ftemp * archspioffset[oindex] ; angle of pt on spiral ztemp2 = ftemp * (cos(ftemp2) + flip(sin(ftemp2))) ; point on spiral tempxx[oindex] = 2.4 * cabs(ztemp - ztemp2) ; scaled distance between spiral pt and mod z elseif traparray[oindex] == 23 ; "strophoid" tempxx[oindex] = 0.4 * cos(strophcosfreqA[oindex] * tempangleB) / \ cos(strophcosfreqB[oindex] * tempangleB) elseif traparray[oindex] == 24 ; "Cayley's sextic" ftemp = cos(polarfreqA[oindex] * tempangleB/3) tempxx[oindex] = polarampA[oindex] * ftemp * sqr(ftemp) elseif traparray[oindex] == 25 ; "trisectrix limacon" tempxx[oindex] = trilimA[oindex] * (trilimB[oindex] + trilimamp[oindex] * cos(trilimfreq[oindex] * \ tempangleB)) elseif traparray[oindex] == 27 ; "trefoil of Habenicht" tempxx[oindex] = trefoilconst[oindex] + trefoilcosamp[oindex] * \ cos(trefoilcossym[oindex] * tempangleB) + \ trefoilsinamp[oindex] * sqr(sin(trefoilsinsym[oindex] * tempangleB)) elseif traparray[oindex] == 28 ; "Cayley's sextic 2" ftemp = disttemp ; r if ftemp > 1.0 ftemp = 1 elseif ftemp < -1.0 ftemp = -1 endif; ftemp ftemp2 = 3 * polarfreqA[oindex] * acos(ftemp^onethird) ; angle ztemp2 = ftemp * (cos(ftemp2) + flip(sin(ftemp2))) ; point on curve tempxx[oindex] = cabs(ztemp - ztemp2) ; scaled distance between curve pt and mod z elseif traparray[oindex] == 29 ; "lituus 2" ftemp = disttemp ; r ftemp2 = 1 / (ftemp^litpower[oindex]) ; angle ztemp2 = ftemp * (cos(ftemp2) + flip(sin(ftemp2))) ; point on curve tempxx[oindex] = cabs(ztemp - ztemp2) ; scaled distance between curve pt and mod z elseif traparray[oindex] == 30 ; "hippopede" ftemp = 1 - polarampA[oindex] * sqr(sin(polarfreqA[oindex] * tempangleB)) if ftemp < 0 ftemp2 = -1 else ftemp2 = 1 endif ; ftemp tempxx[oindex] = ftemp2 * sqrt(abs(1 - polarampA[oindex] * sqr(sin(polarfreqA[oindex] * \ tempangleB)))) elseif traparray[oindex] == 31 ; "folioid" ftemp = folioidamp[oindex] * cos(folioidfreqN[oindex] * tempangleB / folioidfreqD[oindex]) ftemp2 = 1 - sqr(folioidamp[oindex] * sin(folioidfreqN[oindex] * tempangleB / folioidfreqD[oindex])) if ftemp2 < 0 tempxx[oindex] = 1e10 ; return a really big value else ftemp2 = sqrt(ftemp2) ftemp3 = ftemp + ftemp2 ; r1 ftemp4 = ftemp - ftemp2 ; r2 tempc = cos(folioidfreqD[oindex] * tempangleB) + \ flip(sin(folioidfreqD[oindex] * tempangleB)) traptemp = ftemp3 * ftemp ; first curve possibility traptemp2 = ftemp4 * ftemp ; second curve possibility -- which one is closest if cabs(ztemp - traptemp) < cabs(ztemp - traptemp2) tempxx[oindex] = ftemp3 else tempxx[oindex] = ftemp4 endif ; cabs() endif ; ftemp2 ; elseif traparray[oindex] == ; "sinusoidal spiral" endif ; traparray[oindex] tempxx[oindex] = trapscales[oindex] * tempxx[oindex] result[oindex] = tempxx[oindex] * exp(flip(tempangleB)) tempxx[oindex] = real(result[oindex]) ; this now stores the proper x-coord of the trapped point tempyy[oindex] = imag(result[oindex]) ; the y-coordinate else ; implicit polar function if traparray[oindex] == 0 ; "rose" distance = disttemp - (sin(rosepetals[oindex] * tempangleB)) elseif traparray[oindex] == 1 ; "folium" distance = disttemp - ((sqr(sin(foliumperturb[oindex]*tempangleB)) - \ folium[oindex]) * cos(tempangleB)) elseif traparray[oindex] == 2 ; "cardioid" distance = disttemp - (cardioid[oindex] + sin(cardioidperturb[oindex] \ * tempangleB)) elseif traparray[oindex] == 3 ; "circle" distance = disttemp - 1.0 elseif traparray[oindex] == 4 ; "cissoid of Diocles" distance = disttemp - (sin(cissoidDioA[oindex]*tempangleB) * \ tan(cissoidDioB[oindex]*tempangleB)) elseif traparray[oindex] == 5 ; "cochleoid" distance = disttemp - (sin(cochleoid[oindex] * tempangleB) / tempangleB) elseif traparray[oindex] == 7 ; "conchoid of De Sluze" distance = disttemp - (conchoidA[oindex]*cos(conchoidB[oindex]*tempangleB) + \ conchoidC[oindex]/cos(conchoidB[oindex]*tempangleB)) elseif traparray[oindex] == 8 ; "conchoid of Nicomedes" distance = disttemp - (conchoidA[oindex] + \ conchoidC[oindex]/cos(conchoidB[oindex]*tempangleB)) elseif traparray[oindex] == 9 ; "cubical parabola" ftemp = cubicpC[oindex]/cos(cubicpB[oindex]*tempangleB) distance = disttemp - (sqrt(ftemp*ftemp*tan(cubicpA[oindex]*tempangleB))) elseif traparray[oindex] == 10 ; "ellipse" ftemp = abs(tan(tanfreq[oindex]*tempangleB)) distance = disttemp - (majaxis[oindex]*minaxis[oindex]*sqrt(1+sqr(ftemp))/ \ (minaxis[oindex]^epower[oindex] + ((majaxis[oindex]*ftemp)^epower[oindex]))^ \ (1/epower[oindex])) elseif traparray[oindex] == 11 ; "folium of Descartes" ftemp = sin(fosinfreq[oindex]*tempangleB) ftemp2 = cos(focosfreq[oindex]*tempangleB) distance = disttemp - (sin(sinfreq2[oindex]*tempangleB)/(ftemp*sqr(ftemp)+ftemp2*sqr(ftemp2))) elseif traparray[oindex] == 12 ; "hyperbolic spiral" ftemp = cabs(ztemp) ; r ftemp2 = hyperbolic[oindex]/ftemp ; angle ztemp2 = ftemp * (cos(ftemp2) + flip(sin(ftemp2))) ; point on spiral distance = disttemp - (2.4 * cabs(ztemp - ztemp2)) ; scaled distance between spiral pt and mod z elseif traparray[oindex] == 13 ; "kampyle of Eudoxus" distance = disttemp - (0.1/(cos(kampfreq[oindex]*tempangleB)^kamppower[oindex])) elseif traparray[oindex] == 14 ; "kappa" distance = disttemp - (tan(nodalfreq[oindex]*tempangleB)) elseif traparray[oindex] == 15 ; "lemniscate of Bernoulli" distance = disttemp - (cos(lemfreq[oindex]*tempangleB)^lempower[oindex]) elseif traparray[oindex] == 16 ; "limacon of Pascal" distance = disttemp - (limoffset[oindex] + limamp[oindex]*sin(limfreq[oindex]*tempangleB)) elseif traparray[oindex] == 17 ; "lituus" distance = disttemp - (1/(tempangleB^litpower[oindex])) elseif traparray[oindex] == 18 ; "logarithmic spiral" ftemp = cabs(ztemp) ; r of current modified z ftemp2 = (log(ftemp) - log(logspiA[oindex])) / logspiB[oindex] ; angle of pt on spiral ztemp2 = ftemp * (cos(ftemp2) + flip(sin(ftemp2))) ; point on spiral distance = disttemp - (2.4 * cabs(ztemp - ztemp2)) ; scaled distance between spiral pt and mod z elseif traparray[oindex] == 19 ; "parabola" distance = disttemp - (0.25/(paraoffset[oindex] - paraamp[oindex]*cos(parafreq[oindex]*tempangleB))) elseif traparray[oindex] == 20 ; "parabolic spiral" ftemp = cabs(ztemp) ; r of current modified z ftemp2 = (ftemp * paraspioffset[oindex])^paraspi[oindex] ; angle of pt on spiral ztemp2 = ftemp * (cos(ftemp2) + flip(sin(ftemp2))) ; point on spiral distance = disttemp - (2.4 * cabs(ztemp - ztemp2)) ; scaled distance between spiral pt and mod z elseif traparray[oindex] == 21 ; "semicubical parabola" ftemp = tan(semicubtanfreq[oindex]*tempangleB) distance = disttemp - (0.25 * (ftemp^semicubpower[oindex])/cos(semicubcosfreq[oindex]*tempangleB)) elseif traparray[oindex] == 22 ; "spiral of Archimedes" ftemp = cabs(ztemp) ; r of current modified z ftemp2 = ftemp * archspioffset[oindex] ; angle of pt on spiral ztemp2 = ftemp * (cos(ftemp2) + flip(sin(ftemp2))) ; point on spiral distance = disttemp - (2.4 * cabs(ztemp - ztemp2)) ; scaled distance between spiral pt and mod z elseif traparray[oindex] == 23 ; "strophoid" distance = disttemp - (0.4 * cos(strophcosfreqA[oindex] * tempangleB) / \ cos(strophcosfreqB[oindex] * tempangleB)) elseif traparray[oindex] == 24 ; "Cayley's sextic" ftemp = cos(polarfreqA[oindex] * tempangleB/3) distance = disttemp - (polarampA[oindex] * ftemp * sqr(ftemp)) elseif traparray[oindex] == 25 ; "trisectrix limacon" distance = disttemp - (trilimA[oindex] * (trilimB[oindex] + trilimamp[oindex] * \ cos(trilimfreq[oindex] * tempangleB))) elseif traparray[oindex] == 27 ; "trefoil of Habenicht" distance = disttemp - (trefoilconst[oindex] + trefoilcosamp[oindex] * \ cos(trefoilcossym[oindex] * tempangleB) + \ trefoilsinamp[oindex] * sqr(sin(trefoilsinsym[oindex] * tempangleB))) elseif traparray[oindex] == 28 ; "Cayley's sextic 2" ftemp = disttemp ; r if ftemp > 1.0 ftemp = 1 elseif ftemp < -1.0 ftemp = -1 endif; ftemp ftemp2 = 3 * polarfreqA[oindex] * acos(ftemp^onethird) ztemp2 = ftemp * (cos(ftemp2) + flip(sin(ftemp2))) ; point on curve distance = disttemp - cabs(ztemp - ztemp2) ; scaled distance between curve pt and mod z elseif traparray[oindex] == 29 ; "lituus 2" ftemp = disttemp ; r ftemp2 = 1 / (ftemp^litpower[oindex]) ; angle ztemp2 = ftemp * (cos(ftemp2) + flip(sin(ftemp2))) ; point on curve distance = disttemp - cabs(ztemp - ztemp2) ; scaled distance between curve pt and mod z elseif traparray[oindex] == 30 ; "hippopede" distance = sqr(disttemp) - (1 - polarampA[oindex] * sqr(sin(polarfreqA[oindex] * \ tempangleB))) ; scaled distance between curve pt and mod z elseif traparray[oindex] == 31 ; "folioid" distance = sqr(disttemp) + sqr(folioidconstB[oindex]) - 2 * folioidconstB[oindex] * \ disttemp * cos(folioidfreqN[oindex] * tempangleB / folioidfreqD[oindex]) \ - folioidconstA[oindex] endif ; traparray[oindex] if polarsmoothing[oindex] ftemp = abs(distance)^polarsmoothmod[oindex] else ftemp = sqrt(abs(distance)) endif ; polarsmoothing[] if abs(distance) == distance ; positive correction distcorrection = disttemp * trapscales[oindex] + ftemp else ; negative correction distcorrection = disttemp * trapscales[oindex] - ftemp endif ; abs() result[oindex] = distcorrection * exp(flip(tempangleB)) tempxx[oindex] = real(result[oindex]) tempyy[oindex] = imag(result[oindex]) endif ; !polarimplicit[] elseif trptype[oindex] == 2 ; "parametric functions" if (oindex == 1) && @twotrapstrue && @tworotations tempangleB = atan2(zinputT2) if tempangleB < 0 tempangleB = tempangleB + twopi endif ; tempangleB else tempangleB = atan2(zinput) if tempangleB < 0 tempangleB = tempangleB + twopi endif ; tempangleB endif ; oindex == 1 if traparray[oindex] == 0 ; "hypocycloid" ftemp2 = hyponumer[oindex]/hypodenom[oindex] tempangleB = hypodenom[oindex] * tempangleB ftemp = 1 - ftemp2 xtest = ftemp*cos(ftemp2*tempangleB) + ftemp2*cos(ftemp*tempangleB) ytest = ftemp*sin(ftemp2*tempangleB) - ftemp2*sin(ftemp*tempangleB) elseif traparray[oindex] == 1 ; "companion of cycloid" ftemp = cycangle[oindex] * tempangleB ; stretch out angle xtest = companC1[oindex] * ftemp ytest = companC2[oindex] - cos(companfreq[oindex] * ftemp) ztemp = xtest + flip(ytest) ; the trap pt ftemp2 = cabs(ztemp) ; distance from origin to trap pt ztemp = ftemp2 * exp(1i * tempangleB) ; move trap pt to the same direction as initial (zinput) pt xtest = real(ztemp) ; new x-coordinate after rotation ytest = imag(ztemp) ; new y-coordinate elseif traparray[oindex] == 2 ; "cycloid" ftemp = cycangle[oindex] * tempangleB ; stretch out angle xtest = cycxscale[oindex] * ftemp - cycampA[oindex] * sin(cycsinfreq[oindex] \ * ftemp) ; x-coordinate of trap point ytest = cycyoffset[oindex] - cycampB[oindex] * cos(cyccosfreq[oindex] * \ ftemp) ; y-coordinate of trap pt ztemp = xtest + flip(ytest) ; the trap pt ftemp2 = cabs(ztemp) ; distance from origin to trap pt ztemp = ftemp2 * exp(1i * tempangleB) ; move trap pt to the same direction as initial (zinput) pt xtest = 0.2 * real(ztemp) ; new x-coordinate after rotation ytest = 0.2 * imag(ztemp) ; new y-coordinate elseif traparray[oindex] == 3 ; "cycloid variant" ftemp = cycangle[oindex] * tempangleB ; stretch out angle xtest = cycxscale[oindex] * ftemp + cycampA[oindex] * sin(cycsinfreq[oindex] \ * ftemp) ; x-coordinate of trap point ytest = cycyoffset[oindex] - cycampB[oindex] * cos(cyccosfreq[oindex] * \ ftemp) ; y-coordinate of trap pt ztemp = xtest + flip(ytest) ; the trap pt ftemp2 = cabs(ztemp) ; distance from origin to trap pt ztemp = ftemp2 * exp(1i * tempangleB) ; move trap pt to the same direction as initial (zinput) pt xtest = 0.2 * real(ztemp) ; new x-coordinate after rotation ytest = 0.2 * imag(ztemp) ; new y-coordinate elseif traparray[oindex] == 4 ; "epicycloid" ftemp3 = epicycAN[oindex] / epicycAD[oindex] tempangleB = epicycAD[oindex] * tempangleB ftemp = ftemp3 + epicycC[oindex] ftemp2 = ftemp3 * epicycB[oindex] xtest = 0.16666666667 * (ftemp * cos(ftemp3 * tempangleB) - \ ftemp2 * cos(ftemp * tempangleB)) ytest = 0.16666666667 * (ftemp * sin(ftemp3 * tempangleB) - \ ftemp2 * sin(ftemp * tempangleB)) elseif traparray[oindex] == 5 ; "nephroid" xtest = nephconstB[oindex] * cos(tempangleB) - cos(nephcosfreq[oindex] \ * tempangleB) ytest = nephconstA[oindex] * sin(tempangleB) - sin(nephsinfreq[oindex] \ * tempangleB) xtest = 0.2 * xtest ytest = 0.2 * ytest elseif traparray[oindex] == 6 ; "hyperbola" xtest = paraconstA[oindex] / cos(parafreqA[oindex] * tempangleB) ytest = paraconstB[oindex] * tan(parafreqB[oindex] * tempangleB) elseif traparray[oindex] == 7 ; "tractrix" xtest = paraconstA[oindex] / cosh(parafreqA[oindex] * tempangleB) ytest = tempangleB - paraconstB[oindex] * tanh(parafreqB[oindex] * tempangleB) elseif traparray[oindex] == 8 ; "wavy circle" ftemp = wavyradius[oindex] + wavysinamp[oindex] * \ sin(wavysinfreq[oindex] * tempangleB) xtest = ftemp * cos(tempangleB) ytest = ftemp * sin(tempangleB) elseif traparray[oindex] == 9 ; "ellipse" xtest = paraxaxis[oindex] * cos(tempangleB) ytest = parayaxis[oindex] * sin(tempangleB) elseif traparray[oindex] == 10 ; "serpentine" --- anguinea tempangleB = tempangleB - #pi ; -pi < angle < pi xtest = paraconstA[oindex] * tan(onehalf * parafreqA[oindex] * tempangleB) ytest = paraconstB[oindex] * sin(parafreqB[oindex] * tempangleB) elseif traparray[oindex] == 11 ; "witch of Agnesi" tempangleB = onehalf * (tempangleB - #pi) ; -pi/2 < angle < pi/2 xtest = paraconstA[oindex] * tan(parafreqA[oindex] * tempangleB) ytest = paraconstB[oindex] * sqr(cos(parafreqB[oindex] * tempangleB)) elseif traparray[oindex] == 12 ; "Abdank quadratrix" xtest = paraconstA[oindex] * sin(parafreqA[oindex] * tempangleB) ytest = onehalf * sqr(paraconstA[oindex]) * (tempangleB + \ sin(parafreqA[oindex] * tempangleB) * cos(parafreqB[oindex] * tempangleB)) elseif traparray[oindex] == 13 ; "cornoid" xtest = cos(2 * parafreqA[oindex] * tempangleB) * cos(parafreqB[oindex] * tempangleB) ytest = (2 + cos(2 * parafreqA[oindex] * tempangleB)) * sin(parafreqB[oindex] * tempangleB) elseif traparray[oindex] == 14 ; "epicycloid 2" ftemp = epiradiusA[oindex] / epiradiusB[oindex] ; parameter "q" ftemp2 = ftemp + 1 ftemp = 1/ftemp xtest = ftemp * epiradiusA[oindex] * (ftemp2 * cos(tempangleB) - \ cos(ftemp2 * tempangleB)) ytest = ftemp * epiradiusA[oindex] * (ftemp2 * sin(tempangleB) - \ sin(ftemp2 * tempangleB)) elseif traparray[oindex] == 15 ; "epitrochoid" ftemp = epiradiusA[oindex] / epiradiusB[oindex] ; parameter "q" ftemp2 = ftemp + 1 ftemp = 1/ftemp ftemp3 = epiradiusC[oindex] / epiradiusB[oindex] ; parameter "k" xtest = ftemp * epiradiusA[oindex] * (ftemp2 * cos(tempangleB) - \ ftemp3 * cos(ftemp2 * tempangleB)) ytest = ftemp * epiradiusA[oindex] * (ftemp2 * sin(tempangleB) - \ ftemp3 * sin(ftemp2 * tempangleB)) endif ; traparray[oindex] result[oindex] = trapscales[oindex] * (xtest + flip(ytest)) tempxx[oindex] = real(result[oindex]) tempyy[oindex] = imag(result[oindex]) elseif trptype[oindex] == 3 ; "cartesian" if (oindex == 1) && @twotrapstrue && @tworotations ztemp = zinputT2 else ztemp = zinput endif ; oindex == 1 tempangleB = atan2(ztemp) if tempangleB < 0 tempangleB = tempangleB + twopi endif ; tempangleB ztemp = ztemp * trapscales[oindex] xtest = real(ztemp) ytest = imag(ztemp) ftemp = sqr(xtest) ftemp2 = sqr(ytest) if traparray[oindex] == 0 ; "ampersand" distance = (ftemp2 - ftemp) * (xtest - 1 ) * (2 * xtest - 3) \ - 4 * sqr((ftemp + ftemp2 - 2 * xtest)) elseif traparray[oindex] == 1 ; "Alain's curve" distance = sqr(ftemp - ftemp2) - cartxcoeff[oindex] * ftemp + \ cartycoeff[oindex] * ftemp2 elseif traparray[oindex] == 2 ; "arcs of Samothrace" distance = cartxcoeff[oindex] * ftemp * sqr((3 * ftemp - \ ftemp2)) - cartycoeff[oindex] * ftemp2 * (ftemp + ftemp2) elseif traparray[oindex] == 3 ; "astroid" distance = cartxcoeff[oindex] * ftemp^onethird + cartycoeff[oindex] \ * ftemp2^onethird - cartconst[oindex] elseif traparray[oindex] == 4 ; "atriphthaloid" distance = sqr(ftemp) * (cartxcoeff[oindex] * ftemp + cartycoeff[oindex] * \ ftemp2) - sqr(cartconst[oindex] * ftemp - cartconstB[oindex]) elseif traparray[oindex] == 5 ; "bean curve 1" distance = sqr(cartxcoeff[oindex] * ftemp + cartycoeff[oindex] * ftemp2) \ - cartconst[oindex] * xtest * ftemp - cartconstB[oindex] * \ ytest * ftemp2 elseif traparray[oindex] == 6 ; "bean curve 2" distance = cartxcoeff[oindex] * sqr(ftemp) + ftemp * ftemp2 + \ cartycoeff[oindex] * sqr(ftemp2) - xtest * (cartconst[oindex] * \ ftemp + cartconstB[oindex] * ftemp2) elseif traparray[oindex] == 7 ; "beetle curve" distance = (ftemp + ftemp2) * sqr(ftemp + ftemp2 - cartxcoeff[oindex] * \ xtest - cartycoeff[oindex] * ytest) - cartconst[oindex] * ftemp \ * ftemp2 elseif traparray[oindex] == 8 ; "bicorn" distance = cartycoeff[oindex] * ftemp2 * (cartconst[oindex] - \ cartxcoeff[oindex] * ftemp) - sqr(ftemp + 2 * cartconstB[oindex] * ytest - \ cartconst[oindex]) elseif traparray[oindex] == 9 ; "bicuspid" distance = sqr(cartycoeff[oindex] * ftemp2 - cartconst[oindex]) - \ (xtest + cartconst[oindex]) * (cartconst[oindex] - cartxcoeff[oindex] \ * xtest)^3 elseif traparray[oindex] == 10 ; "biquartic of Sacre" ftemp3 = sqr(ftemp) ; xtest^4 ftemp4 = sqr(ftemp2) ; ytest^4 distance = sqr(ftemp3) + 4 * ftemp*ftemp3*ytest + ytest*ftemp2*(ytest-1) \ + 3*ftemp3*ytest*(2*ytest-3) + 2*ftemp*ftemp2*(2*ytest+3) elseif traparray[oindex] == 11 ; "cubic egg" distance = ftemp + ftemp2 / (1 + cartconst[oindex] * xtest) - 1 elseif traparray[oindex] == 12 ; "Bolza curve" distance = ftemp2 - xtest * sqr(ftemp) + xtest elseif traparray[oindex] == 13 ; "bow curve" distance = sqr(ftemp) - ftemp * ytest + ytest * ftemp2 elseif traparray[oindex] == 14 ; "bullet nose curve" distance = 1/ftemp - 1/ftemp2 - 1 elseif traparray[oindex] == 15 ; "butterfly sextic" distance = sqr(ftemp * xtest) + sqr(ftemp2 * ytest) - ftemp elseif traparray[oindex] == 16 ; "butterfly 2" distance = (ftemp + ftemp2) * sqr(ftemp) - sqr(ftemp - ftemp2) elseif traparray[oindex] == 17 ; "cardioid" distance = sqr(ftemp + ftemp2 - 2 * cartconst[oindex] * xtest) - \ sqr(cartconst[oindex]) * (ftemp + ftemp2) elseif traparray[oindex] == 18 ; "Cartesian oval" ftemp3 = cartconst[oindex] - cartconstB[oindex] ftemp4 = 2 * (cartconst[oindex] + cartconstB[oindex]) distance = sqr(ftemp3 * (ftemp + ftemp2 + 1) - ftemp4 * xtest) - \ ftemp4 * (ftemp + ftemp2 + 1) - 4 * ftemp3 * xtest + 1 elseif traparray[oindex] == 19 ; "Cassini oval" distance = sqr(ftemp + ftemp2) + 2 * (ftemp - ftemp2) - cartconst[oindex] elseif traparray[oindex] == 20 ; "catenary" distance = ytest - cartconst[oindex] * cosh(xtest / cartconstB[oindex]) elseif traparray[oindex] == 21 ; "Cayley's sextic" distance = 4 * (ftemp + ftemp2 - cartconst[oindex] * xtest)^3 - 27 * \ sqr(cartconst[oindex]*(ftemp + ftemp2)) elseif traparray[oindex] == 22 ; "Ceva's trisectrix" distance = (ftemp + ftemp2)^3 - sqr((cartconst[oindex] + 1) * ftemp - \ (cartconst[oindex] - 1) * ftemp2) elseif traparray[oindex] == 23 ; "Chasles cubic" distance = ytest - cartxcoeff[oindex] * xtest * ftemp - cartycoeff[oindex] * ftemp * ytest - \ cartconst[oindex] * xtest * ftemp2 - cartconstB[oindex] * ytest * ftemp2 elseif traparray[oindex] == 24 ; "circle" distance = ftemp + ftemp2 - cartconst[oindex] elseif traparray[oindex] == 25 ; "circular cubic" distance = xtest * (ftemp + ftemp2) + cartxcoeff[oindex] * ftemp + cartycoeff[oindex] * ftemp2 \ + cartconst[oindex] * xtest + cartconstB[oindex] * ytest + cartconstC[oindex] elseif traparray[oindex] == 26 ; "cissoid of Diocles" distance = xtest * (ftemp + ftemp2) - cartconst[oindex] * ftemp2 elseif traparray[oindex] == 27 ; "clinoid" distance = ytest - cartconst[oindex] * exp(cartxcoeff[oindex] * xtest) \ - cartconstB[oindex] * exp(-cartycoeff[oindex] * xtest) elseif traparray[oindex] == 28 ; "cochleoid" distance = cartconst[oindex] * ytest / xtest - tan(cartconstB[oindex] * ytest / \ (ftemp + ftemp2)) elseif traparray[oindex] == 29 ; "conchoid of circle" distance = sqr(ftemp + ftemp2 + cartconst[oindex] - cartconstB[oindex]) * (ftemp2 \ + sqr(xtest + cartconstC[oindex])) - 4 * cartconst[oindex] * sqr(xtest * (xtest + \ cartconstC[oindex]) + ftemp2) elseif traparray[oindex] == 30 ; "conchoid of Nicomedes" distance = sqr(xtest - cartconst[oindex]) * (ftemp + ftemp2) - cartconstB[oindex] * ftemp elseif traparray[oindex] == 31 ; "conchoid of de Sluze" distance = cartconst[oindex] * (xtest + cartconstB[oindex]) * (ftemp + ftemp2) - \ cartconstC[oindex] * ftemp elseif traparray[oindex] == 32 ; "cornoid" ftemp3 = sqr(ftemp) ftemp4 = sqr(ftemp2) distance = ftemp * ftemp3 + ftemp2 * ftemp4 + 3 * (ftemp3 * ftemp2 + ftemp * ftemp4 \ + ftemp3) - 5 * ftemp4 + 8 * ftemp2 - 4 elseif traparray[oindex] == 33 ; "cross curve" distance = cartxcoeff[oindex] * (ftemp - cartycoeff[oindex] * (ftemp / ftemp2)) - 1 elseif traparray[oindex] == 34 ; "cubic of Apollonius" distance = (xtest - cartconst[oindex]) * (ftemp + ftemp2) + cartconstB[oindex] * \ xtest + cartconstC[oindex] * ytest elseif traparray[oindex] == 35 ; "cranoid" distance = sqr(ftemp + ftemp2) - 2 * ftemp2 * (xtest + ytest) + cartconst[oindex] * \ (cartconstB[oindex] -1) * ftemp + (1 - cartconst[oindex]) * ftemp elseif traparray[oindex] == 36 ; "Jerabek curve" distance = (ftemp + ftemp2) * sqr(xtest - cartconst[oindex]) - cartconstB[oindex] * \ sqr(ftemp + ftemp2 - cartconst[oindex] * xtest) elseif traparray[oindex] == 37 ; "Rosillo curve" distance = ftemp2 * sqr(cartconst[oindex] - xtest) - sqr(cartconstB[oindex] - xtest) \ * (cartconstC[oindex] - ftemp) elseif traparray[oindex] == 38 ; "deltoid" distance = sqr(ftemp + ftemp2) + 8 * cartconst[oindex] * xtest * (ftemp - 3 * \ ftemp2) + 18 * sqr(cartconst[oindex]) * (ftemp + ftemp2) - 27 * \ sqr(sqr(cartconst[oindex])) elseif traparray[oindex] == 39 ; "devil's curve" distance = cartycoeff[oindex] * sqr(ftemp2) - ftemp2 - cartxcoeff[oindex] * \ sqr(ftemp) + cartconst[oindex] * ftemp elseif traparray[oindex] == 40 ; "dipole curve" ftemp3 = ftemp + ftemp2 distance = cartconst[oindex] * sqr(ftemp3) * ftemp3 - cartxcoeff[oindex] * ftemp elseif traparray[oindex] == 41 ; "double egg" ftemp3 = ftemp + ftemp2 distance = cartconst[oindex] * sqr(ftemp3) * ftemp3 - sqr((cartconstB[oindex] \ + 1) * ftemp - (cartconst[oindex] - 1) * ftemp2) elseif traparray[oindex] == 42 ; "double folium" distance = cartconst[oindex] * (ftemp + ftemp2) - (cartxcoeff[oindex] * xtest + \ cartycoeff[oindex] * ytest) * ftemp elseif traparray[oindex] == 43 ; "double U curve" distance = ftemp2 * (cartconst[oindex] - cartxcoeff[oindex] * ftemp) - \ sqr(cartconst[oindex]) elseif traparray[oindex] == 44 ; "dumbbell curve" ftemp3 = sqr(ftemp) distance = cartycoeff[oindex] * ftemp2 - ftemp3 + cartxcoeff[oindex] * ftemp * ftemp3 elseif traparray[oindex] == 45 ; "cubic duplicatrix" distance = cartycoeff[oindex] * ftemp2 - cartxcoeff[oindex] * ftemp * \ (xtest + cartconst[oindex]) elseif traparray[oindex] == 46 ; "Durer's conchoid" distance = sqr(cartxcoeff[oindex] * ftemp + xtest * ytest + xtest - \ cartconst[oindex]) - (cartconst[oindex] - ftemp) * sqr(xtest - ytest + \ cartconstB[oindex]) elseif traparray[oindex] == 47 ; "Sillke's egg of Columbus" distance = cartxcoeff[oindex] * sqr(ftemp2) + 10 * ftemp2 * ftemp + 5 * \ cartxcoeff[oindex] * sqr(ftemp) - ytest elseif traparray[oindex] == 48 ; "Granville's egg" distance = cartconstC[oindex] * ftemp * ftemp2 - (xtest - cartconstB[oindex]) * \ (cartconst[oindex] - xtest) elseif traparray[oindex] == 49 ; "Kepler's egg" distance = sqr(cartxcoeff[oindex] * ftemp + cartycoeff[oindex] * ftemp2) - \ cartconst[oindex] * ftemp * xtest elseif traparray[oindex] == 50 ; "eight curve" distance = sqr(ftemp) - cartconst[oindex] * (cartxcoeff[oindex] * ftemp - \ cartycoeff[oindex] * ftemp2) elseif traparray[oindex] == 51 ; "ellipse" distance = ftemp + cartconst[oindex] * ftemp2 - 1 elseif traparray[oindex] == 52 ; "superellipse" distance = cartxcoeff[oindex] * abs(xtest)^cartexexp[oindex] + \ cartycoeff[oindex] * abs(ytest)^carteyexp[oindex] - 1 elseif traparray[oindex] == 53 ; "fish quartic" distance = cartconst[oindex] * sqr(2 * ftemp + ftemp2) - 2 * xtest * sqrt(2.0) \ * (2 * ftemp - 3 * ftemp2) + 2 * cartconstB[oindex] *(ftemp2 - ftemp) elseif traparray[oindex] == 54 ; "conic focal conchoid" ftemp3 = ftemp + ftemp2 distance = sqr(ftemp3 - conchmod[oindex] * coniceccent[oindex] * \ xtest) - ftemp3 * sqr(coniceccent[oindex] * xtest - conchmod[oindex] - 1) elseif traparray[oindex] == 55 ; "folium 1" distance = sqr(ftemp + ftemp2) + cartxcoeff[oindex] * xtest * ftemp - \ (1 - cartxcoeff[oindex]) * xtest * ftemp2 elseif traparray[oindex] == 56 ; "folium 2" distance = sqr(ftemp + ftemp2) - cartxcoeff[oindex] * xtest * \ (ftemp - ftemp2) elseif traparray[oindex] == 57 ; "folium of Descartes" distance = xtest * ftemp + ytest * ftemp2 - cartconst[oindex] * xtest * ytest elseif traparray[oindex] == 58 ; "Durer's folium" distance = (ftemp + ftemp2) * sqr(cartconst[oindex] * (ftemp + ftemp2) - \ cartconstB[oindex]) - ftemp elseif traparray[oindex] == 59 ; "Gaussian curve" distance = ytest - cartconst[oindex] * exp(-sqr(xtest)) elseif traparray[oindex] == 60 ; "Beutel heart" ftemp3 = ftemp + ftemp2 - 1 distance = cartconst[oindex] * ftemp3 * sqr(ftemp3) - cartconstB[oindex] * \ ftemp * ftemp2 elseif traparray[oindex] == 61 ; "Proclus hippopede" distance = cartconst[oindex] * sqr(ftemp + ftemp2) - cartxcoeff[oindex] * \ ftemp - cartycoeff[oindex] * ftemp2 elseif traparray[oindex] == 62 ; "Hoerl curve" distance = ytest - cartxcoeff[oindex] * xtest^cartconst[oindex] * exp( \ cartconstB[oindex] * xtest) elseif traparray[oindex] == 63 ; "Humbert cubic" distance = cartxcoeff[oindex] * xtest * ftemp - 3 * cartycoeff[oindex] * \ xtest * ftemp2 - cartconst[oindex] elseif traparray[oindex] == 64 ; "hyperbola" distance = cartxcoeff[oindex] * xtest^(2 * cartconst[oindex]) - \ cartycoeff[oindex] * ytest^(2 * cartconstB[oindex]) - cartconstC[oindex] elseif traparray[oindex] == 65 ; "hyperbola 2" distance = xtest * ytest - cartconst[oindex] elseif traparray[oindex] == 66 ; "illumination curve" ftemp3 = ftemp + 1 distance = ftemp2 * ftemp3 * sqr(ftemp3) - cartconst[oindex] elseif traparray[oindex] == 67 ; "kampyle of Eudoxus" distance = cartycoeff[oindex] * ftemp2 - sqr(ftemp) + cartxcoeff[oindex] * ftemp elseif traparray[oindex] == 68 ; "kappa curve" distance = cartycoeff[oindex] * (ftemp + ftemp2) * ftemp2 - cartxcoeff[oindex] \ * ftemp elseif traparray[oindex] == 69 ; "Kiepert's curve" ftemp3 = cartconst[oindex] - cartxcoeff[oindex] * ftemp distance = cartycoeff[oindex] * ftemp2 - ftemp3 * sqr(ftemp3) elseif traparray[oindex] == 70 ; "kieroid" distance = ftemp2 * sqr(xtest - cartconst[oindex]) + ftemp * sqr(xtest - \ cartconstB[oindex]) - cartconstC[oindex] * ftemp elseif traparray[oindex] == 71 ; "kiss curve" ftemp3 = cartconst[oindex] - ftemp distance = cartycoeff[oindex] * ftemp2 - ftemp3 * sqr(ftemp3) elseif traparray[oindex] == 72 ; "Klein quartic" ftemp3 = sqrt(3) distance = sqr(ftemp + ftemp2 - 0.5 * cartconst[oindex] * sqr(cartconstB[oindex])) - \ 0.25 * cartconstC[oindex] * cartconstB[oindex] * (ytest - cartconstB[oindex] + \ ftemp3 * xtest) * (ytest - cartconstB[oindex] - ftemp3 * xtest) * \ (2 * ytest + cartconstB[oindex]) elseif traparray[oindex] == 73 ; "Kulp quartic" distance = ftemp2 * (cartconst[oindex] + ftemp) - cartconstB[oindex] elseif traparray[oindex] == 74 ; "limacon of Pascal" distance = sqr(ftemp + ftemp2 - cartconst[oindex] * ytest) - ftemp - ftemp2 elseif traparray[oindex] == 75 ; "links curve" distance = cartconst[oindex] * sqr(cartxcoeff[oindex] * ftemp + cartycoeff[oindex] * ftemp2) - \ 4 * cartconstB[oindex] * ftemp * (cartconstC[oindex] * 2 - xtest) elseif traparray[oindex] == 76 ; "Lissajous sextic" distance = ftemp * sqr(4 * ftemp - 3 * cartconst[oindex]) + 4 * cartconst[oindex] * ftemp2 * \ (ftemp2 - cartconst[oindex]) elseif traparray[oindex] == 77 ; "Lissajous quartic" distance = 2 * cartconst[oindex] * sqr(2 * ftemp - sqr(cartconstB[oindex])) - cartconstB[oindex] * \ (2 * ytest - sqr(cartconstB[oindex])) * (ytest + cartconstB[oindex]) elseif traparray[oindex] == 78 ; "logistic curve" distance = cartycoeff[oindex] * ytest - recip(cartconst[oindex] + cartconstB[oindex] * \ exp(cartxcoeff[oindex] * xtest)) elseif traparray[oindex] == 79 ; "Maltese cross" ftemp3 = ftemp + ftemp2 distance = cartconst[oindex] * ftemp3 * sqr(ftemp3) - cartconstB[oindex] * ftemp * (ftemp + \ 20 * cartconstC[oindex] * ftemp2) + 8 * cartconstB[oindex] * ftemp2 * (ftemp2 + 2 * \ cartconstB[oindex]) elseif traparray[oindex] == 80 ; "semicubical parabola" distance = cartycoeff[oindex] * ftemp2 - cartxcoeff[oindex] * xtest * ftemp elseif traparray[oindex] == 81 ; "diverging parabola" distance = cartycoeff[oindex] * ftemp2 - cartxcoeff[oindex] * xtest * (ftemp + cartconst[oindex]) elseif traparray[oindex] == 82 ; "nephroid" ftemp3 = ftemp + ftemp2 - 4 * cartconst[oindex] distance = ftemp3 * sqr(ftemp3) - 108 * cartconstB[oindex] * ftemp2 elseif traparray[oindex] == 83 ; "Freeth's nephroid" distance = (ftemp + ftemp2) * sqr(ftemp + ftemp2 - sqr(cartconst[oindex])) - 4 * sqr(cartconst[oindex]) \ * sqr(ftemp + ftemp2 - cartconst[oindex]) elseif traparray[oindex] == 84 ; "nodal curve" distance = cartconst[oindex] * ftemp * ftemp2 * (cartxcoeff[oindex] * ftemp + cartycoeff[oindex] * \ ftemp2) - sqr(cartconstB[oindex] * ftemp - cartconstC[oindex] * ftemp2) elseif traparray[oindex] == 85 ; "strophoid" distance = cartconst[oindex] * xtest * (cartxcoeff[oindex] * ftemp + cartycoeff[oindex] * ftemp2) \ + cartconstB[oindex] * (cos(cartconstB[oindex] * (cartxcoeff[oindex] * ftemp - cartycoeff[oindex] * \ ftemp2)) + 2 * sin(cartconstB[oindex] * xtest * ytest)) elseif traparray[oindex] == 86 ; "ophiuride" distance = cartxcoeff[oindex] * xtest * ftemp + xtest * ftemp2 - cartycoeff[oindex] * ftemp2 + \ cartconst[oindex] * xtest * ytest elseif traparray[oindex] == 87 ; "parabola" distance = cartycoeff[oindex] * ytest - cartxcoeff[oindex] * ftemp elseif traparray[oindex] == 88 ; "parabola 2" distance = cartycoeff[oindex] * ytest - cartxcoeff[oindex] * ftemp + cartconst[oindex] elseif traparray[oindex] == 89 ; "parabolic trifolium" distance = ftemp * (cartxcoeff[oindex] * ftemp + cartycoeff[oindex] * ftemp2) - cartconst[oindex] \ * ytest * (cartxcoeff[oindex] * ftemp - cartycoeff[oindex] * ftemp2) elseif traparray[oindex] == 90 ; "piriform" distance = cartycoeff[oindex] * ftemp2 - cartxcoeff[oindex] * xtest * ftemp * \ (cartconst[oindex] - xtest) elseif traparray[oindex] == 91 ; "pearls of de Sluze" distance = cartycoeff[oindex] * ytest^cartconst[oindex] - cartxcoeff[oindex] * \ xtest^cartconstB[oindex] * (1 - xtest)^cartconstC[oindex] elseif traparray[oindex] == 92 ; "pursuit curve" distance = cartycoeff[oindex] * ytest - xtest^(cartconstB[oindex] + cartconst[oindex]) / \ (cartconstB[oindex] + cartconst[oindex]) + xtest^(2 * cartconstC[oindex] - cartconst[oindex]) \ / (2 * cartconstC[oindex] - cartconst[oindex]) elseif traparray[oindex] == 93 ; "quadratrix" distance = cartycoeff[oindex] * ytest - cartxcoeff[oindex] * xtest / (cartconst[oindex] * \ tan(cartconstB[oindex] * xtest)) elseif traparray[oindex] == 94 ; "quadrifolium" ftemp3 = ftemp + ftemp2 distance = cartconst[oindex] * ftemp3 * sqr(ftemp3) - cartconstB[oindex] * ftemp * ftemp2 elseif traparray[oindex] == 95 ; "trifolium" distance = cartconst[oindex] * sqr(ftemp + ftemp2) - cartconstB[oindex] * xtest * (ftemp - \ cartconstC[oindex] * 3 * ftemp2) elseif traparray[oindex] == 96 ; "right strophoid" distance = cartycoeff[oindex] * ftemp2 - cartxcoeff[oindex] * ftemp * ((cartconst[oindex] + \ xtest)/(cartconstB[oindex] - xtest)) elseif traparray[oindex] == 97 ; "scarabaeus" ftemp3 = ftemp + ftemp2 distance = cartconst[oindex] * ftemp3 * (ftemp3 + cartconstB[oindex] * xtest) - \ cartconstC[oindex] * (ftemp - ftemp2) elseif traparray[oindex] == 98 ; "scyphoid" distance = cartxcoeff[oindex] * sqr(ftemp) - cartycoeff[oindex] * sqr(ftemp2) - \ cartconst[oindex] * xtest * ftemp2 elseif traparray[oindex] == 99 ; "anguinea" distance = cartycoeff[oindex] * ytest - cartconstB[oindex] * cartconst[oindex] * xtest / \ (ftemp + sqr(cartconst[oindex])) elseif traparray[oindex] == 100 ; "damped sine" distance = cartycoeff[oindex] * ytest - cartconst[oindex] * sin(cartconstB[oindex] * xtest) / \ (cartxcoeff[oindex] * xtest) elseif traparray[oindex] == 101 ; "catastrophic sine" distance = cartycoeff[oindex] * ytest - (cartconst[oindex] * xtest + cartconstB[oindex]) * \ cartconstC[oindex] * sin(cartxcoeff[oindex] * xtest) elseif traparray[oindex] == 102 ; "plane spiric" distance = cartconst[oindex] * sqr(ftemp + ftemp2) + cartxcoeff[oindex] * ftemp + cartycoeff[oindex] * \ ftemp2 + cartconstB[oindex] * xtest + cartconstC[oindex] elseif traparray[oindex] == 103 ; "spiric of Perseus" distance = sqr(ftemp + ftemp2 - cartconst[oindex] + cartconstB[oindex]) - 4 * cartconstC[oindex] \ * (ftemp + cartconstB[oindex]) elseif traparray[oindex] == 104 ; "svastika" distance = 2 * cartconst[oindex] * xtest * ytest - cartxcoeff[oindex] * sqr(ftemp) + \ cartycoeff[oindex] * sqr(ftemp2) elseif traparray[oindex] == 105 ; "syntractrix" ftemp3 = sqr(cartconst[oindex]) ftemp4 = sqrt(ftemp3 - ftemp2) distance = cartxcoeff[oindex] * xtest + ftemp4 - cartconstB[oindex] * log((cartconst[oindex] + \ ftemp4) / (cartycoeff[oindex] * ytest)) elseif traparray[oindex] == 106 ; "tetracuspid" distance = cartxcoeff[oindex] * ftemp + cartycoeff[oindex] * ftemp2 - cartconst[oindex] + \ 27 * cartconstB[oindex] * ftemp * ftemp2 elseif traparray[oindex] == 107 ; "siluroid" distance = cartconst[oindex] * sqr(ftemp + ftemp2) - cartxcoeff[oindex] * xtest * (ftemp - ftemp2) elseif traparray[oindex] == 108 ; "trisectrix of Longchamps" distance = cartconst[oindex] * xtest * (ftemp - 3 * ftemp2) - cartxcoeff[oindex] * ftemp - \ cartycoeff[oindex] * ftemp2 elseif traparray[oindex] == 109 ; "trident" distance = cartycoeff[oindex] * ytest - cartxcoeff[oindex] * ftemp - cartconst[oindex] / xtest elseif traparray[oindex] == 110 ; "trisectrix of Delanges" ftemp3 = ftemp + ftemp2 distance = cartconstB[oindex] * sqr(ftemp3 - cartconst[oindex]) - ftemp * ftemp3 elseif traparray[oindex] == 111 ; "trisectrix of Maclaurin" distance = cartxcoeff[oindex] * xtest * ftemp + cartconst[oindex] * xtest * ftemp2 - \ 3 * cartconstB[oindex] * ftemp - cartycoeff[oindex] * ftemp2 elseif traparray[oindex] == 112 ; "Trott curve" distance = 144 * cartconst[oindex] * (sqr(ftemp) + sqr(ftemp2)) - 225 * cartconstB[oindex] * \ (ftemp + ftemp2) + 350 * cartconstC[oindex] * ftemp * ftemp2 + 81 * cartxcoeff[oindex] elseif traparray[oindex] == 113 ; "Tschirnhausen's cubic" distance = cartycoeff[oindex] * ftemp2 - cartxcoeff[oindex] * ftemp * (cartconst[oindex] * \ xtest + cartconstB[oindex]) elseif traparray[oindex] == 114 ; "visiera" distance = cartxcoeff[oindex] * xtest * (ftemp + ftemp2) - cartconst[oindex] * (ftemp + 2 * \ cartycoeff[oindex] * ftemp2) elseif traparray[oindex] == 115 ; "resonance curve" distance = cartycoeff[oindex] * ytest - (cartconst[oindex] / (cartconstB[oindex] + \ cartxcoeff[oindex] * ftemp)) elseif traparray[oindex] == 116 ; "Watt's curve" ftemp3 = ftemp + ftemp2 ftemp4 = sqr(ftemp3) distance = ftemp3 * ftemp4 - 2 * cartconst[oindex] * ftemp4 + cartconstB[oindex] * \ (xtest + 4 * ftemp2) * ftemp3 - cartconstC[oindex] * ftemp2 elseif traparray[oindex] == 117 ; "witch of Agnesi" distance = cartxcoeff[oindex] * ftemp * ytest - sqr(cartconst[oindex]) * \ (cartconst[oindex] - cartycoeff[oindex]) endif ; traparray[] if cartsmooth[oindex] < 0.99 || cartsmooth[oindex] > 1.01 distance = distance^cartsmooth[oindex] endif ; cartsmooth[] distcorrection = cabs(ztemp) + distance result[oindex] = distcorrection * exp(flip(tempangleB)) tempxx[oindex] = real(result[oindex]) tempyy[oindex] = imag(result[oindex]) elseif trptype[oindex] == 4 ; "simple functions" if funcmode[oindex] == 0 ; "polar" --- treat 'simple function' as polar function ; In polar mode, the variable ; tempxx[oindex] is initially used to store the polar distance from #z, ; not the x-coordinate if (oindex == 1) && @twotrapstrue && @tworotations tempangleB = atan2(zinputT2) if tempangleB < 0 tempangleB = tempangleB + twopi endif ; tempangleB else tempangleB = atan2(zinput) if tempangleB < 0 tempangleB = tempangleB + twopi endif ; tempangleB endif ; oindex == 1 if traparray[oindex] == 0 ; "cosine" tempxx[oindex] = sfuncamp[oindex] * cos(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 1 ; "tangent" tempxx[oindex] = sfuncamp[oindex] * tan(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 2 ; sine function tempxx[oindex] = sfuncamp[oindex] * sin(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 3 ; cotangent tempxx[oindex] = sfuncamp[oindex] * cotan(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 4 ; secant tempxx[oindex] = sfuncamp[oindex] * 1/cos(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 5 ; cosecant tempxx[oindex] = sfuncamp[oindex] * 1/sin(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 6 ; versine tempxx[oindex] = sfuncamp[oindex] * (1 - cos(sfuncfreq[oindex] * tempangleB)) elseif traparray[oindex] == 7 ; vercosine tempxx[oindex] = sfuncamp[oindex] * (1 + cos(sfuncfreq[oindex] * tempangleB)) elseif traparray[oindex] == 8 ; coversine tempxx[oindex] = sfuncamp[oindex] * (1 - sin(sfuncfreq[oindex] * tempangleB)) elseif traparray[oindex] == 9 ; covercosine tempxx[oindex] = sfuncamp[oindex] * (1 + sin(sfuncfreq[oindex] * tempangleB)) elseif traparray[oindex] == 10 ; exsecant tempxx[oindex] = sfuncamp[oindex] / cos(sfuncfreq[oindex] * tempangleB) - 1 elseif traparray[oindex] == 11 ; excosecant tempxx[oindex] = sfuncamp[oindex] / sin(sfuncfreq[oindex] * tempangleB) - 1 elseif traparray[oindex] == 12 ; chord tempxx[oindex] = sfuncamp[oindex] * 2 * sin(sfuncfreq[oindex] * tempangleB/2) elseif traparray[oindex] == 13 ; arcsine tempxx[oindex] = sfuncamp[oindex] * asin(sfuncfreq[oindex] * tempangleB - trunc(sfuncfreq[oindex] * tempangleB)) elseif traparray[oindex] == 14 ; arccosine tempxx[oindex] = sfuncamp[oindex] * acos(sfuncfreq[oindex] * tempangleB - trunc(sfuncfreq[oindex] * tempangleB)) elseif traparray[oindex] == 15 ; arctangent tempxx[oindex] = sfuncamp[oindex] * atan(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 16 ; arccotangent tempxx[oindex] = sfuncamp[oindex] * halfpi - atan(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 17 ; arcsecant tempxx[oindex] = sfuncamp[oindex] * acos(1/tempangleB - trunc(1/tempangleB)) elseif traparray[oindex] == 18 ; arccosecant tempxx[oindex] = sfuncamp[oindex] * asin(1/tempangleB - trunc(1/tempangleB)) elseif traparray[oindex] == 19 ; arcversine tempxx[oindex] = sfuncamp[oindex] * acos(1 - tempangleB - trunc(1-tempangleB)) elseif traparray[oindex] == 20 ; arcvercosine tempxx[oindex] = sfuncamp[oindex] * acos(1 + tempangleB - trunc(1+tempangleB)) elseif traparray[oindex] == 21 ; arccoversine tempxx[oindex] = sfuncamp[oindex] * asin(1 - tempangleB - trunc(1-tempangleB)) elseif traparray[oindex] == 22 ; arccovercosine tempxx[oindex] = sfuncamp[oindex] * asin(1 + tempangleB - trunc(1+tempangleB)) elseif traparray[oindex] == 23 ; arcexsecant tempxx[oindex] = sfuncamp[oindex] * acos( (1/(tempangleB+1)) - trunc( (1/(tempangleB+1)) ) ) elseif traparray[oindex] == 24 ; arcexcosecant tempxx[oindex] = sfuncamp[oindex] * asin( (1/(tempangleB+1)) - trunc( (1/(tempangleB+1)) ) ) elseif traparray[oindex] == 25 ; arcchord tempxx[oindex] = sfuncamp[oindex] * 2 * asin( tempangleB/2 - trunc(tempangleB/2) ) elseif traparray[oindex] == 26 ; exponential tempxx[oindex] = sfuncamp[oindex] * exp(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 27 ; negative exponential tempxx[oindex] = sfuncamp[oindex] * exp(-tempangleB) elseif traparray[oindex] == 28 ; recip exponential tempxx[oindex] = sfuncamp[oindex] * exp(1/tempangleB) elseif traparray[oindex] == 29 ; neg recip exponential tempxx[oindex] = sfuncamp[oindex] * exp(-1/tempangleB) elseif traparray[oindex] == 30 ; z^2 exponential tempxx[oindex] = sfuncamp[oindex] * exp(sqr(sfuncfreq[oindex] * tempangleB)) elseif traparray[oindex] == 31 ; -z^2 exponential tempxx[oindex] = sfuncamp[oindex] * exp(-sqr(sfuncfreq[oindex] * tempangleB)) elseif traparray[oindex] == 32 ; recip z^2 exponential tempxx[oindex] = sfuncamp[oindex] * exp(1/sqr(sfuncfreq[oindex] * tempangleB)) elseif traparray[oindex] == 33 ; -recip z^2 exponential tempxx[oindex] = sfuncamp[oindex] * exp(-1/sqr(sfuncfreq[oindex] * tempangleB)) elseif traparray[oindex] == 34 ; hyperbolic sine tempxx[oindex] = sfuncamp[oindex] * sinh(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 35 ; inverse hyperbolic sine tempxx[oindex] = sfuncamp[oindex] * asinh(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 36 ; hyperbolic cosine tempxx[oindex] = sfuncamp[oindex] * cosh(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 37 ; inverse hyperbolic cosine tempxx[oindex] = sfuncamp[oindex] * acosh(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 38 ; hyperbolic tangent tempxx[oindex] = sfuncamp[oindex] * tanh(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 39 ; inverse hyperbolic tangent tempxx[oindex] = sfuncamp[oindex] * atanh(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 40 ; hyperbolic cotangent tempxx[oindex] = sfuncamp[oindex] * cotanh(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 41 ; square tempxx[oindex] = sfuncamp[oindex] * sqr(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 42 ; square root tempxx[oindex] = sfuncamp[oindex] * sqrt(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 43 ; power tempxx[oindex] = sfuncamp[oindex] * tempangle^sfuncpower[oindex] elseif traparray[oindex] == 44 ; logarithm tempxx[oindex] = sfuncamp[oindex] * log(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 45 ; tempxx[oindex] = sfuncamp[oindex] * log(-sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 46 ; "log(1/n)" ; tempxx[oindex] = sfuncamp[oindex] * log(sfuncfreq[oindex]/tempangleB) elseif traparray[oindex] == 47 ; "log(-1/n)" ; tempxx[oindex] = sfuncamp[oindex] * log(-sfuncfreq[oindex]/tempangleB) elseif traparray[oindex] == 48 ; reciprocal tempxx[oindex] = sfuncamp[oindex] * sfuncfreq[oindex]/tempangleB elseif traparray[oindex] == 49 ; absolute value tempxx[oindex] = sfuncamp[oindex] * abs(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 50 ; ceiling tempxx[oindex] = sfuncamp[oindex] * ceil(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 51 ; floor tempxx[oindex] = sfuncamp[oindex] * floor(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 52 ; truncation tempxx[oindex] = sfuncamp[oindex] * trunc(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 53 ; rounding tempxx[oindex] = sfuncamp[oindex] * round(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 54 ; arcsine tempxx[oindex] = sfuncamp[oindex] * asin(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 55 ; arccosine tempxx[oindex] = sfuncamp[oindex] * acos(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 56 ; arctangent tempxx[oindex] = sfuncamp[oindex] * atan2(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 57 ; arccotangent tempxx[oindex] = sfuncamp[oindex] * halfpi - atan2(sfuncfreq[oindex] * tempangleB) elseif traparray[oindex] == 58 ; arcsecant tempxx[oindex] = sfuncamp[oindex] * acos(1/tempangleB) elseif traparray[oindex] == 59 ; arccosecant tempxx[oindex] = sfuncamp[oindex] * asin(1/tempangleB) elseif traparray[oindex] == 60 ; arcversine tempxx[oindex] = sfuncamp[oindex] * acos(1 - tempangleB) elseif traparray[oindex] == 61 ; arcvercosine tempxx[oindex] = sfuncamp[oindex] * acos(1 + tempangleB) elseif traparray[oindex] == 62 ; arccoversine tempxx[oindex] = sfuncamp[oindex] * asin(1 - tempangleB) elseif traparray[oindex] == 63 ; arccovercosine tempxx[oindex] = sfuncamp[oindex] * asin(1 + tempangleB) elseif traparray[oindex] == 64 ; arcexsecant tempxx[oindex] = sfuncamp[oindex] * acos( (1/(tempangleB+1))) elseif traparray[oindex] == 65 ; arcexcosecant tempxx[oindex] = sfuncamp[oindex] * asin( (1/(tempangleB+1))) elseif traparray[oindex] == 66 ; arcchord tempxx[oindex] = sfuncamp[oindex] * 2 * asin( tempangleB/2 ) elseif traparray[oindex] == 67 ; "log(n^2)" ; tempxx[oindex] = sfuncamp[oindex] * log(sqr(sfuncfreq[oindex] * tempangleB)) elseif traparray[oindex] == 68 ; "log(-n^2)" ; tempxx[oindex] = sfuncamp[oindex] * log(-sqr(sfuncfreq[oindex] * tempangleB)) elseif traparray[oindex] == 69 ; "log(1/n^2)" ; tempxx[oindex] = sfuncamp[oindex] * log(1/sqr(sfuncfreq[oindex] * tempangleB)) elseif traparray[oindex] == 70 ; "log(-1/n^2)" ; tempxx[oindex] = sfuncamp[oindex] * log(-1/sqr(sfuncfreq[oindex] * tempangleB)) elseif traparray[oindex] == 71 ; "log log" ; tempxx[oindex] = sfuncamp[oindex] * log( log(sfuncfreq[oindex] * tempangleB) ) elseif traparray[oindex] == 72 ; "exp(exp)" ; tempxx[oindex] = sfuncamp[oindex] * exp( exp(sfuncfreq[oindex] * tempangleB) ) elseif traparray[oindex] == 73 ; "n^n" ; tempxx[oindex] = sfuncamp[oindex] * tempangleB^tempangleB elseif traparray[oindex] == 74 ; "n^n^n" ; tempxx[oindex] = sfuncamp[oindex] * tempangleB^(tempangleB^tempangleB) elseif traparray[oindex] == 75 ; "constant^n" ; tempxx[oindex] = sfuncamp[oindex] * sfuncbase[oindex]^tempangleB elseif traparray[oindex] == 76 ; "constant^n^n" ; tempxx[oindex] = sfuncamp[oindex] * sfuncbase[oindex]^(tempangleB^tempangleB) endif ; traparray[oindex] tempxx[oindex] = trapscales[oindex] * tempxx[oindex] result[oindex] = tempxx[oindex] * exp(flip(tempangleB)) tempxx[oindex] = real(result[oindex]) ; this now stores the proper x-coord of the trapped point tempyy[oindex] = imag(result[oindex]) ; the y-coordinate elseif funcmode[oindex] == 1 ; treat 'simple function' as cartesian if (oindex == 1) && @twotrapstrue && @tworotations ztemp = zinputT2 else ztemp = zinput endif ; oindex == 1 tempangleB = atan2(ztemp) if tempangleB < 0 tempangleB = tempangleB + twopi endif ; tempangleB ztemp = ztemp * trapscales[oindex] xtest = real(ztemp) ytest = imag(ztemp) ftemp = cabs(ztemp) if traparray[oindex] == 0 ; "cosine" distance = sfuncamp[oindex] * cos(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 1 ; "tangent" distance = sfuncamp[oindex] * tan(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 2 ; sine function distance = sfuncamp[oindex] * sin(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 3 ; cotangent distance = sfuncamp[oindex] * cotan(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 4 ; secant distance = sfuncamp[oindex] * 1/cos(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 5 ; cosecant distance = sfuncamp[oindex] * 1/sin(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 6 ; versine distance = sfuncamp[oindex] * (1 - cos(sfuncfreq[oindex] * ftemp)) elseif traparray[oindex] == 7 ; vercosine distance = sfuncamp[oindex] * (1 + cos(sfuncfreq[oindex] * ftemp)) elseif traparray[oindex] == 8 ; coversine distance = sfuncamp[oindex] * (1 - sin(sfuncfreq[oindex] * ftemp)) elseif traparray[oindex] == 9 ; covercosine distance = sfuncamp[oindex] * (1 + sin(sfuncfreq[oindex] * ftemp)) elseif traparray[oindex] == 10 ; exsecant distance = sfuncamp[oindex] / cos(sfuncfreq[oindex] * ftemp) - 1 elseif traparray[oindex] == 11 ; excosecant distance = sfuncamp[oindex] / sin(sfuncfreq[oindex] * ftemp) - 1 elseif traparray[oindex] == 12 ; chord distance = sfuncamp[oindex] * 2 * sin(sfuncfreq[oindex] * ftemp/2) elseif traparray[oindex] == 13 ; arcsine distance = sfuncamp[oindex] * asin(sfuncfreq[oindex] * ftemp - trunc(sfuncfreq[oindex] * ftemp)) elseif traparray[oindex] == 14 ; arccosine distance = sfuncamp[oindex] * acos(sfuncfreq[oindex] * ftemp - trunc(sfuncfreq[oindex] * ftemp)) elseif traparray[oindex] == 15 ; arctangent distance = sfuncamp[oindex] * atan(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 16 ; arccotangent distance = sfuncamp[oindex] * halfpi - atan(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 17 ; arcsecant distance = sfuncamp[oindex] * acos(1/ftemp - trunc(1/ftemp)) elseif traparray[oindex] == 18 ; arccosecant distance = sfuncamp[oindex] * asin(1/ftemp - trunc(1/ftemp)) elseif traparray[oindex] == 19 ; arcversine distance = sfuncamp[oindex] * acos(1 - ftemp - trunc(1-ftemp)) elseif traparray[oindex] == 20 ; arcvercosine distance = sfuncamp[oindex] * acos(1 + ftemp - trunc(1+ftemp)) elseif traparray[oindex] == 21 ; arccoversine distance = sfuncamp[oindex] * asin(1 - ftemp - trunc(1-ftemp)) elseif traparray[oindex] == 22 ; arccovercosine distance = sfuncamp[oindex] * asin(1 + ftemp - trunc(1+ftemp)) elseif traparray[oindex] == 23 ; arcexsecant distance = sfuncamp[oindex] * acos( (1/(ftemp+1)) - trunc( (1/(ftemp+1)) ) ) elseif traparray[oindex] == 24 ; arcexcosecant distance = sfuncamp[oindex] * asin( (1/(ftemp+1)) - trunc( (1/(ftemp+1)) ) ) elseif traparray[oindex] == 25 ; arcchord distance = sfuncamp[oindex] * 2 * asin( ftemp/2 - trunc(ftemp/2) ) elseif traparray[oindex] == 26 ; exponential distance = sfuncamp[oindex] * exp(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 27 ; negative exponential distance = sfuncamp[oindex] * exp(-ftemp) elseif traparray[oindex] == 28 ; recip exponential distance = sfuncamp[oindex] * exp(1/ftemp) elseif traparray[oindex] == 29 ; neg recip exponential distance = sfuncamp[oindex] * exp(-1/ftemp) elseif traparray[oindex] == 30 ; z^2 exponential distance = sfuncamp[oindex] * exp(sqr(sfuncfreq[oindex] * ftemp)) elseif traparray[oindex] == 31 ; -z^2 exponential distance = sfuncamp[oindex] * exp(-sqr(sfuncfreq[oindex] * ftemp)) elseif traparray[oindex] == 32 ; recip z^2 exponential distance = sfuncamp[oindex] * exp(1/sqr(sfuncfreq[oindex] * ftemp)) elseif traparray[oindex] == 33 ; -recip z^2 exponential distance = sfuncamp[oindex] * exp(-1/sqr(sfuncfreq[oindex] * ftemp)) elseif traparray[oindex] == 34 ; hyperbolic sine distance = sfuncamp[oindex] * sinh(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 35 ; inverse hyperbolic sine distance = sfuncamp[oindex] * asinh(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 36 ; hyperbolic cosine distance = sfuncamp[oindex] * cosh(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 37 ; inverse hyperbolic cosine distance = sfuncamp[oindex] * acosh(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 38 ; hyperbolic tangent distance = sfuncamp[oindex] * tanh(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 39 ; inverse hyperbolic tangent distance = sfuncamp[oindex] * atanh(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 40 ; hyperbolic cotangent distance = sfuncamp[oindex] * cotanh(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 41 ; square distance = sfuncamp[oindex] * sqr(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 42 ; square root distance = sfuncamp[oindex] * sqrt(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 43 ; power distance = sfuncamp[oindex] * tempangle^sfuncpower[oindex] elseif traparray[oindex] == 44 ; logarithm distance = sfuncamp[oindex] * log(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 45 ; distance = sfuncamp[oindex] * log(-sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 46 ; "log(1/n)" ; distance = sfuncamp[oindex] * log(sfuncfreq[oindex]/ftemp) elseif traparray[oindex] == 47 ; "log(-1/n)" ; distance = sfuncamp[oindex] * log(-sfuncfreq[oindex]/ftemp) elseif traparray[oindex] == 48 ; reciprocal distance = sfuncamp[oindex] * sfuncfreq[oindex]/ftemp elseif traparray[oindex] == 49 ; absolute value distance = sfuncamp[oindex] * abs(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 50 ; ceiling distance = sfuncamp[oindex] * ceil(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 51 ; floor distance = sfuncamp[oindex] * floor(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 52 ; truncation distance = sfuncamp[oindex] * trunc(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 53 ; rounding distance = sfuncamp[oindex] * round(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 54 ; arcsine distance = sfuncamp[oindex] * asin(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 55 ; arccosine distance = sfuncamp[oindex] * acos(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 56 ; arctangent distance = sfuncamp[oindex] * atan2(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 57 ; arccotangent distance = sfuncamp[oindex] * halfpi - atan2(sfuncfreq[oindex] * ftemp) elseif traparray[oindex] == 58 ; arcsecant distance = sfuncamp[oindex] * acos(1/ftemp) elseif traparray[oindex] == 59 ; arccosecant distance = sfuncamp[oindex] * asin(1/ftemp) elseif traparray[oindex] == 60 ; arcversine distance = sfuncamp[oindex] * acos(1 - ftemp) elseif traparray[oindex] == 61 ; arcvercosine distance = sfuncamp[oindex] * acos(1 + ftemp) elseif traparray[oindex] == 62 ; arccoversine distance = sfuncamp[oindex] * asin(1 - ftemp) elseif traparray[oindex] == 63 ; arccovercosine distance = sfuncamp[oindex] * asin(1 + ftemp) elseif traparray[oindex] == 64 ; arcexsecant distance = sfuncamp[oindex] * acos( (1/(ftemp+1))) elseif traparray[oindex] == 65 ; arcexcosecant distance = sfuncamp[oindex] * asin( (1/(ftemp+1))) elseif traparray[oindex] == 66 ; arcchord distance = sfuncamp[oindex] * 2 * asin( ftemp/2 ) elseif traparray[oindex] == 67 ; "log(n^2)" ; distance = sfuncamp[oindex] * log(sqr(sfuncfreq[oindex] * ftemp)) elseif traparray[oindex] == 68 ; "log(-n^2)" ; distance = sfuncamp[oindex] * log(-sqr(sfuncfreq[oindex] * ftemp)) elseif traparray[oindex] == 69 ; "log(1/n^2)" ; distance = sfuncamp[oindex] * log(1/sqr(sfuncfreq[oindex] * ftemp)) elseif traparray[oindex] == 70 ; "log(-1/n^2)" ; distance = sfuncamp[oindex] * log(-1/sqr(sfuncfreq[oindex] * ftemp)) elseif traparray[oindex] == 71 ; "log log" ; distance = sfuncamp[oindex] * log( log(sfuncfreq[oindex] * ftemp) ) elseif traparray[oindex] == 72 ; "exp(exp)" ; distance = sfuncamp[oindex] * exp( exp(sfuncfreq[oindex] * ftemp) ) elseif traparray[oindex] == 73 ; "n^n" ; distance = sfuncamp[oindex] * ftemp^ftemp elseif traparray[oindex] == 74 ; "n^n^n" ; distance = sfuncamp[oindex] * ftemp^(ftemp^ftemp) elseif traparray[oindex] == 75 ; "constant^n" ; distance = sfuncamp[oindex] * sfuncbase[oindex]^ftemp elseif traparray[oindex] == 76 ; "constant^n^n" ; distance = sfuncamp[oindex] * sfuncbase[oindex]^(ftemp^ftemp) endif ; traparray[] if cartsmooth[oindex] < 0.99 || cartsmooth[oindex] > 1.01 distance = distance^cartsmooth[oindex] endif ; cartsmooth[] distcorrection = cabs(ztemp) + distance result[oindex] = distcorrection * exp(flip(tempangleB)) tempxx[oindex] = real(result[oindex]) tempyy[oindex] = imag(result[oindex]) else ; treat 'simple function' as "complex" if (oindex == 1) && @twotrapstrue && @tworotations ztemp = zinputT2 else ztemp = zinput endif ; oindex == 1 if traparray[oindex] == 0 ; "cosine" result[oindex] = sfuncamp[oindex] * cos(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 1 ; "tangent" result[oindex] = sfuncamp[oindex] * tan(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 2 ; "sine" result[oindex] = sfuncamp[oindex] * sin(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 3 ; "cot" result[oindex] = sfuncamp[oindex] * cotan(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 4 ; "sec" result[oindex] = sfuncamp[oindex] * 1/cos(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 5 ; "csc" result[oindex] = sfuncamp[oindex] * 1/sin(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 6 ; "ver" result[oindex] = sfuncamp[oindex] * (1 - cos(sfuncfreq[oindex] * ztemp)) elseif traparray[oindex] == 7 ; "vcs" result[oindex] = sfuncamp[oindex] * (1 + cos(sfuncfreq[oindex] * ztemp)) elseif traparray[oindex] == 8 ; "cvs" result[oindex] = sfuncamp[oindex] * (1 - sin(sfuncfreq[oindex] * ztemp)) elseif traparray[oindex] == 9 ; "cvc" result[oindex] = sfuncamp[oindex] * (1 + sin(sfuncfreq[oindex] * ztemp)) elseif traparray[oindex] == 10 ; "exs" result[oindex] = sfuncamp[oindex] / cos(sfuncfreq[oindex] * ztemp) - 1 elseif traparray[oindex] == 11 ; "exc" result[oindex] = sfuncamp[oindex] / sin(sfuncfreq[oindex] * ztemp) - 1 elseif traparray[oindex] == 12 ; "crd" result[oindex] = sfuncamp[oindex] * 2 * sin(sfuncfreq[oindex] * ztemp/2) elseif traparray[oindex] == 13 ; "asin" result[oindex] = sfuncamp[oindex] * asin(sfuncfreq[oindex] * ztemp - trunc(sfuncfreq[oindex] * ztemp)) elseif traparray[oindex] == 14 ; "acos" result[oindex] = sfuncamp[oindex] * acos(sfuncfreq[oindex] * ztemp - trunc(sfuncfreq[oindex] * ztemp)) elseif traparray[oindex] == 15 ; "atan" result[oindex] = sfuncamp[oindex] * atan(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 16 ; "acot" result[oindex] = sfuncamp[oindex] * halfpi - atan(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 17 ; "asec" result[oindex] = sfuncamp[oindex] * acos(1/ztemp - trunc(1/ztemp)) elseif traparray[oindex] == 18 ; "acsc" result[oindex] = sfuncamp[oindex] * asin(1/ztemp - trunc(1/ztemp)) elseif traparray[oindex] == 19 ; "aver" result[oindex] = sfuncamp[oindex] * acos(1 - ztemp - trunc(1-ztemp)) elseif traparray[oindex] == 20 ; "avcs" result[oindex] = sfuncamp[oindex] * acos(1 + ztemp - trunc(1+ztemp)) elseif traparray[oindex] == 21 ; "acvs" result[oindex] = sfuncamp[oindex] * asin(1 - ztemp - trunc(1-ztemp)) elseif traparray[oindex] == 22 ; "acvc" result[oindex] = sfuncamp[oindex] * asin(1 + ztemp - trunc(1+ztemp)) elseif traparray[oindex] == 23 ; "aexs" result[oindex] = sfuncamp[oindex] * acos( (1/(ztemp+1)) - trunc( (1/(ztemp+1)) ) ) elseif traparray[oindex] == 24 ; "aexc" result[oindex] = sfuncamp[oindex] * asin( (1/(ztemp+1)) - trunc( (1/(ztemp+1)) ) ) elseif traparray[oindex] == 25 ; "acrd" result[oindex] = sfuncamp[oindex] * 2 * asin( ztemp/2 - trunc(ztemp/2) ) elseif traparray[oindex] == 26 ; "exp" result[oindex] = sfuncamp[oindex] * exp(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 27 ; "exp(-z)" result[oindex] = sfuncamp[oindex] * exp(-sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 28 ; "exp(1/z)" result[oindex] = sfuncamp[oindex] * exp(1/(sfuncfreq[oindex] * ztemp)) elseif traparray[oindex] == 29 ; "exp(-1/z)" result[oindex] = sfuncamp[oindex] * exp(-1/(sfuncfreq[oindex] * ztemp)) elseif traparray[oindex] == 30 ; "exp(z^2)" result[oindex] = sfuncamp[oindex] * exp(sqr(sfuncfreq[oindex] * ztemp)) elseif traparray[oindex] == 31 ; "exp(-z^2)" result[oindex] = sfuncamp[oindex] * exp(-sqr(sfuncfreq[oindex] * ztemp)) elseif traparray[oindex] == 32 ; "exp(1/z^2)" result[oindex] = sfuncamp[oindex] * exp(1/sqr(sfuncfreq[oindex] * ztemp)) elseif traparray[oindex] == 33 ; "exp(-1/z^2)" result[oindex] = sfuncamp[oindex] * exp(-1/sqr(sfuncfreq[oindex] * ztemp)) elseif traparray[oindex] == 34 ; "sinh" result[oindex] = sfuncamp[oindex] * sinh(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 35 ; "asinh" result[oindex] = sfuncamp[oindex] * asinh(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 36 ; "cosh" result[oindex] = sfuncamp[oindex] * cosh(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 37 ; "acosh" result[oindex] = sfuncamp[oindex] * acosh(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 38 ; "tanh" result[oindex] = sfuncamp[oindex] * tanh(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 39 ; "atanh" result[oindex] = sfuncamp[oindex] * atanh(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 40 ; "cotanh" result[oindex] = sfuncamp[oindex] * cotanh(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 41 ; "sqr" result[oindex] = sfuncamp[oindex] * sqr(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 42 ; "sqrt" result[oindex] = sfuncamp[oindex] * sqrt(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 43 ; "power" result[oindex] = sfuncamp[oindex] * tempangle^sfuncpower[oindex] elseif traparray[oindex] == 44 ; "log" result[oindex] = sfuncamp[oindex] * log(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 45 ; "log(-z)" result[oindex] = sfuncamp[oindex] * log(-sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 46 ; "log(1/z)" result[oindex] = sfuncamp[oindex] * log(sfuncfreq[oindex]/ztemp) elseif traparray[oindex] == 47 ; "log(-1/z)" result[oindex] = sfuncamp[oindex] * log(-sfuncfreq[oindex]/ztemp) elseif traparray[oindex] == 48 ; "1/z" result[oindex] = sfuncamp[oindex] * sfuncfreq[oindex]/ztemp elseif traparray[oindex] == 49 ; "absolute value" result[oindex] = sfuncamp[oindex] * abs(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 50 ; "ceiling" result[oindex] = sfuncamp[oindex] * ceil(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 51 ; "floor" result[oindex] = sfuncamp[oindex] * floor(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 52 ; "truncation" result[oindex] = sfuncamp[oindex] * trunc(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 53 ; "rounding" result[oindex] = sfuncamp[oindex] * round(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 54 ; "asin 2" result[oindex] = sfuncamp[oindex] * asin(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 55 ; "acos 2" result[oindex] = sfuncamp[oindex] * acos(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 56 ; "atan 2" result[oindex] = sfuncamp[oindex] * atan2(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 57 ; "acot 2" result[oindex] = sfuncamp[oindex] * halfpi - atan2(sfuncfreq[oindex] * ztemp) elseif traparray[oindex] == 58 ; "asec 2" result[oindex] = sfuncamp[oindex] * acos(1/ztemp) elseif traparray[oindex] == 59 ; "acsc 2" result[oindex] = sfuncamp[oindex] * asin(1/ztemp) elseif traparray[oindex] == 60 ; "aver 2" result[oindex] = sfuncamp[oindex] * acos(1 - ztemp) elseif traparray[oindex] == 61 ; "avcs 2" result[oindex] = sfuncamp[oindex] * acos(1 + ztemp) elseif traparray[oindex] == 62 ; "acvs 2" result[oindex] = sfuncamp[oindex] * asin(1 - ztemp) elseif traparray[oindex] == 63 ; "acvc 2" result[oindex] = sfuncamp[oindex] * asin(1 + ztemp) elseif traparray[oindex] == 64 ; "aexs 2" result[oindex] = sfuncamp[oindex] * acos( (1/(ztemp+1))) elseif traparray[oindex] == 65 ; "aexc 2" result[oindex] = sfuncamp[oindex] * asin( (1/(ztemp+1))) elseif traparray[oindex] == 66 ; "acrd 2" result[oindex] = sfuncamp[oindex] * 2 * asin( ztemp/2 ) elseif traparray[oindex] == 67 ; "log(z^2)" result[oindex] = sfuncamp[oindex] * log(sqr(sfuncfreq[oindex] * ztemp)) elseif traparray[oindex] == 68 ; "log(-z^2)" result[oindex] = sfuncamp[oindex] * log(-sqr(sfuncfreq[oindex] * ztemp)) elseif traparray[oindex] == 69 ; "log(1/z^2)" result[oindex] = sfuncamp[oindex] * log(1/sqr(sfuncfreq[oindex] * ztemp)) elseif traparray[oindex] == 70 ; "log(-1/z^2)" result[oindex] = sfuncamp[oindex] * log(-1/sqr(sfuncfreq[oindex] * ztemp)) elseif traparray[oindex] == 71 ; "log log" result[oindex] = sfuncamp[oindex] * log( log(sfuncfreq[oindex] * ztemp) ) elseif traparray[oindex] == 72 ; "exp(exp)" result[oindex] = sfuncamp[oindex] * exp( exp(sfuncfreq[oindex] * ztemp) ) elseif traparray[oindex] == 73 ; "z^z" result[oindex] = sfuncamp[oindex] * ztemp^ztemp elseif traparray[oindex] == 74 ; "z^z^z" result[oindex] = sfuncamp[oindex] * ztemp^(ztemp^ztemp) elseif traparray[oindex] == 75 ; "constant^z" result[oindex] = sfuncamp[oindex] * sfuncbase[oindex]^ztemp elseif traparray[oindex] == 76 ; "constant^z^z" ; result[oindex] = sfuncamp[oindex] * sfuncbase[oindex]^(ztemp^ztemp) endif ; traparray[] tempxx[oindex] = real(result[oindex]) tempyy[oindex] = imag(result[oindex]) endif ; funcmode[] endif ; trptype[oindex] oindex = oindex + 1 endwhile ; oindex ; ##jj --- OLD trap code resumes HERE ; Use result to calculate the trap point(s) that was(were) identified traptemp = result[0] if @twotrapstrue traptemp2 = result[1] endif ; @twotrapstrue ; If more than one trap was employed, combine the points appropriately, as specified if @twotrapstrue if @twotrapsblend traptemp = @trap1weight*traptemp traptemp2 = @trap2weight*traptemp2 endif ; @trapblend if @trapcombo == "average" tempc = 0.5 * (traptemp + traptemp2) zcombT2 = 0.5 * (zinput + zinputT2) elseif @trapcombo == "sum" tempc = traptemp + traptemp2 zcombT2 = zinput + zinputT2 elseif @trapcombo == "difference" tempc = traptemp - traptemp2 zcombT2 = zinput - zinputT2 elseif @trapcombo == "product" tempc = traptemp * traptemp2 zcombT2 = zinput * zinputT2 elseif @trapcombo == "geom. mean" tempc = sqrt(traptemp * traptemp2) zcombT2 = sqrt(zinput * zinputT2) elseif @trapcombo == "difference 2" tempc = traptemp2 - traptemp zcombT2 = zinputT2 - zinput elseif @trapcombo == "quotient" tempc = traptemp / traptemp2 zcombT2 = zinput / zinputT2 elseif @trapcombo == "quotient 2" tempc = traptemp2 / traptemp zcombT2 = zinputT2 / zinput elseif @trapcombo == "exponential 1" tempc = traptemp ^ traptemp2 zcombT2 = zinput ^ zinputT2 elseif @trapcombo == "exponential 2" tempc = traptemp2 ^ traptemp zcombT2 = zinputT2 ^ zinput elseif @trapcombo == "splice 1" tempc = real(traptemp) + flip(imag(traptemp2)) zcombT2 = real(zinput) + flip(imag(zinputT2)) elseif @trapcombo == "splice 2" tempc = real(traptemp2) + flip(imag(traptemp)) zcombT2 = real(zinputT2) + flip(imag(zinput)) elseif @trapcombo == "product 2" tempc = real(traptemp)*real(traptemp2) + flip(imag(traptemp)*imag(traptemp2)) zcombT2 = real(zinput)*real(zinputT2) + flip(imag(zinput)*imag(zinputT2)) elseif @trapcombo == "quotient 3" tempc = real(traptemp)/real(traptemp2) + flip(imag(traptemp)/imag(traptemp2)) zcombT2 = real(zinput)/real(zinputT2) + flip(imag(zinput)/imag(zinputT2)) elseif @trapcombo == "splice 3" tempc = real(traptemp)*imag(traptemp) + flip(real(traptemp2)*imag(traptemp2)) zcombT2 = real(zinput)*imag(zinput) + flip(real(zinputT2)*imag(zinputT2)) elseif @trapcombo == "splice 4" tempc = real(traptemp)*imag(traptemp2) + flip(real(traptemp2)*imag(traptemp)) zcombT2 = real(zinput)*imag(zinputT2) + flip(real(zinputT2)*imag(zinput)) elseif @trapcombo == "splice 5" tempc = real(traptemp2)*imag(traptemp2) + flip(real(traptemp)*imag(traptemp)) zcombT2 = real(zinputT2)*imag(zinputT2) + flip(real(zinput)*imag(zinput)) elseif @trapcombo == "splice 6" tempc = real(traptemp2)*imag(traptemp) + flip(real(traptemp)*imag(traptemp2)) zcombT2 = real(zinputT2)*imag(zinput) + flip(real(zinput)*imag(zinputT2)) elseif @trapcombo == "splice 7" tempc = real(traptemp)*real(traptemp) + flip(imag(traptemp2)) zcombT2 = real(zinput)*real(zinput) + flip(imag(zinputT2)) elseif @trapcombo == "splice 8" tempc = real(traptemp2)*real(traptemp2) + flip(imag(traptemp)) zcombT2 = real(zinputT2)*real(zinputT2) + flip(imag(zinput)) elseif @trapcombo == "splice 9" tempc = real(traptemp) + flip(imag(traptemp2)*imag(traptemp2)) zcombT2 = real(zinput) + flip(imag(zinputT2)*imag(zinputT2)) elseif @trapcombo == "splice 10" tempc = real(traptemp2) + flip(imag(traptemp)*imag(traptemp)) zcombT2 = real(zinputT2) + flip(imag(zinput)*imag(zinput)) elseif @trapcombo == "splice 11" tempc = real(traptemp)*real(traptemp) + flip(imag(traptemp2)*imag(traptemp2)) zcombT2 = real(zinput)*real(zinput) + flip(imag(zinputT2)*imag(zinputT2)) elseif @trapcombo == "splice 12" tempc = real(traptemp2)*real(traptemp2) + flip(imag(traptemp)*imag(traptemp)) zcombT2 = real(zinputT2)*real(zinputT2) + flip(imag(zinput)*imag(zinput)) elseif @trapcombo == "nearest" if cabs(traptemp - zinput) < cabs(traptemp2 - zinputT2) tempc = traptemp zcombT2 = zinput else tempc = traptemp2 zcombT2 = zinputT2 endif ; cabs() elseif @trapcombo == "farthest" if cabs(traptemp - zinput) > cabs(traptemp2 - zinputT2) tempc = traptemp zcombT2 = zinput else tempc = traptemp2 zcombT2 = zinputT2 endif ; cabs() elseif @trapcombo == "nearest 2" if cabs(traptemp - #z) < cabs(traptemp2 - #z) tempc = traptemp zcombT2 = zinput else tempc = traptemp2 zcombT2 = zinputT2 endif ; cabs() elseif @trapcombo == "farthest 2" if cabs(traptemp - #z) > cabs(traptemp2 - #z) tempc = traptemp zcombT2 = zinput else tempc = traptemp2 zcombT2 = zinputT2 endif ; cabs() elseif @trapcombo == "largest" if cabs(traptemp) > cabs(traptemp2) tempc = traptemp zcombT2 = zinput else tempc = traptemp2 zcombT2 = zinputT2 endif ; cabs() elseif @trapcombo == "smallest" if cabs(traptemp) < cabs(traptemp2) tempc = traptemp zcombT2 = zinput else tempc = traptemp2 zcombT2 = zinputT2 endif ; cabs() elseif @trapcombo == "A^2+B^2" tempc = traptemp*traptemp + traptemp2*traptemp2 zcombT2 = zinput*zinput + zinputT2*zinputT2 elseif @trapcombo == "A^2-B^2" tempc = traptemp*traptemp - traptemp2*traptemp2 zcombT2 = zinput*zinput - zinputT2*zinputT2 elseif @trapcombo == "B^2-A^2" tempc = traptemp2*traptemp2 - traptemp*traptemp zcombT2 = zinputT2*zinputT2 - zinput*zinput elseif @trapcombo == "A^3+B^3" tempc = traptemp*traptemp*traptemp + traptemp2*traptemp2*traptemp2 zcombT2 = zinput*zinput*zinput + zinputT2*zinputT2*zinputT2 elseif @trapcombo == "A^3-B^3" tempc = traptemp*traptemp*traptemp - traptemp2*traptemp2*traptemp2 zcombT2 = zinput*zinput*zinput - zinputT2*zinputT2*zinputT2 elseif @trapcombo == "B^3-A^3" tempc = traptemp2*traptemp2*traptemp2 - traptemp*traptemp*traptemp zcombT2 = zinputT2*zinputT2*zinputT2 - zinput*zinput*zinput elseif @trapcombo == "cyclical" if iter % @trapcycle == 0 tempc = traptemp2 zcombT2 = zinputT2 else tempc = traptemp zcombT2 = zinput endif ; iter elseif @trapcombo == "cyclical 2" if iter % @trapcycle == 0 tempc = traptemp zcombT2 = zinput else tempc = traptemp2 zcombT2 = zinputT2 endif ; iter elseif @trapcombo == "|A+B|" tempc = abs(traptemp+traptemp2) zcombT2 = abs(zinput+zinputT2) elseif @trapcombo == "|A-B|" tempc = abs(traptemp-traptemp2) zcombT2 = abs(zinput-zinputT2) elseif @trapcombo == "|A^2+B^2|" tempc = abs(traptemp*traptemp + traptemp2*traptemp2) zcombT2 = abs(zinput*zinput + zinputT2*zinputT2) elseif @trapcombo == "|A^2-B^2|" tempc = abs(traptemp*traptemp - traptemp2*traptemp2) zcombT2 = abs(zinput*zinput - zinputT2*zinputT2) elseif @trapcombo == "|A^3+B^3|" tempc = abs(traptemp*traptemp*traptemp + traptemp2*traptemp2*traptemp2) zcombT2 = abs(zinput*zinput*zinput + zinputT2*zinputT2*zinputT2) elseif @trapcombo == "|A^3-B^3|" tempc = abs(traptemp*traptemp*traptemp - traptemp2*traptemp2*traptemp2) zcombT2 = abs(zinput*zinput*zinput - zinputT2*zinputT2*zinputT2) elseif @trapcombo == "real(z)" if real(zinput) > 0 tempc = traptemp zcombT2 = zinput else tempc = traptemp2 zcombT2 = zinputT2 endif ; real() elseif @trapcombo == "real(z) 2" if real(zinput) > 0 tempc = traptemp2 zcombT2 = zinputT2 else tempc = traptemp zcombT2 = zinput endif ; real() elseif @trapcombo == "real(z) 3" if real(#z) > 0 tempc = traptemp zcombT2 = zinput else tempc = traptemp2 zcombT2 = zinputT2 endif ; real() elseif @trapcombo == "real(z) 4" if real(#z) > 0 tempc = traptemp2 zcombT2 = zinputT2 else tempc = traptemp zcombT2 = zinput endif ; real() elseif @trapcombo == "imag(z)" if imag(zinput) > 0 tempc = traptemp zcombT2 = zinput else tempc = traptemp2 zcombT2 = zinputT2 endif ; imag() elseif @trapcombo == "imag(z) 2" if imag(zinput) > 0 tempc = traptemp2 zcombT2 = zinputT2 else tempc = traptemp zcombT2 = zinput endif ; imag() elseif @trapcombo == "imag(z) 3" if imag(#z) > 0 tempc = traptemp zcombT2 = zinput else tempc = traptemp2 zcombT2 = zinputT2 endif ; imag() elseif @trapcombo == "imag(z) 4" if imag(#z) > 0 tempc = traptemp2 zcombT2 = zinputT2 else tempc = traptemp zcombT2 = zinput endif ; imag() elseif @trapcombo == "quotient 4" tempc = real(traptemp2)/real(traptemp) + flip(imag(traptemp2)/imag(traptemp)) zcombT2 = real(zinputT2)/real(zinput) + flip(imag(zinputT2)/imag(zinput)) elseif @trapcombo == "quotient 5" tempc = real(traptemp)/imag(traptemp) + flip(real(traptemp2)/imag(traptemp2)) zcombT2 = real(zinput)/imag(zinput) + flip(real(zinputT2)/imag(zinputT2)) elseif @trapcombo == "quotient 6" tempc = imag(traptemp)/real(traptemp) + flip(imag(traptemp2)/real(traptemp2)) zcombT2 = imag(zinput)/real(zinput) + flip(imag(zinputT2)/real(zinputT2)) elseif @trapcombo == "quotient 7" tempc = real(traptemp)/imag(traptemp2) + flip(real(traptemp2)/imag(traptemp)) zcombT2 = real(zinput)/imag(zinputT2) + flip(real(zinputT2)/imag(zinput)) elseif @trapcombo == "quotient 8" tempc = imag(traptemp2)/real(traptemp) + flip(imag(traptemp)/real(traptemp2)) zcombT2 = imag(zinputT2)/real(zinput) + flip(imag(zinput)/real(zinputT2)) elseif @trapcombo == "quotient 9" tempc = real(traptemp)/real(traptemp2) + flip(imag(traptemp2)/imag(traptemp)) zcombT2 = real(zinput)/real(zinputT2) + flip(imag(zinputT2)/imag(zinput)) elseif @trapcombo == "quotient 10" tempc = real(traptemp2)/real(traptemp) + flip(imag(traptemp)/imag(traptemp2)) zcombT2 = real(zinputT2)/real(zinput) + flip(imag(zinput)/imag(zinputT2)) elseif @trapcombo == "quotient 11" tempc = real(traptemp)/imag(traptemp) + flip(imag(traptemp2)/real(traptemp2)) zcombT2 = real(zinput)/imag(zinput) + flip(imag(zinputT2)/real(zinputT2)) elseif @trapcombo == "quotient 12" tempc = imag(traptemp)/real(traptemp) + flip(real(traptemp2)/imag(traptemp2)) zcombT2 = imag(zinput)/real(zinput) + flip(real(zinputT2)/imag(zinputT2)) elseif @trapcombo == "quotient 13" tempc = real(traptemp)/imag(traptemp2) + flip(imag(traptemp)/real(traptemp2)) zcombT2 = real(zinput)/imag(zinputT2) + flip(imag(zinput)/real(zinputT2)) elseif @trapcombo == "quotient 14" tempc = imag(traptemp2)/real(traptemp) + flip(real(traptemp2)/imag(traptemp)) zcombT2 = imag(zinputT2)/real(zinput) + flip(real(zinputT2)/imag(zinput)) elseif @trapcombo == "exponential 3" tempc = real(traptemp)^real(traptemp2) + flip(imag(traptemp)^imag(traptemp2)) zcombT2 = real(zinput)^real(zinputT2) + flip(imag(zinput)^imag(zinputT2)) elseif @trapcombo == "exponential 4" tempc = real(traptemp2)^real(traptemp) + flip(imag(traptemp2)^imag(traptemp)) zcombT2 = real(zinputT2)^real(zinput) + flip(imag(zinputT2)^imag(zinput)) elseif @trapcombo == "exponential 5" tempc = real(traptemp)^imag(traptemp) + flip(real(traptemp2)^imag(traptemp2)) zcombT2 = real(zinput)^imag(zinput) + flip(real(zinputT2)^imag(zinputT2)) elseif @trapcombo == "exponential 6" tempc = imag(traptemp)^real(traptemp) + flip(imag(traptemp2)^real(traptemp2)) zcombT2 = imag(zinput)^real(zinput) + flip(imag(zinputT2)^real(zinputT2)) elseif @trapcombo == "exponential 7" tempc = real(traptemp)^imag(traptemp2) + flip(real(traptemp2)^imag(traptemp)) zcombT2 = real(zinput)^imag(zinputT2) + flip(real(zinputT2)^imag(zinput)) elseif @trapcombo == "exponential 8" tempc = imag(traptemp2)^real(traptemp) + flip(imag(traptemp)^real(traptemp2)) zcombT2 = imag(zinputT2)^real(zinput) + flip(imag(zinput)^real(zinputT2)) elseif @trapcombo == "exponential 9" tempc = real(traptemp)^real(traptemp2) + flip(imag(traptemp2)^imag(traptemp)) zcombT2 = real(zinput)^real(zinputT2) + flip(imag(zinputT2)^imag(zinput)) elseif @trapcombo == "exponential 10" tempc = real(traptemp2)^real(traptemp) + flip(imag(traptemp)^imag(traptemp2)) zcombT2 = real(zinputT2)^real(zinput) + flip(imag(zinput)^imag(zinputT2)) elseif @trapcombo == "exponential 11" tempc = real(traptemp)^imag(traptemp) + flip(imag(traptemp2)^real(traptemp2)) zcombT2 = real(zinput)^imag(zinput) + flip(imag(zinputT2)^real(zinputT2)) elseif @trapcombo == "exponential 12" tempc = imag(traptemp)^real(traptemp) + flip(real(traptemp2)^imag(traptemp2)) zcombT2 = imag(zinput)^real(zinput) + flip(real(zinputT2)^imag(zinputT2)) elseif @trapcombo == "exponential 13" tempc = real(traptemp)^imag(traptemp2) + flip(imag(traptemp)^real(traptemp2)) zcombT2 = real(zinput)^imag(zinputT2) + flip(imag(zinput)^real(zinputT2)) elseif @trapcombo == "exponential 14" tempc = imag(traptemp2)^real(traptemp) + flip(real(traptemp2)^imag(traptemp)) zcombT2 = imag(zinputT2)^real(zinput) + flip(real(zinputT2)^imag(zinput)) elseif @trapcombo == "compare real 1" if real(traptemp) > real(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare real 2" if real(traptemp) < real(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare real 3" if abs(real(traptemp)) > abs(real(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare real 4" if abs(real(traptemp)) < abs(real(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare imag 1" if imag(traptemp) > imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; imag() elseif @trapcombo == "compare imag 2" if imag(traptemp) < imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; imag() elseif @trapcombo == "compare imag 3" if abs(imag(traptemp)) > abs(imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare imag 4" if abs(imag(traptemp)) < abs(imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "cross compare 1" if real(traptemp) > imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "cross compare 2" if real(traptemp) < imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "cross compare 3" if abs(real(traptemp)) > abs(imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "cross compare 4" if abs(real(traptemp)) < abs(imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare sum 1" if real(traptemp) + imag(traptemp) > real(traptemp2) + imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare sum 2" if real(traptemp) + imag(traptemp) < real(traptemp2) + imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare sum 3" if abs(real(traptemp) + imag(traptemp)) > abs(real(traptemp2) + imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare sum 4" if abs(real(traptemp) + imag(traptemp)) < abs(real(traptemp2) + imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare sum 5" if abs(real(traptemp)) + abs(imag(traptemp)) > abs(real(traptemp2)) + abs(imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare sum 6" if abs(real(traptemp)) + abs(imag(traptemp)) < abs(real(traptemp2)) + abs(imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare sum 7" if real(traptemp) + real(traptemp2) > imag(traptemp) + imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare sum 8" if real(traptemp) + real(traptemp2) < imag(traptemp) + imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare sum 9" if abs(real(traptemp) + real(traptemp2)) > abs(imag(traptemp) + imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare sum 10" if abs(real(traptemp) + real(traptemp2)) < abs(imag(traptemp) + imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare sum 11" if abs(real(traptemp)) + abs(real(traptemp2)) > abs(imag(traptemp)) + abs(imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare sum 12" if abs(real(traptemp)) + abs(real(traptemp2)) < abs(imag(traptemp)) + abs(imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 1" if real(traptemp) - imag(traptemp) > real(traptemp2) - imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 2" if real(traptemp) - imag(traptemp) < real(traptemp2) - imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 3" if abs(real(traptemp) - imag(traptemp)) > abs(real(traptemp2) - imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 4" if abs(real(traptemp) - imag(traptemp)) < abs(real(traptemp2) - imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 5" if abs(real(traptemp)) - abs(imag(traptemp)) > abs(real(traptemp2)) - abs(imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 6" if abs(real(traptemp)) - abs(imag(traptemp)) < abs(real(traptemp2)) - abs(imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 7" if imag(traptemp) - real(traptemp) > imag(traptemp2) - real(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 8" if imag(traptemp) - real(traptemp) < imag(traptemp2) - real(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 9" if abs(imag(traptemp)) - abs(real(traptemp)) > abs(imag(traptemp2)) - abs(real(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 10" if abs(imag(traptemp)) - abs(real(traptemp)) < abs(imag(traptemp2)) - abs(real(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 11" if real(traptemp) - real(traptemp2) > imag(traptemp) - imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 12" if real(traptemp) - real(traptemp2) < imag(traptemp) - imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 13" if abs(real(traptemp) - real(traptemp2)) > abs(imag(traptemp) - imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 14" if abs(real(traptemp) - real(traptemp2)) < abs(imag(traptemp) - imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 15" if abs(real(traptemp)) - abs(real(traptemp2)) > abs(imag(traptemp)) - abs(imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 16" if abs(real(traptemp)) - abs(real(traptemp2)) < abs(imag(traptemp)) - abs(imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 17" if imag(traptemp) - imag(traptemp2) > real(traptemp) - real(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 18" if imag(traptemp) - imag(traptemp2) < real(traptemp) - real(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 19" if abs(imag(traptemp)) - abs(imag(traptemp2)) > abs(real(traptemp)) - abs(real(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare difference 20" if abs(imag(traptemp)) - abs(imag(traptemp2)) < abs(real(traptemp)) - abs(real(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare product 1" if real(traptemp) * imag(traptemp) > real(traptemp2) * imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare product 2" if real(traptemp) * imag(traptemp) < real(traptemp2) * imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare product 3" if abs(real(traptemp) * imag(traptemp)) > abs(real(traptemp2) * imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare product 4" if abs(real(traptemp) * imag(traptemp)) < abs(real(traptemp2) * imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare product 5" if real(traptemp) * real(traptemp2) > imag(traptemp) * imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare product 6" if real(traptemp) * real(traptemp2) < imag(traptemp) * imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare product 7" if abs(real(traptemp) * real(traptemp2)) > abs(imag(traptemp) * imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare product 8" if abs(real(traptemp) * real(traptemp2)) < abs(imag(traptemp) * imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare quotient 1" if real(traptemp) / imag(traptemp) > real(traptemp2) / imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare quotient 2" if real(traptemp) / imag(traptemp) < real(traptemp2) / imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare quotient 3" if abs(real(traptemp) / imag(traptemp)) > abs(real(traptemp2) / imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare quotient 4" if abs(real(traptemp) / imag(traptemp)) < abs(real(traptemp2) / imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare quotient 5" if imag(traptemp) / real(traptemp) > imag(traptemp2) / real(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare quotient 6" if imag(traptemp) / real(traptemp) < imag(traptemp2) / real(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare quotient 7" if abs(imag(traptemp) / real(traptemp)) > abs(imag(traptemp2) / real(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare quotient 8" if abs(imag(traptemp) / real(traptemp)) < abs(imag(traptemp2) / real(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare quotient 9" if real(traptemp) / real(traptemp2) > imag(traptemp) / imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare quotient 10" if real(traptemp) / real(traptemp2) < imag(traptemp) / imag(traptemp2) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare quotient 11" if abs(real(traptemp) / real(traptemp2)) > abs(imag(traptemp) / imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "compare quotient 12" if abs(real(traptemp) / real(traptemp2)) < abs(imag(traptemp) / imag(traptemp2)) tempc = traptemp else tempc = traptemp2 endif ; real() elseif @trapcombo == "trap 1 only" tempc = traptemp zcombT2 = zinput elseif @trapcombo == "trap 2 only" tempc = traptemp2 zcombT2 = zinputT2 endif ; @trapcombo else tempc = traptemp zcombT2 = zinput endif ; @twotrapstrue if @tattractbias tempc = (@tattrprod*(tempc + @tattraddend))^@tattrexponent endif ; @trapbias ; 2nd attractor routine (trap attractors) if @tattractor if @tattractmartin ztemp2 = tempc tempx = real(tempc) * real(@tmartinscale) tempy = imag(tempc) * imag(@tmartinscale) ftemp = tempx index = 0 while index < @tmartiniters if @tattractorfix ftemp = tempx endif ; @tattractorfix tempx = tempy - sin(tempx) tempy = @tmartinparam - ftemp index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtmartin tempc = @tmartinfraction * tempc + tmartincomp * ztemp2 endif ; @blendtmartin endif ; @tattractmartin if @tattractcosmartin ztemp2 = tempc tempx = real(tempc) * real(@tcosmartinscale) tempy = imag(tempc) * imag(@tcosmartinscale) ftemp = tempx index = 0 while index < @tcosmartiniters if @tattractorfix ftemp = tempx endif ; @tattractorfix tempx = tempy - sin(tempx) tempy = @tcosmartinparam - ftemp index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtcosmartin tempc = @tcosmartinfraction * tempc + tcosmartincomp * ztemp2 endif ; @blendtcosmartin endif ; @tattractcosmartin if @tattractpopcorn ztemp2 = tempc tempx = real(tempc) * real(@tpopcornscale) tempy = imag(tempc) * imag(@tpopcornscale) ftemp = tempx index = 0 while index < @tpopcorniters if @tattractorfix ftemp = tempx endif ; @tattractorfix tempx = tempx - real(@tpopcornparam1)*sin(tempy + tan(real(@tpopcornparam2)*tempy)) tempy = tempy - imag(@tpopcornparam1)*sin(ftemp + tan(imag(@tpopcornparam2)*ftemp)) index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtpopcorn tempc = @tpopcornfraction * tempc + tpopcorncomp * ztemp2 endif ; @blendtpopcorn endif ; @tattractpopcorn if @tattractvine ztemp2 = tempc tempx = real(tempc) * real(@tvinescale) tempy = imag(tempc) * imag(@tvinescale) ftemp = tempx index = 0 while index < @tvineiters if @tattractorfix ftemp = tempx endif ; @tattractorfix tempx = tempx - real(@tvineparam1)*sin(tempy + sin(real(@tvineparam2)*tempy)) tempy = tempy + imag(@tvineparam1)*sin(ftemp + sin(imag(@tvineparam2)*ftemp)) index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtvine tempc = @tvinefraction * tempc + tvinecomp * ztemp2 endif ; @blendtvine endif ; @tattractvine if @tattractvine2 ztemp2 = tempc tempx = real(tempc) * real(@tvine2scale) tempy = imag(tempc) * imag(@tvine2scale) ftemp = tempx index = 0 while index < @tvine2iters if @tattractorfix ftemp = tempx endif ; @tattractorfix tempx = tempx - real(@tvine2param1)*sin(tempy^real(@tvine2exp1) + sin(real(@tvine2param2)*tempy)) tempy = tempy + imag(@tvine2param1)*sin(ftemp^imag(@tvine2exp1) + sin(imag(@tvine2param2)*ftemp)) index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtvine2 tempc = @tvine2fraction * tempc + tvine2comp * ztemp2 endif ; @blendtvine2 endif ; @tattractvine2 if @tattractquadruptwo ztemp2 = tempc tempx = real(tempc) * real(@tquadruptwoscale) tempy = imag(tempc) * imag(@tquadruptwoscale) ftemp = tempx index = 0 while index < @tquadruptwoiters if @tattractorfix ftemp = tempx endif ; @tattractorfix if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * sin(log(abs(imag(@tquadruptwoparam1)*tempx-real(@tquadruptwoparam2)))) \ * atan((log(abs(real(@tquadruptwoparam2)*tempx-imag(@tquadruptwoparam1)))^(imag(@tquadruptwoparam2)))) tempy = real(@tquadruptwoparam1) - ftemp else tempx = tempy - sin(log(abs(imag(@tquadruptwoparam1)*tempx-real(@tquadruptwoparam2)))) \ * atan((log(abs(real(@tquadruptwoparam2)*tempx-imag(@tquadruptwoparam1)))^(imag(@tquadruptwoparam2)))) tempy = real(@tquadruptwoparam1) - ftemp endif ; tempx index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtquadruptwo tempc = @tquadruptwofraction * tempc + tquadruptwocomp * ztemp2 endif ; @blendtquadruptwo endif ; @tattractquadruptwo if @tattractthreeply ztemp2 = tempc tempx = real(tempc) * real(@tthreeplyscale) tempy = imag(tempc) * imag(@tthreeplyscale) ftemp = tempx index = 0 while index < @tthreeplyiters if @tattractorfix ftemp = tempx endif ; @tattractorfix if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * (abs(sin(tempx)*cos(imag(@tthreeplyparam1)) + real(@tthreeplyparam2) \ - tempx*sin(real(@tthreeplyparam1)+imag(@tthreeplyparam1)+real(@tthreeplyparam2)))) tempy = real(@tthreeplyparam1) - imag(@tthreeplyparam2)*ftemp else tempx = tempy - (abs(sin(tempx)*cos(imag(@tthreeplyparam1)) + real(@tthreeplyparam2) \ - tempx*sin(real(@tthreeplyparam1)+imag(@tthreeplyparam1)+real(@tthreeplyparam2)))) tempy = real(@tthreeplyparam1) - imag(@tthreeplyparam2)*ftemp endif ; tempx index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtthreeply tempc = @tthreeplyfraction * tempc + tthreeplycomp * ztemp2 endif ; @blendtthreeply endif ; @tattractthreeply if @tattracthenon ztemp2 = tempc tempx = real(tempc) * real(@thenonscale) tempy = imag(tempc) * imag(@thenonscale) ftemp = tempx index = 0 while index < @thenoniters if @tattractorfix ftemp = tempx endif ; @tattractorfix tempx = 1.0 + tempy - real(@thenonparam1)*tempx tempy = imag(@thenonparam1)*ftemp index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendthenon tempc = @thenonfraction * tempc + thenoncomp * ztemp2 endif ; @blendthenon endif ; @tattracthenon if @tattracthopalong ztemp2 = tempc tempx = real(tempc) * real(@thopalongscale) tempy = imag(tempc) * imag(@thopalongscale) ftemp = tempx index = 0 while index < @thopalongiters if @tattractorfix ftemp = tempx endif ; @tattractorfix if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * (abs(tempx*imag(@thopalongparam1) - real(@thopalongparam2)))^ \ imag(@thopalongparam2) tempy = real(@thopalongparam1) - ftemp else tempx = tempy - (abs(tempx*imag(@thopalongparam1) - real(@thopalongparam2)))^ \ imag(@thopalongparam2) tempy = real(@thopalongparam1) - ftemp endif ; tempx index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendthopalong tempc = @thopalongfraction * tempc + thopalongcomp * ztemp2 endif ; @blendthopalong endif ; @tattracthopalong if @tattractchip ztemp2 = tempc tempx = real(tempc) * real(@tchipscale) tempy = imag(tempc) * imag(@tchipscale) ftemp = tempx index = 0 while index < @tchipiters if @tattractorfix ftemp = tempx endif ; @tattractorfix if tempx != 0 tempx = tempy - (tempx/abs(tempx)) * cos((log(abs(tempx*imag(@tchipparam1) - real(@tchipparam2)))^ \ imag(@tchipparam2))) tempy = real(@tchipparam1) - ftemp else tempx = tempy - cos((log(abs(tempx*imag(@tchipparam1) - real(@tchipparam2)))^ \ imag(@tchipparam2))) tempy = real(@tchipparam1) - ftemp endif ; tempx index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtchip tempc = @tchipfraction * tempc + tchipcomp * ztemp2 endif ; @blendtchip endif ; @tattractchip if @tattractliar ztemp2 = tempc tempx = real(tempc) * real(@tliarscale) tempy = imag(tempc) * imag(@tliarscale) ftemp = tempx index = 0 while index < @tliariters if @tattractorfix ftemp = tempx endif ; @tattractorfix if (real(tempx+flip(tempc))) < real(@tliarparam1) tempx = imag(@tliarparam1) - abs(tempy-tempx) tempy = imag(@tliarparam2)*abs(real(@tliarparam2)-ftemp-tempy) endif ; real() index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtliar tempc = @tliarfraction * tempc + tliarcomp * ztemp2 endif ; @blendtliar endif ; @tattractliar if @tattractgingerbread ztemp2 = tempc tempx = real(tempc) * real(@tgingerbreadscale) tempy = imag(tempc) * imag(@tgingerbreadscale) ftemp = tempx index = 0 while index < @tgingerbreaditers if @tattractorfix ftemp = tempx endif ; @tattractorfix tempx = 1.0 - tempy + real(@tgingerbreadparam1)*abs(tempx) tempy = imag(@tgingerbreadparam1)*ftemp index = index + 1 endwhile ; index tempc = tempx + flip(tempy) if @blendtgingerbread tempc = @tgingerbreadfraction * tempc + tgingerbreadcomp * ztemp2 endif ; @blendtgingerbread endif ; @tattractgingerbread endif ; @tattractor if @trapbias tempc = (@tbprod*(tempc + @tbaddend))^@tbexponent endif ; @trapbias ; trap history code, part 1 if @thistory ; update original trap history array with the new trap point maxindex = 0, index = 9 while index > maxindex index2 = index-1 thist[0,index] = thist[0,index2] index = index2 endwhile ; index thist[0,0] = tempc if (@thismode == "alternative") || (@thismode == "both") if @thistype2 == 1 tempc = thist[@trapmixmatch3,1] elseif @thistype2 == 2 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,1])) elseif @thistype2 == 3 tempc = real(thist[@trapmixmatch3,1]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 4 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,1] elseif @thistype2 == 5 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,1]) elseif @thistype2 == 6 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,1])) elseif @thistype2 == 7 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,1] elseif @thistype2 == 8 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,1]) elseif @thistype2 == 9 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,1])) elseif @thistype2 == 10 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,1] elseif @thistype2 == 11 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,1]) elseif @thistype2 == 12 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,1])) elseif @thistype2 == 13 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,1] elseif @thistype2 == 14 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,1] elseif @thistype2 == 15 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,1] elseif @thistype2 == 16 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,1] elseif @thistype2 == 17 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,1] elseif @thistype2 == 18 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,1] elseif @thistype2 == 19 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,1])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 20 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,1])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 21 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,1])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 22 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,1])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 23 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,1])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 24 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,1])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 25 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,1])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 26 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,1])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 27 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,1])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 28 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,1])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 29 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,1])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 30 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,1])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 31 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,1])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 32 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,1])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 33 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,1])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,1]))) elseif @thistype2 == 34 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,1])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 35 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,1])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 36 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,1])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,1]))) elseif @thistype2 == 37 tempc = thist[@trapmixmatch3,2] elseif @thistype2 == 38 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,2])) elseif @thistype2 == 39 tempc = real(thist[@trapmixmatch3,2]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 40 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,2] elseif @thistype2 == 41 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,2]) elseif @thistype2 == 42 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,2])) elseif @thistype2 == 43 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,2] elseif @thistype2 == 44 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,2]) elseif @thistype2 == 45 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,2])) elseif @thistype2 == 46 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,2] elseif @thistype2 == 47 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,2]) elseif @thistype2 == 48 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,2])) elseif @thistype2 == 49 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,2] elseif @thistype2 == 50 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,2] elseif @thistype2 == 51 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,2] elseif @thistype2 == 52 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,2] elseif @thistype2 == 53 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,2] elseif @thistype2 == 54 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,2] elseif @thistype2 == 55 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,2])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 56 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,2])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 57 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,2])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 58 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,2])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 59 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,2])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 60 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,2])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 61 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,2])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 62 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,2])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 63 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,2])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 64 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,2])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 65 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,2])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 66 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,2])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 67 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,2])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 68 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,2])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 69 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,2])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,2]))) elseif @thistype2 == 70 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,2])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 71 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,2])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 72 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,2])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,2]))) elseif @thistype2 == 73 tempc = thist[@trapmixmatch3,3] elseif @thistype2 == 74 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,3])) elseif @thistype2 == 75 tempc = real(thist[@trapmixmatch3,3]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 76 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,3] elseif @thistype2 == 77 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,3]) elseif @thistype2 == 78 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,3])) elseif @thistype2 == 79 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,3] elseif @thistype2 == 80 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,3]) elseif @thistype2 == 81 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,3])) elseif @thistype2 == 82 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,3] elseif @thistype2 == 83 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,3]) elseif @thistype2 == 84 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,3])) elseif @thistype2 == 85 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,3] elseif @thistype2 == 86 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,3] elseif @thistype2 == 87 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,3] elseif @thistype2 == 88 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,3] elseif @thistype2 == 89 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,3] elseif @thistype2 == 90 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,3] elseif @thistype2 == 91 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,3])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 92 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,3])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 93 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,3])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 94 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,3])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 95 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,3])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 96 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,3])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 97 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,3])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 98 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,3])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 99 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,3])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 100 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,3])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 101 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,3])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 102 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,3])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 103 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,3])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 104 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,3])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 105 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,3])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,3]))) elseif @thistype2 == 106 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,3])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 107 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,3])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 108 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,3])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,3]))) elseif @thistype2 == 109 tempc = thist[@trapmixmatch3,4] elseif @thistype2 == 110 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,4])) elseif @thistype2 == 111 tempc = real(thist[@trapmixmatch3,4]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 112 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,4] elseif @thistype2 == 113 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,4]) elseif @thistype2 == 114 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,4])) elseif @thistype2 == 115 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,4] elseif @thistype2 == 116 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,4]) elseif @thistype2 == 117 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,4])) elseif @thistype2 == 118 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,4] elseif @thistype2 == 119 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,4]) elseif @thistype2 == 120 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,4])) elseif @thistype2 == 121 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,4] elseif @thistype2 == 122 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,4] elseif @thistype2 == 123 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,4] elseif @thistype2 == 124 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,4] elseif @thistype2 == 125 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,4] elseif @thistype2 == 126 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,4] elseif @thistype2 == 127 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,4])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 128 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,4])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 129 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,4])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 130 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,4])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 131 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,4])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 132 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,4])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 133 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,4])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 134 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,4])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 135 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,4])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 136 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,4])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 137 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,4])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 138 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,4])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 139 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,4])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 140 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,4])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 141 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,4])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,4]))) elseif @thistype2 == 142 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,4])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 143 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,4])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 144 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,4])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,4]))) elseif @thistype2 == 145 tempc = thist[@trapmixmatch3,5] elseif @thistype2 == 146 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,5])) elseif @thistype2 == 147 tempc = real(thist[@trapmixmatch3,5]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 148 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,5] elseif @thistype2 == 149 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,5]) elseif @thistype2 == 150 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,5])) elseif @thistype2 == 151 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,5] elseif @thistype2 == 152 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,5]) elseif @thistype2 == 153 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,5])) elseif @thistype2 == 154 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,5] elseif @thistype2 == 155 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,5]) elseif @thistype2 == 156 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,5])) elseif @thistype2 == 157 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,5] elseif @thistype2 == 158 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,5] elseif @thistype2 == 159 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,5] elseif @thistype2 == 160 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,5] elseif @thistype2 == 161 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,5] elseif @thistype2 == 162 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,5] elseif @thistype2 == 163 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,5])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 164 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,5])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 165 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,5])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 166 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,5])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 167 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,5])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 168 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,5])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 169 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,5])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 170 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,5])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 171 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,5])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 172 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,5])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 173 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,5])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 174 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,5])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 175 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,5])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 176 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,5])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 177 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,5])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,5]))) elseif @thistype2 == 178 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,5])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 179 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,5])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 180 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,5])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,5]))) elseif @thistype2 == 181 tempc = thist[@trapmixmatch3,6] elseif @thistype2 == 182 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,6])) elseif @thistype2 == 183 tempc = real(thist[@trapmixmatch3,6]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 184 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,6] elseif @thistype2 == 185 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,6]) elseif @thistype2 == 186 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,6])) elseif @thistype2 == 187 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,6] elseif @thistype2 == 188 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,6]) elseif @thistype2 == 189 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,6])) elseif @thistype2 == 190 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,6] elseif @thistype2 == 191 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,6]) elseif @thistype2 == 192 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,6])) elseif @thistype2 == 193 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,6] elseif @thistype2 == 194 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,6] elseif @thistype2 == 195 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,6] elseif @thistype2 == 196 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,6] elseif @thistype2 == 197 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,6] elseif @thistype2 == 198 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,6] elseif @thistype2 == 199 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,6])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 200 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,6])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 201 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,6])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 202 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,6])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 203 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,6])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 204 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,6])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 205 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,6])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 206 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,6])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 207 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,6])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 208 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,6])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 209 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,6])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 210 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,6])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 211 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,6])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 212 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,6])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 213 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,6])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,6]))) elseif @thistype2 == 214 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,6])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 215 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,6])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 216 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,6])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,6]))) elseif @thistype2 == 217 tempc = thist[@trapmixmatch3,7] elseif @thistype2 == 218 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,7])) elseif @thistype2 == 219 tempc = real(thist[@trapmixmatch3,7]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 220 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,7] elseif @thistype2 == 221 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,7]) elseif @thistype2 == 222 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,7])) elseif @thistype2 == 223 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,7] elseif @thistype2 == 224 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,7]) elseif @thistype2 == 225 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,7])) elseif @thistype2 == 226 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,7] elseif @thistype2 == 227 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,7]) elseif @thistype2 == 228 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,7])) elseif @thistype2 == 229 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,7] elseif @thistype2 == 230 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,7] elseif @thistype2 == 231 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,7] elseif @thistype2 == 232 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,7] elseif @thistype2 == 233 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,7] elseif @thistype2 == 234 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,7] elseif @thistype2 == 235 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,7])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 236 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,7])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 237 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,7])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 238 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,7])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 239 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,7])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 240 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,7])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 241 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,7])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 242 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,7])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 243 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,7])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 244 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,7])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 245 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,7])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 246 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,7])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 247 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,7])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 248 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,7])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 249 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,7])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,7]))) elseif @thistype2 == 250 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,7])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 251 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,7])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 252 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,7])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,7]))) elseif @thistype2 == 253 tempc = thist[@trapmixmatch3,8] elseif @thistype2 == 254 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,8])) elseif @thistype2 == 255 tempc = real(thist[@trapmixmatch3,8]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 256 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,8] elseif @thistype2 == 257 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,8]) elseif @thistype2 == 258 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,8])) elseif @thistype2 == 259 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,8] elseif @thistype2 == 260 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,8]) elseif @thistype2 == 261 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,8])) elseif @thistype2 == 262 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,8] elseif @thistype2 == 263 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,8]) elseif @thistype2 == 264 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,8])) elseif @thistype2 == 265 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,8] elseif @thistype2 == 266 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,8] elseif @thistype2 == 267 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,8] elseif @thistype2 == 268 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,8] elseif @thistype2 == 269 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,8] elseif @thistype2 == 270 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,8] elseif @thistype2 == 271 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,8])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 272 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,8])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 273 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,8])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 274 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,8])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 275 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,8])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 276 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,8])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 277 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,8])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 278 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,8])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 279 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,8])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 280 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,8])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 281 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,8])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 282 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,8])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 283 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,8])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 284 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,8])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 285 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,8])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,8]))) elseif @thistype2 == 286 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,8])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 287 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,8])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 288 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,8])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,8]))) elseif @thistype2 == 289 tempc = thist[@trapmixmatch3,9] elseif @thistype2 == 290 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + flip(imag(thist[@trapmixmatch3,9])) elseif @thistype2 == 291 tempc = real(thist[@trapmixmatch3,9]) + flip(imag(thist[@trapmixmatch4,@traphisindex2])) elseif @thistype2 == 292 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,9] elseif @thistype2 == 293 tempc = thist[@trapmixmatch4,@traphisindex2] - real(thist[@trapmixmatch3,9]) elseif @thistype2 == 294 tempc = thist[@trapmixmatch4,@traphisindex2] - flip(imag(thist[@trapmixmatch3,9])) elseif @thistype2 == 295 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,9] elseif @thistype2 == 296 tempc = thist[@trapmixmatch4,@traphisindex2] + real(thist[@trapmixmatch3,9]) elseif @thistype2 == 297 tempc = thist[@trapmixmatch4,@traphisindex2] + flip(imag(thist[@trapmixmatch3,9])) elseif @thistype2 == 298 tempc = thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,9] elseif @thistype2 == 299 tempc = thist[@trapmixmatch4,@traphisindex2] * real(thist[@trapmixmatch3,9]) elseif @thistype2 == 300 tempc = thist[@trapmixmatch4,@traphisindex2] * flip(imag(thist[@trapmixmatch3,9])) elseif @thistype2 == 301 tempc = real(thist[@trapmixmatch4,@traphisindex2]) - thist[@trapmixmatch3,9] elseif @thistype2 == 302 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) - thist[@trapmixmatch3,9] elseif @thistype2 == 303 tempc = real(thist[@trapmixmatch4,@traphisindex2]) + thist[@trapmixmatch3,9] elseif @thistype2 == 304 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) + thist[@trapmixmatch3,9] elseif @thistype2 == 305 tempc = real(thist[@trapmixmatch4,@traphisindex2]) * thist[@trapmixmatch3,9] elseif @thistype2 == 306 tempc = flip(imag(thist[@trapmixmatch4,@traphisindex2])) * thist[@trapmixmatch3,9] elseif @thistype2 == 307 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,9])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 308 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,9])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 309 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,9])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 310 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,9])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 311 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,9])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 312 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) * real(thist[@trapmixmatch3,9])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) * imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 313 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,9])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 314 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,9])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 315 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,9])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 316 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,9])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 317 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,9])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 318 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) + real(thist[@trapmixmatch3,9])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) + imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 319 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,9])) + flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 320 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,9])) - flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 321 tempc = (real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,9])) * flip((imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,9]))) elseif @thistype2 == 322 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,9])) + flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 323 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,9])) - flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 324 tempc = (imag(thist[@trapmixmatch4,@traphisindex2]) - real(thist[@trapmixmatch3,9])) * flip((real(thist[@trapmixmatch4,@traphisindex2]) - imag(thist[@trapmixmatch3,9]))) elseif @thistype2 == 325 tempc = thist[@trapmixmatch4,@traphisindex2]/thist[@trapmixmatch3,1] elseif @thistype2 == 326 tempc = thist[@trapmixmatch3,1]/thist[@trapmixmatch4,@traphisindex2] elseif @thistype2 == 327 tempc = thist[@trapmixmatch4,@traphisindex2]^thist[@trapmixmatch3,1] elseif @thistype2 == 328 tempc = thist[@trapmixmatch3,1]^thist[@trapmixmatch4,@traphisindex2] elseif @thistype2 == 329 tempc = thist[@trapmixmatch4,@traphisindex2]/real(thist[@trapmixmatch3,1]) elseif @thistype2 == 330 tempc = thist[@trapmixmatch4,@traphisindex2]/imag(thist[@trapmixmatch3,1]) elseif @thistype2 == 331 tempc = thist[@trapmixmatch3,1]/real(thist[@trapmixmatch4,@traphisindex2]) elseif @thistype2 == 332 tempc = thist[@trapmixmatch3,1]/imag(thist[@trapmixmatch4,@traphisindex2]) elseif @thistype2 == 333 tempc = thist[@trapmixmatch4,@traphisindex2]^real(thist[@trapmixmatch3,1]) elseif @thistype2 == 334 tempc = thist[@trapmixmatch4,@traphisindex2]^imag(thist[@trapmixmatch3,1]) elseif @thistype2 == 335 tempc = thist[@trapmixmatch3,1]^real(thist[@trapmixmatch4,@traphisindex2]) elseif @thistype2 == 336 tempc = thist[@trapmixmatch3,1]^imag(thist[@trapmixmatch4,@traphisindex2]) elseif @thistype2 == 337 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,1] + thist[@trapmixmatch3,2] elseif @thistype2 == 338 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,1] + thist[@trapmixmatch3,2] elseif @thistype2 == 339 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,1] - thist[@trapmixmatch3,2] elseif @thistype2 == 340 tempc = -thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,1] + thist[@trapmixmatch3,2] elseif @thistype2 == 341 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,1] - thist[@trapmixmatch3,2] elseif @thistype2 == 342 tempc = thist[@trapmixmatch4,@traphisindex2] + (thist[@trapmixmatch3,1] * thist[@trapmixmatch3,2]) elseif @thistype2 == 343 tempc = thist[@trapmixmatch4,@traphisindex2] - (thist[@trapmixmatch3,1] * thist[@trapmixmatch3,2]) elseif @thistype2 == 344 tempc = thist[@trapmixmatch3,1] + (thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,2]) elseif @thistype2 == 345 tempc = thist[@trapmixmatch3,1] - (thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,2]) elseif @thistype2 == 346 tempc = thist[@trapmixmatch3,2] + (thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,1]) elseif @thistype2 == 347 tempc = thist[@trapmixmatch3,2] - (thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,1]) elseif @thistype2 == 348 tempc = thist[@trapmixmatch4,@traphisindex2]/thist[@trapmixmatch3,2] elseif @thistype2 == 349 tempc = thist[@trapmixmatch3,2]/thist[@trapmixmatch4,@traphisindex2] elseif @thistype2 == 350 tempc = thist[@trapmixmatch4,@traphisindex2]^thist[@trapmixmatch3,2] elseif @thistype2 == 351 tempc = thist[@trapmixmatch3,2]^thist[@trapmixmatch4,@traphisindex2] elseif @thistype2 == 352 tempc = thist[@trapmixmatch4,@traphisindex2]/real(thist[@trapmixmatch3,2]) elseif @thistype2 == 353 tempc = thist[@trapmixmatch4,@traphisindex2]/imag(thist[@trapmixmatch3,2]) elseif @thistype2 == 354 tempc = thist[@trapmixmatch3,2]/real(thist[@trapmixmatch4,@traphisindex2]) elseif @thistype2 == 355 tempc = thist[@trapmixmatch3,2]/imag(thist[@trapmixmatch4,@traphisindex2]) elseif @thistype2 == 356 tempc = thist[@trapmixmatch4,@traphisindex2]^real(thist[@trapmixmatch3,2]) elseif @thistype2 == 357 tempc = thist[@trapmixmatch4,@traphisindex2]^imag(thist[@trapmixmatch3,2]) elseif @thistype2 == 358 tempc = thist[@trapmixmatch3,2]^real(thist[@trapmixmatch4,@traphisindex2]) elseif @thistype2 == 359 tempc = thist[@trapmixmatch3,2]^imag(thist[@trapmixmatch4,@traphisindex2]) elseif @thistype2 == 360 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,2] + thist[@trapmixmatch3,3] elseif @thistype2 == 361 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,2] + thist[@trapmixmatch3,3] elseif @thistype2 == 362 tempc = thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,2] - thist[@trapmixmatch3,3] elseif @thistype2 == 363 tempc = -thist[@trapmixmatch4,@traphisindex2] + thist[@trapmixmatch3,2] + thist[@trapmixmatch3,3] elseif @thistype2 == 364 tempc = thist[@trapmixmatch4,@traphisindex2] - thist[@trapmixmatch3,2] - thist[@trapmixmatch3,3] elseif @thistype2 == 365 tempc = thist[@trapmixmatch4,@traphisindex2] + (thist[@trapmixmatch3,2] * thist[@trapmixmatch3,3]) elseif @thistype2 == 366 tempc = thist[@trapmixmatch4,@traphisindex2] - (thist[@trapmixmatch3,2] * thist[@trapmixmatch3,3]) elseif @thistype2 == 367 tempc = thist[@trapmixmatch3,2] + (thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,3]) elseif @thistype2 == 368 tempc = thist[@trapmixmatch3,2] - (thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,3]) elseif @thistype2 == 369 tempc = thist[@trapmixmatch3,3] + (thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,2]) elseif @thistype2 == 370 tempc = thist[@trapmixmatch3,3] - (thist[@trapmixmatch4,@traphisindex2] * thist[@trapmixmatch3,2]) else tempc = tempc endif ; thistype2 if @thist2blend tempc = @thist2fraction*tempc + thist2comp*thist[0,0] endif ; @thist2blend endif ; @thismode endif ; @thistory ; end trap history code, part 1 if @absolutet tempc = abs(tempc) endif ; @absolutet if @absoluter6 tempc = abs(real(tempc)) + flip(imag(tempc)) endif ; @absoluter6 if @absolutei6 tempc = real(tempc) + flip(abs(imag(tempc))) endif ; @absolutei6 if @transmutebias tempc = (@tmbprod*(tempc + @tmbaddend))^@tmbexponent endif ; @transmutebias ; Temporarily save untransmuted trap value for possible perturbation traptemp = tempc ; Now transmute the trapped point of the trapping curve if desired tempc = @tiscale * tempc if @transmogrify != 0 if ( @transmogrify == 1 ) tempc = 1/tempc elseif ( @transmogrify == 2 ) tempc = tempc * tempc elseif ( @transmogrify == 3 ) tempc = 1 / ( tempc * tempc ) elseif ( @transmogrify == 4 ) tempc = log(tempc) elseif ( @transmogrify == 5 ) tempc = exp( tempc) elseif ( @transmogrify == 6 ) tempc = tempc^tempc elseif ( @transmogrify == 7 ) tempc = sin( tempc ) elseif ( @transmogrify == 8 ) tempc = cos( tempc ) elseif ( @transmogrify == 9 ) tempc = tan( tempc ) elseif ( @transmogrify == 10 ) tempc = asin( tempc ) elseif ( @transmogrify == 11 ) tempc = acos( tempc ) elseif ( @transmogrify == 12 ) tempc = atan( tempc ) elseif ( @transmogrify == 13 ) tempc = sinh( tempc ) elseif ( @transmogrify == 14 ) tempc = cosh( tempc ) elseif ( @transmogrify == 15 ) tempc = tanh( tempc ) elseif ( @transmogrify == 16 ) tempc = asinh( tempc ) elseif ( @transmogrify == 17 ) tempc = acosh( tempc ) elseif ( @transmogrify == 18 ) tempc = atanh( tempc ) elseif ( @transmogrify == 19 ) tempc = log( 1/tempc ) elseif ( @transmogrify == 20 ) tempc = log( log( tempc )) elseif ( @transmogrify == 21 ) tempc = exp( -tempc ) elseif ( @transmogrify == 22 ) tempc = exp( 1/tempc ) elseif ( @transmogrify == 23 ) tempc = tempc^(-tempc) elseif ( @transmogrify == 24 ) tempc = sin( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 25 ) tempc = cos( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 26 ) tempc = tan( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 27 ) tempc = cotan( tempc ) elseif ( @transmogrify == 28 ) tempc = 1/cos( tempc ) elseif ( @transmogrify == 29 ) tempc = 1/sin( tempc ) elseif ( @transmogrify == 30 ) tempc = cotan( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 31 ) tempc = 1/cos( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 32 ) tempc = 1/sin( tempc ) tempc = tempc * tempc elseif ( @transmogrify == 33 ) tempc = tempc^(tempc) tempc = tempc^tempc elseif ( @transmogrify == 34 ) tempc = tempc^(tempc) tempc = 1/( tempc^tempc ) elseif ( @transmogrify == 35 ) tempc = log(-tempc) elseif ( @transmogrify == 36 ) tempc = 1/log( tempc ) elseif ( @transmogrify == 37 ) tempc = tempc * log( tempc ) elseif ( @transmogrify == 38 ) tempc = sin( tempc ) / tempc elseif ( @transmogrify == 39 ) tempc = cos( tempc ) / tempc elseif ( @transmogrify == 40 ) tempc = sin( tempc ) * cos( tempc ) elseif ( @transmogrify == 41 ) tempc = sin( tempc^2 ) elseif ( @transmogrify == 42 ) tempc = exp( -1/tempc ) elseif ( @transmogrify == 43 ) tempc = tempc * exp( tempc ) elseif ( @transmogrify == 44 ) tempc = tempc * exp( -tempc ) elseif ( @transmogrify == 45 ) tempc = tempc * exp( 1/tempc ) elseif ( @transmogrify == 46 ) tempc = tempc * exp( -1/tempc ) elseif ( @transmogrify == 47 ) tempc = tempc * tempc * tempc elseif ( @transmogrify == 48 ) tempc = 1 / ( tempc * tempc * tempc ) elseif ( @transmogrify == 49 ) tempc = atan( 1 / tempc ) elseif ( @transmogrify == 50 ) tempc = acos( 1 / tempc ) elseif ( @transmogrify == 51 ) tempc = asin( 1 / tempc ) elseif ( @transmogrify == 52 ) tempc = tan( tempc ) / tempc elseif ( @transmogrify == 53 ) tempc = cotan( tempc ) / tempc elseif ( @transmogrify == 54 ) tempc = 1 / ( tempc * cos( tempc )) elseif ( @transmogrify == 55 ) tempc = 1 / ( tempc * sin( tempc )) elseif ( @transmogrify == 56 ) tempc = tempc * sin( tempc ) elseif ( @transmogrify == 57 ) tempc = tempc * cos( tempc ) elseif ( @transmogrify == 58 ) tempc = tempc * tan( tempc ) elseif ( @transmogrify == 59 ) tempc = tempc * cotan( tempc ) elseif ( @transmogrify == 60 ) tempc = tempc/cos( tempc ) elseif ( @transmogrify == 61 ) tempc = tempc/sin( tempc ) elseif ( @transmogrify == 62 ) tempc = sin( 1/tempc ) elseif ( @transmogrify == 63 ) tempc = cos( 1/tempc ) elseif ( @transmogrify == 64 ) tempc = tan( 1/tempc ) elseif ( @transmogrify == 65 ) tempc = cotan( 1/tempc ) elseif ( @transmogrify == 66 ) tempc = 1/cos( 1/tempc ) elseif ( @transmogrify == 67 ) tempc = 1/sin( 1/tempc ) elseif ( @transmogrify == 68 ) tempc = cotanh( tempc ) elseif ( @transmogrify == 69 ) tempc = 1/cosh( tempc ) elseif ( @transmogrify == 70 ) tempc = 1/sinh( tempc ) elseif ( @transmogrify == 71 ) tempc = atanh( 1/tempc ) elseif ( @transmogrify == 72 ) tempc = acosh( 1/tempc ) elseif ( @transmogrify == 73 ) tempc = asinh( 1/tempc ) elseif @transmogrify == 74 tempc = tempc^@tpower elseif @transmogrify == 75 tempc = sinh(tempc) tempc = tempc * tempc elseif @transmogrify == 76 tempc = cosh( tempc ) tempc = tempc * tempc elseif @transmogrify == 77 tempc = tanh(tempc) tempc = tempc * tempc elseif @transmogrify == 78 tempc = cotanh( tempc ) tempc = tempc * tempc elseif @transmogrify == 79 tempc = 1/cosh(tempc) tempc = tempc * tempc elseif @transmogrify == 80 tempc = 1 / sinh( tempc ) tempc = tempc * tempc elseif @transmogrify == 81 tempc = sinh(1/tempc) elseif @transmogrify == 82 tempc = cosh(1/tempc) elseif @transmogrify == 83 tempc = tanh(1/tempc) elseif @transmogrify == 84 tempc = cotanh(1/tempc) elseif @transmogrify == 85 tempc = 1/cosh(1/tempc) elseif @transmogrify == 86 tempc = 1/sinh(1/tempc) elseif @transmogrify == 87 tempc = sin( tempc ) * tan(tempc) elseif @transmogrify == 88 tempc = sinh(tempc) * tanh(tempc) elseif @transmogrify == 89 tempc = sinh(tempc) * cosh(tempc) elseif @transmogrify == 90 ztemp = cosh(tempc) tempc = sinh(tempc) tempc = tempc*tempc*ztemp*ztemp elseif @transmogrify == 91 ztemp = cosh(tempc) tempc = sin(tempc) tempc = tempc*tempc*ztemp*ztemp elseif @transmogrify == 92 tempc = 1/tempc tempc = sin(tempc)*cos(tempc) elseif @transmogrify == 93 tempc = sin( 1/tempc ) tempc = tempc*tempc elseif @transmogrify == 94 tempc = sin(tempc) * cos(1/tempc) elseif @transmogrify == 95 tempc = sin(tempc) * sin(1/tempc) elseif @transmogrify == 96 tempc = log(tempc) tempc = tempc*tempc elseif @transmogrify == 97 tempc = sin(tempc) * sin(2*tempc) elseif @transmogrify == 98 tempc = exp(2*tempc) elseif @transmogrify == 99 tempc = exp(-2*tempc) elseif @transmogrify == 100 tempc = 1/tempc tempc = sinh(tempc)*cosh(tempc) elseif @transmogrify == 101 tempc = sinh( 1/tempc ) tempc = tempc*tempc elseif @transmogrify == 102 tempc = sinh(tempc) * cosh(1/tempc) elseif @transmogrify == 103 tempc = sinh(tempc) * sinh(1/tempc) elseif @transmogrify == 104 tempc = sin(tempc) * sinh(tempc) elseif @transmogrify == 105 tempc = sin(tempc) * cosh(tempc) elseif @transmogrify == 106 ztemp = sinh(tempc) tempc = sin(tempc) tempc = tempc*tempc*ztemp*ztemp elseif @transmogrify == 107 tempc = sin(tempc)*exp(tempc) elseif @transmogrify == 108 tempc = cos(tempc)*exp(tempc) elseif @transmogrify == 109 tempc = sinh(tempc)*exp(tempc) elseif @transmogrify == 110 tempc = cosh(tempc)*exp(tempc) elseif @transmogrify == 111 tempc = sin(tempc)*log(tempc) elseif @transmogrify == 112 tempc = cos(tempc)*log(tempc) elseif @transmogrify == 113 tempc = sinh(tempc)*log(tempc) elseif @transmogrify == 114 tempc = cosh(tempc)*log(tempc) elseif @transmogrify == 115 tempc = exp(tempc^2) elseif @transmogrify == 116 tempc = exp(1/(tempc^2)) elseif @transmogrify == 117 tempc = abs(tempc) elseif @transmogrify == 118 tempc = round(tempc) elseif @transmogrify == 119 tempc = trunc(tempc) elseif @transmogrify == 120 tempc = ceil(tempc) elseif @transmogrify == 121 tempc = floor(tempc) elseif @transmogrify == 122 tempc = tempc/log(tempc) elseif @transmogrify == 123 tempc = log(tempc)/tempc elseif @transmogrify == 124 tempc = exp(tempc)/tempc elseif @transmogrify == 125 tempc = exp(1/tempc)/tempc elseif @transmogrify == 126 tempc = exp(tempc^2)/tempc elseif @transmogrify == 127 tempc = exp(1/(tempc^2))/tempc elseif @transmogrify == 128 tempc = tempc * exp(tempc^2) elseif @transmogrify == 129 tempc = tempc * exp(1/(tempc^2)) elseif @transmogrify == 130 tempc = exp(-(tempc^2)) elseif @transmogrify == 131 tempc = exp(-1/(tempc^2)) elseif @transmogrify == 132 tempc = exp(-(tempc^2))/tempc elseif @transmogrify == 133 tempc = exp(-1/(tempc^2))/tempc elseif @transmogrify == 134 tempc = tempc * exp(-(tempc^2)) elseif @transmogrify == 135 tempc = tempc * exp(-1/(tempc^2)) elseif @transmogrify == 136 tempc = log(1+tempc) elseif @transmogrify == 137 tempc = log(1+log(1+tempc)) elseif @transmogrify == 138 tempc = sin(tempc^@tpower) endif ; transmogrify2 endif ; transmogrify1 if @trapperturb tempc = @trapblend * tempc + trapbcomp * traptemp endif ; @trapperturb if @backendbias tempc = (@bebprod*(tempc + @bebaddend))^@bebexponent endif ; @backendbias ; initialize back end real, back end imag, if desired ftemp = @rbscale * real(tempc) if ( @realback == 0 ) tempx = ftemp elseif ( @realback == 1 ) tempx = 1/ftemp elseif ( @realback == 2 ) tempx = ftemp * ftemp elseif ( @realback == 3 ) tempx = 1 / ( ftemp * ftemp ) elseif ( @realback == 4 ) tempx = log(ftemp) elseif ( @realback == 5 ) tempx = exp( ftemp) elseif ( @realback == 6 ) tempx = ftemp^ftemp elseif ( @realback == 7 ) tempx = sin( ftemp ) elseif ( @realback == 8 ) tempx = cos( ftemp ) elseif ( @realback == 9 ) tempx = tan( ftemp ) elseif ( @realback == 10 ) tempx = asin( ftemp ) elseif ( @realback == 11 ) tempx = acos( ftemp ) elseif ( @realback == 12 ) tempx = atan( ftemp ) elseif ( @realback == 13 ) tempx = sinh( ftemp ) elseif ( @realback == 14 ) tempx = cosh( ftemp ) elseif ( @realback == 15 ) tempx = tanh( ftemp ) elseif ( @realback == 16 ) tempx = asinh( ftemp ) elseif ( @realback == 17 ) tempx = acosh( ftemp ) elseif ( @realback == 18 ) tempx = atanh( ftemp ) elseif ( @realback == 19 ) tempx = log( 1/ftemp ) elseif ( @realback == 20 ) tempx = log( log( ftemp )) elseif ( @realback == 21 ) tempx = exp( -ftemp ) elseif ( @realback == 22 ) tempx = exp( 1/ftemp ) elseif ( @realback == 23 ) tempx = ftemp^(-ftemp) elseif ( @realback == 24 ) tempx = sin( ftemp ) tempx = tempx * tempx elseif ( @realback == 25 ) tempx = cos( ftemp ) tempx = tempx * tempx elseif ( @realback == 26 ) tempx = tan( ftemp ) tempx = tempx * tempx elseif ( @realback == 27 ) tempx = cotan( ftemp ) elseif ( @realback == 28 ) tempx = 1/cos( ftemp ) elseif ( @realback == 29 ) tempx = 1/sin( ftemp ) elseif ( @realback == 30 ) tempx = cotan( ftemp ) tempx = tempx * tempx elseif ( @realback == 31 ) tempx = 1/cos( ftemp ) tempx = tempx * tempx elseif ( @realback == 32 ) tempx = 1/sin( ftemp ) tempx = tempx * tempx elseif ( @realback == 33 ) tempx = ftemp^(ftemp) tempx = ftemp^tempx elseif ( @realback == 34 ) tempx = ftemp^(ftemp) tempx = 1/( ftemp^tempx ) elseif ( @realback == 35 ) tempx = log(-ftemp) elseif ( @realback == 36 ) tempx = 1/log( ftemp ) elseif ( @realback == 37 ) tempx = ftemp * log( ftemp ) elseif ( @realback == 38 ) tempx = sin( ftemp ) / ftemp elseif ( @realback == 39 ) tempx = cos( ftemp ) / ftemp elseif ( @realback == 40 ) tempx = sin( ftemp ) * cos( ftemp ) elseif ( @realback == 41 ) tempx = sin( ftemp^2 ) elseif ( @realback == 42 ) tempx = exp( -1/ftemp ) elseif ( @realback == 43 ) tempx = ftemp * exp( ftemp ) elseif ( @realback == 44 ) tempx = ftemp * exp( -ftemp ) elseif ( @realback == 45 ) tempx = ftemp * exp( 1/ftemp ) elseif ( @realback == 46 ) tempx = ftemp * exp( -1/ftemp ) elseif ( @realback == 47 ) tempx = ftemp * ftemp * ftemp elseif ( @realback == 48 ) tempx = 1 / ( ftemp * ftemp * ftemp ) elseif ( @realback == 49 ) tempx = atan( 1 / ftemp ) elseif ( @realback == 50 ) tempx = acos( 1 / ftemp ) elseif ( @realback == 51 ) tempx = asin( 1 / ftemp ) elseif ( @realback == 52 ) tempx = tan( ftemp ) / ftemp elseif ( @realback == 53 ) tempx = cotan( ftemp ) / ftemp elseif ( @realback == 54 ) tempx = 1 / ( ftemp * cos( ftemp )) elseif ( @realback == 55 ) tempx = 1 / ( ftemp * sin( ftemp )) elseif ( @realback == 56 ) tempx = ftemp * sin( ftemp ) elseif ( @realback == 57 ) tempx = ftemp * cos( ftemp ) elseif ( @realback == 58 ) tempx = ftemp * tan( ftemp ) elseif ( @realback == 59 ) tempx = ftemp * cotan( ftemp ) elseif ( @realback == 60 ) tempx = ftemp/cos( ftemp ) elseif ( @realback == 61 ) tempx = ftemp/sin( ftemp ) elseif ( @realback == 62 ) tempx = sin( 1/ftemp ) elseif ( @realback == 63 ) tempx = cos( 1/ftemp ) elseif ( @realback == 64 ) tempx = tan( 1/ftemp ) elseif ( @realback == 65 ) tempx = cotan( 1/ftemp ) elseif ( @realback == 66 ) tempx = 1/cos( 1/ftemp ) elseif ( @realback == 67 ) tempx = 1/sin( 1/ftemp ) elseif ( @realback == 68 ) tempx = cotanh( ftemp ) elseif ( @realback == 69 ) tempx = 1/cosh( ftemp ) elseif ( @realback == 70 ) tempx = 1/sinh( ftemp ) elseif ( @realback == 71 ) tempx = atanh( 1/ftemp ) elseif ( @realback == 72 ) tempx = acosh( 1/ftemp ) elseif ( @realback == 73 ) tempx = asinh( 1/ftemp ) elseif @realback == 74 tempx = ftemp^@rbpower elseif @realback == 75 tempx = sinh(ftemp) tempx = tempx * tempx elseif @realback == 76 tempx = cosh( ftemp ) tempx = tempx * tempx elseif @realback == 77 tempx = tanh(ftemp) tempx = tempx * tempx elseif @realback == 78 tempx = cotanh( ftemp ) tempx = tempx * tempx elseif @realback == 79 tempx = 1/cosh(ftemp) tempx = tempx * tempx elseif @realback == 80 tempx = 1 / sinh( ftemp ) tempx = tempx * tempx elseif @realback == 81 tempx = sinh(1/ftemp) elseif @realback == 82 tempx = cosh(1/ftemp) elseif @realback == 83 tempx = tanh(1/ftemp) elseif @realback == 84 tempx = cotanh(1/ftemp) elseif @realback == 85 tempx = 1/cosh(1/ftemp) elseif @realback == 86 tempx = 1/sinh(1/ftemp) elseif @realback == 87 tempx = sin( ftemp ) * tan(ftemp) elseif @realback == 88 tempx = sinh(ftemp) * tanh(ftemp) elseif @realback == 89 tempx = sinh(ftemp) * cosh(ftemp) elseif @realback == 90 tempx = sinh(ftemp), ftemp2 = cosh(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realback == 91 tempx = sin(ftemp), ftemp2 = cos(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realback == 92 tempx = 1/ftemp tempx = sin(tempx)*cos(tempx) elseif @realback == 93 tempx = sin( 1/ftemp ) tempx = tempx*tempx elseif @realback == 94 tempx = sin(ftemp) * cos(1/ftemp) elseif @realback == 95 tempx = sin(ftemp) * sin(1/ftemp) elseif @realback == 96 tempx = log(ftemp) tempx = tempx*tempx elseif @realback == 97 tempx = sin(ftemp) * sin(2*ftemp) elseif @realback == 98 tempx = exp(2*ftemp) elseif @realback == 99 tempx = exp(-2*ftemp) elseif @realback == 100 tempx = 1/ftemp tempx = sinh(tempx)*cosh(tempx) elseif @realback == 101 tempx = sinh( 1/ftemp ) tempx = tempx*tempx elseif @realback == 102 tempx = sinh(ftemp) * cosh(1/ftemp) elseif @realback == 103 tempx = sinh(ftemp) * sinh(1/ftemp) elseif @realback == 104 tempx = sin(ftemp) * sinh(ftemp) elseif @realback == 105 tempx = sin(ftemp) * cosh(ftemp) elseif @realback == 106 tempx = sin(ftemp), ftemp2 = sinh(ftemp) tempx = tempx*tempx*ftemp2*ftemp2 elseif @realback == 107 tempx = sin(ftemp)*exp(ftemp) elseif @realback == 108 tempx = cos(ftemp)*exp(ftemp) elseif @realback == 109 tempx = sinh(ftemp)*exp(ftemp) elseif @realback == 110 tempx = cosh(ftemp)*exp(ftemp) elseif @realback == 111 tempx = sin(ftemp)*log(ftemp) elseif @realback == 112 tempx = cos(ftemp)*log(ftemp) elseif @realback == 113 tempx = sinh(ftemp)*log(ftemp) elseif @realback == 114 tempx = cosh(ftemp)*log(ftemp) elseif @realback == 115 tempx = exp(ftemp^2) elseif @realback == 116 tempx = exp(1/(ftemp^2)) elseif @realback == 117 tempx = abs(ftemp) elseif @realback == 118 tempx = round(ftemp) elseif @realback == 119 tempx = trunc(ftemp) elseif @realback == 120 tempx = ceil(ftemp) elseif @realback == 121 tempx = floor(ftemp) elseif @realback == 122 tempx = ftemp/log(ftemp) elseif @realback == 123 tempx = log(ftemp)/ftemp elseif @realback == 124 tempx = exp(ftemp)/ftemp elseif @realback == 125 tempx = exp(1/ftemp)/ftemp elseif @realback == 126 tempx = exp(ftemp^2)/ftemp elseif @realback == 127 tempx = exp(1/(ftemp^2))/ftemp elseif @realback == 128 tempx = ftemp * exp(ftemp^2) elseif @realback == 129 tempx = ftemp * exp(1/(ftemp^2)) elseif @realback == 130 tempx = exp(-(ftemp^2)) elseif @realback == 131 tempx = exp(-1/(ftemp^2)) elseif @realback == 132 tempx = exp(-(ftemp^2))/ftemp elseif @realback == 133 tempx = exp(-1/(ftemp^2))/ftemp elseif @realback == 134 tempx = ftemp * exp(-(ftemp^2)) elseif @realback == 135 tempx = ftemp * exp(-1/(ftemp^2)) elseif @realback == 136 tempx = log(1+ftemp) elseif @realback == 137 tempx = log(1+log(1+ftemp)) elseif @realback == 138 tempx = sin(ftemp^@rbpower) endif ; realback if @realback != 0 tempx = @rbpostscale * tempx endif ; @realback if @rbperturb tempx = @rbblend * tempx + rbbcomp * real(tempc) endif ; @rbperturb ftemp = @ibscale * imag(tempc) if ( @imagback == 0 ) tempy = ftemp elseif ( @imagback == 1 ) tempy = 1/ftemp elseif ( @imagback == 2 ) tempy = ftemp * ftemp elseif ( @imagback == 3 ) tempy = 1 / ( ftemp * ftemp ) elseif ( @imagback == 4 ) tempy = log(ftemp) elseif ( @imagback == 5 ) tempy = exp( ftemp) elseif ( @imagback == 6 ) tempy = ftemp^ftemp elseif ( @imagback == 7 ) tempy = sin( ftemp ) elseif ( @imagback == 8 ) tempy = cos( ftemp ) elseif ( @imagback == 9 ) tempy = tan( ftemp ) elseif ( @imagback == 10 ) tempy = asin( ftemp ) elseif ( @imagback == 11 ) tempy = acos( ftemp ) elseif ( @imagback == 12 ) tempy = atan( ftemp ) elseif ( @imagback == 13 ) tempy = sinh( ftemp ) elseif ( @imagback == 14 ) tempy = cosh( ftemp ) elseif ( @imagback == 15 ) tempy = tanh( ftemp ) elseif ( @imagback == 16 ) tempy = asinh( ftemp ) elseif ( @imagback == 17 ) tempy = acosh( ftemp ) elseif ( @imagback == 18 ) tempy = atanh( ftemp ) elseif ( @imagback == 19 ) tempy = log( 1/ftemp ) elseif ( @imagback == 20 ) tempy = log( log( ftemp )) elseif ( @imagback == 21 ) tempy = exp( -ftemp ) elseif ( @imagback == 22 ) tempy = exp( 1/ftemp ) elseif ( @imagback == 23 ) tempy = ftemp^(-ftemp) elseif ( @imagback == 24 ) tempy = sin( ftemp ) tempy = tempy * tempy elseif ( @imagback == 25 ) tempy = cos( ftemp ) tempy = tempy * tempy elseif ( @imagback == 26 ) tempy = tan( ftemp ) tempy = tempy * tempy elseif ( @imagback == 27 ) tempy = cotan( ftemp ) elseif ( @imagback == 28 ) tempy = 1/cos( ftemp ) elseif ( @imagback == 29 ) tempy = 1/sin( ftemp ) elseif ( @imagback == 30 ) tempy = cotan( ftemp ) tempy = tempy * tempy elseif ( @imagback == 31 ) tempy = 1/cos( ftemp ) tempy = tempy * tempy elseif ( @imagback == 32 ) tempy = 1/sin( ftemp ) tempy = tempy * tempy elseif ( @imagback == 33 ) tempy = ftemp^(ftemp) tempy = ftemp^tempy elseif ( @imagback == 34 ) tempy = ftemp^(ftemp) tempy = 1/( ftemp^tempy ) elseif ( @imagback == 35 ) tempy = log(-ftemp) elseif ( @imagback == 36 ) tempy = 1/log( ftemp ) elseif ( @imagback == 37 ) tempy = ftemp * log( ftemp ) elseif ( @imagback == 38 ) tempy = sin( ftemp ) / ftemp elseif ( @imagback == 39 ) tempy = cos( ftemp ) / ftemp elseif ( @imagback == 40 ) tempy = sin( ftemp ) * cos( ftemp ) elseif ( @imagback == 41 ) tempy = sin( ftemp^2 ) elseif ( @imagback == 42 ) tempy = exp( -1/ftemp ) elseif ( @imagback == 43 ) tempy = ftemp * exp( ftemp ) elseif ( @imagback == 44 ) tempy = ftemp * exp( -ftemp ) elseif ( @imagback == 45 ) tempy = ftemp * exp( 1/ftemp ) elseif ( @imagback == 46 ) tempy = ftemp * exp( -1/ftemp ) elseif ( @imagback == 47 ) tempy = ftemp * ftemp * ftemp elseif ( @imagback == 48 ) tempy = 1 / ( ftemp * ftemp * ftemp ) elseif ( @imagback == 49 ) tempy = atan( 1 / ftemp ) elseif ( @imagback == 50 ) tempy = acos( 1 / ftemp ) elseif ( @imagback == 51 ) tempy = asin( 1 / ftemp ) elseif ( @imagback == 52 ) tempy = tan( ftemp ) / ftemp elseif ( @imagback == 53 ) tempy = cotan( ftemp ) / ftemp elseif ( @imagback == 54 ) tempy = 1 / ( ftemp * cos( ftemp )) elseif ( @imagback == 55 ) tempy = 1 / ( ftemp * sin( ftemp )) elseif ( @imagback == 56 ) tempy = ftemp * sin( ftemp ) elseif ( @imagback == 57 ) tempy = ftemp * cos( ftemp ) elseif ( @imagback == 58 ) tempy = ftemp * tan( ftemp ) elseif ( @imagback == 59 ) tempy = ftemp * cotan( ftemp ) elseif ( @imagback == 60 ) tempy = ftemp/cos( ftemp ) elseif ( @imagback == 61 ) tempy = ftemp/sin( ftemp ) elseif ( @imagback == 62 ) tempy = sin( 1/ftemp ) elseif ( @imagback == 63 ) tempy = cos( 1/ftemp ) elseif ( @imagback == 64 ) tempy = tan( 1/ftemp ) elseif ( @imagback == 65 ) tempy = cotan( 1/ftemp ) elseif ( @imagback == 66 ) tempy = 1/cos( 1/ftemp ) elseif ( @imagback == 67 ) tempy = 1/sin( 1/ftemp ) elseif ( @imagback == 68 ) tempy = cotanh( ftemp ) elseif ( @imagback == 69 ) tempy = 1/cosh( ftemp ) elseif ( @imagback == 70 ) tempy = 1/sinh( ftemp ) elseif ( @imagback == 71 ) tempy = atanh( 1/ftemp ) elseif ( @imagback == 72 ) tempy = acosh( 1/ftemp ) elseif ( @imagback == 73 ) tempy = asinh( 1/ftemp ) elseif @imagback == 74 tempy = ftemp^@ibpower elseif @imagback == 75 tempy = sinh(ftemp) tempy = tempy * tempy elseif @imagback == 76 tempy = cosh( ftemp ) tempy = tempy * tempy elseif @imagback == 77 tempy = tanh(ftemp) tempy = tempy * tempy elseif @imagback == 78 tempy = cotanh( ftemp ) tempy = tempy * tempy elseif @imagback == 79 tempy = 1/cosh(ftemp) tempy = tempy * tempy elseif @imagback == 80 tempy = 1 / sinh( ftemp ) tempy = tempy * tempy elseif @imagback == 81 tempy = sinh(1/ftemp) elseif @imagback == 82 tempy = cosh(1/ftemp) elseif @imagback == 83 tempy = tanh(1/ftemp) elseif @imagback == 84 tempy = cotanh(1/ftemp) elseif @imagback == 85 tempy = 1/cosh(1/ftemp) elseif @imagback == 86 tempy = 1/sinh(1/ftemp) elseif @imagback == 87 tempy = sin( ftemp ) * tan(ftemp) elseif @imagback == 88 tempy = sinh(ftemp) * tanh(ftemp) elseif @imagback == 89 tempy = sinh(ftemp) * cosh(ftemp) elseif @imagback == 90 tempy = sinh(ftemp), ftemp2 = cosh(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagback == 91 tempy = sin(ftemp), ftemp2 = cos(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagback == 92 tempy = 1/ftemp tempy = sin(tempy)*cos(tempy) elseif @imagback == 93 tempy = sin( 1/ftemp ) tempy = tempy*tempy elseif @imagback == 94 tempy = sin(ftemp) * cos(1/ftemp) elseif @imagback == 95 tempy = sin(ftemp) * sin(1/ftemp) elseif @imagback == 96 tempy = log(ftemp) tempy = tempy*tempy elseif @imagback == 97 tempy = sin(ftemp) * sin(2*ftemp) elseif @imagback == 98 tempy = exp(2*ftemp) elseif @imagback == 99 tempy = exp(-2*ftemp) elseif @imagback == 100 tempy = 1/ftemp tempy = sinh(tempy)*cosh(tempy) elseif @imagback == 101 tempy = sinh( 1/ftemp ) tempy = tempy*tempy elseif @imagback == 102 tempy = sinh(ftemp) * cosh(1/ftemp) elseif @imagback == 103 tempy = sinh(ftemp) * sinh(1/ftemp) elseif @imagback == 104 tempy = sin(ftemp) * sinh(ftemp) elseif @imagback == 105 tempy = sin(ftemp) * cosh(ftemp) elseif @imagback == 106 tempy = sin(ftemp), ftemp2 = sinh(ftemp) tempy = tempy*tempy*ftemp2*ftemp2 elseif @imagback == 107 tempy = sin(ftemp)*exp(ftemp) elseif @imagback == 108 tempy = cos(ftemp)*exp(ftemp) elseif @imagback == 109 tempy = sinh(ftemp)*exp(ftemp) elseif @imagback == 110 tempy = cosh(ftemp)*exp(ftemp) elseif @imagback == 111 tempy = sin(ftemp)*log(ftemp) elseif @imagback == 112 tempy = cos(ftemp)*log(ftemp) elseif @imagback == 113 tempy = sinh(ftemp)*log(ftemp) elseif @imagback == 114 tempy = cosh(ftemp)*log(ftemp) elseif @imagback == 115 tempy = exp(ftemp^2) elseif @imagback == 116 tempy = exp(1/(ftemp^2)) elseif @imagback == 117 tempy = abs(ftemp) elseif @imagback == 118 tempy = round(ftemp) elseif @imagback == 119 tempy = trunc(ftemp) elseif @imagback == 120 tempy = ceil(ftemp) elseif @imagback == 121 tempy = floor(ftemp) elseif @imagback == 122 tempy = ftemp/log(ftemp) elseif @imagback == 123 tempy = log(ftemp)/ftemp elseif @imagback == 124 tempy = exp(ftemp)/ftemp elseif @imagback == 125 tempy = exp(1/ftemp)/ftemp elseif @imagback == 126 tempy = exp(ftemp^2)/ftemp elseif @imagback == 127 tempy = exp(1/(ftemp^2))/ftemp elseif @imagback == 128 tempy = ftemp * exp(ftemp^2) elseif @imagback == 129 tempy = ftemp * exp(1/(ftemp^2)) elseif @imagback == 130 tempy = exp(-(ftemp^2)) elseif @imagback == 131 tempy = exp(-1/(ftemp^2)) elseif @imagback == 132 tempy = exp(-(ftemp^2))/ftemp elseif @imagback == 133 tempy = exp(-1/(ftemp^2))/ftemp elseif @imagback == 134 tempy = ftemp * exp(-(ftemp^2)) elseif @imagback == 135 tempy = ftemp * exp(-1/(ftemp^2)) elseif @imagback == 136 tempy = log(1+ftemp) elseif @imagback == 137 tempy = log(1+log(1+ftemp)) elseif @imagback == 138 tempy = sin(ftemp^@ibpower) endif ; imagback if @imagback != 0 tempy = @ibpostscale * tempy endif ; @imagback if @ibperturb tempy = @ibblend * tempy + ibbcomp * imag(tempc) endif ; @ibperturb tempc = tempx + flip(tempy) if @absolutet2 tempc = abs(tempc) endif ; @absolutet2 if @absoluter7 tempc = abs(real(tempc)) + flip(imag(tempc)) endif ; @absoluter7 if @absolutei7 tempc = real(tempc) + flip(abs(imag(tempc))) endif ; @absolutei7 if @tvariantbias tempc = (@tvbprod*(tempc + @tvbaddend))^@tvbexponent endif ; @tvariantbias tangle = atan2( tempc ) if ( tangle < 0 ) tangle = tangle + twopi endif ; tangle if @twavy ftemp = ftemp2 = cabs( tempc ) if @twavmode == 0 ; radial mode ftemp = ftemp + @twavamp * ftemp * sin( @twavfreq * tangle ) ; vary radius tempc = ftemp * exp( flip( tangle )) ; compute new tempc elseif @twavmode == 1 ; tangential mode tangle = tangle + @twavamp * tangle * sin( @twavfreq * ftemp ) ; vary azimuth tempc = ftemp * exp( flip( tangle )) ; compute new tempc else ; both radial and tangential ftemp = ftemp + @twavamp * ftemp * sin( @twavfreq * tangle ) ; vary radius tangle = tangle + @twavamp2 * tangle * sin( @twavfreq2 * ftemp2 ) ; vary azimuth tempc = ftemp * exp( flip( tangle )) ; compute new tempc endif ; @twavmode endif ; @twavy if @varytraptype != 0 if @varytraptype == 1 ; flip tempc = flip(tempc) elseif @varytraptype == 2 ; conjugate tempc = conj(tempc) elseif @varytraptype == 3 ; flip conjugate tempc = flip(conj(tempc)) elseif @varytraptype == 4 ; negate tempc = -tempc elseif @varytraptype == 5 ; negate flip tempc = -flip(tempc) elseif @varytraptype == 6 ; negate conjugate tempc = -conj(tempc) elseif @varytraptype == 7 ; negate flip conj = conj flip tempc = -flip(conj(tempc)) elseif @varytraptype == 8 ; polar - use x as r, y as phi ftemp = real(tempc) * cos(imag(tempc)) ftemp2 = real(tempc) * sin(imag(tempc)) tempc = ftemp + flip(ftemp2) elseif @varytraptype == 9 ; polar 2 - convert to polar ftemp = cabs(tempc) ftemp2 = acos(real(tempc)/ftemp) if imag(tempc) < 0 ftemp2 = -ftemp2 endif ; imag() tempc = ftemp + flip(ftemp2) ftemp2 = real(tempc) * sin(imag(tempc)) tempc = ftemp + flip(ftemp2) elseif @varytraptype == 10 ; elliptic - use x as mu, y as nu ftemp = abs(real(tempc)) ftemp2 = imag(tempc) % twopi tempc = cosh(ftemp) * cos(ftemp2) + flip(sinh(ftemp) * sin(ftemp2)) elseif @varytraptype == 11 ; parabolic - use x as sigma, y as tau ftemp = real(tempc) * imag(tempc) ftemp2 = 0.5 * (sqr(real(tempc)) - sqr(imag(tempc))) tempc = ftemp + flip(ftemp2) elseif @varytraptype == 12 ; parabolic variant - use x as sigma, y as tau ftemp = real(tempc) * imag(tempc) ftemp2 = 0.5 * (sqr(real(tempc)) + sqr(imag(tempc))) tempc = ftemp + flip(ftemp2) endif ; @varytraptype endif ; @varytraptype if @toperator != 0 if @toperator == 1 ; multiplication tempc = tempc * @toperatee elseif @toperator == 2 ; addition tempc = tempc + @toperatee elseif @toperator == 3 ; subtraction tempc = tempc - @toperatee elseif @toperator == 4 ; division tempc = tempc / @toperatee elseif @toperator == 5 ; exponentiation tempc = tempc ^ @toperatee elseif @toperator == 6 ; subtraction2 tempc = @toperatee - tempc elseif @toperator == 7 ; division2 tempc = @toperatee / tempc elseif @toperator == 8 ; exponential2 tempc = @toperatee ^ tempc elseif @toperator == 9 ; logarithm tempc = log(tempc) / log(@toperatee) elseif @toperator == 10 ; logarithm2 tempc = log(@toperatee) / log(tempc) endif ; toperator2 endif ; toperator1 if @thisbias tempc = (@thbprod*(tempc + @thbaddend))^@thbexponent endif ; @thisbias ; trap history code, part 2 if @thistory ; update new, alternative trap history array with the new trap point maxindex = 0, index = 9 while index > maxindex index2 = index-1 thist[1,index] = thist[1,index2] index = index2 endwhile ; index thist[1,0] = tempc if (@thismode == "original") || (@thismode == "both") if @thistype == 1 tempc = thist[@trapmixmatch2,1] elseif @thistype == 2 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,1])) elseif @thistype == 3 tempc = real(thist[@trapmixmatch2,1]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 4 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,1] elseif @thistype == 5 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,1]) elseif @thistype == 6 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,1])) elseif @thistype == 7 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,1] elseif @thistype == 8 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,1]) elseif @thistype == 9 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,1])) elseif @thistype == 10 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,1] elseif @thistype == 11 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,1]) elseif @thistype == 12 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,1])) elseif @thistype == 13 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,1] elseif @thistype == 14 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,1] elseif @thistype == 15 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,1] elseif @thistype == 16 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,1] elseif @thistype == 17 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,1] elseif @thistype == 18 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,1] elseif @thistype == 19 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,1])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,1]))) elseif @thistype == 20 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,1])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,1]))) elseif @thistype == 21 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,1])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,1]))) elseif @thistype == 22 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,1])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,1]))) elseif @thistype == 23 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,1])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,1]))) elseif @thistype == 24 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,1])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,1]))) elseif @thistype == 25 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,1])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,1]))) elseif @thistype == 26 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,1])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,1]))) elseif @thistype == 27 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,1])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,1]))) elseif @thistype == 28 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,1])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,1]))) elseif @thistype == 29 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,1])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,1]))) elseif @thistype == 30 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,1])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,1]))) elseif @thistype == 31 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,1])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,1]))) elseif @thistype == 32 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,1])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,1]))) elseif @thistype == 33 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,1])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,1]))) elseif @thistype == 34 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,1])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,1]))) elseif @thistype == 35 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,1])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,1]))) elseif @thistype == 36 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,1])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,1]))) elseif @thistype == 37 tempc = thist[@trapmixmatch2,2] elseif @thistype == 38 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,2])) elseif @thistype == 39 tempc = real(thist[@trapmixmatch2,2]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 40 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,2] elseif @thistype == 41 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,2]) elseif @thistype == 42 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,2])) elseif @thistype == 43 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,2] elseif @thistype == 44 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,2]) elseif @thistype == 45 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,2])) elseif @thistype == 46 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,2] elseif @thistype == 47 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,2]) elseif @thistype == 48 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,2])) elseif @thistype == 49 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,2] elseif @thistype == 50 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,2] elseif @thistype == 51 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,2] elseif @thistype == 52 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,2] elseif @thistype == 53 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,2] elseif @thistype == 54 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,2] elseif @thistype == 55 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,2])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,2]))) elseif @thistype == 56 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,2])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,2]))) elseif @thistype == 57 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,2])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,2]))) elseif @thistype == 58 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,2])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,2]))) elseif @thistype == 59 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,2])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,2]))) elseif @thistype == 60 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,2])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,2]))) elseif @thistype == 61 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,2])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,2]))) elseif @thistype == 62 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,2])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,2]))) elseif @thistype == 63 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,2])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,2]))) elseif @thistype == 64 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,2])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,2]))) elseif @thistype == 65 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,2])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,2]))) elseif @thistype == 66 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,2])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,2]))) elseif @thistype == 67 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,2])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,2]))) elseif @thistype == 68 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,2])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,2]))) elseif @thistype == 69 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,2])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,2]))) elseif @thistype == 70 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,2])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,2]))) elseif @thistype == 71 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,2])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,2]))) elseif @thistype == 72 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,2])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,2]))) elseif @thistype == 73 tempc = thist[@trapmixmatch2,3] elseif @thistype == 74 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,3])) elseif @thistype == 75 tempc = real(thist[@trapmixmatch2,3]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 76 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,3] elseif @thistype == 77 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,3]) elseif @thistype == 78 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,3])) elseif @thistype == 79 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,3] elseif @thistype == 80 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,3]) elseif @thistype == 81 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,3])) elseif @thistype == 82 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,3] elseif @thistype == 83 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,3]) elseif @thistype == 84 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,3])) elseif @thistype == 85 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,3] elseif @thistype == 86 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,3] elseif @thistype == 87 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,3] elseif @thistype == 88 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,3] elseif @thistype == 89 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,3] elseif @thistype == 90 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,3] elseif @thistype == 91 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,3])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,3]))) elseif @thistype == 92 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,3])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,3]))) elseif @thistype == 93 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,3])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,3]))) elseif @thistype == 94 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,3])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,3]))) elseif @thistype == 95 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,3])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,3]))) elseif @thistype == 96 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,3])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,3]))) elseif @thistype == 97 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,3])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,3]))) elseif @thistype == 98 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,3])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,3]))) elseif @thistype == 99 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,3])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,3]))) elseif @thistype == 100 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,3])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,3]))) elseif @thistype == 101 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,3])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,3]))) elseif @thistype == 102 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,3])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,3]))) elseif @thistype == 103 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,3])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,3]))) elseif @thistype == 104 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,3])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,3]))) elseif @thistype == 105 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,3])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,3]))) elseif @thistype == 106 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,3])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,3]))) elseif @thistype == 107 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,3])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,3]))) elseif @thistype == 108 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,3])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,3]))) elseif @thistype == 109 tempc = thist[@trapmixmatch2,4] elseif @thistype == 110 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,4])) elseif @thistype == 111 tempc = real(thist[@trapmixmatch2,4]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 112 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,4] elseif @thistype == 113 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,4]) elseif @thistype == 114 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,4])) elseif @thistype == 115 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,4] elseif @thistype == 116 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,4]) elseif @thistype == 117 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,4])) elseif @thistype == 118 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,4] elseif @thistype == 119 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,4]) elseif @thistype == 120 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,4])) elseif @thistype == 121 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,4] elseif @thistype == 122 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,4] elseif @thistype == 123 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,4] elseif @thistype == 124 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,4] elseif @thistype == 125 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,4] elseif @thistype == 126 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,4] elseif @thistype == 127 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,4])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,4]))) elseif @thistype == 128 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,4])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,4]))) elseif @thistype == 129 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,4])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,4]))) elseif @thistype == 130 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,4])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,4]))) elseif @thistype == 131 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,4])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,4]))) elseif @thistype == 132 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,4])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,4]))) elseif @thistype == 133 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,4])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,4]))) elseif @thistype == 134 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,4])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,4]))) elseif @thistype == 135 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,4])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,4]))) elseif @thistype == 136 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,4])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,4]))) elseif @thistype == 137 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,4])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,4]))) elseif @thistype == 138 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,4])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,4]))) elseif @thistype == 139 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,4])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,4]))) elseif @thistype == 140 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,4])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,4]))) elseif @thistype == 141 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,4])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,4]))) elseif @thistype == 142 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,4])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,4]))) elseif @thistype == 143 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,4])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,4]))) elseif @thistype == 144 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,4])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,4]))) elseif @thistype == 145 tempc = thist[@trapmixmatch2,5] elseif @thistype == 146 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,5])) elseif @thistype == 147 tempc = real(thist[@trapmixmatch2,5]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 148 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,5] elseif @thistype == 149 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,5]) elseif @thistype == 150 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,5])) elseif @thistype == 151 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,5] elseif @thistype == 152 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,5]) elseif @thistype == 153 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,5])) elseif @thistype == 154 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,5] elseif @thistype == 155 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,5]) elseif @thistype == 156 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,5])) elseif @thistype == 157 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,5] elseif @thistype == 158 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,5] elseif @thistype == 159 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,5] elseif @thistype == 160 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,5] elseif @thistype == 161 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,5] elseif @thistype == 162 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,5] elseif @thistype == 163 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,5])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,5]))) elseif @thistype == 164 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,5])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,5]))) elseif @thistype == 165 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,5])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,5]))) elseif @thistype == 166 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,5])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,5]))) elseif @thistype == 167 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,5])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,5]))) elseif @thistype == 168 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,5])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,5]))) elseif @thistype == 169 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,5])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,5]))) elseif @thistype == 170 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,5])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,5]))) elseif @thistype == 171 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,5])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,5]))) elseif @thistype == 172 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,5])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,5]))) elseif @thistype == 173 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,5])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,5]))) elseif @thistype == 174 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,5])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,5]))) elseif @thistype == 175 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,5])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,5]))) elseif @thistype == 176 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,5])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,5]))) elseif @thistype == 177 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,5])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,5]))) elseif @thistype == 178 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,5])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,5]))) elseif @thistype == 179 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,5])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,5]))) elseif @thistype == 180 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,5])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,5]))) elseif @thistype == 181 tempc = thist[@trapmixmatch2,6] elseif @thistype == 182 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,6])) elseif @thistype == 183 tempc = real(thist[@trapmixmatch2,6]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 184 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,6] elseif @thistype == 185 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,6]) elseif @thistype == 186 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,6])) elseif @thistype == 187 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,6] elseif @thistype == 188 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,6]) elseif @thistype == 189 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,6])) elseif @thistype == 190 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,6] elseif @thistype == 191 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,6]) elseif @thistype == 192 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,6])) elseif @thistype == 193 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,6] elseif @thistype == 194 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,6] elseif @thistype == 195 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,6] elseif @thistype == 196 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,6] elseif @thistype == 197 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,6] elseif @thistype == 198 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,6] elseif @thistype == 199 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,6])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,6]))) elseif @thistype == 200 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,6])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,6]))) elseif @thistype == 201 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,6])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,6]))) elseif @thistype == 202 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,6])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,6]))) elseif @thistype == 203 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,6])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,6]))) elseif @thistype == 204 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,6])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,6]))) elseif @thistype == 205 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,6])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,6]))) elseif @thistype == 206 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,6])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,6]))) elseif @thistype == 207 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,6])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,6]))) elseif @thistype == 208 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,6])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,6]))) elseif @thistype == 209 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,6])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,6]))) elseif @thistype == 210 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,6])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,6]))) elseif @thistype == 211 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,6])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,6]))) elseif @thistype == 212 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,6])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,6]))) elseif @thistype == 213 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,6])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,6]))) elseif @thistype == 214 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,6])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,6]))) elseif @thistype == 215 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,6])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,6]))) elseif @thistype == 216 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,6])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,6]))) elseif @thistype == 217 tempc = thist[@trapmixmatch2,7] elseif @thistype == 218 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,7])) elseif @thistype == 219 tempc = real(thist[@trapmixmatch2,7]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 220 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,7] elseif @thistype == 221 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,7]) elseif @thistype == 222 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,7])) elseif @thistype == 223 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,7] elseif @thistype == 224 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,7]) elseif @thistype == 225 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,7])) elseif @thistype == 226 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,7] elseif @thistype == 227 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,7]) elseif @thistype == 228 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,7])) elseif @thistype == 229 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,7] elseif @thistype == 230 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,7] elseif @thistype == 231 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,7] elseif @thistype == 232 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,7] elseif @thistype == 233 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,7] elseif @thistype == 234 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,7] elseif @thistype == 235 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,7])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,7]))) elseif @thistype == 236 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,7])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,7]))) elseif @thistype == 237 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,7])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,7]))) elseif @thistype == 238 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,7])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,7]))) elseif @thistype == 239 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,7])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,7]))) elseif @thistype == 240 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,7])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,7]))) elseif @thistype == 241 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,7])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,7]))) elseif @thistype == 242 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,7])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,7]))) elseif @thistype == 243 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,7])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,7]))) elseif @thistype == 244 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,7])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,7]))) elseif @thistype == 245 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,7])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,7]))) elseif @thistype == 246 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,7])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,7]))) elseif @thistype == 247 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,7])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,7]))) elseif @thistype == 248 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,7])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,7]))) elseif @thistype == 249 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,7])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,7]))) elseif @thistype == 250 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,7])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,7]))) elseif @thistype == 251 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,7])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,7]))) elseif @thistype == 252 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,7])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,7]))) elseif @thistype == 253 tempc = thist[@trapmixmatch2,8] elseif @thistype == 254 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,8])) elseif @thistype == 255 tempc = real(thist[@trapmixmatch2,8]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 256 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,8] elseif @thistype == 257 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,8]) elseif @thistype == 258 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,8])) elseif @thistype == 259 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,8] elseif @thistype == 260 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,8]) elseif @thistype == 261 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,8])) elseif @thistype == 262 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,8] elseif @thistype == 263 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,8]) elseif @thistype == 264 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,8])) elseif @thistype == 265 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,8] elseif @thistype == 266 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,8] elseif @thistype == 267 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,8] elseif @thistype == 268 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,8] elseif @thistype == 269 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,8] elseif @thistype == 270 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,8] elseif @thistype == 271 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,8])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,8]))) elseif @thistype == 272 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,8])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,8]))) elseif @thistype == 273 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,8])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,8]))) elseif @thistype == 274 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,8])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,8]))) elseif @thistype == 275 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,8])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,8]))) elseif @thistype == 276 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,8])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,8]))) elseif @thistype == 277 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,8])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,8]))) elseif @thistype == 278 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,8])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,8]))) elseif @thistype == 279 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,8])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,8]))) elseif @thistype == 280 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,8])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,8]))) elseif @thistype == 281 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,8])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,8]))) elseif @thistype == 282 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,8])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,8]))) elseif @thistype == 283 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,8])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,8]))) elseif @thistype == 284 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,8])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,8]))) elseif @thistype == 285 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,8])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,8]))) elseif @thistype == 286 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,8])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,8]))) elseif @thistype == 287 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,8])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,8]))) elseif @thistype == 288 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,8])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,8]))) elseif @thistype == 289 tempc = thist[@trapmixmatch2,9] elseif @thistype == 290 tempc = real(thist[@trapmixmatch1,@traphisindex]) + flip(imag(thist[@trapmixmatch2,9])) elseif @thistype == 291 tempc = real(thist[@trapmixmatch2,9]) + flip(imag(thist[@trapmixmatch1,@traphisindex])) elseif @thistype == 292 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,9] elseif @thistype == 293 tempc = thist[@trapmixmatch1,@traphisindex] - real(thist[@trapmixmatch2,9]) elseif @thistype == 294 tempc = thist[@trapmixmatch1,@traphisindex] - flip(imag(thist[@trapmixmatch2,9])) elseif @thistype == 295 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,9] elseif @thistype == 296 tempc = thist[@trapmixmatch1,@traphisindex] + real(thist[@trapmixmatch2,9]) elseif @thistype == 297 tempc = thist[@trapmixmatch1,@traphisindex] + flip(imag(thist[@trapmixmatch2,9])) elseif @thistype == 298 tempc = thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,9] elseif @thistype == 299 tempc = thist[@trapmixmatch1,@traphisindex] * real(thist[@trapmixmatch2,9]) elseif @thistype == 300 tempc = thist[@trapmixmatch1,@traphisindex] * flip(imag(thist[@trapmixmatch2,9])) elseif @thistype == 301 tempc = real(thist[@trapmixmatch1,@traphisindex]) - thist[@trapmixmatch2,9] elseif @thistype == 302 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) - thist[@trapmixmatch2,9] elseif @thistype == 303 tempc = real(thist[@trapmixmatch1,@traphisindex]) + thist[@trapmixmatch2,9] elseif @thistype == 304 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) + thist[@trapmixmatch2,9] elseif @thistype == 305 tempc = real(thist[@trapmixmatch1,@traphisindex]) * thist[@trapmixmatch2,9] elseif @thistype == 306 tempc = flip(imag(thist[@trapmixmatch1,@traphisindex])) * thist[@trapmixmatch2,9] elseif @thistype == 307 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,9])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,9]))) elseif @thistype == 308 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,9])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,9]))) elseif @thistype == 309 tempc = (real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,9])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,9]))) elseif @thistype == 310 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,9])) + flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,9]))) elseif @thistype == 311 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,9])) - flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,9]))) elseif @thistype == 312 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) * real(thist[@trapmixmatch2,9])) * flip((real(thist[@trapmixmatch1,@traphisindex]) * imag(thist[@trapmixmatch2,9]))) elseif @thistype == 313 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,9])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,9]))) elseif @thistype == 314 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,9])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,9]))) elseif @thistype == 315 tempc = (real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,9])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,9]))) elseif @thistype == 316 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,9])) + flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,9]))) elseif @thistype == 317 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,9])) - flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,9]))) elseif @thistype == 318 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) + real(thist[@trapmixmatch2,9])) * flip((real(thist[@trapmixmatch1,@traphisindex]) + imag(thist[@trapmixmatch2,9]))) elseif @thistype == 319 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,9])) + flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,9]))) elseif @thistype == 320 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,9])) - flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,9]))) elseif @thistype == 321 tempc = (real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,9])) * flip((imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,9]))) elseif @thistype == 322 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,9])) + flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,9]))) elseif @thistype == 323 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,9])) - flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,9]))) elseif @thistype == 324 tempc = (imag(thist[@trapmixmatch1,@traphisindex]) - real(thist[@trapmixmatch2,9])) * flip((real(thist[@trapmixmatch1,@traphisindex]) - imag(thist[@trapmixmatch2,9]))) elseif @thistype == 325 tempc = thist[@trapmixmatch1,@traphisindex]/thist[@trapmixmatch2,1] elseif @thistype == 326 tempc = thist[@trapmixmatch2,1]/thist[@trapmixmatch1,@traphisindex] elseif @thistype == 327 tempc = thist[@trapmixmatch1,@traphisindex]^thist[@trapmixmatch2,1] elseif @thistype == 328 tempc = thist[@trapmixmatch2,1]^thist[@trapmixmatch1,@traphisindex] elseif @thistype == 329 tempc = thist[@trapmixmatch1,@traphisindex]/real(thist[@trapmixmatch2,1]) elseif @thistype == 330 tempc = thist[@trapmixmatch1,@traphisindex]/imag(thist[@trapmixmatch2,1]) elseif @thistype == 331 tempc = thist[@trapmixmatch2,1]/real(thist[@trapmixmatch1,@traphisindex]) elseif @thistype == 332 tempc = thist[@trapmixmatch2,1]/imag(thist[@trapmixmatch1,@traphisindex]) elseif @thistype == 333 tempc = thist[@trapmixmatch1,@traphisindex]^real(thist[@trapmixmatch2,1]) elseif @thistype == 334 tempc = thist[@trapmixmatch1,@traphisindex]^imag(thist[@trapmixmatch2,1]) elseif @thistype == 335 tempc = thist[@trapmixmatch2,1]^real(thist[@trapmixmatch1,@traphisindex]) elseif @thistype == 336 tempc = thist[@trapmixmatch2,1]^imag(thist[@trapmixmatch1,@traphisindex]) elseif @thistype == 337 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,1] + thist[@trapmixmatch2,2] elseif @thistype == 338 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,1] + thist[@trapmixmatch2,2] elseif @thistype == 339 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,1] - thist[@trapmixmatch2,2] elseif @thistype == 340 tempc = -thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,1] + thist[@trapmixmatch2,2] elseif @thistype == 341 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,1] - thist[@trapmixmatch2,2] elseif @thistype == 342 tempc = thist[@trapmixmatch1,@traphisindex] + (thist[@trapmixmatch2,1] * thist[@trapmixmatch2,2]) elseif @thistype == 343 tempc = thist[@trapmixmatch1,@traphisindex] - (thist[@trapmixmatch2,1] * thist[@trapmixmatch2,2]) elseif @thistype == 344 tempc = thist[@trapmixmatch2,1] + (thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,2]) elseif @thistype == 345 tempc = thist[@trapmixmatch2,1] - (thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,2]) elseif @thistype == 346 tempc = thist[@trapmixmatch2,2] + (thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,1]) elseif @thistype == 347 tempc = thist[@trapmixmatch2,2] - (thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,1]) elseif @thistype == 348 tempc = thist[@trapmixmatch1,@traphisindex]/thist[@trapmixmatch2,2] elseif @thistype == 349 tempc = thist[@trapmixmatch2,2]/thist[@trapmixmatch1,@traphisindex] elseif @thistype == 350 tempc = thist[@trapmixmatch1,@traphisindex]^thist[@trapmixmatch2,2] elseif @thistype == 351 tempc = thist[@trapmixmatch2,2]^thist[@trapmixmatch1,@traphisindex] elseif @thistype == 352 tempc = thist[@trapmixmatch1,@traphisindex]/real(thist[@trapmixmatch2,2]) elseif @thistype == 353 tempc = thist[@trapmixmatch1,@traphisindex]/imag(thist[@trapmixmatch2,2]) elseif @thistype == 354 tempc = thist[@trapmixmatch2,2]/real(thist[@trapmixmatch1,@traphisindex]) elseif @thistype == 355 tempc = thist[@trapmixmatch2,2]/imag(thist[@trapmixmatch1,@traphisindex]) elseif @thistype == 356 tempc = thist[@trapmixmatch1,@traphisindex]^real(thist[@trapmixmatch2,2]) elseif @thistype == 357 tempc = thist[@trapmixmatch1,@traphisindex]^imag(thist[@trapmixmatch2,2]) elseif @thistype == 358 tempc = thist[@trapmixmatch2,2]^real(thist[@trapmixmatch1,@traphisindex]) elseif @thistype == 359 tempc = thist[@trapmixmatch2,2]^imag(thist[@trapmixmatch1,@traphisindex]) elseif @thistype == 360 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,2] + thist[@trapmixmatch2,3] elseif @thistype == 361 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,2] + thist[@trapmixmatch2,3] elseif @thistype == 362 tempc = thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,2] - thist[@trapmixmatch2,3] elseif @thistype == 363 tempc = -thist[@trapmixmatch1,@traphisindex] + thist[@trapmixmatch2,2] + thist[@trapmixmatch2,3] elseif @thistype == 364 tempc = thist[@trapmixmatch1,@traphisindex] - thist[@trapmixmatch2,2] - thist[@trapmixmatch2,3] elseif @thistype == 365 tempc = thist[@trapmixmatch1,@traphisindex] + (thist[@trapmixmatch2,2] * thist[@trapmixmatch2,3]) elseif @thistype == 366 tempc = thist[@trapmixmatch1,@traphisindex] - (thist[@trapmixmatch2,2] * thist[@trapmixmatch2,3]) elseif @thistype == 367 tempc = thist[@trapmixmatch2,2] + (thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,3]) elseif @thistype == 368 tempc = thist[@trapmixmatch2,2] - (thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,3]) elseif @thistype == 369 tempc = thist[@trapmixmatch2,3] + (thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,2]) elseif @thistype == 370 tempc = thist[@trapmixmatch2,3] - (thist[@trapmixmatch1,@traphisindex] * thist[@trapmixmatch2,2]) else tempc = tempc endif ; thistype if @thist1blend tempc = @thist1fraction*tempc + thist1comp*thist[1,0] endif ; @thist1blend endif ; @thismode else tempc = tempc endif ; @thistory ; end of trap history code, part 2 if @finalbias tempc = (@fbprod*(tempc + @fbaddend))^@fbexponent endif ; @finalbias if @modflavor ztemp = zinput if @tworotations && @twotrapstrue ztemp = zcombT2 endif ; @tworotations else ztemp = #z endif ; @modflavor if @trapmode == "distance" test = cabs( ztemp - tempc ) elseif @trapmode == "magnitude" test = cabs( ztemp ) elseif @trapmode == "real" test = abs( real( ztemp )) elseif @trapmode == "imaginary" test = abs( imag( ztemp )) elseif @trapmode == "trap magnitude" test = cabs( tempc ) elseif @trapmode == "angle" test = tempangle elseif @trapmode == "trap angle" test = tangle elseif @trapmode == "raw angle" test = zangle elseif @trapmode == "difference angle" test = abs( tempangle - tangle) elseif @trapmode == "diff. angle 2" test = abs( zangle - tangle ) elseif @trapmode == "trap real" test = abs( real( tempc )) elseif @trapmode == "trap imaginary" test = abs( imag( tempc )) elseif @trapmode == "sum" test = cabs( ztemp + tempc ) elseif @trapmode == "product" test = cabs( ztemp * tempc ) elseif @trapmode == "quotient 1" test = cabs( ztemp / tempc ) elseif @trapmode == "quotient 2" test = cabs( tempc / ztemp ) elseif @trapmode == "power 1" test = cabs( ztemp ^ tempc ) elseif @trapmode == "power 2" test = cabs( tempc ^ ztemp ) elseif @trapmode == "arith. mean" test = cabs( (ztemp + tempc)/2 ) elseif @trapmode == "geom. mean" test = cabs( sqrt( ztemp * tempc )) elseif @trapmode == "angle 2" test = atan2( ztemp - tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif @trapmode == "angle 3" test = atan2( ztemp + tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif @trapmode == "angle 4" test = atan2( ztemp * tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif @trapmode == "angle 5" test = atan2( ztemp / tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif @trapmode == "angle 6" test = atan2( tempc / ztemp ) if ( test < 0 ) test = test + twopi endif ; test elseif @trapmode == "angle 7" test = atan2( ztemp ^ tempc ) if ( test < 0 ) test = test + twopi endif ; test elseif @trapmode == "angle 8" test = atan2( tempc ^ ztemp ) if ( test < 0 ) test = test + twopi endif ; test elseif @trapmode == "real 2" test = abs( real( ztemp - tempc )) elseif @trapmode == "real 3" test = abs( real( ztemp + tempc )) elseif @trapmode == "real 4" test = abs( real( ztemp * tempc )) elseif @trapmode == "real 5" test = abs( real( ztemp / tempc )) elseif @trapmode == "real 6" test = abs( real( tempc / ztemp )) elseif @trapmode == "real 7" test = abs( real( ztemp ^ tempc )) elseif @trapmode == "real 8" test = abs( real( tempc ^ ztemp )) elseif @trapmode == "imag 2" test = abs( imag( ztemp - tempc )) elseif @trapmode == "imag 3" test = abs( imag( ztemp + tempc )) elseif @trapmode == "imag 4" test = abs( imag( ztemp * tempc )) elseif @trapmode == "imag 5" test = abs( imag( ztemp / tempc )) elseif @trapmode == "imag 6" test = abs( imag( tempc / ztemp )) elseif @trapmode == "imag 7" test = abs( imag( ztemp ^ tempc )) elseif @trapmode == "imag 8" test = abs( imag( tempc ^ ztemp )) elseif @trapmode == "product 2" test = cabs(real(ztemp)*real(tempc)+flip(imag(ztemp)*imag(tempc))) elseif @trapmode == "quotient 3" test = cabs(real(ztemp)/real(tempc)+flip(imag(ztemp)/imag(tempc))) elseif @trapmode == "quotient 4" test = cabs(real(tempc)/real(ztemp)+flip(imag(tempc)/imag(ztemp))) elseif @trapmode == "power 3" test = cabs(real(ztemp)^real(tempc)+flip(imag(ztemp)^imag(tempc))) elseif @trapmode == "power 4" test = cabs(real(tempc)^real(ztemp)+flip(imag(tempc)^imag(ztemp))) elseif @trapmode == "crossproduct" test = cabs(real(ztemp)*imag(tempc)+flip(imag(ztemp)*real(tempc))) elseif @trapmode == "crossquotient 1" test = cabs(real(ztemp)/imag(tempc)+flip(imag(ztemp)/real(tempc))) elseif @trapmode == "crossquotient 2" test = cabs(real(tempc)/imag(ztemp)+flip(imag(tempc)/real(ztemp))) elseif @trapmode == "crosspower 1" test = cabs(real(ztemp)^imag(tempc)+flip(imag(ztemp)^real(tempc))) elseif @trapmode == "crosspower 2" test = cabs(real(tempc)^imag(ztemp)+flip(imag(tempc)^real(ztemp))) elseif @trapmode == "crosssum" test = cabs(real(ztemp)+imag(tempc)+flip(imag(ztemp)+real(tempc))) elseif @trapmode == "crossdifference 1" test = cabs(real(ztemp)-imag(tempc)+flip(imag(ztemp)-real(tempc))) elseif @trapmode == "crossdifference 2" test = cabs(real(ztemp)+imag(tempc)+flip(imag(ztemp)-real(tempc))) elseif @trapmode == "manhattan metric" test = abs(real(ztemp)-real(tempc))+abs(imag(ztemp)-imag(tempc)) elseif @trapmode == "cubic metric" test = ((abs(real(ztemp)-real(tempc))^3) + (abs(imag(ztemp)-imag(tempc))^3))^onethird elseif @trapmode == "cubic2" test = abs((real(ztemp)-real(tempc))^3 + (imag(ztemp)-imag(tempc))^3)^onethird elseif @trapmode == "inverted" test = sqrt(abs((real(ztemp)+real(tempc))^2 - (imag(ztemp)+imag(tempc))^2)) elseif @trapmode == "quartic metric" test = ((real(ztemp)-real(tempc))^4 + (imag(ztemp)-imag(tempc))^4)^onefourth elseif @trapmode == "warp1" test = sqrt(abs((real(ztemp))^2-(real(tempc))^2)) + sqrt(abs((imag(ztemp))^2-(imag(tempc))^2)) elseif @trapmode == "warp2" test = abs((real(ztemp))^4-(real(tempc))^4 + (imag(ztemp))^4-(imag(tempc))^4)^onefourth elseif @trapmode == "warp3" test = log(exp(abs(real(ztemp)-real(tempc))) + exp(abs(imag(ztemp)-imag(tempc)))) elseif @trapmode == "warp4" test = exp(log(abs(real(ztemp)-real(tempc))+1) + log(abs(imag(ztemp)-imag(tempc))+1))-1 elseif @trapmode == "warp5" test = exp(log(abs(real(ztemp)-real(tempc))) + log(abs(imag(ztemp)-imag(tempc)))) elseif @trapmode == "warp6" test = abs(real(ztemp)*real(ztemp)*real(ztemp)-real(tempc)*real(tempc)*real(tempc) + \ imag(ztemp)*imag(ztemp)*imag(ztemp)-imag(tempc)*imag(tempc)*imag(tempc))^onethird elseif @trapmode == "warp7" ftemp = real(ztemp) - real(tempc) ftemp2 = imag(ztemp) - imag(tempc) test = sqrt(abs(ftemp*ftemp*ftemp + ftemp2*ftemp2*ftemp2)) endif ; trapmode if ( @whattotrap == 0 ) ; minimum if ( test < tvtrapped ) tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle endif ; test elseif ( @whattotrap == 1 ) ; maximum if ( test > tvtrapped ) tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle endif ; test elseif ( @whattotrap == 2 ) ; 2nd minimum if ( test < tvtrapped ) tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 3 ) ; 3rd minimum if ( test < tvtrapped ) tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped3 = ziatrapped2, ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 4 ) ; 4th minimum if ( test < tvtrapped ) tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped4 = ziatrapped3, ziatrapped3 = ziatrapped2, ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 5 ) ; 2nd maximum if ( test > tvtrapped ) tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 6 ) ; 3rd maximum if ( test > tvtrapped ) tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped3 = ziatrapped2, ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 7 ) ; 4th maximum if ( test > tvtrapped ) tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped4 = ziatrapped3, ziatrapped3 = ziatrapped2, ziatrapped2 = ziatrapped, ziatrapped = tempangle endif ; test elseif ( @whattotrap == 8 ) ; 1st to dip below threshold value if ( itrapped == 0 ) ; nothing trapped yet if ( test < thresh ) if !@ringstyle tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle elseif test > innerradius tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle endif ; ringstyle endif ; test endif ; itrapped elseif ( @whattotrap == 9 ) ; last to dip below threshold --- just store them all if ( test < thresh ) if !@ringstyle tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle elseif test > innerradius tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle endif ; ringstyle endif ; test elseif ( @whattotrap == 10 ) ; count dips below threshold --- store the last if ( test < thresh ) count = count + 1 if !@ringstyle tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = count * test, itrapped = count * iter zatrapped = count * zangle, tatrapped = count * tangle ztrapped = count * #z, zitrapped = count * zinput ttrapped = count * tempc, trapped = TRUE ziatrapped = tempangle elseif test > innerradius tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = count * test, itrapped = count * iter zatrapped = count * zangle, tatrapped = count * tangle ztrapped = count * #z, zitrapped = count * zinput ttrapped = count * tempc, trapped = TRUE ziatrapped = tempangle endif ; ringstyle endif ; test elseif ( @whattotrap == 11 ) ; 2nd to dip below threshold value if ( test < thresh ) if ( itrapped == 0 ) ; nothing trapped yet, set flag for next time itrapped = -1, trapped = TRUE elseif itrapped == -1 ; must be the 2nd threshold value if !@ringstyle tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle elseif test > innerradius tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle endif ; ringstyle endif ; itrapped endif ; test elseif ( @whattotrap == 12 ) ; 1st to exceed threshold limit if ( itrapped == 0 ) ; nothing trapped yet if ( test > thresh ) if !@ringstyle tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle elseif test < innerradius ; really an outer radius for limits tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle endif ; ringstyle endif ; test endif ; itrapped elseif ( @whattotrap == 13 ) ; 2nd to exceed threshold limit if ( test > thresh ) if ( itrapped == 0 ) ; nothing trapped yet, set flag for next time itrapped = -1, trapped = TRUE elseif itrapped == -1 ; must be the 2nd threshold value if !@ringstyle tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle elseif test < innerradius ; really an outer radius tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle endif ; ringstyle endif ; itrapped endif ; test elseif ( @whattotrap == 14 ) ; last to exceed threshold --- just store them all if ( test > thresh ) if !@ringstyle tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle elseif test < innerradius ; really an outer radius for limits tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle endif ; ringstyle endif ; test elseif ( @whattotrap == 15 ) ; Nth #z iterate itercount = itercount + 1 if itercount == @nthiterate tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle endif ; itercount elseif ( @whattotrap == 16 ) ; last #z iterate; just store them all tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle elseif (@whattotrap > 16) && (@whattotrap != 26) ; maximum/minimum combos; need to find & store both ; trapped2 will hold the max, tvtrapped the min if test < tvtrapped ; is it a new min? tvtrapped3 = tvtrapped, itrapped3 = itrapped, zatrapped3 = zatrapped, tatrapped3 = tatrapped ztrapped3 = ztrapped, zitrapped3 = zitrapped, ttrapped3 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc, trapped = TRUE ziatrapped = tempangle elseif test > tvtrapped2 ; is it a new max? tvtrapped4 = tvtrapped2, itrapped4 = itrapped2, zatrapped4 = zatrapped2, tatrapped4 = tatrapped2 ztrapped4 = ztrapped2, zitrapped4 = zitrapped2, ttrapped4 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped2 = test, itrapped2 = iter, zatrapped2 = zangle, tatrapped2 = tangle ztrapped2 = #z, zitrapped2 = zinput, ttrapped2 = tempc, trapped = TRUE ziatrapped2 = tempangle endif ; test elseif ( @whattotrap == 26 ) ; count dips below threshold value if ( test < thresh ) if !@ringstyle tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle, hitcount = hitcount+1 elseif test > innerradius tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test, itrapped = iter, zatrapped = zangle, tatrapped = tangle ztrapped = #z, zitrapped = zinput, ttrapped = tempc ziatrapped = tempangle, hitcount = hitcount+1 endif ; ringstyle endif ; test elseif ( @whattotrap == 27 ) ; average tvtrapped4 = tvtrapped3, itrapped4 = itrapped3, zatrapped4 = zatrapped3, tatrapped4 = tatrapped3 ztrapped4 = ztrapped3, zitrapped4 = zitrapped3, ttrapped4 = ttrapped3 tvtrapped3 = tvtrapped2, itrapped3 = itrapped2, zatrapped3 = zatrapped2, tatrapped3 = tatrapped2 ztrapped3 = ztrapped2, zitrapped3 = zitrapped2, ttrapped3 = ttrapped2 tvtrapped2 = tvtrapped, itrapped2 = itrapped, zatrapped2 = zatrapped, tatrapped2 = tatrapped ztrapped2 = ztrapped, zitrapped2 = zitrapped, ttrapped2 = ttrapped tvtrapped = test+tvtrapped, itrapped = iter+itrapped, zatrapped = zangle+zatrapped, tatrapped = tangle+tatrapped ztrapped = #z+ztrapped, zitrapped = zinput+zitrapped, ttrapped = tempc+ttrapped, trapped = TRUE ziatrapped = tempangle+ziatrapped endif ; whattotrap if ( @varymode == 0 ) ; feedback only on iterations where something was trapped vary = trapped elseif ( @varymode == 1 ) ; feedback when nothing was trapped vary = !trapped else ; feedback on each iteration, if enabled for a given parameter vary = TRUE endif ; varymode if vary ; vary chosen parameter if set ftemp = cabs(zinput) sign = real(zinput)/abs(real(zinput)) if @varyrotation rotation = rotation + rotationstep * rotation * ftemp * sign endif ; varyrotation if @varythresh thresh = thresh + threshstep * thresh * ftemp * sign if @ringstyle if @whattotrap < 12 innerradius = thresh - rwidth else innerradius = thresh + rwidth endif ; whattotrap endif ; ringstyle endif ; varythresh if @varyrwidth rwidth = rwidth + ringstep * rwidth * ftemp * sign if @whattotrap < 12 innerradius = thresh - rwidth else innerradius = thresh + rwidth endif ; whattotrap endif ; varyrwidth if @varycenter tempx = real(center) + centerstep * real(center) * ftemp * sign tempy = imag(center) + centerstep * imag(center) * ftemp * sign center = tempx + flip( tempy ) endif ; varycenter endif ; vary endif ; iter ; Make some Perlin calculations if enabled and necessary if @enableperlin if @perlininitpoint == "#z" perlinztest = #z perlintest = TRUE elseif @perlininitpoint == "mod z" perlinztest = zinput perlintest = TRUE elseif @perlininitpoint == "trap" perlinztest = tempc perlintest = TRUE elseif @perlininitpoint == "trapped #z" perlinztest = ztrapped perlintest = TRUE elseif @perlininitpoint == "trapped mod z" perlinztest = zitrapped perlintest = TRUE elseif @perlininitpoint == "trapped trap" perlinztest = ttrapped perlintest = TRUE elseif @perlininitpoint == "angle 1" perlinztest = zangle + flip(tangle) perlintest = TRUE elseif @perlininitpoint == "angle 2" perlinztest = zangle + flip(tempangle) perlintest = TRUE elseif @perlininitpoint == "angle 3" perlinztest = tempangle + flip(tangle) perlintest = TRUE elseif @perlininitpoint == "test result" perlinztest = test + flip(zangle) perlintest = TRUE elseif @perlininitpoint == "pixel" perlinztest = #pixel perlintest = TRUE elseif @perlininitpoint == "combination" perlintest = TRUE if @perlincombo == "#z + modz" perlinztest = #z + zinput elseif @perlincombo == "#z * modz" perlinztest = #z * zinput elseif @perlincombo == "#z - modz" perlinztest = #z - zinput elseif @perlincombo == "modz - #z" perlinztest = zinput - #z elseif @perlincombo == "#z/modz" perlinztest = #z / zinput elseif @perlincombo == "modz/#z" perlinztest = zinput / #z elseif @perlincombo == "#z + t" perlinztest = #z + tempc elseif @perlincombo == "#z * t" perlinztest = #z * tempc elseif @perlincombo == "#z - t" perlinztest = #z - tempc elseif @perlincombo == "t - #z" perlinztest = tempc - #z elseif @perlincombo == "#z/t" perlinztest = #z / tempc elseif @perlincombo == "t/#z" perlinztest = tempc / #z elseif @perlincombo == "modz + t" perlinztest = zinput + tempc elseif @perlincombo == "modz * t" perlinztest = zinput * tempc elseif @perlincombo == "modz - t" perlinztest = zinput - tempc elseif @perlincombo == "t - modz" perlinztest = tempc - zinput elseif @perlincombo == "modz/t" perlinztest = zinput / tempc elseif @perlincombo == "t/modz" perlinztest = tempc / zinput elseif @perlincombo == "#z + pix" perlinztest = #z + #pixel elseif @perlincombo == "#z * pix" perlinztest = #z * #pixel elseif @perlincombo == "#z - pix" perlinztest = #z - #pixel elseif @perlincombo == "pix - #z" perlinztest = #pixel - #z elseif @perlincombo == "#z/pix" perlinztest = #z / #pixel elseif @perlincombo == "pix/#z" perlinztest = #pixel / #z elseif @perlincombo == "modz + pix" perlinztest = zinput + #pixel elseif @perlincombo == "modz * pix" perlinztest = zinput * #pixel elseif @perlincombo == "modz - pix" perlinztest = zinput - #pixel elseif @perlincombo == "pix - modz" perlinztest = #pixel - zinput elseif @perlincombo == "modz/pix" perlinztest = zinput / #pixel elseif @perlincombo == "pix/modz" perlinztest = #pixel / zinput elseif @perlincombo == "t + pix" perlinztest = tempc + #pixel elseif @perlincombo == "t * pix" perlinztest = tempc * #pixel elseif @perlincombo == "t - pix" perlinztest = tempc - #pixel elseif @perlincombo == "pix - t" perlinztest = #pixel - tempc elseif @perlincombo == "t/pix" perlinztest = tempc / #pixel elseif @perlincombo == "pix/t" perlinztest = #pixel / tempc elseif @perlincombo == "z' + modz'" perlinztest = ztrapped + zitrapped elseif @perlincombo == "z' * modz'" perlinztest = ztrapped * zitrapped elseif @perlincombo == "z' - modz'" perlinztest = ztrapped - zitrapped elseif @perlincombo == "modz' - z'" perlinztest = zitrapped - ztrapped elseif @perlincombo == "z'/modz'" perlinztest = ztrapped / zitrapped elseif @perlincombo == "modz'/z'" perlinztest = zitrapped / ztrapped elseif @perlincombo == "z' + t'" perlinztest = ztrapped + ttrapped elseif @perlincombo == "z' * t'" perlinztest = ztrapped * ttrapped elseif @perlincombo == "z' - t'" perlinztest = ztrapped - ttrapped elseif @perlincombo == "t' - z'" perlinztest = ttrapped - ztrapped elseif @perlincombo == "z'/t'" perlinztest = ztrapped / ttrapped elseif @perlincombo == "t'/z'" perlinztest = ttrapped / ztrapped elseif @perlincombo == "modz' + t'" perlinztest = zitrapped + ttrapped elseif @perlincombo == "modz' * t'" perlinztest = zitrapped * ttrapped elseif @perlincombo == "modz' - t'" perlinztest = zitrapped - ttrapped elseif @perlincombo == "t' - modz'" perlinztest = ttrapped - zitrapped elseif @perlincombo == "modz'/t'" perlinztest = zitrapped / ttrapped elseif @perlincombo == "t'/modz'" perlinztest = ttrapped / zitrapped elseif @perlincombo == "z' + pix" perlinztest = ztrapped + #pixel elseif @perlincombo == "z' * pix" perlinztest = ztrapped * #pixel elseif @perlincombo == "z' - pix" perlinztest = ztrapped - #pixel elseif @perlincombo == "pix - z'" perlinztest = #pixel - ztrapped elseif @perlincombo == "z'/pix" perlinztest = ztrapped / #pixel elseif @perlincombo == "pix/z'" perlinztest = #pixel / ztrapped elseif @perlincombo == "modz' + pix" perlinztest = zitrapped + #pixel elseif @perlincombo == "modz' * pix" perlinztest = zitrapped * #pixel elseif @perlincombo == "modz' - pix" perlinztest = zitrapped - #pixel elseif @perlincombo == "pix - modz'" perlinztest = #pixel - zitrapped elseif @perlincombo == "modz'/pix" perlinztest = zitrapped / #pixel elseif @perlincombo == "pix/modz'" perlinztest = #pixel / zitrapped elseif @perlincombo == "t' + pix" perlinztest = ttrapped + #pixel elseif @perlincombo == "t' * pix" perlinztest = ttrapped * #pixel elseif @perlincombo == "t' - pix" perlinztest = ttrapped - #pixel elseif @perlincombo == "pix - t'" perlinztest = #pixel - ttrapped elseif @perlincombo == "t'/pix" perlinztest = ttrapped / #pixel elseif @perlincombo == "pix/t'" perlinztest = #pixel / ttrapped elseif @perlincombo == "#z + z'" perlinztest = #z + ztrapped elseif @perlincombo == "#z * z'" perlinztest = #z * ztrapped elseif @perlincombo == "#z - z'" perlinztest = #z - ztrapped elseif @perlincombo == "z' - #z" perlinztest = ztrapped - #z elseif @perlincombo == "#z/z'" perlinztest = #z / ztrapped elseif @perlincombo == "z'/#z" perlinztest = ztrapped / #z elseif @perlincombo == "#z + modz'" perlinztest = #z + zitrapped elseif @perlincombo == "#z * modz'" perlinztest = #z * zitrapped elseif @perlincombo == "#z - modz'" perlinztest = #z - zitrapped elseif @perlincombo == "modz' - #z" perlinztest = zitrapped - #z elseif @perlincombo == "#z/modz'" perlinztest = #z / zitrapped elseif @perlincombo == "modz'/#z" perlinztest = zitrapped / #z elseif @perlincombo == "#z + t'" perlinztest = #z + ttrapped elseif @perlincombo == "#z * t'" perlinztest = #z * ttrapped elseif @perlincombo == "#z - t'" perlinztest = #z - ttrapped elseif @perlincombo == "t' - #z" perlinztest = ttrapped - #z elseif @perlincombo == "#z/t'" perlinztest = #z / ttrapped elseif @perlincombo == "t'/#z" perlinztest = ttrapped / #z elseif @perlincombo == "modz + z'" perlinztest = zinput + ztrapped elseif @perlincombo == "modz * z'" perlinztest = zinput * ztrapped elseif @perlincombo == "modz - z'" perlinztest = zinput - ztrapped elseif @perlincombo == "z' - modz" perlinztest = ztrapped - zinput elseif @perlincombo == "modz/z'" perlinztest = zinput / ztrapped elseif @perlincombo == "z'/modz" perlinztest = ztrapped / zinput elseif @perlincombo == "modz + modz'" perlinztest = zinput + zitrapped elseif @perlincombo == "modz * modz'" perlinztest = zinput * zitrapped elseif @perlincombo == "modz - modz'" perlinztest = zinput - zitrapped elseif @perlincombo == "modz' - modz" perlinztest = zitrapped - zinput elseif @perlincombo == "modz/modz'" perlinztest = zinput / zitrapped elseif @perlincombo == "modz'/modz" perlinztest = zitrapped / zinput elseif @perlincombo == "modz + t'" perlinztest = zinput + ttrapped elseif @perlincombo == "modz * t'" perlinztest = zinput * ttrapped elseif @perlincombo == "modz - t'" perlinztest = zinput - ttrapped elseif @perlincombo == "t' - modz" perlinztest = ttrapped - zinput elseif @perlincombo == "modz/t'" perlinztest = zinput / ttrapped elseif @perlincombo == "t'/modz" perlinztest = ttrapped / zinput elseif @perlincombo == "t + z'" perlinztest = tempc + ztrapped elseif @perlincombo == "t * z'" perlinztest = tempc * ztrapped elseif @perlincombo == "t - z'" perlinztest = tempc - ztrapped elseif @perlincombo == "z' - t" perlinztest = ztrapped - tempc elseif @perlincombo == "t/z'" perlinztest = tempc / ztrapped elseif @perlincombo == "z'/t" perlinztest = ztrapped / tempc elseif @perlincombo == "t + modz'" perlinztest = tempc + zitrapped elseif @perlincombo == "t * modz'" perlinztest = tempc * zitrapped elseif @perlincombo == "t - modz'" perlinztest = tempc - zitrapped elseif @perlincombo == "modz' - t" perlinztest = zitrapped - tempc elseif @perlincombo == "t/modz'" perlinztest = tempc / zitrapped elseif @perlincombo == "modz'/t" perlinztest = zitrapped / tempc elseif @perlincombo == "t + t'" perlinztest = tempc + ttrapped elseif @perlincombo == "t * t'" perlinztest = tempc * ttrapped elseif @perlincombo == "t - t'" perlinztest = tempc - ttrapped elseif @perlincombo == "t' - t" perlinztest = ttrapped - tempc elseif @perlincombo == "t/t'" perlinztest = tempc / ttrapped elseif @perlincombo == "t'/t" perlinztest = ttrapped / tempc endif ; @perlincombo endif ; @perlininitpoint if perlintest if @perlincriterion == "average" if iter >= (@perlinavgstart - 1) if (@perlinavgiters == 1) || ( perlincount < @perlinavgiters) perlincount = perlincount + 1 if @perlinaltmutant perlinftest = cabs(perlinztest) endif; @perlinaltmutant if @perlinaverage == "arithmetic" perlinfsave = perlinfsave + perlinftest perlinzsave = perlinzsave + perlinztest elseif @perlinaverage == "quadratic" perlinfsave = perlinfsave + sqr(perlinftest) perlinzsave = perlinzsave + sqr(perlinztest) elseif @perlinaverage == "cubic" perlinfsave = perlinfsave + perlinftest*sqr(perlinftest) perlinzsave = perlinzsave + perlinztest*sqr(perlinztest) elseif @perlinaverage == "quartic" perlinfsave = perlinfsave + sqr(sqr(perlinftest)) perlinzsave = perlinzsave + sqr(sqr(perlinztest)) elseif @perlinaverage == "general power" perlinfsave = perlinfsave + perlinftest^@perlinpower perlinzsave = perlinzsave + perlinztest^@perlinpower elseif @perlinaverage == "geometric" perlinfsave = perlinfsave * perlinftest perlinzsave = perlinzsave * perlinztest elseif @perlinaverage == "harmonic" perlinfsave = perlinfsave + 1/perlinftest perlinzsave = perlinzsave + 1/perlinztest elseif @perlinaverage == "HG" perlinfsave = perlinfsave * 1/perlinftest perlinzsave = perlinzsave * 1/perlinztest elseif @perlinaverage == "function average" if @perlinavgfn == "exp" perlinfsave = perlinfsave + exp(@perlinavgscale*perlinftest) perlinzsave = perlinzsave + exp(@perlinavgscale*perlinztest) elseif @perlinavgfn == "log" perlinfsave = perlinfsave + log(@perlinavgscale*perlinftest) perlinzsave = perlinzsave + log(@perlinavgscale*perlinztest) elseif @perlinavgfn == "sine" perlinfsave = perlinfsave + sin(@perlinavgscale*perlinftest) perlinzsave = perlinzsave + sin(@perlinavgscale*perlinztest) endif ; @perlinavgfn endif ; @perlinaverage endif ; @perlinavgiters endif ; iter else perlinfsave = cabs(perlinztest) perlinzsave = perlinztest endif ; @perlincriterion endif ; perlintest endif ; @enableperlin trapped = FALSE ; reset flag for next iteration final: if ( itrapped != 0 ) ; something has been trapped if (( @whattotrap == 2 ) || ( @whattotrap == 5 )) ; we need to swap some values ; so we will plot the right thing tvtrapped = tvtrapped2, itrapped = itrapped2, zatrapped = zatrapped2, tatrapped = tatrapped2 ztrapped = ztrapped2, zitrapped = zitrapped2, ttrapped = ttrapped2, ziatrapped = ziatrapped2 elseif (( @whattotrap == 3 ) || ( @whattotrap == 6 )) tvtrapped = tvtrapped3, itrapped = itrapped3, zatrapped = zatrapped3, tatrapped = tatrapped3 ztrapped = ztrapped3, zitrapped = zitrapped3, ttrapped = ttrapped3, ziatrapped = ziatrapped3 elseif (( @whattotrap == 4 ) || ( @whattotrap == 7 )) tvtrapped = tvtrapped4, itrapped = itrapped4, zatrapped = zatrapped4, tatrapped = tatrapped4 ztrapped = ztrapped4, zitrapped = zitrapped4, ttrapped = ttrapped4, ziatrapped = ziatrapped4 elseif @whattotrap == 17 ; max-min tvtrapped = tvtrapped2-tvtrapped, itrapped = itrapped2-itrapped zatrapped = zatrapped2-zatrapped, tatrapped = tatrapped2-tatrapped ztrapped = ztrapped2-ztrapped, zitrapped = zitrapped2-zitrapped ttrapped = ttrapped2-ttrapped, ziatrapped = ziatrapped2-ziatrapped elseif @whattotrap == 18 ; max+min tvtrapped = tvtrapped2+tvtrapped, itrapped = itrapped2+itrapped zatrapped = zatrapped2+zatrapped, tatrapped = tatrapped2+tatrapped ztrapped = ztrapped2+ztrapped, zitrapped = zitrapped2+zitrapped ttrapped = ttrapped2+ttrapped, ziatrapped = ziatrapped2+ziatrapped elseif @whattotrap == 19 ; max*min tvtrapped = tvtrapped2*tvtrapped, itrapped = itrapped2*itrapped zatrapped = zatrapped2*zatrapped, tatrapped = tatrapped2*tatrapped ztrapped = ztrapped2*ztrapped, zitrapped = zitrapped2*zitrapped ttrapped = ttrapped2*ttrapped, ziatrapped = ziatrapped2*ziatrapped elseif @whattotrap == 20 ; max/min tvtrapped = tvtrapped2/tvtrapped, itrapped = round(itrapped2/itrapped) zatrapped = zatrapped2/zatrapped, tatrapped = tatrapped2/tatrapped ztrapped = ztrapped2/ztrapped, zitrapped = zitrapped2/zitrapped ttrapped = ttrapped2/ttrapped, ziatrapped = ziatrapped2/ziatrapped elseif @whattotrap == 21 ; max^min tvtrapped = tvtrapped2^tvtrapped, itrapped = round(itrapped2^itrapped) zatrapped = zatrapped2^zatrapped, tatrapped = tatrapped2^tatrapped ztrapped = ztrapped2^ztrapped, zitrapped = zitrapped2^zitrapped ttrapped = ttrapped2^ttrapped, ziatrapped = ziatrapped2^ziatrapped elseif @whattotrap == 22 ; min-max tvtrapped = tvtrapped-tvtrapped2, itrapped = itrapped-itrapped2 zatrapped = zatrapped-zatrapped2, tatrapped = tatrapped-tatrapped2 ztrapped = ztrapped-ztrapped2, zitrapped = zitrapped-zitrapped2 ttrapped = ttrapped-ttrapped2, ziatrapped = ziatrapped-ziatrapped2 elseif @whattotrap == 23 ; min/max tvtrapped = tvtrapped/tvtrapped2, itrapped = round(itrapped/itrapped2) zatrapped = zatrapped/zatrapped2, tatrapped = tatrapped/tatrapped2 ztrapped = ztrapped/ztrapped2, zitrapped = zitrapped/zitrapped2 ttrapped = ttrapped/ttrapped2, ziatrapped = ziatrapped/ziatrapped2 elseif @whattotrap == 24 ; min^max tvtrapped = tvtrapped^tvtrapped2, itrapped = round(itrapped^itrapped2) zatrapped = zatrapped^zatrapped2, tatrapped = tatrapped^tatrapped2 ztrapped = ztrapped^ztrapped2, zitrapped = zitrapped^zitrapped2 ttrapped = ttrapped^ttrapped2, ziatrapped = ziatrapped^ziatrapped2 elseif @whattotrap == 25 ; average: (max+min)/2 tvtrapped = (tvtrapped+tvtrapped2)/2, itrapped = trunc((itrapped+itrapped2)/2) zatrapped = (zatrapped+zatrapped2)/2, tatrapped = (tatrapped+tatrapped2)/2 ztrapped = (ztrapped+ztrapped2)/2, zitrapped = (zitrapped+zitrapped2)/2 ttrapped = (ttrapped+ttrapped2)/2, ziatrapped = (ziatrapped2+ziatrapped)/2 elseif @whattotrap == 27 ; average ftemp = 1/(iter-@skippediters) tvtrapped = tvtrapped*ftemp, itrapped = round(itrapped*ftemp), zatrapped = zatrapped*ftemp tatrapped = tatrapped*ftemp, ztrapped = ztrapped*ftemp, zitrapped = zitrapped*ftemp ttrapped = ttrapped*ftemp, ziatrapped = ziatrapped*ftemp endif ; whattotrap ; If enabled, mask this point if @maskA ; check the first mask if ( @maskwhatA == 0 ) ; distance ftemp = cabs( ztrapped - ttrapped ) elseif ( @maskwhatA == 1 ) ; mod distance (distance to zinput, not #z) ftemp = cabs( zitrapped - ttrapped ) elseif ( @maskwhatA == 2 ) ; magnitude ftemp = cabs(ztrapped) elseif ( @maskwhatA == 3 ) ; modulated magnitude ftemp = cabs(zitrapped) elseif ( @maskwhatA == 4 ) ; flavor value (formerly called 'test') ftemp = tvtrapped if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 5 ) ; iteration ftemp = itrapped elseif ( @maskwhatA == 6 ) ; angle ftemp = zatrapped if @maskAmod ftemp = ftemp/twopi endif ; @maskAmod elseif ( @maskwhatA == 7 ) ; modulated angle ftemp = ziatrapped if @maskAmod ftemp = abs(ftemp)/twopi endif ; @maskAmod elseif ( @maskwhatA == 8 ) ; real ftemp = real( ztrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 9 ) ; modulated real ftemp = real( zitrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 10 ) ; imaginary ftemp = imag( ztrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 11 ) ; modulated imaginary ftemp = imag( zitrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 12 ) ; trap magnitude ftemp = cabs(ttrapped) elseif ( @maskwhatA == 13 ) ; trap angle ftemp = tatrapped if @maskAmod ftemp = abs(ftemp)/twopi endif ; @maskAmod elseif ( @maskwhatA == 14 ) ; trap real ftemp = real( ttrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 15 ) ; trap imaginary ftemp = imag( ttrapped ) if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 16 ) ; difference angle ftemp = ziatrapped - tatrapped if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 17 ) ; difference angle 2 ftemp = zatrapped - tatrapped if @maskAmod ftemp = abs(ftemp) endif ; @maskAmod elseif ( @maskwhatA == 18 ) ; sum if @maskAmod ftemp = cabs( zitrapped + ttrapped ) else ftemp = cabs( ztrapped + ttrapped ) endif ; @maskAmod elseif ( @maskwhatA == 19 ) ; product if @maskAmod ftemp = cabs( zitrapped * ttrapped ) else ftemp = cabs( ztrapped * ttrapped ) endif ; @maskAmod elseif ( @maskwhatA == 20 ) ; quotient 1 if @maskAmod ftemp = cabs( zitrapped / ttrapped ) else ftemp = cabs( ztrapped / ttrapped ) endif ; @maskAmod elseif ( @maskwhatA == 21 ) ; quotient 2 if @maskAmod ftemp = cabs( ttrapped / zitrapped ) else ftemp = cabs( ttrapped / ztrapped ) endif ; @maskAmod elseif ( @maskwhatA == 22 ) ; power 1 if @maskAmod ftemp = cabs( zitrapped ^ ttrapped ) else ftemp = cabs( ztrapped ^ ttrapped ) endif ; @maskAmod elseif ( @maskwhatA == 23 ) ; power 2 if @maskAmod ftemp = cabs( ttrapped ^ zitrapped ) else ftemp = cabs( ttrapped ^ ztrapped ) endif ; @maskAmod elseif ( @maskwhatA == 24 ) ; arithmetic mean if @maskAmod ftemp = cabs( (zitrapped + ttrapped)/2 ) else ftemp = cabs( (ztrapped + ttrapped)/2 ) endif ; @maskAmod elseif ( @maskwhatA == 25 ) ; geometric mean if @maskAmod ftemp = cabs( sqrt(zitrapped * ttrapped) ) else ftemp = cabs( sqrt(ztrapped * ttrapped) ) endif ; @maskAmod elseif ( @maskwhatA == 26 ) ; modulus iteration ftemp = itrapped % @itermaskmod elseif ( @maskwhatA == 27 ) ; modulus angle ftemp = zatrapped % @anglemaskmod endif ; @maskwhatA if @maskifA == "falls above" if ftemp > @maskAmin maskAset = TRUE endif ; ftemp elseif @maskifA == "falls below" if ftemp < @maskAmin maskAset = TRUE endif ; ftemp elseif @maskifA == "falls between" if (ftemp > @maskAmin) && (ftemp < @maskAmax) maskAset = TRUE endif ; ftemp elseif @maskifA == "falls outside" if (ftemp < @maskAmin) || (ftemp > @maskAmax) maskAset = TRUE endif ; ftemp elseif @maskifA == "equals" if ftemp == @maskAmin maskAset = TRUE endif ; ftemp elseif @maskifA == "not equal" if ftemp != @maskAmin maskAset = TRUE endif ; ftemp endif ; @maskifA endif ; maskA if @maskB ; check the second mask if ( @maskwhatB == 0 ) ; distance ftemp = cabs( ztrapped - ttrapped ) elseif ( @maskwhatB == 1 ) ; mod distance (distance to zinput, not #z) ftemp = cabs( zitrapped - ttrapped ) elseif ( @maskwhatB == 2 ) ; magnitude ftemp = cabs(ztrapped) elseif ( @maskwhatB == 3 ) ; modulated magnitude ftemp = cabs(zitrapped) elseif ( @maskwhatB == 4 ) ; flavor value (formerly called 'test') ftemp = tvtrapped if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 5 ) ; iteration ftemp = itrapped elseif ( @maskwhatB == 6 ) ; angle ftemp = zatrapped if @maskBmod ftemp = ftemp/twopi endif ; @maskBmod elseif ( @maskwhatB == 7 ) ; modulated angle ftemp = ziatrapped if @maskBmod ftemp = abs(ftemp)/twopi endif ; @maskBmod elseif ( @maskwhatB == 8 ) ; real ftemp = real( ztrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 9 ) ; modulated real ftemp = real( zitrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 10 ) ; imaginary ftemp = imag( ztrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 11 ) ; modulated imaginary ftemp = imag( zitrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 12 ) ; trap magnitude ftemp = cabs(ttrapped) elseif ( @maskwhatB == 13 ) ; trap angle ftemp = tatrapped if @maskBmod ftemp = abs(ftemp)/twopi endif ; @maskBmod elseif ( @maskwhatB == 14 ) ; trap real ftemp = real( ttrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 15 ) ; trap imaginary ftemp = imag( ttrapped ) if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 16 ) ; difference angle ftemp = ziatrapped - tatrapped if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 17 ) ; difference angle 2 ftemp = zatrapped - tatrapped if @maskBmod ftemp = abs(ftemp) endif ; @maskBmod elseif ( @maskwhatB == 18 ) ; sum if @maskBmod ftemp = cabs( zitrapped + ttrapped ) else ftemp = cabs( ztrapped + ttrapped ) endif ; @maskBmod elseif ( @maskwhatB == 19 ) ; product if @maskBmod ftemp = cabs( zitrapped * ttrapped ) else ftemp = cabs( ztrapped * ttrapped ) endif ; @maskBmod elseif ( @maskwhatB == 20 ) ; quotient 1 if @maskBmod ftemp = cabs( zitrapped / ttrapped ) else ftemp = cabs( ztrapped / ttrapped ) endif ; @maskBmod elseif ( @maskwhatB == 21 ) ; quotient 2 if @maskBmod ftemp = cabs( ttrapped / zitrapped ) else ftemp = cabs( ttrapped / ztrapped ) endif ; @maskBmod elseif ( @maskwhatB == 22 ) ; power 1 if @maskBmod ftemp = cabs( zitrapped ^ ttrapped ) else ftemp = cabs( ztrapped ^ ttrapped ) endif ; @maskBmod elseif ( @maskwhatB == 23 ) ; power 2 if @maskBmod ftemp = cabs( ttrapped ^ zitrapped ) else ftemp = cabs( ttrapped ^ ztrapped ) endif ; @maskBmod elseif ( @maskwhatB == 24 ) ; arithmetic mean if @maskBmod ftemp = cabs( (zitrapped + ttrapped)/2 ) else ftemp = cabs( (ztrapped + ttrapped)/2 ) endif ; @maskBmod elseif ( @maskwhatB == 25 ) ; geometric mean if @maskBmod ftemp = cabs( sqrt(zitrapped * ttrapped) ) else ftemp = cabs( sqrt(ztrapped * ttrapped) ) endif ; @maskBmod elseif ( @maskwhatB == 26 ) ; modulus iteration ftemp = itrapped % @itermaskmodB elseif ( @maskwhatB == 27 ) ; modulus angle ftemp = zatrapped % @anglemaskmodB endif ; @maskwhatB if @maskifB == "falls above" if ftemp > @maskBmin maskBset = TRUE endif ; ftemp elseif @maskifB == "falls below" if ftemp < @maskBmin maskBset = TRUE endif ; ftemp elseif @maskifB == "falls between" if (ftemp > @maskBmin) && (ftemp < @maskBmax) maskBset = TRUE endif ; ftemp elseif @maskifB == "falls outside" if (ftemp < @maskBmin) || (ftemp > @maskBmax) maskBset = TRUE endif ; ftemp elseif @maskifB == "equals" if ftemp == @maskBmin maskBset = TRUE endif ; ftemp elseif @maskifB == "not equal" if ftemp != @maskBmin maskBset = TRUE endif ; ftemp endif ; @maskifB endif ; maskB ; Mask combination logic if @maskA && @maskB if @maskcombo == "or" if maskAset || maskBset #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "and" if maskAset && maskBset #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "not" if maskAset && !maskBset #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "eor" if (maskAset && !maskBset) || (!maskAset && maskBset) #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "nor" if !(maskAset || maskBset) #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "nand" if !(maskAset && maskBset) #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "neor" if !((maskAset && !maskBset) || (!maskAset && maskBset)) #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskcombo == "Aor!B" if maskAset || !maskBset #solid = TRUE solidset = TRUE endif ; maskAset endif ; @maskcombo elseif @maskA if maskAset #solid = TRUE solidset = TRUE endif ; maskAset elseif @maskB if maskBset #solid = TRUE solidset = TRUE endif ; maskBset endif ; @maskA && @maskB ; Figure amount of texture ; Texture code adapted from code of ldm & reb if !solidset if @texture if @texinit == "z" ztemp2 = ztrapped elseif @texinit == "mod z" ztemp2 = zitrapped else ; @texinit == "trap" ztemp2 = ttrapped endif ; @texinit index = 0 ztemp2 = ztemp2*10^@texpower while index < 4 if ( texfunc[index] == 0 ) ztemp = ztemp2 elseif ( texfunc[index] == 1 ) ztemp = 1/ztemp2 elseif ( texfunc[index] == 2 ) ztemp = ztemp2 * ztemp2 elseif ( texfunc[index] == 3 ) ztemp = 1 / ( ztemp2 * ztemp2 ) elseif ( texfunc[index] == 4 ) ztemp = log(ztemp2) elseif ( texfunc[index] == 5 ) ztemp = exp( ztemp2) elseif ( texfunc[index] == 6 ) ztemp = ztemp2^ztemp2 elseif ( texfunc[index] == 7 ) ztemp = sin( ztemp2 ) elseif ( texfunc[index] == 8 ) ztemp = cos( ztemp2 ) elseif ( texfunc[index] == 9 ) ztemp = tan( ztemp2 ) elseif ( texfunc[index] == 10 ) ztemp = asin( ztemp2 ) elseif ( texfunc[index] == 11 ) ztemp = acos( ztemp2 ) elseif ( texfunc[index] == 12 ) ztemp = atan( ztemp2 ) elseif ( texfunc[index] == 13 ) ztemp = sinh( ztemp2 ) elseif ( texfunc[index] == 14 ) ztemp = cosh( ztemp2 ) elseif ( texfunc[index] == 15 ) ztemp = tanh( ztemp2 ) elseif ( texfunc[index] == 16 ) ztemp = asinh( ztemp2 ) elseif ( texfunc[index] == 17 ) ztemp = acosh( ztemp2 ) elseif ( texfunc[index] == 18 ) ztemp = atanh( ztemp2 ) elseif ( texfunc[index] == 19 ) ztemp = log( 1/ztemp2 ) elseif ( texfunc[index] == 20 ) ztemp = log( log( ztemp2 )) elseif ( texfunc[index] == 21 ) ztemp = exp( -ztemp2 ) elseif ( texfunc[index] == 22 ) ztemp = exp( 1/ztemp2 ) elseif ( texfunc[index] == 23 ) ztemp = ztemp2^(-ztemp2) elseif ( texfunc[index] == 24 ) ztemp = sin( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 25 ) ztemp = cos( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 26 ) ztemp = tan( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 27 ) ztemp = cotan( ztemp2 ) elseif ( texfunc[index] == 28 ) ztemp = 1/cos( ztemp2 ) elseif ( texfunc[index] == 29 ) ztemp = 1/sin( ztemp2 ) elseif ( texfunc[index] == 30 ) ztemp = cotan( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 31 ) ztemp = 1/cos( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 32 ) ztemp = 1/sin( ztemp2 ) ztemp = ztemp * ztemp elseif ( texfunc[index] == 33 ) ztemp = ztemp2^(ztemp2) ztemp = ztemp2^ztemp elseif ( texfunc[index] == 34 ) ztemp = ztemp2^(ztemp2) ztemp = 1/( ztemp2^ztemp ) elseif ( texfunc[index] == 35 ) ztemp = log(-ztemp2) elseif ( texfunc[index] == 36 ) ztemp = 1/log( ztemp2 ) elseif ( texfunc[index] == 37 ) ztemp = ztemp2 * log( ztemp2 ) elseif ( texfunc[index] == 38 ) ztemp = sin( ztemp2 ) / ztemp2 elseif ( texfunc[index] == 39 ) ztemp = cos( ztemp2 ) / ztemp2 elseif ( texfunc[index] == 40 ) ztemp = sin( ztemp2 ) * cos( ztemp2 ) elseif ( texfunc[index] == 41 ) ztemp = sin( ztemp2^2 ) elseif ( texfunc[index] == 42 ) ztemp = exp( -1/ztemp2 ) elseif ( texfunc[index] == 43 ) ztemp = ztemp2 * exp( ztemp2 ) elseif ( texfunc[index] == 44 ) ztemp = ztemp2 * exp( -ztemp2 ) elseif ( texfunc[index] == 45 ) ztemp = ztemp2 * exp( 1/ztemp2 ) elseif ( texfunc[index] == 46 ) ztemp = ztemp2 * exp( -1/ztemp2 ) elseif ( texfunc[index] == 47 ) ztemp = ztemp2 * ztemp2 * ztemp2 elseif ( texfunc[index] == 48 ) ztemp = 1 / ( ztemp2 * ztemp2 * ztemp2 ) elseif ( texfunc[index] == 49 ) ztemp = atan( 1 / ztemp2 ) elseif ( texfunc[index] == 50 ) ztemp = acos( 1 / ztemp2 ) elseif ( texfunc[index] == 51 ) ztemp = asin( 1 / ztemp2 ) elseif ( texfunc[index] == 52 ) ztemp = tan( ztemp2 ) / ztemp2 elseif ( texfunc[index] == 53 ) ztemp = cotan( ztemp2 ) / ztemp2 elseif ( texfunc[index] == 54 ) ztemp = 1 / ( ztemp2 * cos( ztemp2 )) elseif ( texfunc[index] == 55 ) ztemp = 1 / ( ztemp2 * sin( ztemp2 )) elseif ( texfunc[index] == 56 ) ztemp = ztemp2 * sin( ztemp2 ) elseif ( texfunc[index] == 57 ) ztemp = ztemp2 * cos( ztemp2 ) elseif ( texfunc[index] == 58 ) ztemp = ztemp2 * tan( ztemp2 ) elseif ( texfunc[index] == 59 ) ztemp = ztemp2 * cotan( ztemp2 ) elseif ( texfunc[index] == 60 ) ztemp = ztemp2/cos( ztemp2 ) elseif ( texfunc[index] == 61 ) ztemp = ztemp2/sin( ztemp2 ) elseif ( texfunc[index] == 62 ) ztemp = sin( 1/ztemp2 ) elseif ( texfunc[index] == 63 ) ztemp = cos( 1/ztemp2 ) elseif ( texfunc[index] == 64 ) ztemp = tan( 1/ztemp2 ) elseif ( texfunc[index] == 65 ) ztemp = cotan( 1/ztemp2 ) elseif ( texfunc[index] == 66 ) ztemp = 1/cos( 1/ztemp2 ) elseif ( texfunc[index] == 67 ) ztemp = 1/sin( 1/ztemp2 ) elseif ( texfunc[index] == 68 ) ztemp = cotanh( ztemp2 ) elseif ( texfunc[index] == 69 ) ztemp = 1/cosh( ztemp2 ) elseif ( texfunc[index] == 70 ) ztemp = 1/sinh( ztemp2 ) elseif ( texfunc[index] == 71 ) ztemp = atanh( 1/ztemp2 ) elseif ( texfunc[index] == 72 ) ztemp = acosh( 1/ztemp2 ) elseif ( texfunc[index] == 73 ) ztemp = asinh( 1/ztemp2 ) elseif texfunc[index] == 74 ztemp = ztemp2^tex2powers[index] elseif texfunc[index] == 75 ztemp = sinh(ztemp2) ztemp = ztemp * ztemp elseif texfunc[index] == 76 ztemp = cosh( ztemp2 ) ztemp = ztemp * ztemp elseif texfunc[index] == 77 ztemp = tanh(ztemp2) ztemp = ztemp * ztemp elseif texfunc[index] == 78 ztemp = cotanh( ztemp2 ) ztemp = ztemp * ztemp elseif texfunc[index] == 79 ztemp = 1/cosh(ztemp2) ztemp = ztemp * ztemp elseif texfunc[index] == 80 ztemp = 1 / sinh( ztemp2 ) ztemp = ztemp * ztemp elseif texfunc[index] == 81 ztemp = sinh(1/ztemp2) elseif texfunc[index] == 82 ztemp = cosh(1/ztemp2) elseif texfunc[index] == 83 ztemp = tanh(1/ztemp2) elseif texfunc[index] == 84 ztemp = cotanh(1/ztemp2) elseif texfunc[index] == 85 ztemp = 1/cosh(1/ztemp2) elseif texfunc[index] == 86 ztemp = 1/sinh(1/ztemp2) elseif texfunc[index] == 87 ztemp = sin( ztemp2 ) * tan(ztemp2) elseif texfunc[index] == 88 ztemp = sinh(ztemp2) * tanh(ztemp2) elseif texfunc[index] == 89 ztemp = sinh(ztemp2) * cosh(ztemp2) elseif texfunc[index] == 90 ztemp = sinh(ztemp2) ztemp2 = cosh(ztemp2) ztemp = ztemp*ztemp*ztemp2*ztemp2 elseif texfunc[index] == 91 ztemp = sin(ztemp2) ztemp2 = cos(ztemp2) ztemp = ztemp*ztemp*ztemp2*ztemp2 elseif texfunc[index] == 92 ztemp = 1/ztemp2 ztemp = sin(ztemp)*cos(ztemp) elseif texfunc[index] == 93 ztemp = sin( 1/ztemp2 ) ztemp = ztemp*ztemp elseif texfunc[index] == 94 ztemp = sin(ztemp2) * cos(1/ztemp2) elseif texfunc[index] == 95 ztemp = sin(ztemp2) * sin(1/ztemp2) elseif texfunc[index] == 96 ztemp = log(ztemp2) ztemp = ztemp*ztemp elseif texfunc[index] == 97 ztemp = sin(ztemp2) * sin(2*ztemp2) elseif texfunc[index] == 98 ztemp = exp(2*ztemp2) elseif texfunc[index] == 99 ztemp = exp(-2*ztemp2) elseif texfunc[index] == 100 ztemp = 1/ztemp2 ztemp = sinh(ztemp)*cosh(ztemp) elseif texfunc[index] == 101 ztemp = sinh( 1/ztemp2 ) ztemp = ztemp*ztemp elseif texfunc[index] == 102 ztemp = sinh(ztemp2) * cosh(1/ztemp2) elseif texfunc[index] == 103 ztemp = sinh(ztemp2) * sinh(1/ztemp2) elseif texfunc[index] == 104 ztemp = sin(ztemp2) * sinh(ztemp2) elseif texfunc[index] == 105 ztemp = sin(ztemp2) * cosh(ztemp2) elseif texfunc[index] == 106 ztemp = sin(ztemp2) ztemp2 = sinh(ztemp2) ztemp = ztemp*ztemp*ztemp2*ztemp2 elseif texfunc[index] == 107 ztemp = sin(ztemp2)*exp(ztemp2) elseif texfunc[index] == 108 ztemp = cos(ztemp2)*exp(ztemp2) elseif texfunc[index] == 109 ztemp = sinh(ztemp2)*exp(ztemp2) elseif texfunc[index] == 110 ztemp = cosh(ztemp2)*exp(ztemp2) elseif texfunc[index] == 111 ztemp = sin(ztemp2)*log(ztemp2) elseif texfunc[index] == 112 ztemp = cos(ztemp2)*log(ztemp2) elseif texfunc[index] == 113 ztemp = sinh(ztemp2)*log(ztemp2) elseif texfunc[index] == 114 ztemp = cosh(ztemp2)*log(ztemp2) elseif texfunc[index] == 115 ztemp = exp(ztemp2^2) elseif texfunc[index] == 116 ztemp = exp(1/(ztemp2^2)) elseif texfunc[index] == 117 ztemp = abs(ztemp2) elseif texfunc[index] == 118 ztemp = round(ztemp2) elseif texfunc[index] == 119 ztemp = trunc(ztemp2) elseif texfunc[index] == 120 ztemp = ceil(ztemp2) elseif texfunc[index] == 121 ztemp = floor(ztemp2) elseif texfunc[index] == 122 ztemp = ztemp2/log(ztemp2) elseif texfunc[index] == 123 ztemp = log(ztemp2)/ztemp2 elseif texfunc[index] == 124 ztemp = exp(ztemp2)/ztemp2 elseif texfunc[index] == 125 ztemp = exp(1/ztemp2)/ztemp2 elseif texfunc[index] == 126 ztemp = exp(ztemp2^2)/ztemp2 elseif texfunc[index] == 127 ztemp = exp(1/(ztemp2^2))/ztemp2 elseif texfunc[index] == 128 ztemp = ztemp2 * exp(ztemp2^2) elseif texfunc[index] == 129 ztemp = ztemp2 * exp(1/(ztemp2^2)) elseif texfunc[index] == 130 ztemp = exp(-(ztemp2^2)) elseif texfunc[index] == 131 ztemp = exp(-1/(ztemp2^2)) elseif texfunc[index] == 132 ztemp = exp(-(ztemp2^2))/ztemp2 elseif texfunc[index] == 133 ztemp = exp(-1/(ztemp2^2))/ztemp2 elseif texfunc[index] == 134 ztemp = ztemp2 * exp(-(ztemp2^2)) else ; texfunc[index] == 135 ztemp = ztemp2 * exp(-1/(ztemp2^2)) endif ; texfunc[] if index == 0 ztemp2 = (ztemp + @texf1offset) * @texf1multiplier elseif index == 1 ztemp2 = ztemp * @texscale ztemp2 = ztemp2 - round(ztemp2) + @texf2offset elseif index == 2 ztemp2 = (ztemp + @texf3offset) * @texf3multiplier elseif index == 3 ztemp2 = (ztemp + @texoffset) * @texf4offset endif ; index index = index + 1 endwhile ; index ftemp = cabs(ztemp2) * @texmod texadjust = (ftemp - trunc(ftemp)) * @texamount endif ; @texture endif ; solidset ; Figure amount of Perlin noise (fBm) if !solidset ; Perlin noise modulation if @enableperlin ; first, determine what initialization to use if @perlininitpoint == "pixel" zperlin = #pixel else if @perlincriterion != "average" zperlin = perlinzsave else if @perlinaverage == "arithmetic" perlinfsave = perlinfsave/perlincount perlinzsave = perlinzsave/perlincount elseif @perlinaverage == "quadratic" perlinfsave = sqrt(perlinfsave/perlincount) perlinzsave = sqrt(perlinzsave/perlincount) elseif @perlinaverage == "cubic" perlinfsave = (perlinfsave/perlincount)^(1/3) perlinzsave = (perlinzsave/perlincount)^(1/3) elseif @perlinaverage == "quartic" perlinfsave = (perlinfsave/perlincount)^(1/4) perlinzsave = (perlinzsave/perlincount)^(1/4) elseif @perlinaverage == "general power" perlinfsave = (perlinfsave/perlincount)^(1/@perlinpower) perlinzsave = (perlinzsave/perlincount)^(1/@perlinpower) elseif @perlinaverage == "geometric" perlinfsave = perlinfsave^(1/perlincount) perlinzsave = perlinzsave^(1/perlincount) elseif @perlinaverage == "harmonic" perlinfsave = perlincount/perlinfsave perlinzsave = perlincount/perlinzsave elseif @perlinaverage == "HG" perlinfsave = 1/((perlinfsave)^(1/perlincount)) perlinzsave = 1/((perlinzsave)^(1/perlincount)) elseif @perlinaverage == "function average" if @perlinavgfn == "exp" perlinfsave = log(perlinfsave/perlincount) perlinzsave = log(perlinzsave/perlincount) elseif @perlinavgfn == "log" perlinfsave = exp(perlinfsave/perlincount) perlinzsave = exp(perlinzsave/perlincount) elseif @perlinavgfn == "sine" perlinfsave = asin(perlinfsave/perlincount) perlinzsave = asin(perlinzsave/perlincount) if perlinfsave < 0 perlinfsave = perlinfsave + #pi endif ; perlinfsave endif ; @perlinavgfn endif ; @perlinaverage zperlin = perlinzsave endif ; @perlincriterion if @perlinmutate if @perlinmutstyle == "antares" zperlin = perlinfsave + flip(real(perlinzsave)) elseif @perlinmutstyle == "fomalhaut" zperlin = perlinfsave + flip(imag(perlinzsave)) elseif @perlinmutstyle == "rigel" zperlin = perlinfsave + flip(cabs(perlinzsave)) elseif @perlinmutstyle == "arcturus" zperlin = cabs(#pixel) + flip(imag(perlinzsave)) elseif @perlinmutstyle == "capella" zperlin = flip(perlinfsave) elseif @perlinmutstyle == "polaris" zperlin = perlinfsave endif ; @perlinmutstyle endif ; @perlinmutate endif ; @perlininitpoint if @perlintransform != "none" if @perlintransform == "circle" ztemp = zperlin - @perlincenter temp2 = atan2(ztemp) if temp2 < 0 temp2 = temp2 + twopi endif ; atan2 temp1 = @perlinradius * cos(temp2) ; x-coordinate on circle temp2 = @perlinradius * sin(temp2) ; y-coordinate ztemp = temp1 + flip(temp2) elseif @perlintransform == "diamond" ztemp = zperlin - @perlincenter temp2 = atan2(ztemp) ; angle if temp2 < 0 temp2 = temp2 + twopi endif ; atan2 temp1 = cos(temp2) ; x-coordinate if temp2 <= halfpi temp2 = 1-temp1 ; y-coordinate elseif temp2 <= #pi temp2 = 1+temp1 elseif temp2 <= 3 * halfpi temp2 = -temp1-1 else temp2 = temp1-1 endif ; temp2 ztemp = @perlinradius * (temp1 + flip(temp2)) elseif @perlintransform == "x-axis" ztemp = @perlinradius * real(zperlin-@perlincenter) + flip(0) endif ; @perlintransform if @transformcombo == "trap" zperlin = ztemp elseif @transformcombo == "sum" zperlin = zperlin + ztemp elseif @transformcombo == "difference 1" zperlin = zperlin - ztemp elseif @transformcombo == "difference 2" zperlin = ztemp - zperlin elseif @transformcombo == "product" zperlin = zperlin * ztemp elseif @transformcombo == "quotient 1" zperlin = zperlin / ztemp elseif @transformcombo == "quotient 2" zperlin = ztemp / zperlin elseif @transformcombo == "power 1" zperlin = zperlin ^ ztemp elseif @transformcombo == "power 2" zperlin = ztemp ^ zperlin elseif @transformcombo == "arithmetic average" zperlin = (zperlin + ztemp) / 2 elseif @transformcombo == "geometric average" zperlin = (zperlin * ztemp) ^ (1/2) endif ; @transformcombo endif ; @perlintransform altindex = 0 noisesum = 0.0 noiseamplitude = 1.0 zrotate = (0,1)^(@perlinrotation/90) zunit = (0,1)^(1/5) * (0,1)^(@perlinrotstep/90) zperlin = zperlin * @perlinscale * zrotate + @perlinoffset perlinmodulus = perlinarraysz * 16 while altindex < @perlinoctaves zpart = real(zperlin) % perlinmodulus + perlinmodulus gridx0 = floor(zpart) % perlinarraysz gridx1 = (gridx0 + 1) % perlinarraysz fracx0 = zpart - floor(zpart) fracx1 = fracx0 - 1 zpart = imag(zperlin) % perlinmodulus + perlinmodulus gridy0 = floor(zpart) % perlinarraysz gridy1 = (gridy0 + 1) % perlinarraysz fracy0 = zpart - floor(zpart) fracy1 = fracy0 - 1 grad00 = perlinperms[perlinperms[gridx0] + gridy0] grad10 = perlinperms[perlinperms[gridx1] + gridy0] grad01 = perlinperms[perlinperms[gridx0] + gridy1] grad11 = perlinperms[perlinperms[gridx1] + gridy1] if @perlinfade == "poppy" xsmoothing = sqr(fracx0) * (3-2*fracx0) ysmoothing = sqr(fracy0) * (3-2*fracy0) elseif @perlinfade == "gardenia" temp1 = sqr(fracx0) temp2 = fracx0*temp1 xsmoothing = 6*temp1*temp2 - 15*temp1*temp1 + 10*temp2 temp1 = sqr(fracy0) temp2 = fracy0*temp1 ysmoothing = 6*temp1*temp2 - 15*temp1*temp1 + 10*temp2 elseif @perlinfade == "thistle" xsmoothing = sqrt(@fadeadjust * abs(fracx0)) ysmoothing = sqrt(@fadeadjust * abs(fracy0)) elseif @perlinfade == "dandelion" xsmoothing = sin(@fadeadjust * #pi * fracx0) ysmoothing = sin(@fadeadjust * #pi * fracy0) elseif @perlinfade == "dahlia" xsmoothing = exp(@fadeadjust * fracx0) ysmoothing = exp(@fadeadjust * fracy0) elseif @perlinfade == "honeysuckle" xsmoothing = log(@fadeadjust * (abs(fracx0)+1)) ysmoothing = log(@fadeadjust * (abs(fracy0)+1)) endif ; @perlinfade utemp = fracx0 * perlingrads[grad00,0] + fracy0 * perlingrads[grad00,1] vtemp = fracx1 * perlingrads[grad10,0] + fracy0 * perlingrads[grad10,1] atemp = utemp + xsmoothing*(vtemp-utemp) utemp = fracx0 * perlingrads[grad01,0] + fracy1 * perlingrads[grad01,1] vtemp = fracx1 * perlingrads[grad11,0] + fracy1 * perlingrads[grad11,1] btemp = utemp + xsmoothing*(vtemp-utemp) noisesum = noisesum + (atemp + ysmoothing*(btemp-atemp)) * noiseamplitude zperlin = zperlin * zunit/@perlinfreq noiseamplitude = noiseamplitude * @perlinamplitude altindex = altindex + 1 endwhile ; altindex perlinadjust = @avgcolorwt*tempcolor + (noisesum + @perlinadjustment)*@perlinamount*@perlincolorwt endif ; @enableperlin if ( @colorby == 0 ) ; distance tempcolor = cabs( ztrapped - ttrapped ) if @filledtrap ftemp = cabs(ztrapped), ftemp2 = cabs(ttrapped) if (ftemp - ftemp2 < 0) tempcolor = 0 endif ; ftemp endif ; @filledtrap elseif ( @colorby == 1 ) ; mod distance (distance to zinput, not #z) tempcolor = cabs( zitrapped - ttrapped ) if @filledtrap ftemp = cabs(zitrapped), ftemp2 = cabs(ttrapped) if (ftemp - ftemp2 < 0) tempcolor = 0 endif ; ftemp endif ; @filledtrap elseif ( @colorby == 2 ) ; magnitude tempcolor = log(cabs(ztrapped)) elseif ( @colorby == 3 ) ; modulated magnitude tempcolor = cabs(zitrapped) elseif ( @colorby == 4 ) ; flavor value (formerly called 'test') tempcolor = abs(tvtrapped) elseif ( @colorby == 5 ) ; iteration tempcolor = sqrt(log(itrapped)) elseif ( @colorby == 6 ) ; angle tempcolor = zatrapped / twopi elseif ( @colorby == 7 ) ; modulated angle tempcolor = abs(ziatrapped) / twopi elseif ( @colorby == 8 ) ; real tempcolor = abs( real( ztrapped )) elseif ( @colorby == 9 ) ; modulated real tempcolor = log(abs( real( zitrapped ))) elseif ( @colorby == 10 ) ; imaginary tempcolor = abs( imag( ztrapped )) elseif ( @colorby == 11 ) ; modulated imaginary tempcolor = log(abs( imag( zitrapped ))) elseif ( @colorby == 12 ) ; trap magnitude tempcolor = cabs(ttrapped) elseif ( @colorby == 13 ) ; trap angle tempcolor = abs(tatrapped) / twopi elseif ( @colorby == 14 ) ; trap real tempcolor = abs( real( ttrapped )) elseif ( @colorby == 15 ) ; trap imaginary tempcolor = abs( imag( ttrapped )) elseif ( @colorby == 16 ) ; fBm/texture only tempcolor = 0.5 elseif ( @colorby == 17 ) ; modulated iteration tempcolor = (sqrt(log(itrapped+1)) + (itrapped % @itermodulus)) / @itermodulus elseif ( @colorby == 18 ) ; modulated iteration 2 (discrete iter) tempcolor = (itrapped % @itermodulus) / @itermodulus elseif ( @colorby == 19 ) ; smooth moditer 1 tempcolor = (sqrt(log(1+log(itrapped+1))) + (itrapped % @itermodulus)) / @itermodulus elseif ( @colorby == 20 ) ; smooth moditer 2 tempcolor = (sqrt(log(1+log(itrapped+1)))/iter + (itrapped % @itermodulus)) / @itermodulus elseif ( @colorby == 21 ) ; count if @countmode == "raw" tempcolor = hitcount*iter/#maxiter elseif @countmode == "maxiter" tempcolor = log(log(iter)+1)*hitcount/log(#maxiter) elseif @countmode == "numiter" tempcolor = log(log(iter)*hitcount+1) elseif @countmode == "raw 2" tempcolor = log(hitcount+1)*log(iter) elseif @countmode == "raw 3" tempcolor = log(hitcount+1)*iter/#maxiter endif ; @countmode elseif ( @colorby == 22 ) ; modulus angle tempcolor = (zatrapped % @anglemodulus) / @anglemodulus endif ; colorby if @softendistance if tempcolor > @softdistamt ftemp = tempcolor - @softdistamt ftemp2 = ftemp + 1 tempcolor = ftemp2^(@softdistpwr+@softaccel*log(ftemp2)) - 1 + @softdistamt else tempcolor = @softdistamt endif ; tempcolor endif ; @softendistance if @enablestretch if @stretchtype == "linear" tempcolor = tempcolor * @stretchcolor elseif @stretchtype == "linear2" tempcolor = tempcolor*stretchconstant + stretchconstant2 elseif @stretchtype == "exponential" tempcolor = (stretchconstant*exp(stretchconstant2*tempcolor))-stretchconstant elseif @stretchtype == "quadratic" tempcolor = tempcolor*tempcolor*stretchconstant + tempcolor*stretchconstant2 elseif @stretchtype == "quadratic2" tempcolor = tempcolor*tempcolor*stretchconstant + tempcolor*stretchconstant2 elseif @stretchtype == "tanh" tempcolor = 1.0 + (tanh(@stretchtanhamount*(tempcolor/@stretchtanhfixedpt - 1.0))/stretchconstant) endif ; @stretchtype endif; @enablestretch if @offsetcolor tempcolor = abs(tempcolor - @coloroffset) endif ; @offsetcolor if @offsetcolor2 tempcolor = abs(abs(tempcolor - @coloroffset2) - @coloroffset2) endif ; @offsetcolor2 ; Soften coloring of maxima if ( (@whattotrap == 1) || (@whattotrap == 5) || (@whattotrap == 6) || \ (@whattotrap == 7) || (@whattotrap > 15) ) && ( (@colorby != 4) && \ (@colorby != 5) && (@colorby != 6) && (@colorby != 7) && (@colorby < 12) ) tempcolor = (log(abs(tempcolor)))^(@maxsoften) endif ; @whattotrap if @ranges == 1 tempcolor = tempcolor + perlinadjust + texadjust else if !@maskranges tempcolor = ((tempcolor + perlinadjust + texadjust) + (itrapped % @ranges) ) / @ranges else count = (itrapped % @ranges) + 1 if @whatrange == "<=" if count <= @rangemin #solid = TRUE solidset = TRUE endif ; count elseif @whatrange == ">=" if count >= @rangemin #solid = TRUE solidset = TRUE endif ; count elseif @whatrange == "=" if count == @rangemin #solid = TRUE solidset = TRUE endif ; count elseif @whatrange == "not =" if count != @rangemin #solid = TRUE solidset = TRUE endif ; count elseif @whatrange == "between" if (count >= @rangemin) && (count <= @rangemax) #solid = TRUE solidset = TRUE endif ; count else ; @whatrange == "outside" if ((count <= @rangemin) || (count >= @rangemax)) #solid = TRUE solidset = TRUE endif ; count endif ; @whatrange if solidset == FALSE tempcolor = ((tempcolor + perlinadjust + texadjust) + (itrapped % @ranges) ) / @ranges endif ; solidset endif ; maskranges endif ; ranges endif ; solidset if !solidset if @absolutewarp tempcolor = abs(tempcolor) endif ; @absolutewarp if @colorwarp == "c" ftemp = tempcolor elseif @colorwarp == "1/c" ftemp = 1/tempcolor elseif @colorwarp == "c^2" ftemp = tempcolor * tempcolor elseif @colorwarp == "1/c^2" ftemp = 1 / ( tempcolor * tempcolor ) elseif @colorwarp == "log(c)" ftemp = log(tempcolor) elseif @colorwarp == "e^c" ftemp = exp( tempcolor) elseif @colorwarp == "c^c" ftemp = tempcolor^tempcolor elseif @colorwarp == "sin(c)" ftemp = sin( tempcolor ) elseif @colorwarp == "cos(c)" ftemp = cos( tempcolor ) elseif @colorwarp == "tan(c)" ftemp = tan( tempcolor ) elseif @colorwarp == "asin(c)" ftemp = asin( tempcolor ) elseif @colorwarp == "acos(c)" ftemp = acos( tempcolor ) elseif @colorwarp == "atan(c)" ftemp = atan( tempcolor ) elseif @colorwarp == "sinh(c)" ftemp = sinh( tempcolor ) elseif @colorwarp == "cosh(c)" ftemp = cosh( tempcolor ) elseif @colorwarp == "tanh(c)" ftemp = tanh( tempcolor ) elseif @colorwarp == "asinh(c)" ftemp = asinh( tempcolor ) elseif @colorwarp == "acosh(c)" ftemp = acosh( tempcolor ) elseif @colorwarp == "atanh(c)" ftemp = atanh( tempcolor ) elseif @colorwarp == "log(1/c)" ftemp = log( 1/tempcolor ) elseif @colorwarp == "log(log(c))" ftemp = log( log( tempcolor )) elseif @colorwarp == "e^-c" ftemp = exp( -tempcolor ) elseif @colorwarp == "e^(1/c)" ftemp = exp( 1/tempcolor ) elseif @colorwarp == "c^-c" ftemp = tempcolor^(-tempcolor) elseif @colorwarp == "sin(c)^2" ftemp = sin( tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == "cos(c)^2" ftemp = cos( tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == "tan(c)^2" ftemp = tan( tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == "cot(c)" ftemp = cotan( tempcolor ) elseif @colorwarp == "sec(c)" ftemp = 1/cos( tempcolor ) elseif @colorwarp == "csc(c)" ftemp = 1/sin( tempcolor ) elseif @colorwarp == "cot(c)^2" ftemp = cotan( tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == "sec(c)^2" ftemp = 1/cos( tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == "csc(c)^2" ftemp = 1/sin( tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == "c^c^c" ftemp = tempcolor^(tempcolor) ftemp = tempcolor^ftemp elseif @colorwarp == "1/c^c^c" ftemp = tempcolor^(tempcolor) ftemp = 1/( tempcolor^ftemp ) elseif @colorwarp == "log(-c)" ftemp = log(-tempcolor) elseif @colorwarp == "1/log(c)" ftemp = 1/log( tempcolor ) elseif @colorwarp == "clog(c)" ftemp = tempcolor * log( tempcolor ) elseif @colorwarp == "sin(c)/c" ftemp = sin( tempcolor ) / tempcolor elseif @colorwarp == "cos(c)/c" ftemp = cos( tempcolor ) / tempcolor elseif @colorwarp == "sin(c)*cos(c)" ftemp = sin( tempcolor ) * cos( tempcolor ) elseif @colorwarp == "sin(c^2)" ftemp = sin( tempcolor^2 ) elseif @colorwarp == "e^(-1/c)" ftemp = exp( -1/tempcolor ) elseif @colorwarp == "ce^c" ftemp = tempcolor * exp( tempcolor ) elseif @colorwarp == "ce^-c" ftemp = tempcolor * exp( -tempcolor ) elseif @colorwarp == "ce^(1/c)" ftemp = tempcolor * exp( 1/tempcolor ) elseif @colorwarp == "ce^(-1/c)" ftemp = tempcolor * exp( -1/tempcolor ) elseif @colorwarp == "c^3" ftemp = tempcolor * tempcolor * tempcolor elseif @colorwarp == "1/c^3" ftemp = 1 / ( tempcolor * tempcolor * tempcolor ) elseif @colorwarp == "acot(c)" ftemp = atan( 1 / tempcolor ) elseif @colorwarp == "asec(c)" ftemp = acos( 1 / tempcolor ) elseif @colorwarp == "acsc(c)" ftemp = asin( 1 / tempcolor ) elseif @colorwarp == "tan(c)/c" ftemp = tan( tempcolor ) / tempcolor elseif @colorwarp == "cot(c)/c" ftemp = cotan( tempcolor ) / tempcolor elseif @colorwarp == "sec(c)/c" ftemp = 1 / ( tempcolor * cos( tempcolor )) elseif @colorwarp == "csc(c)/c" ftemp = 1 / ( tempcolor * sin( tempcolor )) elseif @colorwarp == "csin(c)" ftemp = tempcolor * sin( tempcolor ) elseif @colorwarp == "ccos(c)" ftemp = tempcolor * cos( tempcolor ) elseif @colorwarp == "ctan(c)" ftemp = tempcolor * tan( tempcolor ) elseif @colorwarp == "ccot(c)" ftemp = tempcolor * cotan( tempcolor ) elseif @colorwarp == "csec(c)" ftemp = tempcolor/cos( tempcolor ) elseif @colorwarp == "ccsc(c)" ftemp = tempcolor/sin( tempcolor ) elseif @colorwarp == "sin(1/c)" ftemp = sin( 1/tempcolor ) elseif @colorwarp == "cos(1/c)" ftemp = cos( 1/tempcolor ) elseif @colorwarp == "tan(1/c)" ftemp = tan( 1/tempcolor ) elseif @colorwarp == "cot(1/c)" ftemp = cotan( 1/tempcolor ) elseif @colorwarp == "sec(1/c)" ftemp = 1/cos( 1/tempcolor ) elseif @colorwarp == "csc(1/c)" ftemp = 1/sin( 1/tempcolor ) elseif @colorwarp == "cotanh(c)" ftemp = cotanh( tempcolor ) elseif @colorwarp == "sech(c)" ftemp = 1/cosh( tempcolor ) elseif @colorwarp == "cosech(c)" ftemp = 1/sinh( tempcolor ) elseif @colorwarp == "acoth(c)" ftemp = atanh( 1/tempcolor ) elseif @colorwarp == "asech(c)" ftemp = acosh( 1/tempcolor ) elseif @colorwarp == "acosech(c)" ftemp = asinh( 1/tempcolor ) elseif @colorwarp == "c^power" ftemp = tempcolor^@cpower elseif @colorwarp == "sinh(c)^2" ftemp = sinh(tempcolor) ftemp = ftemp * ftemp elseif @colorwarp == "cosh(c)^2" ftemp = cosh( tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == "tanh(c)^2" ftemp = tanh(tempcolor) ftemp = ftemp * ftemp elseif @colorwarp == "cotanh(c)^2" ftemp = cotanh( tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == "sech(c)^2" ftemp = 1/cosh(tempcolor) ftemp = ftemp * ftemp elseif @colorwarp == "cosech(c)^2" ftemp = 1 / sinh( tempcolor ) ftemp = ftemp * ftemp elseif @colorwarp == "sinh(1/c)" ftemp = sinh(1/tempcolor) elseif @colorwarp == "cosh(1/c)" ftemp = cosh(1/tempcolor) elseif @colorwarp == "tanh(1/c)" ftemp = tanh(1/tempcolor) elseif @colorwarp == "cotanh(1/c)" ftemp = cotanh(1/tempcolor) elseif @colorwarp == "sech(1/c)" ftemp = 1/cosh(1/tempcolor) elseif @colorwarp == "cosech(1/c)" ftemp = 1/sinh(1/tempcolor) elseif @colorwarp == "sin(c)tan(c)" ftemp = sin( tempcolor ) * tan(tempcolor) elseif @colorwarp == "sinh(c)tanh(c)" ftemp = sinh(tempcolor) * tanh(tempcolor) elseif @colorwarp == "sinh(c)cosh(c)" ftemp = sinh(tempcolor) * cosh(tempcolor) elseif @colorwarp == "sinh(c)^2*cosh(c)^2" ftemp = sinh(tempcolor), ftemp2 = cosh(tempcolor) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == "sin(c)^2*cos(c)^2" ftemp = sin(tempcolor), ftemp2 = cos(tempcolor) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == "sin(1/c)*cos(1/c)" ftemp = 1/tempcolor ftemp = sin(ftemp)*cos(ftemp) elseif @colorwarp == "sin(1/c)^2" ftemp = sin( 1/tempcolor ) ftemp = ftemp*ftemp elseif @colorwarp == "sin(c)cos(1/c)" ftemp = sin(tempcolor) * cos(1/tempcolor) elseif @colorwarp == "sin(c)sin(1/c)" ftemp = sin(tempcolor) * sin(1/tempcolor) elseif @colorwarp == "log(c)^2" ftemp = log(tempcolor) ftemp = ftemp*ftemp elseif @colorwarp == "sin(c)sin(2c)" ftemp = sin(tempcolor) * sin(2*tempcolor) elseif @colorwarp == "e^2c" ftemp = exp(2*tempcolor) elseif @colorwarp == "e^-2c" ftemp = exp(-2*tempcolor) elseif @colorwarp == "sinh(1/c)cosh(1/c)" ftemp = 1/tempcolor ftemp = sinh(ftemp)*cosh(ftemp) elseif @colorwarp == "sinh(1/c)^2" ftemp = sinh( 1/tempcolor ) ftemp = ftemp*ftemp elseif @colorwarp == "sinh(c)cosh(1/c)" ftemp = sinh(tempcolor) * cosh(1/tempcolor) elseif @colorwarp == "sinh(c)sinh(1/c)" ftemp = sinh(tempcolor) * sinh(1/tempcolor) elseif @colorwarp == "sin(c)sinh(c)" ftemp = sin(tempcolor) * sinh(tempcolor) elseif @colorwarp == "sin(c)cosh(c)" ftemp = sin(tempcolor) * cosh(tempcolor) elseif @colorwarp == "sin(c)^2*sinh(c)^2" ftemp = sin(tempcolor), ftemp2 = sinh(tempcolor) ftemp = ftemp*ftemp*ftemp2*ftemp2 elseif @colorwarp == "sin(c)e^c" ftemp = sin(tempcolor)*exp(tempcolor) elseif @colorwarp == "cos(c)e^c" ftemp = cos(tempcolor)*exp(tempcolor) elseif @colorwarp == "sinh(c)e^c" ftemp = sinh(tempcolor)*exp(tempcolor) elseif @colorwarp == "cosh(c)e^c" ftemp = cosh(tempcolor)*exp(tempcolor) elseif @colorwarp == "sin(c)log(c)" ftemp = sin(tempcolor)*log(tempcolor) elseif @colorwarp == "cos(c)log(c)" ftemp = cos(tempcolor)*log(tempcolor) elseif @colorwarp == "sinh(c)log(c)" ftemp = sinh(tempcolor)*log(tempcolor) elseif @colorwarp == "cosh(c)log(c)" ftemp = cosh(tempcolor)*log(tempcolor) elseif @colorwarp == "e^(c^2)" ftemp = exp(tempcolor^2) elseif @colorwarp == "e^(1/(c^2))" ftemp = exp(1/(tempcolor^2)) elseif @colorwarp == "abs(c)" ftemp = abs(tempcolor) elseif @colorwarp == "round(c)" ftemp = round(tempcolor) elseif @colorwarp == "trunc(c)" ftemp = trunc(tempcolor) elseif @colorwarp == "ceil(c)" ftemp = ceil(tempcolor) elseif @colorwarp == "floor(c)" ftemp = floor(tempcolor) elseif @colorwarp == "c/log(c)" ftemp = tempcolor/log(tempcolor) elseif @colorwarp == "log(c)/c" ftemp = log(tempcolor)/tempcolor elseif @colorwarp == "(e^c)/c" ftemp = exp(tempcolor)/tempcolor elseif @colorwarp == "(e^(1/c))/c" ftemp = exp(1/tempcolor)/tempcolor elseif @colorwarp == "(e^(c^2))/c" ftemp = exp(tempcolor^2)/tempcolor elseif @colorwarp == "(e^(1/(c^2)))/c" ftemp = exp(1/(tempcolor^2))/tempcolor elseif @colorwarp == "c*e^(c^2)" ftemp = tempcolor * exp(tempcolor^2) elseif @colorwarp == "c*e^(1/(c^2))" ftemp = tempcolor * exp(1/(tempcolor^2)) elseif @colorwarp == "e^(-c^2)" ftemp = exp(-(tempcolor^2)) elseif @colorwarp == "e^(-1/(c^2))" ftemp = exp(-1/(tempcolor^2)) elseif @colorwarp == "(e^(-c^2))/c" ftemp = exp(-(tempcolor^2))/tempcolor elseif @colorwarp == "(e^(-1/(c^2))/c" ftemp = exp(-1/(tempcolor^2))/tempcolor elseif @colorwarp == "c*e^(-c^2)" ftemp = tempcolor * exp(-(tempcolor^2)) elseif @colorwarp == "c*e^(1/(-c^2))" ftemp = tempcolor * exp(-1/(tempcolor^2)) elseif @colorwarp == "log(c) B" ftemp = log(1+tempcolor) else ; @colorwarp == "log(log(c)) B" ftemp = log(1+log(1+tempcolor)) endif ; tempcolorwarp #index = abs(ftemp) endif ; solidset else if @coloruntrappedregion #index = @untrappedcolor else #solid = TRUE endif ; @coloruntrappedregion endif ; itrapped default: title = "Orbit Trap Reprise" heading caption = "Primary Settings" $ifdef VER40 expanded = TRUE $endif endheading param traptype caption = "Trap 1 Type" enum = "lines & points" "polar functions" "parametric functions" \ "cartesian" "simple functions" default = 0 hint = "This setting determines the method used for the 'Trap Shape' 1." visible = @showprimaries endparam param trapshape caption = "Trap Shape" enum = "line" "triangle" "isosceles" "3-asterisk" "3-star" "3-star 2" \ "polytriangle" "trigram" "nested triangles" "nested triangle 2" \ "twisted triangles" "twisted triangle 2" "3-rhombstar" "triangular spiral" \ "triangular array" "square" "square 2" "rhombus" "kite" "dart" \ "rectangle" "4-asterisk" "4-star" "flat 4-star" "4-star 2" \ "bowtie" "windowpane" "tetragram" "tetragram 2" "nested squares" \ "nested square 2" "twisted squares" \ "twisted square 2" "windmill" "windmill 2" "4-rhombstar" \ "square spiral" "square array" "pentagon" "pentagon 2" \ "pentagram" "pentagram 2" "pentagram 3" \ "pentagram 4" "pentagram 5" "5-asterisk" "5-star" "5-star 2" \ "5-star 3" "nested pentagons" "nested pentagon 2" "twisted pentagons" \ "twisted pentagon 2" "5-rhombstar" "pentagonal spiral" "pentagonal array" \ "hexagon" "hexagon 2" "hexagram" "hexagram 2" "hexagram 3" \ "hexagram 4" "hexagram 5" "hexagram 6" "hexagram 7" "honeycomb" \ "6-asterisk" "6-star" "6-star 2" "6-star 3" "nested hexagons" \ "nested hexagon 2" "hexagonal spiral" "hexagonal array" "twisted hexagons" \ "twisted hexagon 2" "6-rhombstar" "heptagon" "heptagon 2" "heptagram" \ "heptagram 2" "heptagram 3" "heptagram 4" \ "heptagram 5" "heptagram 6" "heptagram 7" "7-asterisk" "7-star" \ "7-star 2" "7-star 3" "nested heptagons" "nested heptagon 2" \ "twisted heptagons" "twisted heptagon 2" "7-rhombstar" \ "octagon" "octagon 2" "octagram" "octagram 2" "octagram 3" \ "octagram 4" "octagram 5" "octagram 6" "octagram 7" "octagram 8" \ "octagram 9" "octagram 10" "8-asterisk" "8-star" "8-star 2" "8-rhombstar" \ "octagonal spiral" "nonagon" "nonagram" "nonagram 2" "nonagram 3" \ "nonagram 4" "nonagram 5" "nonagram 6" "nonagram 7" "9-asterisk" \ "9-star" "9-star 2" "9-star 3" "9-rhombstar" "decagon" "decagram" "decagram 2" \ "decagram 3" "decagram 4" "decagram 5" "10-asterisk" "10-star" \ "10-star 2" "10-star 3" "10-rhombstar" "collinear spots" "roots of unity" "hand" \ "nested circles" "osculant circles" "peano curve" "lissajous 1" "lissajous 2" \ "lissajous 3" "superellipse" "hypotrochoid" "epitrochoid" \ "dotted star" "dashed star" "zigzag-3" "zigzag-4" "zigzag-5" \ "zigzag-6" "zigzag-7" "sawtooth-1" "sawtooth-2" "sawtooth-3" "sawtooth-4" \ "square-1" "square-2" "square-3" "square-4" "more polygons" \ "more spirolaterals" "more curves" default = 0 hint = "This parameter determines what geometrical figure to use \ as a trap." visible = @showprimaries && @traptype == "lines & points" endparam param morepolygons1 caption = "Polygon Shape" enum = "11-gon" "11-gram 1" "11-gram 2" "11-gram 3" "11-gram 4" "11-star" "11-star 2" "11-rhombstar" \ "11-asterisk" \ "12-gon" "12-gram 1" "12-gram 2" "12-gram 3" "12-gram 4" "12-gram 5" "12-star" "12-star 2" \ "12-rhombstar" "12-asterisk" \ "13-gon" "13-star" "13-rhombstar" "13-asterisk" "14-gon" "14-star" "14-rhombstar" "14-asterisk" \ "15-gon" "15-star" "15-rhombstar" "15-asterisk" \ "16-gon" "16-star" "16-rhombstar" "16-asterisk" default = 0 hint = "If 'Trap Shape' is set to 'more polygons', this parameter determines which \ polygon shape to use as a trap." visible = @showprimaries && @trapshape == "more polygons" && @traptype == "lines & points" endparam param morespirolaterals1 caption = "Spirolateral Shape" enum = "1,1,1,2,3;1/2" "1,6,6,6;1/4,1/4,-5/6" "1,1,2,1,3;1/2" "1,1,2,2,4;1/2" "1,1,4,5,4;1/2" "1,2,2,2,5;1/2" \ "1,2,5,3,5;1/2" "2,2,1,4,3;1/2" "2,2,4,4,3;1/2" "2,3,5,3,2;1/2" \ "1,6,6,2;3/4,-1/4,-1/6" "1,2,1,3;-4/5" "1,2,1,3;-4/5,-4/5,0" "1,2,1,3;-4/5,-1/5,-4/5" "1,3;1/5,3/5,-1/5" \ "1,2,3,3,2,1;5/6,1/6,1/6" "1,1,3,1;-5/6,-1/6,3/7" "1,1,3,1;-1/6,1/6,-3/7" "1,1,3,1;5/6,1/6,4/7" \ "1,3,1,4,2;-1/2,1/6" default = 0 hint = "If 'Trap Shape' is set to 'more spirolaterals', this parameter determines which \ shape to use as a trap. Some of these settings will require reducing the trap size parameter." visible = @showprimaries && @trapshape == "more spirolaterals" && @traptype == "lines & points" endparam param morecurves1 caption = "Curve Shape" enum = "cycloid" "bipolar lissajous" "elliptic lissajous" "parabolic lissajous" "polar lissajous" \ "Moritz cyclic harmonic" "rhodonea" default = 0 hint = "If 'Trap Shape' is set to 'more curves', this parameter determines which \ curve to use as a trap." visible = @showprimaries && @trapshape == "more curves" && @traptype == "lines & points" endparam param polarshape1 caption = "Trap Shape" enum = "cardioid" "circle" "Cayley's sextic" "Cayley's sextic 2" "cissoid of Diocles" "cochleoid" \ "conchoid of De Sluze" "conchoid of Nicomedes" "cubical parabola" \ "ellipse" "folioid" "folium" "folium of Descartes" "hippopede" "hyperbolic spiral" \ "kampyle of Eudoxus" "kappa" "lemniscate of Bernoulli" \ "limacon of Pascal" "lituus" "lituus 2" "logarithmic spiral""parabola" \ "parabolic spiral" "rose" "semicubical parabola" "spiral of Archimedes" \ "strophoid" "trefoil of Habenicht" "trisectrix limacon" default = 0 hint = "If 'Trap 1 Type' is set to 'polar functions', then this setting determines \ the function to use." visible = @traptype == "polar functions" && @showprimaries endparam param polarmode1 caption = "Function 1 Mode" enum = "normal" "implicit" default = 0 hint = "If 'Trap 1 Type' is set to 'polar functions', this setting determines \ how the function is used. This option primarily affects the way the coloring \ is applied." visible = @showprimaries && @traptype == "polar functions" endparam param parashape1 caption = "Trap Shape" enum = "hypocycloid" "Abdank quadratrix" "companion of cycloid" "cornoid" "cycloid" \ "cycloid variant" "ellipse" "epicycloid" "epicycloid 2" "epitrochoid" \ "hyperbola" "nephroid" \ "serpentine" "tractrix" "wavy circle" "witch of Agnesi" default = 0 hint = "If 'Trap 1 Type' is set to 'parametric functions', then this setting \ determines the function to use." visible = @traptype == "parametric functions" && @showprimaries endparam param xyshape1 caption = "Trap Shape" enum = "ampersand" "Alain's curve" "anguinea" "arcs of Samothrace" "astroid" \ "atriphthaloid" "bean curve 1" "bean curve 2" "beetle curve" "Beutel heart" \ "bicorn" "bicuspid" "biquartic of Sacre" "Bolza curve" "bow curve" \ "bullet nose curve" "butterfly sextic" "butterfly 2" "cardioid" "Cartesian oval" \ "Cassini oval" "catastrophic sine" "catenary" "Cayley's sextic" "Ceva's trisectrix" \ "Chasles cubic" "circle" \ "circular cubic" "cissoid of Diocles" "clinoid" "cochleoid" "conchoid of circle" \ "conchoid of Nicomedes" "conchoid of de Sluze" "conic focal conchoid" \ "cornoid" "cranoid" "cross curve" \ "cubic duplicatrix" "cubic egg" "cubic of Apollonius" "damped sine" "deltoid" "devil's curve" \ "dipole curve" "diverging parabola" "double egg" \ "double folium" "double U curve" "dumbbell curve" "Durer's conchoid" "Durer's folium" \ "eight curve" "ellipse" "fish quartic" "folium 1" "folium 2" "folium of Descartes" \ "Freeth's nephroid" \ "Gaussian curve" "Granville's egg" "Hoerl curve" "Humbert cubic" "hyperbola" "hyperbola 2" \ "illumination curve" "Jerabek curve" "kampyle of Eudoxus" "kappa curve" "Kepler's egg" \ "Kiepert's curve" "kieroid" "kiss curve" "Klein quartic" "Kulp quartic" "limacon of Pascal" \ "links curve" "Lissajous quartic" "Lissajous sextic" "logistic curve" "Maltese cross" \ "nephroid" "nodal curve" "ophiuride" "parabola" "parabola 2" "parabolic trifolium" \ "pearls of de Sluze" "piriform" "plane spiric" "Proclus hippopede" "pursuit curve" \ "quadrafolium" "quadratrix" "resonance curve" \ "right strophoid" "Rosillo curve" "scarabaeus" "scyphoid" "semicubical parabola" \ "Sillke's egg of Columbus" "siluroid" "spiric of Perseus" "strophoid" \ "superellipse" "svastika" "syntractrix" "tetracuspid" "trident" "trifolium" "trisectrix of Delanges" \ "trisectrix of Longchamps" "trisectrix of Maclaurin" "Trott curve" "Tschirnhausen's cubic" \ "visiera" "Watt's curve" "witch of Agnesi" default = 0 hint = "If 'Trap 1 Type' is set to 'cartesian', then this setting determines \ the function to use." visible = @traptype == "cartesian" && @showprimaries endparam param funcshape1 caption = "Trap Shape" enum = "cosine" "tangent" "sine" "cot" "sec" "csc" "ver" "vcs" "cvs" "cvc" \ "exs" "exc" "crd" "asin" "acos" "atan" "acot" "asec" "acsc" "aver" \ "avcs" "acvs" "acvc" "aexs" "aexc" "acrd" "exp" "exp(-z)" "exp(1/z)" \ "exp(-1/z)" "exp(z^2)" "exp(-z^2)" "exp(1/z^2)" "exp(-1/z^2)" "sinh" \ "asinh" "cosh" "acosh" "tanh" "atanh" "cotanh" "sqr" "sqrt" "power" \ "log" "log(-z)" "log(1/z)" "log(-1/z)" "1/z" "absolute value" \ "ceiling" "floor" "truncation" "rounding" "asin 2" "acos 2" "atan 2" "aexs 2" \ "acot 2" "asec 2" "acsc 2" "aver 2" "avcs 2" "acvs 2" "acvc 2" "aexs 2" "aexc 2" "acrd 2" \ "log(z^2)" "log(-z^2)" "log(1/z^2)" "log(-1/z^2)" "log log" \ "exp(exp)" "z^z" "z^z^z" "constant^z" "constant^z^z" default = 0 hint = "If 'Trap 1 Type' is set to 'simple functions', this setting determines \ the function to use." visible = @showprimaries && @traptype == "simple functions" endparam param funcmode1 caption = "Function 1 Mode" enum = "polar" "cartesian" "complex" default = 0 hint = "If 'Trap 1 Type' is set to 'simple functions', this setting determines \ how the function is used." visible = @showprimaries && @traptype == "simple functions" endparam param sfuncpower1 caption = "Function Exponent" default = 3.0 hint = "If 'simple functions' 'Trap Shape' is set to 'power', then this parameter \ is the exponent that is used." visible = @showprimaries && @traptype == "simple functions" && @funcshape1 == "power" endparam param sfuncbase1 caption = " Function Constant" default = 3.0 hint = "If 'simple functions' 'Trap Shape' is set to a 'constant' option, then this parameter \ is the constant that is used." visible = @showprimaries && @traptype == "simple functions" && (@funcshape1 == "constant^z" || \ @funcshape1 == "constant^z^z") endparam param twotrapstrue caption = "Use Two Traps?" default = FALSE hint = "Is selected, two independent traps are used and blended together." visible = @showprimaries endparam param traptype2 caption = "Trap 2 Type" enum = "lines & points" "polar functions" "parametric functions" \ "cartesian" "simple functions" default = 0 hint = "This setting determines the method used for the '2nd Trap Shape'." visible = @twotrapstrue && @showprimaries endparam param trapshape2 caption = "2nd Trap Shape" enum = "line" "triangle" "isosceles" "3-asterisk" "3-star" "3-star 2" \ "polytriangle" "trigram" "nested triangles" "nested triangle 2" \ "twisted triangles" "twisted triangle 2" "3-rhombstar" "triangular spiral" \ "triangular array" "square" "square 2" "rhombus" "kite" "dart" \ "rectangle" "4-asterisk" "4-star" "flat 4-star" "4-star 2" \ "bowtie" "windowpane" "tetragram" "tetragram 2" "nested squares" \ "nested square 2" "twisted squares" \ "twisted square 2" "windmill" "windmill 2" "4-rhombstar" \ "square spiral" "square array" "pentagon" "pentagon 2" \ "pentagram" "pentagram 2" "pentagram 3" \ "pentagram 4" "pentagram 5" "5-asterisk" "5-star" "5-star 2" \ "5-star 3" "nested pentagons" "nested pentagon 2" "twisted pentagons" \ "twisted pentagon 2" "5-rhombstar" "pentagonal spiral" "pentagonal array" \ "hexagon" "hexagon 2" "hexagram" "hexagram 2" "hexagram 3" \ "hexagram 4" "hexagram 5" "hexagram 6" "hexagram 7" "honeycomb" \ "6-asterisk" "6-star" "6-star 2" "6-star 3" "nested hexagons" \ "nested hexagon 2" "hexagonal spiral" "hexagonal array" "twisted hexagons" \ "twisted hexagon 2" "6-rhombstar" "heptagon" "heptagon 2" "heptagram" \ "heptagram 2" "heptagram 3" "heptagram 4" \ "heptagram 5" "heptagram 6" "heptagram 7" "7-asterisk" "7-star" \ "7-star 2" "7-star 3" "nested heptagons" "nested heptagon 2" \ "twisted heptagons" "twisted heptagon 2" "7-rhombstar" \ "octagon" "octagon 2" "octagram" "octagram 2" "octagram 3" \ "octagram 4" "octagram 5" "octagram 6" "octagram 7" "octagram 8" \ "octagram 9" "octagram 10" "8-asterisk" "8-star" "8-star 2" "8-rhombstar" \ "octagonal spiral" "nonagon" "nonagram" "nonagram 2" "nonagram 3" \ "nonagram 4" "nonagram 5" "nonagram 6" "nonagram 7" "9-asterisk" \ "9-star" "9-star 2" "9-star 3" "9-rhombstar" "decagon" "decagram" "decagram 2" \ "decagram 3" "decagram 4" "decagram 5" "10-asterisk" "10-star" \ "10-star 2" "10-star 3" "10-rhombstar" "collinear spots" "roots of unity" "hand" \ "nested circles" "osculant circles" "peano curve" "lissajous 1" "lissajous 2" \ "lissajous 3" "superellipse" "hypotrochoid" "epitrochoid" \ "dotted star" "dashed star" "zigzag-3" "zigzag-4" "zigzag-5" \ "zigzag-6" "zigzag-7" "sawtooth-1" "sawtooth-2" "sawtooth-3" "sawtooth-4" \ "square-1" "square-2" "square-3" "square-4" "more polygons" \ "more spirolaterals" "more curves" default = 0 hint = "This parameter determines what geometrical figure to use \ as a trap." visible = @twotrapstrue && @showprimaries && @traptype2 == "lines & points" endparam param morepolygons2 caption = "Polygon2 Shape" enum = "11-gon" "11-gram 1" "11-gram 2" "11-gram 3" "11-gram 4" "11-star" "11-star 2" "11-asterisk" \ "11-rhombstar" \ "12-gon" "12-gram 1" "12-gram 2" "12-gram 3" "12-gram 4" "12-gram 5" "12-star" "12-star 2" \ "12-asterisk" "12-rhombstar" \ "13-gon" "13-star" "13-asterisk" "13-rhombstar" \ "14-gon" "14-star" "14-asterisk" "14-rhombstar" "15-gon" "15-star" "15-rhombstar" "15-asterisk" \ "16-gon" "16-star" "16-rhombstar" "16-asterisk" default = 0 hint = "If '2nd Trap Shape' is set to 'more polygons', this parameter determines which \ polygon shape to use as a trap." visible = @showprimaries && @trapshape2 == "more polygons" && @twotrapstrue && \ @traptype2 == "lines & points" endparam param morespirolaterals2 caption = "Spirolateral2 Shape" enum = "1,1,1,2,3;1/2" "1,6,6,6;1/4,1/4,-5/6" "1,1,2,1,3;1/2" "1,1,2,2,4;1/2" "1,1,4,5,4;1/2" "1,2,2,2,5;1/2" \ "1,2,5,3,5;1/2" "2,2,1,4,3;1/2" "2,2,4,4,3;1/2" "2,3,5,3,2;1/2" \ "1,6,6,2;3/4,-1/4,-1/6" "1,2,1,3;-4/5" "1,2,1,3;-4/5,-4/5,0" "1,2,1,3;-4/5,-1/5,-4/5" "1,3;1/5,3/5,-1/5" \ "1,2,3,3,2,1;5/6,1/6,1/6" "1,1,3,1;-5/6,-1/6,3/7" "1,1,3,1;-1/6,1/6,-3/7" "1,1,3,1;5/6,1/6,4/7" \ "1,3,1,4,2;-1/2,1/6" default = 0 hint = "If '2nd Trap Shape' is set to 'more spirolaterals', this parameter determines which \ shape to use as a trap. Some of these settings will require reducing the trap size parameter." visible = @showprimaries && @trapshape2 == "more spirolaterals" && @twotrapstrue && \ @traptype2 == "lines & points" endparam param morecurves2 caption = "Curve2 Shape" enum = "cycloid" "bipolar lissajous" "elliptic lissajous" "parabolic lissajous" "polar lissajous" \ "Moritz cyclic harmonic" "rhodonea" default = 0 hint = "If '2nd Trap Shape' is set to 'more curves', this parameter determines which \ curve shape to use as a trap." visible = @showprimaries && @trapshape2 == "more curves" && @twotrapstrue && \ @traptype2 == "lines & points" endparam param polarshape2 caption = "2nd Trap Shape" enum = "cardioid" "circle" "Cayley's sextic" "Cayley's sextic 2" "cissoid of Diocles" "cochleoid" "conchoid" \ "conchoid of De Sluze" "conchoid of Nicomedes" "cubical parabola" \ "ellipse" "folioid" "folium" "folium of Descartes" "hippopede" "hyperbolic spiral" \ "kampyle of Eudoxus" "kappa" "lemniscate of Bernoulli" \ "limacon of Pascal" "lituus" "lituus 2" "logarithmic spiral""parabola" \ "parabolic spiral" "rose" "semicubical parabola" "spiral of Archimedes" \ "strophoid" "trefoil of Habenicht" "trisectrix limacon" default = 0 hint = "If 'Trap 2 Type' is set to 'polar functions', then this setting determines \ the function to use." visible = @twotrapstrue && @traptype2 == "polar functions" && @showprimaries endparam param polarmode2 caption = "Function 2 Mode" enum = "normal" "implicit" default = 0 hint = "If 'Trap 2 Type' is set to 'polar functions', this setting determines \ how the function is used. This option primarily affects the way the coloring \ is applied." visible = @showprimaries && @traptype2 == "polar functions" && @twotrapstrue endparam param parashape2 caption = "2nd Trap Shape" enum = "hypocycloid" "Abdank quadratrix" "companion of cycloid" "cornoid" "cycloid" \ "cycloid variant" "ellipse" "epicycloid" "epicycloid 2" "epitrochoid" \ "hyperbola" "nephroid" \ "serpentine" "tractrix" "wavy circle" "witch of Agnesi" default = 0 hint = "If 'Trap 2 Type' is set to 'parametric functions', then this setting \ determines the function to use." visible = @twotrapstrue && @traptype2 == "parametric functions" && @showprimaries endparam param xyshape2 caption = "2nd Trap Shape" enum = "ampersand" "Alain's curve" "anguinea" "arcs of Samothrace" "astroid" \ "atriphthaloid" "bean curve 1" "bean curve 2" "beetle curve" "Beutel heart" \ "bicorn" "bicuspid" "biquartic of Sacre" "Bolza curve" "bow curve" \ "bullet nose curve" "butterfly sextic" "butterfly 2" "cardioid" "Cartesian oval" \ "Cassini oval" "catastrophic sine" "catenary" "Cayley's sextic" "Ceva's trisectrix" \ "Chasles cubic" "circle" \ "circular cubic" "cissoid of Diocles" "clinoid" "cochleoid" "conchoid of circle" \ "conchoid of Nicomedes" "conchoid of de Sluze" "conic focal conchoid" \ "cornoid" "cranoid" "cross curve" \ "cubic duplicatrix" "cubic egg" "cubic of Apollonius" "damped sine" "deltoid" "devil's curve" \ "dipole curve" "diverging parabola" "double egg" \ "double folium" "double U curve" "dumbbell curve" "Durer's conchoid" "Durer's folium" \ "eight curve" "ellipse" "fish quartic" "folium 1" "folium 2" "folium of Descartes" \ "Freeth's nephroid" \ "Gaussian curve" "Granville's egg" "Hoerl curve" "Humbert cubic" "hyperbola" "hyperbola 2" \ "illumination curve" "Jerabek curve" "kampyle of Eudoxus" "kappa curve" "Kepler's egg" \ "Kiepert's curve" "kieroid" "kiss curve" "Klein quartic" "Kulp quartic" "limacon of Pascal" \ "links curve" "Lissajous quartic" "Lissajous sextic" "logistic curve" "Maltese cross" \ "nephroid" "nodal curve" "ophiuride" "parabola" "parabola 2" "parabolic trifolium" \ "pearls of de Sluze" "piriform" "plane spiric" "Proclus hippopede" "pursuit curve" \ "quadrafolium" "quadratrix" "resonance curve" \ "right strophoid" "Rosillo curve" "scarabaeus" "scyphoid" "semicubical parabola" \ "Sillke's egg of Columbus" "siluroid" "spiric of Perseus" "strophoid" \ "superellipse" "svastika" "syntractrix" "tetracuspid" "trident" "trifolium" "trisectrix of Delanges" \ "trisectrix of Longchamps" "trisectrix of Maclaurin" "Trott curve" "Tschirnhausen's cubic" \ "visiera" "Watt's curve" "witch of Agnesi" default = 0 hint = "If 'Trap 2 Type' is set to 'cartesian', then this setting determines \ the function to use." visible = @twotrapstrue && @showprimaries && @traptype2 == "cartesian" endparam param funcshape2 caption = "2nd Trap Shape" enum = "cosine" "tangent" "sine" "cot" "sec" "csc" "ver" "vcs" "cvs" "cvc" \ "exs" "exc" "crd" "asin" "acos" "atan" "acot" "asec" "acsc" "aver" \ "avcs" "acvs" "acvc" "aexs" "aexc" "acrd" "exp" "exp(-z)" "exp(1/z)" \ "exp(-1/z)" "exp(z^2)" "exp(-z^2)" "exp(1/z^2)" "exp(-1/z^2)" "sinh" \ "asinh" "cosh" "acosh" "tanh" "atanh" "cotanh" "sqr" "sqrt" "power" \ "log" "log(-z)" "log(1/z)" "log(-1/z)" "1/z" "absolute value" \ "ceiling" "floor" "truncation" "rounding" "asin 2" "acos 2" "atan 2" "aexs 2" \ "acot 2" "asec 2" "acsc 2" "aver 2" "avcs 2" "acvs 2" "acvc 2" "aexc 2" "acrd 2" \ "log(z^2)" "log(-z^2)" "log(1/z^2)" "log(-1/z^2)" "log log" \ "exp(exp)" "z^z" "z^z^z" "constant^z" "constant^z^z" default = 0 hint = "If 'Trap 2 Type' is set to 'simple functions', this setting determines \ the function to use." visible = @showprimaries && @traptype2 == "simple functions" && @twotrapstrue endparam param funcmode2 caption = "Function 2 Mode" enum = "polar" "cartesian" "complex" default = 0 hint = "If 'Trap 2 Type' is set to 'simple functions', this setting determines \ how the function is used." visible = @showprimaries && @traptype2 == "simple functions" && @twotrapstrue endparam param sfuncpower2 caption = "Function 2 Exponent" default = 3.0 hint = "If 'simple functions' '2nd Trap Shape' is set to 'power', then this parameter \ is the exponent that is used." visible = @showprimaries && @traptype2 == "simple functions" && @funcshape2 == "power" && @twotrapstrue endparam param sfuncbase2 caption = " Function 2 Constant" default = 3.0 hint = "If 'simple functions' '2nd Trap Shape' is set to a 'constant' option, then this parameter \ is the constant that is used." visible = @showprimaries && @traptype2 == "simple functions" && (@funcshape2 == "constant^z" || \ @funcshape2 == "constant^z^z") && @twotrapstrue endparam param trapcombo caption = "Trap Combination" default = 0 enum = "sum" "difference" "difference 2" "product" "product 2" "quotient" \ "quotient 2" "average" "geom. mean" "exponential 1" "exponential 2" "splice 1" \ "splice 2""splice 3" "splice 4" "splice 5" \ "splice 6" "splice 7" "splice 8" "splice 9" "splice 10" "splice 11" \ "splice 12" "nearest" "farthest" "nearest 2" "farthest 2" \ "largest" "smallest" "cyclical" "cyclical 2" "|A+B|" "|A-B|" "A^2+B^2" \ "A^2-B^2" "B^2-A^2" "|A^2+B^2|" "|A^2-B^2|" "A^3+B^3" "A^3-B^3" "B^3-A^3" \ "|A^3+B^3|" "|A^3-B^3|" "real(z)" "real(z) 2" "real(z) 3" \ "real(z) 4" "imag(z)" "imag(z) 2" "imag(z) 3" "imag(z) 4" \ "quotient 3" "quotient 4" "quotient 5" "quotient 6" "quotient 7" "quotient 8" \ "quotient 9" "quotient 10" "quotient 11" "quotient 12" "quotient 13" \ "quotient 14" "exponential 3" "exponential 4" "exponential 5" \ "exponential 6" "exponential 7" "exponential 8" "exponential 9" "exponential 10" \ "exponential 11" "exponential 12" "exponential 13" "exponential 14" \ "compare real 1" "compare real 2" "compare real 3" "compare real 4" \ "compare imag 1" "compare imag 2" "compare imag 3" "compare imag 4" \ "cross compare 1" "cross compare 2" "cross compare 3" "cross compare 4" \ "compare sum 1" "compare sum 2" "compare sum 3" "compare sum 4" \ "compare sum 5" "compare sum 6" "compare sum 7" "compare sum 8" "compare sum 9" \ "compare sum 10" "compare sum 11" "compare sum 12" "compare difference 1" \ "compare difference 2" "compare difference 3" "compare difference 4" \ "compare difference 5" "compare difference 6" "compare difference 7" \ "compare difference 8" "compare difference 9" "compare difference 10" \ "compare difference 11" "compare difference 12" "compare difference 13" \ "compare difference 14" "compare difference 15" "compare difference 16" \ "compare difference 17" "compare difference 18" "compare difference 19" \ "compare difference 20" "compare product 1" "compare product 2" \ "compare product 3" "compare product 4" "compare product 5" \ "compare product 6" "compare product 7" "compare product 8" \ "compare quotient 1" "compare quotient 2" "compare quotient 3" \ "compare quotient 4" "compare quotient 5" "compare quotient 6" \ "compare quotient 7" "compare quotient 8" "compare quotient 9" \ "compare quotient 10" "compare quotient 11" "compare quotient 12" \ "trap 1 only" "trap 2 only" hint = "This setting determines how the two traps will be merged. Some of \ the mode differences only show up if at least some of the various Z or \ front end modifiers, modulator functions, or history settings are enabled" visible = @twotrapstrue && @showprimaries endparam param isocheight caption = "Isosceles Height" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'isosceles', then this setting \ determines the height of the isosceles triangle." visible = @showprimaries && (@trapshape == "isosceles" && @traptype == "lines & points") \ || (@trapshape2 == "isosceles" && @traptype2 == "lines & points" && @twotrapstrue) endparam param isocwidth caption = "Isosceles Width" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'isosceles', then this setting \ determines the width of the isosceles triangle base." visible = @showprimaries && (@trapshape == "isosceles" && @traptype == "lines & points") \ || (@trapshape2 == "isosceles" && @traptype2 == "lines & points" && @twotrapstrue) endparam param fixisosceles caption = "Fix Isosceles Bug?" default = FALSE hint = "If enabled and 'Trap Shape' is set to 'isosceles', then this \ setting corrects a bug in the scaling of the isosceles triangle." visible = @showprimaries && (@trapshape == "isosceles" && @traptype == "lines & points") \ || (@trapshape2 == "isosceles" && @traptype2 == "lines & points" && @twotrapstrue) endparam param leafAlength caption = "Leaf 1 Length" default = 1.0 hint = "If parameter 'Trap Shape' is set to '3-asterisk', '4-asterisk', etc., \ then this setting adjusts the length of the 1st leaflet." visible = @showprimaries && ((@traptype == "lines & points" && ((@trapshape == "3-asterisk") \ || (@trapshape == "4-asterisk") || \ (@trapshape == "5-asterisk") || (@trapshape == "6-asterisk") || (@trapshape == "7-asterisk") || \ (@trapshape == "8-asterisk") || (@trapshape == "9-asterisk") || (@trapshape == "10-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "11-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "12-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "13-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "14-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "15-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "16-asterisk"))) || \ (@twotrapstrue && (@traptype2 == "lines & points" && ((@trapshape2 == "3-asterisk") || \ (@trapshape2 == "4-asterisk") || \ (@trapshape2 == "5-asterisk") || (@trapshape2 == "6-asterisk") || (@trapshape2 == "7-asterisk") || \ (@trapshape2 == "8-asterisk") || (@trapshape2 == "9-asterisk") || (@trapshape2 == "10-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "11-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "12-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "13-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "14-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "15-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "16-asterisk"))))) endparam param leafBlength caption = "Leaf 2 Length" default = 1.0 hint = "If parameter 'Trap Shape' is set to '3-asterisk', '4-asterisk', etc., \ then this setting adjusts the length of the 2nd leaflet." visible = @showprimaries && ((@traptype == "lines & points" && ((@trapshape == "3-asterisk") \ || (@trapshape == "4-asterisk") || \ (@trapshape == "5-asterisk") || (@trapshape == "6-asterisk") || (@trapshape == "7-asterisk") || \ (@trapshape == "8-asterisk") || (@trapshape == "9-asterisk") || (@trapshape == "10-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "11-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "12-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "13-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "14-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "15-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "16-asterisk"))) || \ (@twotrapstrue && (@traptype2 == "lines & points" && ((@trapshape2 == "3-asterisk") || \ (@trapshape2 == "4-asterisk") || \ (@trapshape2 == "5-asterisk") || (@trapshape2 == "6-asterisk") || (@trapshape2 == "7-asterisk") || \ (@trapshape2 == "8-asterisk") || (@trapshape2 == "9-asterisk") || (@trapshape2 == "10-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "11-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "12-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "13-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "14-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "15-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "16-asterisk"))))) endparam param leafClength caption = "Leaf 3 Length" default = 1.0 hint = "If parameter 'Trap Shape' is set to '3-asterisk', '4-asterisk', etc., \ then this setting adjusts the length of the 3rd leaflet." visible = @showprimaries && ((@traptype == "lines & points" && ((@trapshape == "3-asterisk") \ || (@trapshape == "4-asterisk") || \ (@trapshape == "5-asterisk") || (@trapshape == "6-asterisk") || (@trapshape == "7-asterisk") || \ (@trapshape == "8-asterisk") || (@trapshape == "9-asterisk") || (@trapshape == "10-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "11-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "12-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "13-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "14-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "15-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "16-asterisk"))) || \ (@twotrapstrue && (@traptype2 == "lines & points" && ((@trapshape2 == "3-asterisk") || \ (@trapshape2 == "4-asterisk") || \ (@trapshape2 == "5-asterisk") || (@trapshape2 == "6-asterisk") || (@trapshape2 == "7-asterisk") || \ (@trapshape2 == "8-asterisk") || (@trapshape2 == "9-asterisk") || (@trapshape2 == "10-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "11-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "12-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "13-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "14-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "15-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "16-asterisk"))))) endparam param leafDlength caption = "Leaf 4 Length" default = 1.0 hint = "If parameter 'Trap Shape' is set to '4-asterisk', '5-asterisk', etc., \ then this setting adjusts the length of the 4th leaflet." visible = @showprimaries && ((@traptype == "lines & points" && ((@trapshape == "4-asterisk") || \ (@trapshape == "5-asterisk") || (@trapshape == "6-asterisk") || (@trapshape == "7-asterisk") || \ (@trapshape == "8-asterisk") || (@trapshape == "9-asterisk") || (@trapshape == "10-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "11-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "12-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "13-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "14-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "15-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "16-asterisk"))) || \ (@twotrapstrue && (@traptype2 == "lines & points" && ( \ (@trapshape2 == "4-asterisk") || \ (@trapshape2 == "5-asterisk") || (@trapshape2 == "6-asterisk") || (@trapshape2 == "7-asterisk") || \ (@trapshape2 == "8-asterisk") || (@trapshape2 == "9-asterisk") || (@trapshape2 == "10-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "11-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "12-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "13-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "14-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "15-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "16-asterisk"))))) endparam param leafElength caption = "Leaf 5 Length" default = 1.0 hint = "If parameter 'Trap Shape' is set to '5-asterisk', '6-asterisk', etc., \ then this setting adjusts the length of the 5th leaflet." visible = @showprimaries && ((@traptype == "lines & points" && ( \ (@trapshape == "5-asterisk") || (@trapshape == "6-asterisk") || (@trapshape == "7-asterisk") || \ (@trapshape == "8-asterisk") || (@trapshape == "9-asterisk") || (@trapshape == "10-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "11-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "12-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "13-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "14-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "15-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "16-asterisk"))) || \ (@twotrapstrue && (@traptype2 == "lines & points" && ( \ (@trapshape2 == "5-asterisk") || (@trapshape2 == "6-asterisk") || (@trapshape2 == "7-asterisk") || \ (@trapshape2 == "8-asterisk") || (@trapshape2 == "9-asterisk") || (@trapshape2 == "10-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "11-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "12-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "13-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "14-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "15-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "16-asterisk"))))) endparam param leafFlength caption = "Leaf 6 Length" default = 1.0 hint = "If parameter 'Trap Shape' is set to '6-asterisk', '7-asterisk', etc., \ then this setting adjusts the length of the 6th leaflet." visible = @showprimaries && ((@traptype == "lines & points" && ( \ (@trapshape == "6-asterisk") || (@trapshape == "7-asterisk") || \ (@trapshape == "8-asterisk") || (@trapshape == "9-asterisk") || (@trapshape == "10-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "11-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "12-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "13-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "14-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "15-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "16-asterisk"))) || \ (@twotrapstrue && (@traptype2 == "lines & points" && ( \ (@trapshape2 == "6-asterisk") || (@trapshape2 == "7-asterisk") || \ (@trapshape2 == "8-asterisk") || (@trapshape2 == "9-asterisk") || (@trapshape2 == "10-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "11-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "12-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "13-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "14-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "15-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "16-asterisk"))))) endparam param leafGlength caption = "Leaf 7 Length" default = 1.0 hint = "If parameter 'Trap Shape' is set to '7-asterisk', etc., \ then this setting adjusts the length of the 7th leaflet." visible = @showprimaries && ((@traptype == "lines & points" && ( \ (@trapshape == "7-asterisk") || \ (@trapshape == "8-asterisk") || (@trapshape == "9-asterisk") || (@trapshape == "10-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "11-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "12-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "13-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "14-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "15-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "16-asterisk"))) || \ (@twotrapstrue && (@traptype2 == "lines & points" && ( \ (@trapshape2 == "7-asterisk") || \ (@trapshape2 == "8-asterisk") || (@trapshape2 == "9-asterisk") || (@trapshape2 == "10-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "11-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "12-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "13-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "14-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "15-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "16-asterisk"))))) endparam param leafHlength caption = "Leaf 8 Length" default = 1.0 hint = "If parameter 'Trap Shape' is set to '8-asterisk', etc., \ then this setting adjusts the length of the 8th leaflet." visible = @showprimaries && ((@traptype == "lines & points" && ( \ (@trapshape == "8-asterisk") || (@trapshape == "9-asterisk") || (@trapshape == "10-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "11-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "12-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "13-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "14-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "15-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "16-asterisk"))) || \ (@twotrapstrue && (@traptype2 == "lines & points" && ( \ (@trapshape2 == "8-asterisk") || (@trapshape2 == "9-asterisk") || (@trapshape2 == "10-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "11-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "12-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "13-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "14-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "15-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "16-asterisk"))))) endparam param leafIlength caption = "Leaf 9 Length" default = 1.0 hint = "If parameter 'Trap Shape' is set to '9-asterisk', etc., \ then this setting adjusts the length of the 9th leaflet." visible = @showprimaries && ((@traptype == "lines & points" && ( \ (@trapshape == "9-asterisk") || (@trapshape == "10-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "11-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "12-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "13-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "14-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "15-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "16-asterisk"))) || \ (@twotrapstrue && (@traptype2 == "lines & points" && ( \ (@trapshape2 == "9-asterisk") || (@trapshape2 == "10-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "11-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "12-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "13-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "14-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "15-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "16-asterisk"))))) endparam param leafJlength caption = "Leaf 10 Length" default = 1.0 hint = "If parameter 'Trap Shape' is set to '10-asterisk', etc., \ then this setting adjusts the length of the 10th leaflet." visible = @showprimaries && ((@traptype == "lines & points" && ( \ (@trapshape == "10-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "11-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "12-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "13-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "14-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "15-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "16-asterisk"))) || \ (@twotrapstrue && (@traptype2 == "lines & points" && ( \ (@trapshape2 == "10-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "11-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "12-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "13-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "14-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "15-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "16-asterisk"))))) endparam param leafKlength caption = "Leaf 11 Length" default = 1.0 hint = "If the trap shape is set to '11-asterisk', etc., \ then this setting adjusts the length of the 11th leaflet." visible = @showprimaries && ((@traptype == "lines & points" && ( \ (@trapshape == "more polygons" && @morepolygons1 == "11-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "12-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "13-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "14-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "15-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "16-asterisk"))) || \ (@twotrapstrue && (@traptype2 == "lines & points" && ( \ (@trapshape2 == "more polygons" && @morepolygons2 == "11-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "12-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "13-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "14-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "15-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "16-asterisk"))))) endparam param leafLlength caption = "Leaf 12 Length" default = 1.0 hint = "If the trap shape is set to '12-asterisk', \ then this setting adjusts the length of the 12th leaflet." visible = @showprimaries && ((@traptype == "lines & points" && ( \ (@trapshape == "more polygons" && @morepolygons1 == "12-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "13-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "14-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "15-asterisk") || \ (@trapshape == "more polygons" && @morepolygons1 == "16-asterisk"))) || \ (@twotrapstrue && (@traptype2 == "lines & points" && ( \ (@trapshape2 == "more polygons" && @morepolygons2 == "12-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "13-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "14-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "15-asterisk") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "16-asterisk"))))) endparam param starspikiness caption = "Star Spikiness" default = 0.75 hint = "If parameter 'Trap Shape' or '2nd Trap Shape' is set to '3-star', '4-star', etc., \ then this setting determines the length of the star points." visible = @showprimaries && (@traptype == "lines & points" && ((@trapshape == "3-star") \ || (@trapshape == "4-star") || \ (@trapshape == "5-star") || (@trapshape == "6-star") || (@trapshape == "7-star") \ || (@trapshape == "8-star") \ || (@trapshape == "9-star") || (@trapshape == "10-star") \ || (@trapshape == "more polygons" && @morepolygons1 == "11-star") \ || (@trapshape == "more polygons" && @morepolygons1 == "12-star") \ || (@trapshape == "more polygons" && @morepolygons1 == "13-star") \ || (@trapshape == "more polygons" && @morepolygons1 == "14-star") \ || (@trapshape == "more polygons" && @morepolygons1 == "15-star") \ || (@trapshape == "more polygons" && @morepolygons1 == "16-star"))) \ || (@twotrapstrue && (@traptype2 == "lines & points" && ((@trapshape2 == "3-star") \ || (@trapshape2 == "4-star") || \ (@trapshape2 == "5-star") || (@trapshape2 == "6-star") || (@trapshape2 == "7-star") || \ (@trapshape2 == "8-star") || (@trapshape2 == "9-star") || (@trapshape2 == "10-star") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "11-star") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "12-star") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "13-star") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "14-star") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "15-star") || \ (@trapshape2 == "more polygons" && @morepolygons2 == "16-star")))) endparam param innerscale caption = "Inner Scale" default = 1.0 hint = "If parameter 'Trap Shape' is set to one of the 'nested' options, \ then this setting adjusts the size of the inner polygon." visible = @showprimaries && (@traptype == "lines & points" && ((@trapshape == "nested triangles") \ || (@trapshape == "nested triangle 2") || (@trapshape == "nested squares") || (@trapshape == \ "nested square 2") || (@trapshape == "nested pentagons") || \ (@trapshape == "nested pentagon 2") || (@trapshape == "nested \ hexagons") || (@trapshape == "nested heptagons") || (@trapshape == "nested heptagon 2") || \ (@trapshape == "nested hexagon 2"))) || (@twotrapstrue && (@traptype2 == "lines & points" \ && ((@trapshape2 == "nested triangles") || (@trapshape2 == "nested triangle 2") || \ (@trapshape2 == "nested squares") || (@trapshape2 == "nested square 2") || (@trapshape2 == \ "nested pentagons") || (@trapshape2 == "nested pentagon 2") || (@trapshape2 == "nested \ hexagons") || (@trapshape2 == "nested hexagon 2") || \ (@trapshape2 == "nested heptagons") || (@trapshape == "nested heptagon 2")))) endparam param rhombheight caption = "Rhombus Height" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'rhombus', then this setting \ determines its relative height." visible = @showprimaries && ((@traptype == "lines & points" && (@trapshape == "rhombus")) || \ ((@trapshape2 == "rhombus") && (@traptype2 == "lines & points") && @twotrapstrue)) endparam param rhombwidth caption = "Rhombus Width" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'rhombus', then this setting \ determines its relative width." visible = @showprimaries && ((@traptype == "lines & points" && (@trapshape == "rhombus")) || \ ((@trapshape2 == "rhombus") && (@traptype2 == "lines & points") && @twotrapstrue)) endparam param kiteheight caption = "Kite Height" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'kite', then this setting \ determines its relative height." visible = @showprimaries && ((@traptype == "lines & points" && (@trapshape == "kite")) || \ ((@trapshape2 == "kite") && (@traptype2 == "lines & points") && @twotrapstrue)) endparam param kitewidth caption = "Kite Width" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'kite', then this setting \ determines its relative width." visible = @showprimaries && ((@traptype == "lines & points" && (@trapshape == "kite")) || \ ((@trapshape2 == "kite") && (@traptype2 == "lines & points") && @twotrapstrue)) endparam param dartheight caption = "Dart Height" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'dart', then this setting \ determines its relative height." visible = @showprimaries && ((@traptype == "lines & points" && (@trapshape == "dart")) || \ ((@trapshape2 == "dart") && (@traptype2 == "lines & points") && @twotrapstrue)) endparam param dartwidth caption = "Dart Width" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'dart', then this setting \ determines its relative width." visible = @showprimaries && ((@traptype == "lines & points" && (@trapshape == "dart")) || \ ((@trapshape2 == "dart") && (@traptype2 == "lines & points") && @twotrapstrue)) endparam param rectlength caption = "Rectangle Length" default = 2.0 hint = "If parameter 'Trap Shape' is set to 'rectangle', then this setting \ determines its relative length." visible = @showprimaries && ((@traptype == "lines & points" && (@trapshape == "rectangle")) || \ ((@trapshape2 == "rectangle") && (@traptype2 == "lines & points") && @twotrapstrue)) endparam param rectwidth caption = "Rectangle Width" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'rectangle', then this setting \ determines its relative width." visible = @showprimaries && ((@traptype == "lines & points" && (@trapshape == "rectangle")) || \ ((@trapshape2 == "rectangle") && (@traptype2 == "lines & points") && @twotrapstrue)) endparam param flat4height caption = "Flat Star Height" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'flat 4-star', then this setting \ determines its relative height." visible = @showprimaries && ((@traptype == "lines & points" && (@trapshape == "flat 4-star")) || \ ((@trapshape2 == "flat 4-star") && (@traptype2 == "lines & points") && @twotrapstrue)) endparam param flat4width caption = "Flat Star Width" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'flat 4-star', then this setting \ determines its relative width." visible = @showprimaries && ((@traptype == "lines & points" && (@trapshape == "flat 4-star")) || \ ((@trapshape2 == "flat 4-star") && (@traptype2 == "lines & points") && @twotrapstrue)) endparam param finger1length caption = "Finger 1 Length" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'hand', \ then this setting adjusts the length of the 1st finger." visible = @showprimaries && ((@traptype == "lines & points" && (@trapshape == "hand")) || \ ((@trapshape2 == "hand") && (@traptype2 == "lines & points") && @twotrapstrue)) endparam param finger2length caption = "Finger 2 Length" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'hand', \ then this setting adjusts the length of the 2nd finger." visible = @showprimaries && ((@traptype == "lines & points" && (@trapshape == "hand")) || \ ((@trapshape2 == "hand") && (@traptype2 == "lines & points") && @twotrapstrue)) endparam param finger3length caption = "Finger 3 Length" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'hand', \ then this setting adjusts the length of the 3rd finger." visible = @showprimaries && ((@traptype == "lines & points" && (@trapshape == "hand")) || \ ((@trapshape2 == "hand") && (@traptype2 == "lines & points") && @twotrapstrue)) endparam param finger4length caption = "Finger 4 Length" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'hand', \ then this setting adjusts the length of the 4th finger." visible = @showprimaries && ((@traptype == "lines & points" && (@trapshape == "hand")) || \ ((@trapshape2 == "hand") && (@traptype2 == "lines & points") && @twotrapstrue)) endparam param finger5length caption = "Finger 5 Length" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'hand', \ then this setting adjusts the length of the 5th finger." visible = @showprimaries && ((@traptype == "lines & points" && (@trapshape == "hand")) || \ ((@trapshape2 == "hand") && (@traptype2 == "lines & points") && @twotrapstrue)) endparam param sawheight caption = "Sawtooth Height" default = 1.0 hint = "If parameter 'Trap Shape' is set to a 'sawtooth' option, \ then this setting adjusts the relative height of the wave." visible = @showprimaries && ((@traptype == "lines & points" && ((@trapshape == "sawtooth-1") || \ (@trapshape == "sawtooth-2") || (@trapshape == "sawtooth-3") || (@trapshape == "sawtooth-4"))) \ || (@twotrapstrue && (@traptype2 == "lines & points" && (@trapshape2 == "sawtooth-1") || \ (@trapshape2 == "sawtooth-2") || (@trapshape2 == "sawtooth-3") || (@trapshape2 == "sawtooth-4")))) endparam param windheight caption = "Windblade Height" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'Windmill', then this setting \ adjusts the height of one of the windmill blades." visible = @showprimaries && ((@traptype == "lines & points" && ((@trapshape == "windmill") || \ (@trapshape == "windmill 2"))) \ || (@twotrapstrue && (@traptype2 == "lines & points" && (@trapshape2 == "windmill") || \ (@trapshape2 == "windmill 2")))) endparam param windwidth caption = "Windblade Width" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'Windmill', then this setting \ adjusts the width of one of the windmill blades." visible = @showprimaries && ((@traptype == "lines & points" && ((@trapshape == "windmill") || \ (@trapshape == "windmill 2"))) \ || (@twotrapstrue && (@traptype2 == "lines & points" && (@trapshape2 == "windmill") || \ (@trapshape2 == "windmill 2")))) endparam param sqrheight caption = "Squarewave Height" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'square-1' etc, then this setting \ adjusts the height of the square wave." visible = @showprimaries && ((@traptype == "lines & points" && ((@trapshape == "square-1") || \ (@trapshape == "square-2") || (@trapshape == "square-3") || (@trapshape == "square-4"))) \ || (@twotrapstrue && (@traptype2 == "lines & points" && (@trapshape2 == "square-1") || \ (@trapshape2 == "square-2") || (@trapshape2 == "square-3") || (@trapshape2 == "square-4")))) endparam param sqrwidth caption = "Squarewave Width" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'square-1' etc, then this setting \ adjusts the width of the square wave." visible = @showprimaries && ((@traptype == "lines & points" && ((@trapshape == "square-1") || \ (@trapshape == "square-2") || (@trapshape == "square-3") || (@trapshape == "square-4"))) \ || (@twotrapstrue && (@traptype2 == "lines & points" && (@trapshape2 == "square-1") || \ (@trapshape2 == "square-2") || (@trapshape2 == "square-3") || (@trapshape2 == "square-4")))) endparam param unityroot1 caption = "How Many Roots?" default = 5 min = 1 max = 16 hint = "If parameter 'Trap Shape' is set to 'roots of unity', \ then this setting determines which set of roots to use (1-16)." visible = @showprimaries && @traptype == "lines & points" && @trapshape == "roots of unity" endparam param singleroot1 caption = "Single Root?" default = FALSE hint = "If parameter 'Trap Shape' is set to 'roots of unity', \ enabling this setting allows the use of just one of the roots \ as the trap, instead of using the entire set of roots." visible = @showprimaries && @traptype == "lines & points" && @trapshape == "roots of unity" endparam param whichroot1 caption = "Which Root?" default = 1 min = 1 max = 16 hint = "If parameter 'Trap Shape' is set to 'roots of unity' and \ 'Single Root' is enabled, then this setting determines which root to use \ (1-up to the max set by param 'How Many Roots')." visible = @showprimaries && @traptype == "lines & points" && @trapshape == "roots of unity" && @singleroot1 endparam param unityroot2 caption = "How Many Roots 2?" default = 7 min = 1 max = 16 hint = "If parameter '2nd Trap Shape' is set to 'roots of unity', \ then this setting determines which set of roots to use (1-16)." visible = @showprimaries && @traptype2 == "lines & points" && @trapshape2 == "roots of unity" && @twotrapstrue endparam param singleroot2 caption = "Single Root 2?" default = FALSE hint = "If parameter '2nd Trap Shape' is set to 'roots of unity', \ enabling this setting allows the use of just one of the roots \ as the trap, instead of using the entire set of roots." visible = @showprimaries && @traptype2 == "lines & points" && @trapshape2 == "roots of unity" \ && @twotrapstrue endparam param whichroot2 caption = "Which Root 2?" default = 1 min = 1 max = 16 hint = "If parameter '2nd Trap Shape' is set to 'roots of unity' and \ 'Single Root 2' is enabled, then this setting determines which root to use \ (1-up to the max set by param 'How Many Roots 2')." visible = @showprimaries && @traptype2 == "lines & points" && @trapshape2 == "roots of unity" \ && @singleroot2 && @twotrapstrue endparam param collinearspot1 caption = "How Many Spots?" default = 4 min = 1 max = 16 hint = "If parameter 'Trap Shape' is set to 'collinear spots', \ then this setting determines the number of points to use (1-16)." visible = @showprimaries && @traptype == "lines & points" && @trapshape == "collinear spots" endparam param collinearspot2 caption = "How Many Spots 2?" default = 3 min = 1 max = 16 hint = "If parameter '2nd Trap Shape' is set to 'collinear spots', \ then this setting determines the number of points to use (1-16)." visible = @showprimaries && @traptype2 == "lines & points" && \ @trapshape2 == "collinear spots" && @twotrapstrue endparam param squarespot1 caption = "Array Size?" default = 4 min = 2 max = 6 hint = "If parameter 'Trap Shape' is set to 'square array', \ then this setting determines the array size (2-6)." visible = @showprimaries && @traptype == "lines & points" && @trapshape == "square array" endparam param squarespot2 caption = "Array 2 Size?" default = 2 min = 2 max = 6 hint = "If parameter '2nd Trap Shape' is set to 'square array', \ then this setting determines the array size (2-6)." visible = @showprimaries && @traptype2 == "lines & points" && @trapshape2 == "square array" \ && @twotrapstrue endparam param triarray1 caption = "Array Order?" default = 2 min = 2 max = 4 hint = "If parameter 'Trap Shape' is set to 'triangular array', pentagonal array' etc. \ then this setting determines the array size (2-4)." visible = @showprimaries && (@traptype == "lines & points" && ((@trapshape == "triangular array" \ || @trapshape == "pentagonal array" || @trapshape == "hexagonal array"))) endparam param triarray2 caption = "Array 2 Order?" default = 3 min = 2 max = 4 hint = "If parameter '2nd Trap Shape' is set to 'triangular array', pentagonal array' etc. \ then this setting determines the array size (2-4)." visible = @showprimaries && (@traptype2 == "lines & points" && ((@trapshape2 == \ "triangular array" || @trapshape2 == "pentagonal array" || @trapshape2 == "hexagonal array"))) \ && @twotrapstrue endparam param raynumber caption = "Number of Rays?" default = 3 min = 3 max = 16 hint = "If parameter 'Trap Shape' is set to 'dotted star' or 'dashed star' \ then this setting determines the number of star 'points' (3-16)." visible = @showprimaries && (@traptype == "lines & points" && ((@trapshape == "dashed star" \ || @trapshape == "dotted star"))) endparam param dotnumber caption = "Number of Dots?" default = 3 min = 2 max = 5 hint = "If parameter 'Trap Shape' is set to 'dotted star' \ then this setting determines the number of dots in each star ray (2-5)." visible = @showprimaries && @traptype == "lines & points" && @trapshape == "dotted star" endparam param dashnumber caption = "Number of Dashes?" default = 2 min = 2 max = 4 hint = "If parameter 'Trap Shape' is set to 'dashed star' \ then this setting determines the number of dashes in each star ray (2-4)." visible = @showprimaries && @traptype == "lines & points" && @trapshape == "dashed star" endparam param raynumber2 caption = "Number of Rays?" default = 3 min = 3 max = 16 hint = "If parameter '2nd Trap Shape' is set to 'dotted star' or 'dashed star' \ then this setting determines the number of star 'points' (3-16)." visible = @showprimaries && (@traptype2 == "lines & points" && ((@trapshape2 == "dashed star" \ || @trapshape2 == "dotted star"))) && @twotrapstrue endparam param dotnumber2 caption = "Number of Dots 2?" default = 3 min = 2 max = 5 hint = "If parameter '2nd Trap Shape' is set to 'dotted star' \ then this setting determines the number of dots in each star ray (2-5)." visible = @showprimaries && @traptype2 == "lines & points" && @trapshape2 == "dotted star" \ && @twotrapstrue endparam param dashnumber2 caption = "Number of Dashes 2?" default = 2 min = 2 max = 4 hint = "If parameter '2nd Trap Shape' is set to 'dashed star' \ then this setting determines the number of dashes in each star ray (2-4)." visible = @showprimaries && @traptype2 == "lines & points" && @trapshape2 == "dashed star" \ && @twotrapstrue endparam param spiralorder1 caption = "Spiral Order?" default = 2 min = 1 max = 4 hint = "If parameter 'Trap Shape' is set to 'triangular spiral', 'square spiral', etc. \ then this setting determines the number of spiral windings (1-4)." visible = @showprimaries && (@traptype == "lines & points" && (@trapshape == "triangular spiral" \ || @trapshape == "square spiral" || \ @trapshape == "pentagonal spiral" || @trapshape == "hexagonal spiral" || \ @trapshape == "octagonal spiral")) endparam param spiralorder2 caption = "Spiral 2 Order?" default = 1 min = 1 max = 4 hint = "If parameter '2nd Trap Shape' is set to 'triangular spiral', 'square spiral', etc. \ then this setting determines the number of spiral windings (1-4)." visible = @showprimaries && (@traptype2 == "lines & points" && (@trapshape2 == \ "triangular spiral" || @trapshape2 == "square spiral" || \ @trapshape2 == "pentagonal spiral" || @trapshape2 == "hexagonal spiral" || \ @trapshape2 == "octagonal spiral")) && @twotrapstrue endparam param ellipseexponent1 caption = "SE1 Exponent" default = 2.5 hint = "If parameter 'Trap Shape' is set to 'superellipse', then this parameter \ determines the exponent used for the trap." visible = @showprimaries && @traptype == "lines & points" && @trapshape == "superellipse" endparam param ellipseheight1 caption = "SE1 Height" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'superellipse', then this setting \ adjusts the height of the trap." visible = @showprimaries && @traptype == "lines & points" && @trapshape == "superellipse" endparam param ellipsewidth1 caption = "SE1 Width" default = 0.6 hint = "If parameter 'Trap Shape' is set to 'superellipse', then this setting \ adjusts the width of the trap." visible = @showprimaries && @traptype == "lines & points" && @trapshape == "superellipse" endparam param ellipseexponent2 caption = "SE2 Exponent" default = 2.5 hint = "If parameter '2nd Trap Shape' is set to 'superellipse', then this parameter \ determines the exponent used for the trap." visible = @showprimaries && @traptype2 == "lines & points" && @trapshape2 == "superellipse" && @twotrapstrue endparam param ellipseheight2 caption = "SE2 Height" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'superellipse', then this setting \ adjusts the height of the trap." visible = @showprimaries && @traptype2 == "lines & points" && @trapshape2 == "superellipse" && @twotrapstrue endparam param ellipsewidth2 caption = "SE2 Width" default = 0.6 hint = "If parameter '2nd Trap Shape' is set to 'superellipse', then this setting \ adjusts the width of the trap." visible = @showprimaries && @traptype2 == "lines & points" && @trapshape2 == "superellipse" && @twotrapstrue endparam param hypotrochA1 caption = "Hypotro1 RadA" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'hypotrochoid' or 'epitrochoid', then this parameter \ is the radius of the fixed circle. For 'rhodonea', this is the \ numerator of the frequency term; use a positive integer." visible = @showprimaries && (@traptype == "lines & points" && \ ((@trapshape == "hypotrochoid") || (@trapshape == "epitrochoid") || (@trapshape == "more curves" \ && @morecurves1 == "rhodonea"))) endparam param hypotrochB1 caption = "Hypotro1 RadB" default = 0.25 hint = "If parameter 'Trap Shape' is set to 'hypotrochoid' or 'epitrochoid', then this parameter \ is the radius of the rolling circle; try RadA/RadB a rational number. For 'rhodonea', \ this is the denominator of the frequency term; use a positive integer." visible = @showprimaries && (@traptype == "lines & points" && \ ((@trapshape == "hypotrochoid") || (@trapshape == "epitrochoid") || (@trapshape == "more curves" \ && @morecurves1 == "rhodonea"))) endparam param hypotrochH1 caption = "Hypotro1 DistH" default = 1.25 hint = "If parameter 'Trap Shape' is set to 'hypotrochoid' or 'epitrochoid', then this parameter \ is the distance of the point from the rolling circle center." visible = @showprimaries && (@traptype == "lines & points" && \ ((@trapshape == "hypotrochoid") || (@trapshape == "epitrochoid"))) endparam param hypotrochA2 caption = "Hypotro2 RadA" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'hypotrochoid' or 'epitrochoid', then this parameter \ is the radius of the circumcircle. For 'rhodonea', use a positive integer; this is the \ numerator of the frequency term." visible = @showprimaries && (@traptype2 == "lines & points" && \ ((@trapshape2 == "hypotrochoid") || (@trapshape2 == "epitrochoid") || (@trapshape2 == "more curves" \ && @morecurves2 == "rhodonea"))) && @twotrapstrue endparam param hypotrochB2 caption = "Hypotro2 RadB" default = 0.25 hint = "If parameter '2nd Trap Shape' is set to 'hypotrochoid' or 'epitrochoid', then this parameter \ is the radius of the rolling circle; try RadA/RadB a rational number. For 'rhodonea', use a \ positive integer; this is the denominator of the frequency term." visible = @showprimaries && (@traptype2 == "lines & points" && \ ((@trapshape2 == "hypotrochoid") || (@trapshape2 == "epitrochoid") || (@trapshape2 == "more curves" \ && @morecurves2 == "rhodonea"))) && @twotrapstrue endparam param hypotrochH2 caption = "Hypotro2 DistH" default = 1.25 hint = "If parameter '2nd Trap Shape' is set to 'hypotrochoid' or 'epitrochoid', then this parameter \ is the distance of the point from the rolling circle center." visible = @showprimaries && (@traptype2 == "lines & points" && \ ((@trapshape2 == "hypotrochoid") || (@trapshape2 == "epitrochoid"))) && @twotrapstrue endparam param cycloidamp1 caption = "Cycloid 1 Amplitude" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'cycloid', then this parameter \ fixes the amplitude." visible = @showprimaries && (@traptype == "lines & points" && \ ((@trapshape == "more curves" && @morecurves1 == "cycloid"))) endparam param cycloidconst1 caption = "Cycloid 1 Constant" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'cycloid', then this parameter \ distorts the shape." visible = @showprimaries && (@traptype == "lines & points" && \ ((@trapshape == "more curves" && @morecurves1 == "cycloid"))) endparam param cycloidlength1 caption = "Cycloid 1 Length" default = 2.0 min = 0.5 max = 6 hint = "If parameter 'Trap Shape' is set to 'cycloid', then this parameter \ sets the number of cycles plotted, in units of 2 pi." visible = @showprimaries && (@traptype == "lines & points" && \ ((@trapshape == "more curves" && @morecurves1 == "cycloid"))) endparam param cycloidamp2 caption = "Cycloid 2 Amplitude" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'cycloid', then this parameter \ fixes the amplitude." visible = @showprimaries && (@traptype2 == "lines & points" && \ ((@trapshape2 == "more curves" && @morecurves2 == "cycloid"))) endparam param cycloidconst2 caption = "Cycloid 2 Constant" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'cycloid', then this parameter \ distorts the shape." visible = @showprimaries && (@traptype2 == "lines & points" && \ ((@trapshape2 == "more curves" && @morecurves2 == "cycloid"))) endparam param cycloidlength2 caption = "Cycloid 2 Length" default = 2.0 min = 0.5 max = 6 hint = "If parameter '2nd Trap Shape' is set to 'cycloid', then this parameter \ sets the number of cycles plotted, in units of 2 pi." visible = @showprimaries && (@traptype2 == "lines & points" && \ ((@trapshape2 == "more curves" && @morecurves2 == "cycloid"))) endparam param grain caption = "Curve Granularity" enum = "36" "72" "100" "200" "300" "400" default = 1 hint = "Increasing this number results in smoother curves, but slower execution." visible = @showprimaries && \ ((@traptype == "lines & points" && ( \ @trapshape == "hypotrochoid" || @trapshape == "epitrochoid" || \ @trapshape == "superellipse" || @trapshape == "lissajous 3" || \ (@trapshape == "more curves" && \ (@morecurves1 == "rhodonea" || @morecurves1 == "cycloid" || \ @morecurves1 == "parabolic lissajous" || @morecurves1 == "polar lissajous" || \ @morecurves1 == "Moritz cyclic harmonic" || @morecurves1 == "elliptic lissajous" || \ @morecurves1 == "bipolar lissajous")))) || \ (@twotrapstrue && @traptype2 == "lines & points" && ( \ @trapshape2 == "hypotrochoid" || @trapshape2 == "epitrochoid" || \ @trapshape2 == "lissajous 3" || @trapshape2 == "superellipse" || \ (@trapshape2 == "more curves" && \ (@morecurves2 == "rhodonea" || @morecurves2 == "cycloid" || \ @morecurves2 == "parabolic lissajous" || @morecurves2 == "polar lissajous" || \ @morecurves2 == "Moritz cyclic harmonic" || @morecurves2 == "elliptic lissajous" || \ @morecurves2 == "bipolar lissajous"))))) endparam param lissaamp1 caption = "Lissa1 Amplitude" default = 1.0 hint = "If parameter 'Trap Shape' or '2nd Trap Shape' is set to 'lissajous 3' or \ 'parabolic lissajous', etc., then this parameter \ is the amplitude of the first cosine function." visible = @showprimaries && ((@traptype == "lines & points" && \ ((@trapshape == "lissajous 3") || \ (@trapshape == "more curves" && ((@morecurves1 == "parabolic lissajous") || \ (@morecurves1 == "polar lissajous") || (@morecurves1 == "elliptic lissajous") || \ (@morecurves1 == "bipolar lissajous"))))) || \ (@twotrapstrue && ((@traptype2 == "lines & points" && \ ((@trapshape2 == "lissajous 3") || \ (@trapshape2 == "more curves" && ((@morecurves2 == "parabolic lissajous") || \ (@morecurves2 == "polar lissajous") || (@morecurves2 == "elliptic lissajous") || \ (@morecurves2 == "bipolar lissajous")))))))) endparam param lissafreq1 caption = "Lissa1 Frequency" default = 2.0 hint = "If parameter 'Trap Shape' or '2nd Trap Shape' is set to 'lissajous 3' or \ 'parabolic lissajous', etc., then this parameter \ is the frequency of the first cosine function." visible = @showprimaries && ((@traptype == "lines & points" && \ ((@trapshape == "lissajous 3") || \ (@trapshape == "more curves" && ((@morecurves1 == "parabolic lissajous") || \ (@morecurves1 == "polar lissajous") || (@morecurves1 == "elliptic lissajous") || \ (@morecurves1 == "bipolar lissajous"))))) || \ (@twotrapstrue && ((@traptype2 == "lines & points" && \ ((@trapshape2 == "lissajous 3") || \ (@trapshape2 == "more curves" && ((@morecurves2 == "parabolic lissajous") || \ (@morecurves2 == "polar lissajous") || (@morecurves2 == "elliptic lissajous") || \ (@morecurves2 == "bipolar lissajous")))))))) endparam param lissaphase1 caption = "Lissa1 Phase" default = 0.0 hint = "If parameter 'Trap Shape' or '2nd Trap Shape' is set to 'lissajous 3' or \ 'parabolic lissajous', etc., then this parameter \ is the phase of the first cosine function." visible = @showprimaries && ((@traptype == "lines & points" && \ ((@trapshape == "lissajous 3") || \ (@trapshape == "more curves" && ((@morecurves1 == "parabolic lissajous") || \ (@morecurves1 == "polar lissajous") || (@morecurves1 == "elliptic lissajous") || \ (@morecurves1 == "bipolar lissajous"))))) || \ (@twotrapstrue && ((@traptype2 == "lines & points" && \ ((@trapshape2 == "lissajous 3") || \ (@trapshape2 == "more curves" && ((@morecurves2 == "parabolic lissajous") || \ (@morecurves2 == "polar lissajous") || (@morecurves2 == "elliptic lissajous") || \ (@morecurves2 == "bipolar lissajous")))))))) endparam param lissaamp2 caption = "Lissa2 Amplitude" default = 1.0 hint = "If parameter 'Trap Shape' or '2nd Trap Shape' is set to 'lissajous 3 or \ 'parabolic lissajous', etc., then this parameter \ is the amplitude of the second cosine function." visible = @showprimaries && ((@traptype == "lines & points" && \ ((@trapshape == "lissajous 3") || \ (@trapshape == "more curves" && ((@morecurves1 == "parabolic lissajous") || \ (@morecurves1 == "polar lissajous") || (@morecurves1 == "elliptic lissajous") || \ (@morecurves1 == "bipolar lissajous"))))) || \ (@twotrapstrue && ((@traptype2 == "lines & points" && \ ((@trapshape2 == "lissajous 3") || \ (@trapshape2 == "more curves" && ((@morecurves2 == "parabolic lissajous") || \ (@morecurves2 == "polar lissajous") || (@morecurves2 == "elliptic lissajous") || \ (@morecurves2 == "bipolar lissajous")))))))) endparam param lissafreq2 caption = "Lissa2 Frequency" default = 4.0 hint = "If parameter 'Trap Shape' or '2nd Trap Shape' is set to 'lissajous 3' or \ 'parabolic lissajous', etc., then this parameter \ is the frequency of the second cosine function." visible = @showprimaries && ((@traptype == "lines & points" && \ ((@trapshape == "lissajous 3") || \ (@trapshape == "more curves" && ((@morecurves1 == "parabolic lissajous") || \ (@morecurves1 == "polar lissajous") || (@morecurves1 == "elliptic lissajous") || \ (@morecurves1 == "bipolar lissajous"))))) || \ (@twotrapstrue && ((@traptype2 == "lines & points" && \ ((@trapshape2 == "lissajous 3") || \ (@trapshape2 == "more curves" && ((@morecurves2 == "parabolic lissajous") || \ (@morecurves2 == "polar lissajous") || (@morecurves2 == "elliptic lissajous") || \ (@morecurves2 == "bipolar lissajous")))))))) endparam param lissaphase2 caption = "Lissa2 Phase" default = 0.52359877559829887307710723054658 ; pi/6 hint = "If parameter 'Trap Shape' or '2nd Trap Shape' is set to 'lissajous 3' or \ 'parabolic lissajous', etc., then this parameter \ is the phase of the second cosine function." visible = @showprimaries && ((@traptype == "lines & points" && \ ((@trapshape == "lissajous 3") || \ (@trapshape == "more curves" && ((@morecurves1 == "parabolic lissajous") || \ (@morecurves1 == "polar lissajous") || (@morecurves1 == "elliptic lissajous") || \ (@morecurves1 == "bipolar lissajous"))))) || \ (@twotrapstrue && ((@traptype2 == "lines & points" && \ ((@trapshape2 == "lissajous 3") || \ (@trapshape2 == "more curves" && ((@morecurves2 == "parabolic lissajous") || \ (@morecurves2 == "polar lissajous") || (@morecurves2 == "elliptic lissajous") || \ (@morecurves2 == "bipolar lissajous")))))))) endparam param lissadomain caption = "Lissa Domain" default = 1.0 hint = "If parameter 'Trap Shape' or '2nd Trap Shape' is set to 'lissajous 3' or \ 'parabolic lissajous', etc., then this parameter \ is the domain of the cosine functions, in multiples of pi." visible = @showprimaries && ((@traptype == "lines & points" && \ ((@trapshape == "lissajous 3") || \ (@trapshape == "more curves" && ((@morecurves1 == "parabolic lissajous") || \ (@morecurves1 == "polar lissajous") || (@morecurves1 == "elliptic lissajous") || \ (@morecurves1 == "bipolar lissajous"))))) || \ (@twotrapstrue && ((@traptype2 == "lines & points" && \ ((@trapshape2 == "lissajous 3") || \ (@trapshape2 == "more curves" && ((@morecurves2 == "parabolic lissajous") || \ (@morecurves2 == "polar lissajous") || (@morecurves2 == "elliptic lissajous") || \ (@morecurves2 == "bipolar lissajous")))))))) endparam param lissaopen caption = "Open Lissajous?" default = FALSE hint = "If parameter 'Trap Shape' or '2nd Trap Shape' is set to 'lissajous 3' or \ 'parabolic lissajous', etc., then enabling this parameter \ leaves the ends of the lissajous curve unconnected." visible = @showprimaries && ((@traptype == "lines & points" && \ ((@trapshape == "lissajous 3") || \ (@trapshape == "more curves" && ((@morecurves1 == "parabolic lissajous") || \ (@morecurves1 == "polar lissajous") || (@morecurves1 == "elliptic lissajous") || \ (@morecurves1 == "bipolar lissajous"))))) || \ (@twotrapstrue && ((@traptype2 == "lines & points" && \ ((@trapshape2 == "lissajous 3") || \ (@trapshape2 == "more curves" && ((@morecurves2 == "parabolic lissajous") || \ (@morecurves2 == "polar lissajous") || (@morecurves2 == "elliptic lissajous") || \ (@morecurves2 == "bipolar lissajous")))))))) endparam param moritzamp1 caption = "Moritz 1 Amplitude" default = 0.75 hint = "If parameter 'Trap Shape' is set to 'Moritz cyclic harmonic', \ then this parameter is the amplitude of the cosine function." visible = @showprimaries && (@traptype == "lines & points" && (@trapshape == "more curves" \ && @morecurves1 == "Moritz cyclic harmonic")) endparam param moritzfreqN1 caption = "Moritz 1 Numerator" default = 3.0 hint = "If parameter 'Trap Shape' is set to 'Moritz cyclic harmonic', \ then this parameter is the numerator of the frequency of the cosine function." visible = @showprimaries && (@traptype == "lines & points" && (@trapshape == "more curves" \ && @morecurves1 == "Moritz cyclic harmonic")) endparam param moritzfreqD1 caption = "Moritz 1 Denominator" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'Moritz cyclic harmonic', \ then this parameter is the denominator of the frequency of the cosine function." visible = @showprimaries && (@traptype == "lines & points" && (@trapshape == "more curves" \ && @morecurves1 == "Moritz cyclic harmonic")) endparam param moritzconst1 caption = "Moritz 1 Constant" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'Moritz cyclic harmonic', \ then this parameter functions as an additional shape modulator." visible = @showprimaries && (@traptype == "lines & points" && (@trapshape == "more curves" \ && @morecurves1 == "Moritz cyclic harmonic")) endparam param moritzamp2 caption = "Moritz 2 Amplitude" default = 0.75 hint = "If parameter '2nd Trap Shape' is set to 'Moritz cyclic harmonic', \ then this parameter is the amplitude of the cosine function." visible = @showprimaries && (@traptype2 == "lines & points" && (@trapshape2 == "more curves" \ && @morecurves2 == "Moritz cyclic harmonic")) endparam param moritzfreqN2 caption = "Moritz 2 Numerator" default = 3.0 hint = "If parameter '2nd Trap Shape' is set to 'Moritz cyclic harmonic', \ then this parameter is the numerator of the frequency of the cosine function." visible = @showprimaries && (@traptype2 == "lines & points" && (@trapshape2 == "more curves" \ && @morecurves2 == "Moritz cyclic harmonic")) endparam param moritzfreqD2 caption = "Moritz 2 Denominator" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'Moritz cyclic harmonic', \ then this parameter is the denominator of the frequency of the cosine function." visible = @showprimaries && (@traptype2 == "lines & points" && (@trapshape2 == "more curves" \ && @morecurves2 == "Moritz cyclic harmonic")) endparam param moritzconst2 caption = "Moritz 2 Constant" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'Moritz cyclic harmonic', \ then this parameter functions as an additional shape modulator." visible = @showprimaries && (@traptype2 == "lines & points" && (@trapshape2 == "more curves" \ && @morecurves2 == "Moritz cyclic harmonic")) endparam param circlenum1 caption = "Circle# 1" default = 2 min = 2 max = 4 hint = "If 'Trap Shape' is set to 'nested circles' or 'osculant circles', then this setting fixes \ the number of circles (2-4)." visible = @showprimaries && (@traptype == "lines & points" && ((@trapshape == "nested circles") \ || (@trapshape == "osculant circles"))) endparam param circlenum2 caption = "Circle# 2" default = 3 min = 2 max = 4 hint = "If '2nd Trap Shape' is set to 'nested circles' or 'osculant circles', then this setting fixes \ the number of circles (2-4)." visible = @showprimaries && (@traptype2 == "lines & points" && ((@trapshape2 == "nested circles") \ || (@trapshape2 == "osculant circles"))) endparam param rose1 caption = "Rose 1 Petals" default = 3 min = 2 hint = "If parameter 'Trap Shape' is set to 'rose', then this setting \ determines the number of petals." visible = @traptype == "polar functions" && @polarshape1 == "rose" && @showprimaries endparam param rose2 caption = "Rose 2 Petals" default = 4 min = 2 hint = "If parameter '2nd Trap Shape' is set to 'rose', then this setting \ determines the number of petals." visible = @twotrapstrue && @showprimaries && (@traptype2 == "polar functions") && \ (@polarshape2 == "rose") endparam param folium1 caption = "Folium 1 Shaper" default = 0.5 hint = "If parameter 'Trap Shape' is set to 'folium', then this setting \ determines the particular shape." visible = (@traptype == "polar functions") && (@polarshape1 == "folium") && @showprimaries endparam param foliumperturb1 caption = "Folium 1 Perturb" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'folium', then this setting \ determines the particular shape." visible = (@traptype == "polar functions") && (@polarshape1 == "folium") && @showprimaries endparam param folium2 caption = "Folium 2 Shaper" default = 0.0 hint = "If parameter '2nd Trap Shape' is set to 'folium', then this setting \ determines the particular shape." visible = (@traptype2 == "polar functions") && (@polarshape2 == "folium") && @showprimaries \ && @twotrapstrue endparam param foliumperturb2 caption = "Folium 2 Perturb" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'folium', then this setting \ determines the particular shape." visible = (@traptype == "polar functions") && (@polarshape1 == "folium") && @showprimaries \ && @twotrapstrue endparam param cardioid1 caption = "Cardioid 1 Shaper" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'cardioid', then this setting \ determines the particular shape." visible = (@traptype == "polar functions") && (@polarshape1 == "cardioid") && @showprimaries endparam param cardioidperturb1 caption = "Cardioid 1 Perturb" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'cardioid', then this setting \ determines the particular shape." visible = (@traptype == "polar functions") && (@polarshape1 == "cardioid") && @showprimaries endparam param cardioid2 caption = "Cardioid 2 Shaper" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'cardioid', then this setting \ determines the particular shape." visible = (@traptype2 == "polar functions") && (@polarshape2 == "cardioid") && @showprimaries \ && @twotrapstrue endparam param cardioidperturb2 caption = "Cardioid 2 Perturb" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'cardioid', then this setting \ determines the particular shape." visible = (@traptype2 == "polar functions") && (@polarshape2 == "cardioid") && @showprimaries \ && @twotrapstrue endparam param cissoidDioA1 caption = "Cissoid 1 Sine Freq" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'cissoid of Diocles', then this setting \ determines the particular shape." visible = (@traptype == "polar functions") && (@polarshape1 == "cissoid of Diocles") && @showprimaries endparam param cissoidDioB1 caption = "Cissoid 1 Tangent Freq" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'cissoid of Diocles', then this setting \ determines the particular shape." visible = (@traptype == "polar functions") && (@polarshape1 == "cissoid of Diocles") && @showprimaries endparam param cissoidDioA2 caption = "Cissoid 2 Sine Freq" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'cissoid of Diocles', then this setting \ determines the particular shape." visible = (@traptype2 == "polar functions") && (@polarshape2 == "cissoid of Diocles") && \ @showprimaries && @twotrapstrue endparam param cissoidDioB2 caption = "Cissoid 2 Tangent Freq" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'cissoid of Diocles', then this setting \ determines the particular shape." visible = (@traptype2 == "polar functions") && (@polarshape2 == "cissoid of Diocles") && \ @showprimaries && @twotrapstrue endparam param cochleoid1 caption = "Cochleoid 1 Sine Freq" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'cochleoid', then this setting \ determines the particular shape." visible = (@traptype == "polar functions") && (@polarshape1 == "cochleoid") && @showprimaries endparam param cochleoid2 caption = "Cochleoid 2 Sine Freq" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'cochleoid', then this setting \ determines the particular shape." visible = (@traptype2 == "polar functions") && (@polarshape2 == "cochleoid") && @showprimaries && @twotrapstrue endparam param conchoidA1 caption = "Conchoid 1 Constant" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'conchoid of Nicomedes' or 'conchoid of De Sluze', \ then this setting determines the particular shape." visible = (@traptype == "polar functions") && (@polarshape1 == "conchoid of Nicomedes" || \ @polarshape1 == "conchoid of De Sluze") && @showprimaries endparam param conchoidB1 caption = "Conchoid 1 Cos Freq" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'conchoid of Nicomedes' or 'conchoid of De Sluze', \ then this setting determines the cosine function." visible = (@traptype == "polar functions") && (@polarshape1 == "conchoid of Nicomedes" || \ @polarshape1 == "conchoid of De Sluze") && @showprimaries endparam param conchoidC1 caption = "Conchoid 1 Numerator" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'conchoid of Nicomedes' or 'conchoid of De Sluze', \ then this setting is the numerator of the cosine term." visible = (@traptype == "polar functions") && (@polarshape1 == "conchoid of Nicomedes" || \ @polarshape1 == "conchoid of De Sluze") && @showprimaries endparam param conchoidA2 caption = "Conchoid 2 Constant" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'conchoid of Nicomedes' or 'conchoid of De Sluze', \ then this setting determines the particular shape." visible = (@traptype2 == "polar functions") && (@polarshape2 == "conchoid of Nicomedes" || \ @polarshape1 == "conchoid of De Sluze") && \ @showprimaries && @twotrapstrue endparam param conchoidB2 caption = "Conchoid 2 Cos Freq" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'conchoid of Nicomedes' or 'conchoid of De Sluze', \ then this setting determines the cosine function." visible = (@traptype2 == "polar functions") && (@polarshape2 == "conchoid of Nicomedes" || \ @polarshape1 == "conchoid of De Sluze") && \ @showprimaries && @twotrapstrue endparam param conchoidC2 caption = "Conchoid 2 Numerator" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'conchoid of Nicomedes' or 'conchoid of De Sluze', \ then this setting is the numerator of the cosine term." visible = (@traptype2 == "polar functions") && (@polarshape2 == "conchoid of Nicomedes" || \ @polarshape1 == "conchoid of De Sluze") && \ @showprimaries && @twotrapstrue endparam param cubicpA1 caption = "Cubic 1 Tan Freq" default = 0.1 hint = "If parameter 'Trap Shape' is set to 'cubical parabola', \ then this setting is the frequency of the tangent term." visible = (@traptype == "polar functions") && (@polarshape1 == "cubical parabola") && @showprimaries endparam param cubicpB1 caption = "Cubic 1 Cos Freq" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'cubical parabola', \ then this setting is the frequency of the cosine term." visible = (@traptype == "polar functions") && (@polarshape1 == "cubical parabola") && @showprimaries endparam param cubicpC1 caption = "Cubic 1 Numerator" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'cubical parabola', \ then this constant is the numerator of the cosine term." visible = (@traptype == "polar functions") && (@polarshape1 == "cubical parabola") && @showprimaries endparam param cubicpA2 caption = "Cubic 2 Tan Freq" default = 0.1 hint = "If parameter '2nd Trap Shape' is set to 'cubical parabola', \ then this setting is the frequency of the tangent term." visible = (@traptype2 == "polar functions") && (@polarshape2 == "cubical parabola") && \ @showprimaries && @twotrapstrue endparam param cubicpB2 caption = "Cubic 2 Cos Freq" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'cubical parabola', \ then this setting is the frequency of the cosine term." visible = (@traptype2 == "polar functions") && (@polarshape2 == "cubical parabola") && \ @showprimaries && @twotrapstrue endparam param cubicpC2 caption = "Cubic 2 Numerator" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'cubical parabola', \ then this constant is the numerator of the cosine term." visible = (@traptype2 == "polar functions") && (@polarshape2 == "cubical parabola") && \ @showprimaries && @twotrapstrue endparam param majaxis1 caption = "Major Axis" default = 1.5 hint = "If parameter 'Trap Shape' is set to 'ellipse', \ then this setting is the length of the major axis." visible = (@traptype == "polar functions") && (@polarshape1 == "ellipse") && @showprimaries endparam param minaxis1 caption = "Minor Axis" default = 0.9 hint = "If parameter 'Trap Shape' is set to 'ellipse', \ then this setting is the length of the minor axis." visible = (@traptype == "polar functions") && (@polarshape1 == "ellipse") && @showprimaries endparam param epower1 caption = "Ellipse Exponent" default = 2.0 hint = "If parameter 'Trap Shape' is set to 'ellipse', \ then this setting is the exponent. Ellipse = 2, superellipse > 2, \ subellipse 1< exp <2, astroid < 1." visible = (@traptype == "polar functions") && (@polarshape1 == "ellipse") && @showprimaries endparam param tanfreq1 caption = "Tangent Freq" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'ellipse', \ then this setting is the frequency of the tangent term. \ Try integers for star-like shapes." visible = (@traptype == "polar functions") && (@polarshape1 == "ellipse") && @showprimaries endparam param majaxis2 caption = "Major Axis 2" default = 1.25 hint = "If parameter '2nd Trap Shape' is set to 'ellipse', \ then this setting is the length of the major axis." visible = (@traptype2 == "polar functions") && (@polarshape2 == "ellipse") && @showprimaries \ && @twotrapstrue endparam param minaxis2 caption = "Minor Axis 2" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'ellipse', \ then this setting is the length of the minor axis." visible = (@traptype2 == "polar functions") && (@polarshape2 == "ellipse") && @showprimaries \ && @twotrapstrue endparam param epower2 caption = "Ellipse Exponent" default = 1.6180339887498948482045868343656 hint = "If parameter '2nd Trap Shape' is set to 'ellipse', \ then this setting is the exponent. Ellipse = 2, superellipse > 2, \ subellipse 1< exp <2, astroid < 1." visible = (@traptype2 == "polar functions") && (@polarshape2 == "ellipse") && @showprimaries \ && @twotrapstrue endparam param tanfreq2 caption = "Tangent Freq 2" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'ellipse', \ then this setting is the frequency of the tangent term. \ Try integers for star-like shapes." visible = (@traptype2 == "polar functions") && (@polarshape2 == "ellipse") && @showprimaries \ && @twotrapstrue endparam param fosinfreq1 caption = "Sine 1 Freq 1" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'folium of Descartes', \ then this setting is the frequency of the sine term." visible = (@traptype == "polar functions") && (@polarshape1 == "folium of Descartes") && @showprimaries endparam param focosfreq1 caption = "Cos 1 Freq" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'folium of Descartes', \ then this setting is the frequency of the cosine term." visible = (@traptype == "polar functions") && (@polarshape1 == "folium of Descartes") && @showprimaries endparam param sinfreq21 caption = "Sine 1 Freq 2" default = 2.0 hint = "If parameter 'Trap Shape' is set to 'folium of Descartes', \ then this setting modulates the frequency of the numerator sine term." visible = (@traptype == "polar functions") && (@polarshape1 == "folium of Descartes") && @showprimaries endparam param fosinfreq2 caption = "Sine 2 Freq 1" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'folium of Descartes', \ then this setting is the frequency of the sine term." visible = (@traptype2 == "polar functions") && (@polarshape2 == "folium of Descartes") && @showprimaries \ && @twotrapstrue endparam param focosfreq2 caption = "Cos 2 Freq" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'folium of Descartes', \ then this setting is the frequency of the cosine term." visible = (@traptype2 == "polar functions") && (@polarshape2 == "folium of Descartes") && @showprimaries \ && @twotrapstrue endparam param sinfreq22 caption = "Sine 2 Freq 2" default = 2.0 hint = "If parameter '2nd Trap Shape' is set to 'folium of Descartes', \ then this setting modulates the frequency of the numerator sine term." visible = (@traptype2 == "polar functions") && (@polarshape2 == "folium of Descartes") && @showprimaries \ && @twotrapstrue endparam param hyperbolic1 caption = "Hyperbolic Spiral Adjustment" default = 1.0 hint = "If 'Trap Shape' is set to 'hyperbolic spiral', then this parameter modifies \ the curve shape." visible = (@traptype == "polar functions") && (@polarshape1 == "hyperbolic spiral") && @showprimaries endparam param hyperbolic2 caption = "Hyperbolic Spiral 2 Adjustment" default = 1.0 hint = "If '2nd Trap Shape' is set to 'hyperbolic spiral', then this parameter modifies \ the curve shape." visible = (@traptype2 == "polar functions") && (@polarshape2 == "hyperbolic spiral") && @showprimaries \ && @twotrapstrue endparam param kampfreq1 caption = "Kampyle Frequency" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'kampyle of Eudoxus', \ then this setting modulates the cosine term." visible = (@traptype == "polar functions") && (@polarshape1 == "kampyle of Eudoxus") && @showprimaries endparam param kamppower1 caption = "Kampyle Power" default = 2.0 hint = "If parameter 'Trap Shape' is set to 'kampyle of Eudoxus', \ then this setting is the exponent of the cosine term." visible = (@traptype == "polar functions") && (@polarshape1 == "kampyle of Eudoxus") && @showprimaries endparam param kampfreq2 caption = "Kampyle 2 Frequency" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'kampyle of Eudoxus', \ then this setting modulates the cosine term." visible = (@traptype2 == "polar functions") && (@polarshape2 == "kampyle of Eudoxus") && @showprimaries \ && @twotrapstrue endparam param kamppower2 caption = "Kampyle 2 Power" default = 2.0 hint = "If parameter '2nd Trap Shape' is set to 'kampyle of Eudoxus', \ then this setting is the exponent of the cosine term." visible = (@traptype2 == "polar functions") && (@polarshape2 == "kampyle of Eudoxus") && @showprimaries \ && @twotrapstrue endparam param nodalfreq1 caption = "Tangent Frequency" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'kappa', \ then this setting modulates the frequency of the nodal curve. \ 1.0 corresponds to the kappa curve." visible = (@traptype == "polar functions") && (@polarshape1 == "kappa") && @showprimaries endparam param nodalfreq2 caption = "Tangent 2 Frequency" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'kappa', \ then this setting modulates the frequency of the nodal curve. \ 1.0 corresponds to the kappa curve." visible = (@traptype2 == "polar functions") && (@polarshape2 == "kappa") && @showprimaries \ && @twotrapstrue endparam param lemfreq1 caption = "Cosine Frequency" default = 2.0 hint = "If parameter 'Trap Shape' is set to 'lemniscate of Bernoulli', \ then this setting modulates the cosine term. 2.0 corresponds to the lemniscate." visible = (@traptype == "polar functions") && (@polarshape1 == "lemniscate of Bernoulli") && @showprimaries endparam param lempower1 caption = "Lemniscate Power" default = 0.5 hint = "If parameter 'Trap Shape' is set to 'lemniscate of Bernoulli', \ then this setting is the exponent of the cosine term. 0.5 corresponds to the lemniscate." visible = (@traptype == "polar functions") && (@polarshape1 == "lemniscate of Bernoulli") && @showprimaries endparam param lemfreq2 caption = "Cosine 2 Frequency" default = 2.0 hint = "If parameter '2nd Trap Shape' is set to 'lemniscate of Bernoulli', \ then this setting modulates the cosine term. 2.0 corresponds to the lemniscate." visible = (@traptype2 == "polar functions") && (@polarshape2 == "lemniscate of Bernoulli") && @showprimaries \ && @twotrapstrue endparam param lempower2 caption = "Lemniscate 2 Power" default = 0.5 hint = "If parameter '2nd Trap Shape' is set to 'lemniscate of Bernoulli', \ then this setting is the exponent of the cosine term. 0.5 corresponds to the lemniscate." visible = (@traptype2 == "polar functions") && (@polarshape2 == "lemniscate of Bernoulli") && @showprimaries \ && @twotrapstrue endparam param limfreq1 caption = "Sine Frequency" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'limacon of Pascal', \ then this setting modulates the sine term. 1.0 corresponds to the limacon." visible = (@traptype == "polar functions") && (@polarshape1 == "limacon of Pascal") && @showprimaries endparam param limamp1 caption = "Sine Amplitude" default = 0.6666666666666667 hint = "If parameter 'Trap Shape' is set to 'limacon of Pascal', \ then this setting is the amplitude of the sine term. 2/3 corresponds to the limacon." visible = (@traptype == "polar functions") && (@polarshape1 == "limacon of Pascal") && @showprimaries endparam param limoffset1 caption = "Limacon Offset" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'limacon of Pascal', \ then this setting is the offset of the sine term. 1.0 corresponds to the limacon." visible = (@traptype == "polar functions") && (@polarshape1 == "limacon of Pascal") && @showprimaries endparam param limfreq2 caption = "Sine 2 Frequency" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'limacon of Pascal', \ then this setting modulates the sine term. 1.0 corresponds to the limacon." visible = (@traptype2 == "polar functions") && (@polarshape2 == "limacon of Pascal") && @showprimaries \ && @twotrapstrue endparam param limamp2 caption = "Sine 2 Amplitude" default = 0.6666666666666667 hint = "If parameter '2nd Trap Shape' is set to 'limacon of Pascal', \ then this setting is the amplitude of the sine term. 2/3 corresponds to the limacon." visible = (@traptype2 == "polar functions") && (@polarshape2 == "limacon of Pascal") && @showprimaries \ && @twotrapstrue endparam param limoffset2 caption = "Limacon 2 Offset" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'limacon of Pascal', \ then this setting is the offset of the sine term. 1.0 corresponds to the limacon." visible = (@traptype2 == "polar functions") && (@polarshape2 == "limacon of Pascal") && @showprimaries \ && @twotrapstrue endparam param litpower1 caption = "Lituus Power" default = 0.5 hint = "If parameter 'Trap Shape' is set to 'lituus', \ then this setting is the exponent that is used. 0.5 corresponds to the lituus." visible = (@traptype == "polar functions") && (@polarshape1 == "lituus" || @polarshape1 == "lituus 2") && @showprimaries endparam param litpower2 caption = "Lituus 2 Power" default = 0.5 hint = "If parameter '2nd Trap Shape' is set to 'lituus', \ then this setting is the exponent that is used. 0.5 corresponds to the lituus." visible = (@traptype2 == "polar functions") && (@polarshape2 == "lituus" || @polarshape2 == "lituus 2") && @showprimaries \ && @twotrapstrue endparam param logspiA1 caption = "Log Spiral Adjustment" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'logarithmic spiral', \ then this setting adjusts the winding." visible = (@traptype2 == "polar functions") && (@polarshape1 == "logarithmic spiral") && @showprimaries endparam param logspiB1 caption = "Log Spiral Winding" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'logarithmic spiral', \ then this setting adjusts the tightness of the winding. Smaller numbers \ result in a tighter spiral." visible = (@traptype2 == "polar functions") && (@polarshape1 == "logarithmic spiral") && @showprimaries endparam param logspiA2 caption = "Log Spiral 2 Adjustment" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'logarithmic spiral', \ then this setting adjusts the winding." visible = (@traptype2 == "polar functions") && (@polarshape2 == "logarithmic spiral") && @showprimaries \ && @twotrapstrue endparam param logspiB2 caption = "Log Spiral 2 Winding" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'logarithmic spiral', \ then this setting adjusts the tightness of the winding. Smaller numbers \ result in a tighter spiral." visible = (@traptype2 == "polar functions") && (@polarshape2 == "logarithmic spiral") && @showprimaries \ && @twotrapstrue endparam param parafreq1 caption = "Cos Frequency" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'parabola', \ then this setting modulates the cosine term. 1.0 corresponds to the parabola." visible = (@traptype == "polar functions") && (@polarshape1 == "parabola") && @showprimaries endparam param paraamp1 caption = "Cos Amplitude" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'parabola', \ then this setting is the amplitude of the cosine term. 1.0 corresponds to the parabola. \ 0.0 = circle, 0-1 = ellipse, 2 = hyperbola." visible = (@traptype == "polar functions") && (@polarshape1 == "parabola") && @showprimaries endparam param paraoffset1 caption = "Parabola Offset" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'parabola', \ then this setting is the offset of the cosine term. 1.0 corresponds to the parabola." visible = (@traptype == "polar functions") && (@polarshape1 == "parabola") && @showprimaries endparam param parafreq2 caption = "Cos 2 Frequency" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'parabola', \ then this setting modulates the cosine term. 1.0 corresponds to the parabola." visible = (@traptype2 == "polar functions") && (@polarshape2 == "parabola") && @showprimaries \ && @twotrapstrue endparam param paraamp2 caption = "Cos 2 Amplitude" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'parabola', \ then this setting is the amplitude of the cosine term. 1.0 corresponds to the parabola. \ 0.0 = circle, 0-1 = ellipse, 2 = hyperbola." visible = (@traptype2 == "polar functions") && (@polarshape2 == "parabola") && @showprimaries \ && @twotrapstrue endparam param paraoffset2 caption = "Parabola 2 Offset" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'parabola', \ then this setting is the offset of the cosine term. 1.0 corresponds to the parabola." visible = (@traptype2 == "polar functions") && (@polarshape2 == "parabola") && @showprimaries \ && @twotrapstrue endparam param paraspi1 caption = "Parabolic Spiral Power" default = 2.0 hint = "If parameter 'Trap Shape' is set to 'parabolic spiral', \ then this setting is the exponent. 2.0 corresponds to the parabolic spiral." visible = (@traptype == "polar functions") && (@polarshape1 == "parabolic spiral") && @showprimaries endparam param paraspioffset1 caption = "Parabolic Spiral Coefficient" default = 8.0 hint = "If parameter 'Trap Shape' is set to 'parabolic spiral', \ then this setting adjusts the spiral tightness." visible = (@traptype == "polar functions") && (@polarshape1 == "parabolic spiral") && @showprimaries endparam param paraspi2 caption = "Parabolic Spiral 2 Power" default = 2.0 hint = "If parameter '2nd Trap Shape' is set to 'parabolic spiral', \ then this setting is the exponent. 2.0 corresponds to the parabolic spiral." visible = (@traptype2 == "polar functions") && (@polarshape2 == "parabolic spiral") && @showprimaries \ && @twotrapstrue endparam param paraspioffset2 caption = "Parabolic Spiral 2 Coefficient" default = 0.0 hint = "If parameter '2nd Trap Shape' is set to 'parabolic spiral', \ then this setting adjusts the spiral tightness." visible = (@traptype2 == "polar functions") && (@polarshape2 == "parabolic spiral") && @showprimaries \ && @twotrapstrue endparam param semicubtanfreq1 caption = "Semicubic Tan Frequency" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'semicubical parabola', \ then this setting is the frequency of the tangent term. 1.0 corresponds to the \ semicubic parabola." visible = (@traptype == "polar functions") && (@polarshape1 == "semicubical parabola") && @showprimaries endparam param semicubcosfreq1 caption = "Semicubic Cos Frequency" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'semicubical parabola', \ then this setting is the frequency of the cosine term. 1.0 corresponds to the \ semicubic parabola." visible = (@traptype == "polar functions") && (@polarshape1 == "semicubical parabola") && @showprimaries endparam param semicubpower1 caption = "Semicubic Power" default = 2.0 hint = "If parameter 'Trap Shape' is set to 'semicubical parabola', \ then this setting is the exponent of the tangent term. 2.0 corresponds to the \ semicubic parabola." visible = (@traptype == "polar functions") && (@polarshape1 == "semicubical parabola") && @showprimaries endparam param semicubtanfreq2 caption = "Semicubic 2 Tan Frequency" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'semicubical parabola', \ then this setting is the frequency of the tangent term. 1.0 corresponds to the \ semicubic parabola." visible = (@traptype2 == "polar functions") && (@polarshape2 == "semicubical parabola") && @showprimaries \ && @twotrapstrue endparam param semicubcosfreq2 caption = "Semicubic 2 Cos Frequency" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'semicubical parabola', \ then this setting is the frequency of the cosine term. 1.0 corresponds to the \ semicubic parabola." visible = (@traptype2 == "polar functions") && (@polarshape2 == "semicubical parabola") && @showprimaries \ && @twotrapstrue endparam param semicubpower2 caption = "Semicubic 2 Power" default = 2.0 hint = "If parameter '2nd Trap Shape' is set to 'semicubical parabola', \ then this setting is the exponent of the tangent term. 2.0 corresponds to the \ semicubic parabola." visible = (@traptype2 == "polar functions") && (@polarshape2 == "semicubical parabola") && @showprimaries \ && @twotrapstrue endparam param archspioffset1 caption = "Archimedes Spiral Adjustment" default = 2.0 hint = "If parameter 'Trap Shape' is set to 'spiral of Archimedes', \ then this setting affects the tightness of the winding." visible = (@traptype == "polar functions") && (@polarshape1 == "spiral of Archimedes") && @showprimaries endparam param archspioffset2 caption = "Archimedes Spiral 2 Adjustment" default = 2.0 hint = "If parameter '2nd Trap Shape' is set to 'spiral of Archimedes', \ then this setting affects the tightness of the winding." visible = (@traptype2 == "polar functions") && (@polarshape2 == "spiral of Archimedes") && @showprimaries \ && @twotrapstrue endparam param strophcosfreqA1 caption = "Strophoid 1st Cos Frequency" default = 2.0 hint = "If parameter 'Trap Shape' is set to 'strophoid', \ then this setting is the frequency of the 1st (numerator) cosine term. \ 2.0 corresponds to the strophoid." visible = (@traptype == "polar functions") && (@polarshape1 == "strophoid") && @showprimaries endparam param strophcosfreqB1 caption = "Strophoid 2nd Cos Frequency" default = 1.0 hint = "If parameter 'Trap Shape' is set to 'strophoid', \ then this setting is the frequency of the 2nd (denominator) cosine term. \ 1.0 corresponds to the strophoid." visible = (@traptype == "polar functions") && (@polarshape1 == "strophoid") && @showprimaries endparam param strophcosfreqA2 caption = "Strophoid 2 1st Cos Frequency" default = 2.0 hint = "If parameter '2nd Trap Shape' is set to 'strophoid', \ then this setting is the frequency of the 1st (numerator) cosine term. \ 2.0 corresponds to the strophoid." visible = (@traptype2 == "polar functions") && (@polarshape2 == "strophoid") && @showprimaries \ && @twotrapstrue endparam param strophcosfreqB2 caption = "Strophoid 2 2nd Cos Frequency" default = 1.0 hint = "If parameter '2nd Trap Shape' is set to 'strophoid', \ then this setting is the frequency of the 2nd (denominator) cosine term. \ 1.0 corresponds to the strophoid." visible = (@traptype2 == "polar functions") && (@polarshape2 == "strophoid") && @showprimaries \ && @twotrapstrue endparam param polarfreqA1 caption = "Polar 1 Frequency A" default = 1.0 hint = "If 'Trap 1 Type' is set to 'polar functions', some of the curves use this \ parameter as the frequency." visible = @showprimaries && @traptype == "polar functions" && \ (@polarshape1 == "Cayley's sextic" || @polarshape1 == "Cayley's sextic 2" || \ @polarshape1 == "hippopede") endparam param polarampA1 caption = "Polar 1 Amplitude A" default = 1.0 hint = "If 'Trap 1 Type' is set to 'polar functions', some of the curves use this \ parameter as the amplitude." visible = @showprimaries && @traptype == "polar functions" && \ (@polarshape1 == "Cayley's sextic" || \ @polarshape1 == "hippopede") endparam param polarfreqA2 caption = "Polar 2 Frequency A" default = 1.0 hint = "If 'Trap 2 Type' is set to 'polar functions', some of the curves use this \ parameter as the frequency." visible = @showprimaries && @traptype2 == "polar functions" && @twotrapstrue && \ (@polarshape2 == "Cayley's sextic" || @polarshape2 == "Cayley's sextic 2" || \ @polarshape1 == "hippopede") endparam param polarampA2 caption = "Polar 2 Amplitude A" default = 1.0 hint = "If 'Trap 2 Type' is set to 'polar functions', some of the curves use this \ parameter as the amplitude." visible = @showprimaries && @traptype2 == "polar functions" && @twotrapstrue && \ (@polarshape2 == "Cayley's sextic" || \ @polarshape1 == "hippopede") endparam param trefoilcosamp1 caption = "Trefoil 1 Cos Amplitude" default = 1.0 hint = "If 'Trap 1 Type' is set to 'trefoil of Habenicht', this \ parameter sets the amplitude of the cosine term." visible = @showprimaries && @traptype == "polar functions" && \ (@polarshape1 == "trefoil of Habenicht") endparam param trefoilsinamp1 caption = "Trefoil 1 Sine Amplitude" default = 1.0 hint = "If 'Trap 1 Type' is set to 'trefoil of Habenicht', this \ parameter sets the amplitude of the cosine term." visible = @showprimaries && @traptype == "polar functions" && \ (@polarshape1 == "trefoil of Habenicht") endparam param trefoilcossymmetry1 caption = "Trefoil 1 Cos Symmetry" default = 3.0 hint = "If 'Trap 1 Type' is set to 'trefoil of Habenicht', this \ parameter sets the symmetry of the cosine term." visible = @showprimaries && @traptype == "polar functions" && \ (@polarshape1 == "trefoil of Habenicht") endparam param trefoilsinsymmetry1 caption = "Trefoil 1 Sine Symmetry" default = 3.0 hint = "If 'Trap 1 Type' is set to 'trefoil of Habenicht', this \ parameter sets the symmetry of the sine term." visible = @showprimaries && @traptype == "polar functions" && \ (@polarshape1 == "trefoil of Habenicht") endparam param trefoilconstant1 caption = "Trefoil 1 Constant" default = 1.0 hint = "If 'Trap 1 Type' is set to 'trefoil of Habenicht', this \ parameter affects the scale of the curve." visible = @showprimaries && @traptype == "polar functions" && \ (@polarshape1 == "trefoil of Habenicht") endparam param trefoilcosfreq2 caption = "Trefoil 2 Cos Frequency" default = 1.0 hint = "If 'Trap 2 Type' is set to 'trefoil of Habenicht', this \ parameter sets the frequency of the cosine term." visible = @showprimaries && @traptype2 == "polar functions" && \ (@polarshape2 == "trefoil of Habenicht") && @twotrapstrue endparam param trefoilcosamp2 caption = "Trefoil 2 Cos Amplitude" default = 1.0 hint = "If 'Trap 2 Type' is set to 'trefoil of Habenicht', this \ parameter sets the amplitude of the cosine term." visible = @showprimaries && @traptype2 == "polar functions" && \ (@polarshape2 == "trefoil of Habenicht") && @twotrapstrue endparam param trefoilsinfreq2 caption = "Trefoil 2 Sine Frequency" default = 1.0 hint = "If 'Trap 2 Type' is set to 'trefoil of Habenicht', this \ parameter sets the frequency of the sine term." visible = @showprimaries && @traptype2 == "polar functions" && \ (@polarshape2 == "trefoil of Habenicht") && @twotrapstrue endparam param trefoilsinamp2 caption = "Trefoil 2 Sine Amplitude" default = 1.0 hint = "If 'Trap 2 Type' is set to 'trefoil of Habenicht', this \ parameter sets the amplitude of the cosine term." visible = @showprimaries && @traptype2 == "polar functions" && \ (@polarshape2 == "trefoil of Habenicht") && @twotrapstrue endparam param trefoilcossymmetry2 caption = "Trefoil 2 Cos Symmetry" default = 3.0 hint = "If 'Trap 2 Type' is set to 'trefoil of Habenicht', this \ parameter sets the symmetry of the cosine term." visible = @showprimaries && @traptype2 == "polar functions" && \ (@polarshape2 == "trefoil of Habenicht") && @twotrapstrue endparam param trefoilsinsymmetry2 caption = "Trefoil 2 Sine Symmetry" default = 3.0 hint = "If 'Trap 2 Type' is set to 'trefoil of Habenicht', this \ parameter sets the symmetry of the sine term." visible = @showprimaries && @traptype2 == "polar functions" && \ (@polarshape2 == "trefoil of Habenicht") && @twotrapstrue endparam param trefoilconstant2 caption = "Trefoil 2 Constant" default = 1.0 hint = "If 'Trap 2 Type' is set to 'trefoil of Habenicht', this \ parameter affects the scale of the curve." visible = @showprimaries && @traptype2 == "polar functions" && \ (@polarshape2 == "trefoil of Habenicht") && @twotrapstrue endparam param trilimA1 caption = "Trisectrix 1 Multiplier" default = 2.0 hint = "If 'Trap 1 Type' is set to 'trisectrix limacon', this factor scales the entire equation." visible = @showprimaries && @traptype == "polar functions" && @polarshape1 == "trisectrix limacon" endparam param trilimB1 caption = "Trisectrix 1 Constant" default = 1.0 hint = "If 'Trap 1 Type' is set to 'trisectrix limacon', this value is added to the cosine term." visible = @showprimaries && @traptype == "polar functions" && @polarshape1 == "trisectrix limacon" endparam param trilimamp1 caption = "Trisectrix 1 Amplitude" default = 2.0 hint = "If 'Trap 1 Type' is set to 'trisectrix limacon', this value is the cosine amplitude." visible = @showprimaries && @traptype == "polar functions" && @polarshape1 == "trisectrix limacon" endparam param trilimfreq1 caption = "Trisectrix 1 Frequency" default = 1.0 hint = "If 'Trap 1 Type' is set to 'trisectrix limacon', this value is the cosine frequency." visible = @showprimaries && @traptype == "polar functions" && @polarshape1 == "trisectrix limacon" endparam param trilimA2 caption = "Trisectrix 2 Multiplier" default = 2.0 hint = "If 'Trap 2 Type' is set to 'trisectrix limacon', this factor scales the entire equation." visible = @showprimaries && @traptype2 == "polar functions" && @polarshape2 == "trisectrix limacon" && \ @twotrapstrue endparam param trilimB2 caption = "Trisectrix 2 Constant" default = 1.0 hint = "If 'Trap 2 Type' is set to 'trisectrix limacon', this value is added to the cosine term." visible = @showprimaries && @traptype2 == "polar functions" && @polarshape2 == "trisectrix limacon" && \ @twotrapstrue endparam param trilimamp2 caption = "Trisectrix 2 Amplitude" default = 2.0 hint = "If 'Trap 2 Type' is set to 'trisectrix limacon', this value is the cosine amplitude." visible = @showprimaries && @traptype2 == "polar functions" && @polarshape2 == "trisectrix limacon" && \ @twotrapstrue endparam param trilimfreq2 caption = "Trisectrix 2 Frequency" default = 1.0 hint = "If 'Trap 2 Type' is set to 'trisectrix limacon', this value is the cosine frequency." visible = @showprimaries && @traptype2 == "polar functions" && @polarshape2 == "trisectrix limacon" && \ @twotrapstrue endparam param folioidamp1 caption = "Folioid 1 Amplitude" default = 2.2 hint = "If 'Trap 1 Type' is set to 'polar functions' and 'Trap Shape' \ is 'folioid', then this parameter fixes the amplitude of the cosine term." visible = @showprimaries && (@traptype == "polar functions" && @polarshape1 == "folioid" \ && @polarmode1 == "normal") endparam param folioidfreqN1 caption = "Folioid 1 Numerator" default = 3.0 hint = "If 'Trap 1 Type' is set to 'polar functions' and 'Trap Shape' \ is 'folioid', then this parameter fixes the numerator of the frequency of the cosine term." visible = @showprimaries && (@traptype == "polar functions" && @polarshape1 == "folioid") endparam param folioidfreqD1 caption = "Folioid 1 Denominator" default = 1.0 hint = "If 'Trap 1 Type' is set to 'polar functions' and 'Trap Shape' \ is 'folioid', then this parameter fixes the denominator of the frequency of the cosine term." visible = @showprimaries && (@traptype == "polar functions" && @polarshape1 == "folioid") endparam param folioidconstA1 caption = "Folioid 1 Const A" default = 1.5 hint = "If 'Trap 1 Type' is set to 'polar functions' and 'Trap Shape' \ is 'folioid', then this parameter is the first of two shaping terms." visible = @showprimaries && (@traptype == "polar functions" && @polarshape1 == "folioid" \ && @polarmode1 == "implicit") endparam param folioidconstB1 caption = "Folioid 1 Const B" default = 1.5 hint = "If 'Trap 1 Type' is set to 'polar functions' and 'Trap Shape' \ is 'folioid', then this parameter is the second of two shaping terms." visible = @showprimaries && (@traptype == "polar functions" && @polarshape1 == "folioid" \ && @polarmode1 == "implicit") endparam param folioidamp2 caption = "Folioid 2 Amplitude" default = 2.2 hint = "If 'Trap 2 Type' is set to 'polar functions' and '2nd Trap Shape' \ is 'folioid', then this parameter fixes the amplitude of the cosine term." visible = @showprimaries && (@traptype2 == "polar functions" && @polarshape2 == "folioid" \ && @polarmode1 == "normal") && @twotrapstrue endparam param folioidfreqN2 caption = "Folioid 2 Numerator" default = 1.5 hint = "If 'Trap 2 Type' is set to 'polar functions' and '2nd Trap Shape' \ is 'folioid', then this parameter fixes the numerator of the frequency of the cosine term." visible = @showprimaries && (@traptype2 == "polar functions" && @polarshape2 == "folioid") \ && @twotrapstrue endparam param folioidfreqD2 caption = "Folioid 2 Denominator" default = 1.5 hint = "If 'Trap 2 Type' is set to 'polar functions' and '2nd Trap Shape' \ is 'folioid', then this parameter fixes the denominator of the frequency of the cosine term." visible = @showprimaries && (@traptype2 == "polar functions" && @polarshape2 == "folioid") \ && @twotrapstrue endparam param folioidconstA2 caption = "Folioid 2 Const A" default = 1.5 hint = "If 'Trap 2 Type' is set to 'polar functions' and '2nd Trap Shape' \ is 'folioid', then this parameter is the first of two shaping terms." visible = @showprimaries && (@traptype2 == "polar functions" && @polarshape2 == "folioid" \ && @polarmode2 == "implicit") && @twotrapstrue endparam param folioidconstB2 caption = "Folioid 2 Const B" default = 1.5 hint = "If 'Trap 2 Type' is set to 'polar functions' and '2nd Trap Shape' \ is 'folioid', then this parameter is the second of two shaping terms." visible = @showprimaries && (@traptype2 == "polar functions" && @polarshape2 == "folioid" \ && @polarmode2 == "implicit") && @twotrapstrue endparam param hyponumerator1 caption = "Hypocycloid 1 Numerator" default = 1 hint = "If 'Trap Shape' is set to 'hypocycloid', then this setting \ determines the numerator of the shaping parameter. In conjunction with \ parameter 'Hypocycloid 1 Denominator', try simple fractions." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "hypocycloid" endparam param hypodenom1 caption = "Hypocycloid 1 Denominator" default = 3 hint = "If 'Trap Shape' is set to 'hypocycloid', then this setting \ determines the denominator of the shaping parameter. In conjunction with \ parameter 'Hypocycloid 1 Numerator', try simple fractions." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "hypocycloid" endparam param hyponumerator2 caption = "Hypocycloid 2 Numerator" default = 3 hint = "If '2nd Trap Shape' is set to 'hypocycloid', then this setting \ determines the numerator of the shaping parameter. In conjunction with \ parameter 'Hypocycloid 2 Denominator', try simple fractions." visible = @showprimaries && @traptype2 == "parametric functions" && \ @parashape2 == "hypocycloid" && @twotrapstrue endparam param hypodenom2 caption = "Hypocycloid 2 Denominator" default = 2 hint = "If '2nd Trap Shape' is set to 'hypocycloid', then this setting \ determines the denominator of the shaping parameter. In conjunction with \ parameter 'Hypocycloid 2 Numerator', try simple fractions." visible = @showprimaries && @traptype2 == "parametric functions" && \ @parashape2 == "hypocycloid" && @twotrapstrue endparam param companC11 caption = "Companion X-scale" default = 1.0 hint = "If 'Trap Shape' is set to 'companion of cycloid', then this setting \ sets the scale of the x-coordinate." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "companion of cycloid" endparam param companC21 caption = "Companion Y-offset" default = 1.0 hint = "If 'Trap Shape' is set to 'companion of cycloid', then this setting \ sets the offset of the y-coordinate." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "companion of cycloid" endparam param companfreq1 caption = "Companion Frequency" default = 1.0 hint = "If 'Trap Shape' is set to 'companion of cycloid', then this setting \ is the frequency of the y-coordinate cosine." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "companion of cycloid" endparam param companC12 caption = "Companion 2 X-scale" default = 1.0 hint = "If '2nd Trap Shape' is set to 'companion of cycloid', then this setting \ sets the scale of the x-coordinate." visible = @showprimaries && @traptype2 == "parametric functions" && \ @parashape2 == "companion of cycloid" && @twotrapstrue endparam param companC22 caption = "Companion 2 Y-offset" default = 1.0 hint = "If '2nd Trap Shape' is set to 'companion of cycloid', then this setting \ sets the offset of the y-coordinate." visible = @showprimaries && @traptype2 == "parametric functions" && \ @parashape2 == "companion of cycloid" && @twotrapstrue endparam param companfreq2 caption = "Companion 2 Frequency" default = 1.0 hint = "If '2nd Trap Shape' is set to 'companion of cycloid', then this setting \ is the frequency of the y-coordinate cosine." visible = @showprimaries && @traptype2 == "parametric functions" && \ @parashape2 == "companion of cycloid" && @twotrapstrue endparam param cycampA1 caption = "Cycloid Sine Amplitude" default = 1.0 hint = "If 'Trap Shape' is set to 'cycloid', then this setting \ is the amplitude of the x-coordinate sine function. Ordinary cycloid: a = 1, \ prolate cycloid: a > 1, curtate cycloid: a < 1." visible = @showprimaries && @traptype == "parametric functions" && \ ((@parashape1 == "cycloid") || (@parashape1 == "cycloid variant")) endparam param cycampB1 caption = "Cycloid Cos Amplitude" default = 1.0 hint = "If 'Trap Shape' is set to 'cycloid', then this setting \ is the amplitude of the y-coordinate cosine function." visible = @showprimaries && @traptype == "parametric functions" && \ ((@parashape1 == "cycloid") || (@parashape1 == "cycloid variant")) endparam param cycxscale1 caption = "Cycloid X-scale" default = 1.0 hint = "If 'Trap Shape' is set to 'cycloid', then this setting \ is the coefficient of the x-coordinate angular term." visible = @showprimaries && @traptype == "parametric functions" && \ ((@parashape1 == "cycloid") || (@parashape1 == "cycloid variant")) endparam param cycyoffset1 caption = "Cycloid Y-offset" default = 1.0 hint = "If 'Trap Shape' is set to 'cycloid', then this setting \ is the constant term of the y-coordinate." visible = @showprimaries && @traptype == "parametric functions" && \ ((@parashape1 == "cycloid") || (@parashape1 == "cycloid variant")) endparam param cycsinfreq1 caption = "Cycloid Sine Freq" default = 1.0 hint = "If 'Trap Shape' is set to 'cycloid', then this setting \ is the frequency of the x-coordinate sine function." visible = @showprimaries && @traptype == "parametric functions" && \ ((@parashape1 == "cycloid") || (@parashape1 == "cycloid variant")) endparam param cyccosfreq1 caption = "Cycloid Cos Freq" default = 1.0 hint = "If 'Trap Shape' is set to 'cycloid', then this setting \ is the frequency of the y-coordinate cosine function." visible = @showprimaries && @traptype == "parametric functions" && \ ((@parashape1 == "cycloid") || (@parashape1 == "cycloid variant")) endparam param cycangle1 caption = "Angle Coefficient" default = 4.0 hint = "For some of the curves, this setting \ stretches the angle to provide more waviness." visible = @showprimaries && @traptype == "parametric functions" && \ ((@parashape1 == "cycloid") || (@parashape1 == "cycloid variant")) endparam param cycampA2 caption = "Cycloid 2 Amplitude" default = 1.0 hint = "If '2nd Trap Shape' is set to 'cycloid', then this setting \ is the amplitude of the x-coordinate sine function. Ordinary cycloid: a = 1, \ prolate cycloid: a > 1, curtate cycloid: a < 1." visible = @showprimaries && @traptype2 == "parametric functions" && \ ((@parashape2 == "cycloid") || (@parashape2 == "cycloid variant")) \ && @twotrapstrue endparam param cycampB2 caption = "Cycloid 2 Cos Amplitude" default = 1.0 hint = "If '2nd Trap Shape' is set to 'cycloid', then this setting \ is the amplitude of the y-coordinate cosine function." visible = @showprimaries && @traptype2 == "parametric functions" && \ ((@parashape2 == "cycloid") || (@parashape2 == "cycloid variant")) \ && @twotrapstrue endparam param cycxscale2 caption = "Cycloid 2 X-scale" default = 1.0 hint = "If '2nd Trap Shape' is set to 'cycloid', then this setting \ is the coefficient of the x-coordinate angular term." visible = @showprimaries && @traptype2 == "parametric functions" && \ ((@parashape2 == "cycloid") || (@parashape2 == "cycloid variant")) \ && @twotrapstrue endparam param cycyoffset2 caption = "Cycloid 2 Y-offset" default = 1.0 hint = "If '2nd Trap Shape' is set to 'cycloid', then this setting \ is the constant term of the y-coordinate." visible = @showprimaries && @traptype2 == "parametric functions" && \ ((@parashape2 == "cycloid") || (@parashape2 == "cycloid variant")) \ && @twotrapstrue endparam param cycsinfreq2 caption = "Cycloid 2 Sine Freq" default = 1.0 hint = "If '2nd Trap Shape' is set to 'cycloid', then this setting \ is the frequency of the x-coordinate sine function." visible = @showprimaries && @traptype2 == "parametric functions" && \ ((@parashape2 == "cycloid") || (@parashape2 == "cycloid variant")) \ && @twotrapstrue endparam param cyccosfreq2 caption = "Cycloid 2 Cos Freq" default = 1.0 hint = "If '2nd Trap Shape' is set to 'cycloid', then this setting \ is the frequency of the y-coordinate cosine function." visible = @showprimaries && @traptype2 == "parametric functions" && \ ((@parashape2 == "cycloid") || (@parashape2 == "cycloid variant")) \ && @twotrapstrue endparam param cycangle2 caption = "Angle 2 Coefficient" default = 4.0 hint = "For some of the curves, this setting \ stretches the angle to provide more waviness." visible = @showprimaries && @traptype2 == "parametric functions" && \ ((@parashape2 == "cycloid") || (@parashape2 == "cycloid variant") || \ (@parashape2 == "companion of cycloid")) && @twotrapstrue endparam param epicycAN1 caption = "Epicycloid A Numerator" default = 1.0 hint = "If 'Trap Shape' is set to 'epicycloid', then this setting \ affects the amplitudes and frequencies of the trig functions." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "epicycloid" endparam param epicycAD1 caption = "Epicycloid A Denominator" default = 4.0 hint = "If 'Trap Shape' is set to 'epicycloid', then this setting \ affects the amplitudes and frequencies of the trig functions." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "epicycloid" endparam param epicycB1 caption = "Epicycloid B" default = 5.0 hint = "If 'Trap Shape' is set to 'epicycloid', then this setting \ affects the amplitudes of two of the trig functions." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "epicycloid" endparam param epicycC1 caption = "Epicycloid C" default = 1.0 hint = "If 'Trap Shape' is set to 'epicycloid', then this setting \ adjusts the amplitudes and frequencies of the trig functions." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "epicycloid" endparam param epicycAN2 caption = "Epicycloid 2 A Numerator" default = 1.0 hint = "If '2nd Trap Shape' is set to 'epicycloid', then this setting \ affects the amplitudes and frequencies of the trig functions." visible = @showprimaries && @traptype2 == "parametric functions" && \ @parashape2 == "epicycloid" && @twotrapstrue endparam param epicycAD2 caption = "Epicycloid 2 A Denominator" default = 4.0 hint = "If '2nd Trap Shape' is set to 'epicycloid', then this setting \ affects the amplitudes and frequencies of the trig functions." visible = @showprimaries && @traptype2 == "parametric functions" && \ @parashape2 == "epicycloid" && @twotrapstrue endparam param epicycB2 caption = "Epicycloid 2 B" default = 5.0 hint = "If '2nd Trap Shape' is set to 'epicycloid', then this setting \ affects the amplitudes of two of the trig functions." visible = @showprimaries && @traptype2 == "parametric functions" && \ @parashape2 == "epicycloid" && @twotrapstrue endparam param epicycC2 caption = "Epicycloid 2 C" default = 1.0 hint = "If '2nd Trap Shape' is set to 'epicycloid', then this setting \ adjusts the amplitudes and frequencies of the trig functions." visible = @showprimaries && @traptype2 == "parametric functions" && \ @parashape2 == "epicycloid" && @twotrapstrue endparam param nephsinfreq1 caption = "Nephroid 1 Sine Frequency" default = 3.0 hint = "If 'Trap Shape' is set to 'nephroid', then this setting \ adjusts the frequency of the sine function." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "nephroid" endparam param nephcosfreq1 caption = "Nephroid 1 Cos Frequency" default = 3.0 hint = "If 'Trap Shape' is set to 'nephroid', then this setting \ adjusts the frequency of the cosine function." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "nephroid" endparam param nephconstA1 caption = "Nephroid 1 Constant 1" default = 3.0 hint = "If 'Trap Shape' is set to 'nephroid', then this setting \ adjusts the amplitude of the sine function." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "nephroid" endparam param nephconstB1 caption = "Nephroid 1 Constant 2" default = 3.0 hint = "If 'Trap Shape' is set to 'nephroid', then this setting \ adjusts the amplitude of the cosine function." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "nephroid" endparam param nephsinfreq2 caption = "Nephroid 2 Sine Frequency" default = 3.0 hint = "If '2nd Trap Shape' is set to 'nephroid', then this setting \ adjusts the frequency of the sine function." visible = @showprimaries && @traptype2 == "parametric functions" && \ @parashape2 == "nephroid" && @twotrapstrue endparam param nephcosfreq2 caption = "Nephroid 2 Cos Frequency" default = 3.0 hint = "If '2nd Trap Shape' is set to 'nephroid', then this setting \ adjusts the frequency of the cosine function." visible = @showprimaries && @traptype2 == "parametric functions" && \ @parashape2 == "nephroid" && @twotrapstrue endparam param nephconstA2 caption = "Nephroid 2 Constant 1" default = 3.0 hint = "If '2nd Trap Shape' is set to 'nephroid', then this setting \ adjusts the amplitude of the sine function." visible = @showprimaries && @traptype2 == "parametric functions" && \ @parashape2 == "nephroid" && @twotrapstrue endparam param nephconstB2 caption = "Nephroid 2 Constant 2" default = 3.0 hint = "If '2nd Trap Shape' is set to 'nephroid', then this setting \ adjusts the amplitude of the cosine function." visible = @showprimaries && @traptype2 == "parametric functions" && \ @parashape2 == "nephroid" && @twotrapstrue endparam param parafreqA1 caption = "Parametric Frequency 1" default = 1.0 hint = "For some of the parametric functions, this term adjusts the frequency \ of one of the trig functions." visible = @showprimaries && @traptype == "parametric functions" && \ (@parashape1 == "hyperbola" || @parashape1 == "tractrix" || \ @parashape1 == "serpentine" || @parashape1 == "witch of Agnesi" || \ @parashape1 == "Abdank quadratrix" || @parashape1 == "cornoid") endparam param parafreqB1 caption = "Parametric Frequency 2" default = 1.0 hint = "For some of the parametric functions, this term adjusts the frequency \ of one of the trig functions." visible = @showprimaries && @traptype == "parametric functions" && \ (@parashape1 == "hyperbola" || @parashape1 == "tractrix" || \ @parashape1 == "serpentine" || @parashape1 == "witch of Agnesi" || \ @parashape1 == "Abdank quadratrix" || @parashape1 == "cornoid") endparam param paraconstA1 caption = "Parametric Constant 1" default = 1.0 hint = "For some of the parametric functions, this term modulates the shape \ or amplitude of one of the trig functions." visible = @showprimaries && @traptype == "parametric functions" && \ (@parashape1 == "hyperbola" || @parashape1 == "tractrix" || \ @parashape1 == "serpentine" || @parashape1 == "witch of Agnesi" || \ @parashape1 == "Abdank quadratrix") endparam param paraconstB1 caption = "Parametric Constant 2" default = 1.0 hint = "For some of the parametric functions, this term modulates the shape \ or amplitude of one of the trig functions." visible = @showprimaries && @traptype == "parametric functions" && \ (@parashape1 == "hyperbola" || @parashape1 == "tractrix" || \ @parashape1 == "serpentine" || @parashape1 == "witch of Agnesi") endparam param parafreqA2 caption = "Parametric 2 Frequency 1" default = 1.0 hint = "For some of the parametric functions, this term adjusts the frequency \ of one of the trig functions." visible = @showprimaries && @twotrapstrue && @traptype2 == "parametric functions" \ && (@parashape2 == "hyperbola" || @parashape2 == "tractrix" || \ @parashape2 == "serpentine" || @parashape2 == "witch of Agnesi" || \ @parashape2 == "Abdank quadratrix" || @parashape2 == "cornoid") endparam param parafreqB2 caption = "Parametric 2 Frequency 2" default = 1.0 hint = "For some of the parametric functions, this term adjusts the frequency \ of one of the trig functions." visible = @showprimaries && @twotrapstrue && @traptype2 == "parametric functions" \ && (@parashape2 == "hyperbola" || @parashape2 == "tractrix" || \ @parashape2 == "serpentine" || @parashape2 == "witch of Agnesi" || \ @parashape2 == "Abdank quadratrix" || @parashape2 == "cornoid") endparam param paraconstA2 caption = "Parametric 2 Constant 1" default = 1.0 hint = "For some of the parametric functions, this term modulates the shape \ or amplitude of one of the trig functions." visible = @showprimaries && @twotrapstrue && @traptype2 == "parametric functions" \ && (@parashape2 == "hyperbola" || @parashape2 == "tractrix" || \ @parashape2 == "serpentine" || @parashape2 == "witch of Agnesi" || \ @parashape2 == "Abdank quadratrix") endparam param paraconstB2 caption = "Parametric 2 Constant 2" default = 1.0 hint = "For some of the parametric functions, this term modulates the shape \ or amplitude of one of the trig functions." visible = @showprimaries && @twotrapstrue && @traptype2 == "parametric functions" \ && (@parashape2 == "hyperbola" || @parashape2 == "tractrix" || \ @parashape2 == "serpentine" || @parashape2 == "witch of Agnesi") endparam param wavysinfreq1 caption = "Wave Frequency 1" default = 20.0 hint = "If 'Trap 1 Type' is 'parametric functions' and 'Trap Shape' is set to \ 'wavy circle', this term adjusts the frequency of the waviness." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "wavy circle" endparam param wavysinamp1 caption = "Wave Amplitude 1" default = 0.1 hint = "If 'Trap 1 Type' is 'parametric functions' and 'Trap Shape' is set to \ 'wavy circle', this term adjusts the size of the waves." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "wavy circle" endparam param wavyradius1 caption = "Circle Radius 1" default = 1.0 hint = "If 'Trap 1 Type' is 'parametric functions' and 'Trap Shape' is set to \ 'wavy circle', this term adjusts the size of the circle." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "wavy circle" endparam param wavysinfreq2 caption = "Wave Frequency 2" default = 20.0 hint = "If 'Trap 2 Type' is 'parametric functions' and '2nd Trap Shape' is set to \ 'wavy circle', this term adjusts the frequency of the waviness." visible = @showprimaries && @traptype2 == "parametric functions" && \ @parashape2 == "wavy circle" && @twotrapstrue endparam param wavysinamp2 caption = "Wave Amplitude 2" default = 0.1 hint = "If 'Trap 2 Type' is 'parametric functions' and '2nd Trap Shape' is set to \ 'wavy circle', this term adjusts the size of the waves." visible = @showprimaries && @traptype2 == "parametric functions" && \ @parashape2 == "wavy circle" && @twotrapstrue endparam param wavyradius2 caption = "Circle Radius 2" default = 1.0 hint = "If 'Trap 2 Type' is 'parametric functions' and '2nd Trap Shape' is set to \ 'wavy circle', this term adjusts the size of the circle." visible = @showprimaries && @traptype2 == "parametric functions" && \ @parashape2 == "wavy circle" && @twotrapstrue endparam param paraxaxis1 caption = "Ellipse X-axis" default = 1.0 hint = "The parameter sets the semimajor axis of the ellipse." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "ellipse" endparam param parayaxis1 caption = "Ellipse Y-axis" default = 0.5 hint = "The parameter sets the semiminor axis of the ellipse." visible = @showprimaries && @traptype == "parametric functions" && \ @parashape1 == "ellipse" endparam param paraxaxis2 caption = "Ellipse 2 X-axis" default = 1.0 hint = "The parameter sets the semimajor axis of the ellipse." visible = @showprimaries && @traptype2 == "parametric functions" && \ @twotrapstrue && @parashape2 == "ellipse" endparam param parayaxis2 caption = "Ellipse 2 Y-axis" default = 0.5 hint = "The parameter sets the semiminor axis of the ellipse." visible = @showprimaries && @traptype2 == "parametric functions" && \ @twotrapstrue && @parashape2 == "ellipse" endparam param epiradiusA1 caption = "Base Circle 1 Radius" default = 1.0 hint = "The parameter sets the radius of the base circle defining the epicycloid \ or epitrochoid." visible = @showprimaries && @traptype == "parametric functions" && \ (@parashape1 == "epicycloid 2" || @parashape1 == "epitrochoid") endparam param epiradiusB1 caption = "Rolling Circle 1 Radius" default = 0.33333333333333333333 hint = "The parameter sets the radius of the rolling circle defining the epicycloid \ or epitrochoid." visible = @showprimaries && @traptype == "parametric functions" && \ (@parashape1 == "epicycloid 2" || @parashape1 == "epitrochoid") endparam param epiradiusC1 caption = "Rolling Point 1 Distance" default = 0.66666666666666666667 hint = "The parameter sets the distance of the moving point from the center of \ the rolling circle defining the epitrochoid." visible = @showprimaries && @traptype == "parametric functions" && \ (@parashape1 == "epitrochoid") endparam param epiradiusA2 caption = "Base Circle 2 Radius" default = 1.0 hint = "The parameter sets the radius of the base circle defining the epicycloid \ or epitrochoid." visible = @showprimaries && @traptype2 == "parametric functions" && \ (@parashape2 == "epicycloid 2" || @parashape2 == "epitrochoid") && @twotrapstrue endparam param epiradiusB2 caption = "Rolling Circle 2 Radius" default = 0.33333333333333333333 hint = "The parameter sets the radius of the rolling circle defining the epicycloid \ or epitrochoid." visible = @showprimaries && @traptype2 == "parametric functions" && \ (@parashape2 == "epicycloid 2" || @parashape2 == "epitrochoid") && @twotrapstrue endparam param epiradiusC2 caption = "Rolling Point 2 Distance" default = 0.66666666666666666667 hint = "The parameter sets the distance of the moving point from the center of \ the rolling circle defining the epitrochoid." visible = @showprimaries && @traptype2 == "parametric functions" && \ (@parashape2 == "epitrochoid") && @twotrapstrue endparam param cartxcoeff1 caption = "X-coefficient 1" default = 1.0 hint = "If 'Trap 1 Type' is 'cartesian', then this shaping parameter \ modifies the x-variable." visible = @showprimaries && @traptype == "cartesian" && \ (@xyshape1 == "Alain's curve" || @xyshape1 == "arcs of Samothrace" || \ @xyshape1 == "astroid" || @xyshape1 == "atriphthaloid" || \ @xyshape1 == "bean curve 1" || @xyshape1 == "bean curve 2" || @xyshape1 \ == "beetle curve" || @xyshape1 == "bicorn" || @xyshape1 == "bicuspid" || @xyshape1 == "Chasles cubic" \ || @xyshape1 == "circular cubic" || @xyshape1 == "clinoid" || @xyshape1 == "cross curve" \ || @xyshape1 == "devil's curve" || @xyshape1 == "dipole curve" || @xyshape1 == "double folium" \ || @xyshape1 == "double U curve" || @xyshape1 == "dumbbell curve" || @xyshape1 == "Durer's conchoid"\ || @xyshape1 == "cubic duplicatrix" || @xyshape1 == "Sillke's egg of Columbus" \ || @xyshape1 == "Kepler's egg" || @xyshape1 == "eight curve" || @xyshape1 == "hyperbola" || \ @xyshape1 == "superellipse" || @xyshape1 == "folium 1" || @xyshape1 == "folium 2" \ || @xyshape1 == "Proclus hippopede" || @xyshape1 == "Hoerl curve" || @xyshape1 == "Humbert cubic" \ || @xyshape1 == "kampyle of Eudoxus" || @xyshape1 == "kappa curve" || @xyshape1 == "Kiepert's curve" \ || @xyshape1 == "links curve" || @xyshape1 == "logistic curve" || @xyshape1 == "semicubical parabola" \ || @xyshape1 == "diverging parabola" || @xyshape1 == "nodal curve" || @xyshape1 == "strophoid" \ || @xyshape1 == "ophiuride" || @xyshape1 == "parabola" || @xyshape1 == "parabola 2" \ || @xyshape1 == "parabolic trifolium" || @xyshape1 == "piriform" || @xyshape1 == "pearls of de Sluze" \ || @xyshape1 == "quadratrix" || @xyshape1 == "right strophoid" || @xyshape1 == "scyphoid" \ || @xyshape1 == "damped sine" || @xyshape1 == "catastrophic sine" || @xyshape1 == "plane spiric" \ || @xyshape1 == "svastika" || @xyshape1 == "syntractrix" || @xyshape1 == "tetracuspid" || \ @xyshape1 == "siluroid" \ || @xyshape1 == "trisectrix of Longchamps" || @xyshape1 == "trident" || @xyshape1 == "trisectrix of Maclaurin" \ || @xyshape1 == "Trott curve" \ || @xyshape1 == "Tschirnhausen's cubic" || @xyshape1 == "visiera" || @xyshape1 == "resonance curve" \ || @xyshape1 == "witch of Agnesi") endparam param cartycoeff1 caption = "Y-coefficient 1" default = 1.0 hint = "If 'Trap 1 Type' is 'cartesian', then this shaping parameter \ modifies the y-variable." visible = @showprimaries && @traptype == "cartesian" && \ (@xyshape1 == "Alain's curve" || @xyshape1 == "arcs of Samothrace" || \ @xyshape1 == "astroid" || @xyshape1 == "atriphthaloid" || \ @xyshape1 == "bean curve 1" || @xyshape1 == "bean curve 2" || @xyshape1 \ == "beetle curve" || @xyshape1 == "bicorn" || @xyshape1 == "bicuspid" || @xyshape1 == "Chasles cubic" \ || @xyshape1 == "circular cubic" || @xyshape1 == "clinoid" || @xyshape1 == "cross curve" \ || @xyshape1 == "devil's curve" || @xyshape1 == "double folium" || @xyshape1 == "dumbbell curve" \ || @xyshape1 == "cubic duplicatrix" || @xyshape1 == "Sillke's egg of Columbus" \ || @xyshape1 == "Kepler's egg" || @xyshape1 == "eight curve" || \ @xyshape1 == "superellipse" || @xyshape1 == "Humbert cubic" || @xyshape1 == "hyperbola" \ || @xyshape1 == "Proclus hippopede" || @xyshape1 == "kappa curve" \ || @xyshape1 == "kampyle of Eudoxus" || @xyshape1 == "Kiepert's curve" || @xyshape1 == "kiss curve" \ || @xyshape1 == "links curve" || @xyshape1 == "logistic curve" || @xyshape1 == "semicubical parabola" \ || @xyshape1 == "diverging parabola" || @xyshape1 == "nodal curve" || @xyshape1 == "strophoid" \ || @xyshape1 == "ophiuride" || @xyshape1 == "parabola" || @xyshape1 == "parabola 2" \ || @xyshape1 == "parabolic trifolium" || @xyshape1 == "piriform" || @xyshape1 == "pearls of de Sluze" \ || @xyshape1 == "quadratrix" || @xyshape1 == "pursuit curve" || @xyshape1 == "right strophoid" \ || @xyshape1 == "scyphoid" || @xyshape1 == "anguinea" || @xyshape1 == "damped sine" \ || @xyshape1 == "catastrophic sine" || @xyshape1 == "plane spiric" || @xyshape1 == "svastika" \ || @xyshape1 == "syntractrix" || @xyshape1 == "tetracuspid" || @xyshape1 == \ "trisectrix of Longchamps" || @xyshape1 == "trident" || @xyshape1 == "trisectrix of Maclaurin" \ || @xyshape1 == "Tschirnhausen's cubic" || @xyshape1 == "visiera" || @xyshape1 == "resonance curve" \ || @xyshape1 == "witch of Agnesi") endparam param cartconstant1 caption = "Constant Term 1" default = 1.0 hint = "If 'Trap 1 Type' is 'cartesian', then this shaping parameter \ modifies some of the curve equations." visible = @showprimaries && @traptype == "cartesian" && \ (@xyshape1 == "astroid" || @xyshape1 == "atriphthaloid" || \ @xyshape1 == "bean curve 1" || @xyshape1 == "bean curve 2" || @xyshape1 \ == "beetle curve" || @xyshape1 == "bicorn" || @xyshape1 == "bicuspid" \ || @xyshape1 == "cubic egg" || @xyshape1 == "cardioid" || @xyshape1 == "Cartesian oval" \ || @xyshape1 == "Cassini oval"|| @xyshape1 == "catenary"|| @xyshape1 == \ "Cayley's sextic"|| @xyshape1 == "Ceva's trisectrix" || @xyshape1 == "Chasles cubic" \ || @xyshape1 == "circle" || @xyshape1 == "cissoid of Diocles" \ || @xyshape1 == "circular cubic" || @xyshape1 == "clinoid" || @xyshape1 == "cochleoid" \ || @xyshape1 == "conchoid of circle" || @xyshape1 == "conchoid of Nicomedes" \ || @xyshape1 == "conchoid of de Sluze" || @xyshape1 == "cubic of Apollonius" \ || @xyshape1 == "cranoid" || @xyshape1 == "Jerabek curve" || \ @xyshape1 == "Rosillo curve" || @xyshape1 == "deltoid" || @xyshape1 == "Humbert cubic" \ || @xyshape1 == "devil's curve" || @xyshape1 == "dipole curve" || @xyshape1 == "double egg" \ || @xyshape1 == "double folium" || @xyshape1 == "double U curve" || @xyshape1 == "cubic duplicatrix" \ || @xyshape1 == "Durer's conchoid" || @xyshape1 == "Granville's egg" || @xyshape1 == "hyperbola 2" \ || @xyshape1 == "Kepler's egg" || @xyshape1 == "eight curve" || @xyshape1 == \ "ellipse" || @xyshape1 == "fish quartic" || @xyshape1 == "folium of Descartes" || \ @xyshape1 == "Durer's folium" || @xyshape1 == "Gaussian curve" || @xyshape1 == "Beutel heart" \ || @xyshape1 == "Proclus hippopede" || @xyshape1 == "Hoerl curve" || @xyshape1 == "hyperbola" \ || @xyshape1 == "illumination curve" || @xyshape1 == "Kiepert's curve" || @xyshape1 == "kieroid" \ || @xyshape1 == "kiss curve" || @xyshape1 == "Klein quartic" || @xyshape1 == "Kulp quartic" \ || @xyshape1 == "limacon of Pascal" || @xyshape1 == "links curve" || @xyshape1 == "logistic curve" \ || @xyshape1 == "Lissajous sextic" || @xyshape1 == "Lissajous quartic" || @xyshape1 == "Maltese cross" \ || @xyshape1 == "diverging parabola" || @xyshape1 == "nephroid" || @xyshape1 == "Freeth's nephroid" \ || @xyshape1 == "nodal curve" || @xyshape1 == "strophoid" \ || @xyshape1 == "ophiuride" || @xyshape1 == "parabola 2" \ || @xyshape1 == "parabolic trifolium" || @xyshape1 == "piriform" || @xyshape1 == "pearls of de Sluze" \ || @xyshape1 == "quadratrix" || @xyshape1 == "pursuit curve" || @xyshape1 == "quadrafolium" \ || @xyshape1 == "trifolium" || @xyshape1 == "right strophoid" || @xyshape1 == "scarabaeus" \ || @xyshape1 == "scyphoid" || @xyshape1 == "anguinea" || @xyshape1 == "damped sine" \ || @xyshape1 == "catastrophic sine" || @xyshape1 == "plane spiric" || @xyshape1 == "spiric of Perseus" \ || @xyshape1 == "svastika" || @xyshape1 == "syntractrix" || @xyshape1 == "tetracuspid" || \ @xyshape1 == "siluroid" \ || @xyshape1 == "trisectrix of Longchamps" || @xyshape1 == "trident" || @xyshape1 == "trisectrix of Maclaurin" \ || @xyshape1 == "Trott curve" \ || @xyshape1 == "Tschirnhausen's cubic" || @xyshape1 == "visiera" || @xyshape1 == "resonance curve" \ || @xyshape1 == "witch of Agnesi" || @xyshape1 == "trisectrix of Delanges" || @xyshape1 == "Watt's curve") endparam param cartconstantB1 caption = "Constant B Term 1" default = 1.0 hint = "If 'Trap 1 Type' is 'cartesian', then this 2nd shaping parameter \ modifies some of the curve equations." visible = @showprimaries && @traptype == "cartesian" && \ (@xyshape1 == "atriphthaloid" || @xyshape1 == "bean curve 1" \ || @xyshape1 == "bean curve 2" || @xyshape1 == "bicorn" || @xyshape1 == \ "Cartesian oval" || @xyshape1 == "catenary" || @xyshape1 == "Chasles cubic" \ || @xyshape1 == "circular cubic" || @xyshape1 == "clinoid" || @xyshape1 == "cochleoid" \ || @xyshape1 == "conchoid of circle" || @xyshape1 == "conchoid of Nicomedes" \ || @xyshape1 == "conchoid of de Sluze" || @xyshape1 == "cubic of Apollonius" \ || @xyshape1 == "cranoid" || @xyshape1 == "Jerabek curve" || @xyshape1 == "Rosillo curve" \ || @xyshape1 == "double egg" || @xyshape1 == "Durer's conchoid" \ || @xyshape1 == "Granville's egg" || @xyshape1 == "fish quartic" || @xyshape1 == "Hoerl curve" \ || @xyshape1 == "Durer's folium" || @xyshape1 == "Beutel heart" || @xyshape1 == "hyperbola" \ || @xyshape1 == "kieroid" || @xyshape1 == "Klein quartic" || @xyshape1 == "Kulp quartic" || \ @xyshape1 == "links curve" || @xyshape1 == "logistic curve" || @xyshape1 == "Maltese cross" \ || @xyshape1 == "Lissajous quartic" || @xyshape1 == "nephroid" \ || @xyshape1 == "nodal curve" || @xyshape1 == "strophoid" \ || @xyshape1 == "pearls of de Sluze" \ || @xyshape1 == "quadratrix" || @xyshape1 == "pursuit curve" || @xyshape1 == "quadrafolium" \ || @xyshape1 == "trifolium" || @xyshape1 == "right strophoid" || @xyshape1 == "scarabaeus" \ || @xyshape1 == "anguinea" || @xyshape1 == "damped sine" \ || @xyshape1 == "catastrophic sine" || @xyshape1 == "plane spiric" || @xyshape1 == "spiric of Perseus" \ || @xyshape1 == "syntractrix" || @xyshape1 == "tetracuspid" || @xyshape1 == "trisectrix of Maclaurin" \ || @xyshape1 == "Trott curve" \ || @xyshape1 == "Tschirnhausen's cubic" || @xyshape1 == "resonance curve" \ || @xyshape1 == "trisectrix of Delanges" || @xyshape1 == "Watt's curve") endparam param cartconstantC1 caption = "Constant C Term 1" default = 1.0 hint = "If 'Trap 2 Type' is 'cartesian', then this 3rd shaping parameter \ modifies some of the curve equations." visible = @showprimaries && @traptype == "cartesian" && \ (@xyshape1 == "circular cubic" \ || @xyshape1 == "conchoid of circle" || @xyshape1 == "conchoid of de Sluze" \ || @xyshape1 == "cubic of Apollonius" || @xyshape1 == "Rosillo curve" \ || @xyshape1 == "Granville's egg" || @xyshape1 == "kieroid" || @xyshape1 == "Klein quartic" \ || @xyshape1 == "links curve" || @xyshape1 == "Maltese cross" \ || @xyshape1 == "Lissajous quartic" || @xyshape1 == "nephroid" \ || @xyshape1 == "nodal curve" || @xyshape1 == "pearls of de Sluze" \ || @xyshape1 == "pursuit curve" || @xyshape1 == "trifolium" || @xyshape1 == "scarabaeus" \ || @xyshape1 == "catastrophic sine" || @xyshape1 == "plane spiric" || @xyshape1 == "spiric of Perseus" \ || @xyshape1 == "Trott curve" || @xyshape1 == "Watt's curve") endparam param cartxcoeff2 caption = "X-coefficient 2" default = 1.0 hint = "If 'Trap 2 Type' is 'cartesian', then this shaping parameter \ modifies the x-variable." visible = @showprimaries && @traptype2 == "cartesian" && @twotrapstrue && \ (@xyshape2 == "Alain's curve" || @xyshape2 == "arcs of Samothrace" || \ @xyshape2 == "astroid" || @xyshape2 == "atriphthaloid" || \ @xyshape2 == "bean curve 1" || @xyshape2 == "bean curve 2" || @xyshape2 \ == "beetle curve" || @xyshape2 == "bicorn" || @xyshape2 == "bicuspid" || @xyshape2 == "Chasles cubic" \ || @xyshape2 == "circular cubic" || @xyshape2 == "clinoid" || @xyshape2 == "cross curve" \ || @xyshape2 == "devil's curve" || @xyshape2 == "dipole curve" || @xyshape2 == "double folium" \ || @xyshape2 == "double U curve" || @xyshape2 == "dumbbell curve" || @xyshape2 == "Durer's conchoid"\ || @xyshape2 == "cubic duplicatrix" || @xyshape2 == "Sillke's egg of Columbus" \ || @xyshape2 == "Kepler's egg" || @xyshape2 == "eight curve" || @xyshape2 == "hyperbola" || \ @xyshape2 == "superellipse" || @xyshape2 == "folium 1" || @xyshape2 == "folium 2" \ || @xyshape2 == "Proclus hippopede" || @xyshape2 == "Hoerl curve" || @xyshape2 == "Humbert cubic" \ || @xyshape2 == "kampyle of Eudoxus" || @xyshape2 == "kappa curve" || @xyshape2 == "Kiepert's curve" \ || @xyshape2 == "links curve" || @xyshape2 == "logistic curve" || @xyshape2 == "semicubical parabola" \ || @xyshape2 == "diverging parabola" || @xyshape2 == "nodal curve" || @xyshape2 == "strophoid" \ || @xyshape2 == "ophiuride" || @xyshape2 == "parabola" || @xyshape2 == "parabola 2" \ || @xyshape2 == "parabolic trifolium" || @xyshape2 == "piriform" || @xyshape2 == "pearls of de Sluze" \ || @xyshape2 == "quadratrix" || @xyshape2 == "right strophoid" || @xyshape2 == "scyphoid" \ || @xyshape2 == "damped sine" || @xyshape2 == "catastrophic sine" || @xyshape2 == "plane spiric" \ || @xyshape2 == "svastika" || @xyshape2 == "syntractrix" || @xyshape2 == "tetracuspid" || \ @xyshape2 == "siluroid" \ || @xyshape2 == "trisectrix of Longchamps" || @xyshape2 == "trident" || @xyshape2 == "trisectrix of Maclaurin" \ || @xyshape2 == "Trott curve" \ || @xyshape2 == "Tschirnhausen's cubic" || @xyshape2 == "visiera" || @xyshape2 == "resonance curve" \ || @xyshape2 == "witch of Agnesi") endparam param cartycoeff2 caption = "Y-coefficient 2" default = 1.0 hint = "If 'Trap 2 Type' is 'cartesian', then this shaping parameter \ modifies the y-variable." visible = @showprimaries && @traptype2 == "cartesian" && @twotrapstrue && \ (@xyshape2 == "Alain's curve" || @xyshape2 == "arcs of Samothrace" || \ @xyshape2 == "astroid" || @xyshape2 == "atriphthaloid" || \ @xyshape2 == "bean curve 1" || @xyshape2 == "bean curve 2" || @xyshape2 \ == "beetle curve" || @xyshape2 == "bicorn" || @xyshape2 == "bicuspid" || @xyshape2 == "Chasles cubic" \ || @xyshape2 == "circular cubic" || @xyshape2 == "clinoid" || @xyshape2 == "cross curve" \ || @xyshape2 == "devil's curve" || @xyshape2 == "double folium" || @xyshape2 == "dumbbell curve" \ || @xyshape2 == "cubic duplicatrix" || @xyshape2 == "Sillke's egg of Columbus" \ || @xyshape2 == "Kepler's egg" || @xyshape2 == "eight curve" || @xyshape2 == "hyperbola" || \ @xyshape2 == "superellipse" || @xyshape2 == "Humbert cubic" \ || @xyshape2 == "Proclus hippopede" || @xyshape2 == "kappa curve" \ || @xyshape2 == "kampyle of Eudoxus" || @xyshape2 == "Kiepert's curve" || @xyshape2 == "kiss curve" \ || @xyshape2 == "links curve" || @xyshape2 == "logistic curve" || @xyshape2 == "semicubical parabola" \ || @xyshape2 == "diverging parabola" || @xyshape2 == "nodal curve" || @xyshape2 == "strophoid" \ || @xyshape2 == "ophiuride" || @xyshape2 == "parabola" || @xyshape2 == "parabola 2" \ || @xyshape2 == "parabolic trifolium" || @xyshape2 == "piriform" || @xyshape2 == "pearls of de Sluze" \ || @xyshape2 == "quadratrix" || @xyshape2 == "pursuit curve" || @xyshape2 == "right strophoid" \ || @xyshape2 == "scyphoid" || @xyshape2 == "anguinea" || @xyshape2 == "damped sine" \ || @xyshape2 == "catastrophic sine" || @xyshape2 == "plane spiric" || @xyshape2 == "svastika" \ || @xyshape2 == "syntractrix" || @xyshape2 == "tetracuspid" || @xyshape2 == \ "trisectrix of Longchamps" || @xyshape2 == "trident" || @xyshape2 == "trisectrix of Maclaurin" \ || @xyshape2 == "Tschirnhausen's cubic" || @xyshape2 == "visiera" || @xyshape2 == "resonance curve" \ || @xyshape2 == "witch of Agnesi") endparam param cartconstant2 caption = "Constant Term 2" default = 1.0 hint = "If 'Trap 2 Type' is 'cartesian', then this shaping parameter \ modifies some of the curve equations." visible = @showprimaries && @traptype2 == "cartesian" && @twotrapstrue && \ (@xyshape2 == "astroid" || @xyshape2 == "atriphthaloid" || \ @xyshape2 == "bean curve 1" || @xyshape2 == "bean curve 2" || @xyshape2 \ == "beetle curve" || @xyshape2 == "bicorn" || @xyshape2 == "bicuspid" \ || @xyshape2 == "cubic egg" || @xyshape2 == "cardioid" || @xyshape2 == "Cartesian oval" \ || @xyshape2 == "Cassini oval"|| @xyshape2 == "catenary"|| @xyshape2 == \ "Cayley's sextic"|| @xyshape2 == "Ceva's trisectrix" || @xyshape2 == "Chasles cubic" \ || @xyshape2 == "circle" || @xyshape2 == "cissoid of Diocles" \ || @xyshape2 == "circular cubic" || @xyshape2 == "clinoid" || @xyshape2 == "cochleoid" \ || @xyshape2 == "conchoid of circle" || @xyshape2 == "conchoid of Nicomedes" \ || @xyshape2 == "conchoid of de Sluze" || @xyshape2 == "cubic of Apollonius" \ || @xyshape2 == "cranoid" || @xyshape2 == "Jerabek curve" || \ @xyshape2 == "Rosillo curve" || @xyshape2 == "deltoid" || @xyshape2 == "hyperbola" \ || @xyshape2 == "devil's curve" || @xyshape2 == "dipole curve" || @xyshape2 == "double egg" \ || @xyshape2 == "double folium" || @xyshape2 == "double U curve" || @xyshape2 == "cubic duplicatrix" \ || @xyshape2 == "Durer's conchoid" || @xyshape2 == "Granville's egg" || @xyshape2 == "hyperbola 2" \ || @xyshape2 == "Kepler's egg" || @xyshape2 == "eight curve" || @xyshape2 == \ "ellipse" || @xyshape2 == "fish quartic" || @xyshape2 == "folium of Descartes" || \ @xyshape2 == "Durer's folium" || @xyshape2 == "Gaussian curve" || @xyshape2 == "Beutel heart" \ || @xyshape2 == "Proclus hippopede" || @xyshape2 == "Hoerl curve" || @xyshape2 == "Humbert cubic" \ || @xyshape2 == "illumination curve" || @xyshape2 == "Kiepert's curve" || @xyshape2 == "kieroid" \ || @xyshape2 == "kiss curve" || @xyshape2 == "Klein quartic" || @xyshape2 == "Kulp quartic" \ || @xyshape2 == "limacon of Pascal" || @xyshape2 == "links curve" || @xyshape2 == "logistic curve" \ || @xyshape2 == "Lissajous sextic" || @xyshape2 == "Lissajous quartic" || @xyshape2 == "Maltese cross" \ || @xyshape2 == "diverging parabola" || @xyshape2 == "nephroid" || @xyshape2 == "Freeth's nephroid" \ || @xyshape1 == "nodal curve" || @xyshape1 == "strophoid" \ || @xyshape2 == "ophiuride" || @xyshape2 == "parabola 2" \ || @xyshape2 == "parabolic trifolium" || @xyshape2 == "piriform" || @xyshape2 == "pearls of de Sluze" \ || @xyshape2 == "quadratrix" || @xyshape2 == "pursuit curve" || @xyshape2 == "quadrafolium" \ || @xyshape2 == "trifolium" || @xyshape2 == "right strophoid" || @xyshape2 == "scarabaeus" \ || @xyshape2 == "scyphoid" || @xyshape2 == "anguinea" || @xyshape2 == "damped sine" \ || @xyshape2 == "catastrophic sine" || @xyshape2 == "plane spiric" || @xyshape2 == "spiric of Perseus" \ || @xyshape2 == "svastika" || @xyshape2 == "syntractrix" || @xyshape2 == "tetracuspid" || \ @xyshape2 == "siluroid" \ || @xyshape2 == "trisectrix of Longchamps" || @xyshape2 == "trident" || @xyshape2 == "trisectrix of Maclaurin" \ || @xyshape2 == "Trott curve" \ || @xyshape2 == "Tschirnhausen's cubic" || @xyshape2 == "visiera" || @xyshape2 == "resonance curve" \ || @xyshape2 == "witch of Agnesi" || @xyshape2 == "trisectrix of Delanges" || @xyshape2 == "Watt's curve") endparam param cartconstantB2 caption = "Constant B Term 2" default = 1.0 hint = "If 'Trap 2 Type' is 'cartesian', then this 2nd shaping parameter \ modifies some of the curve equations." visible = @showprimaries && @traptype2 == "cartesian" && @twotrapstrue && \ (@xyshape2 == "atriphthaloid" || @xyshape2 == "bean curve 1" \ || @xyshape2 == "bean curve 2" || @xyshape2 == "bicorn" || @xyshape2 == \ "Cartesian oval" || @xyshape2 == "catenary" || @xyshape2 == "Chasles cubic" \ || @xyshape2 == "circular cubic" || @xyshape2 == "clinoid" || @xyshape2 == "cochleoid" \ || @xyshape2 == "conchoid of circle" || @xyshape2 == "conchoid of Nicomedes" \ || @xyshape2 == "conchoid of de Sluze" || @xyshape2 == "cubic of Apollonius" \ || @xyshape2 == "cranoid" || @xyshape2 == "Jerabek curve" || @xyshape2 == "Rosillo curve" \ || @xyshape2 == "double egg" || @xyshape2 == "Durer's conchoid" || @xyshape2 == "hyperbola" \ || @xyshape2 == "Granville's egg" || @xyshape2 == "fish quartic" || @xyshape2 == "Hoerl curve" \ || @xyshape2 == "Durer's folium" || @xyshape2 == "Beutel heart" || @xyshape2 == "kieroid" \ || @xyshape2 == "Klein quartic" || @xyshape2 == "Kulp quartic" || \ @xyshape2 == "links curve" || @xyshape2 == "logistic curve" || @xyshape2 == "nephroid" \ || @xyshape2 == "Lissajous quartic" || @xyshape2 == "Maltese cross" \ || @xyshape2 == "nodal curve" || @xyshape2 == "strophoid" \ || @xyshape2 == "pearls of de Sluze" \ || @xyshape2 == "quadratrix" || @xyshape2 == "pursuit curve" || @xyshape2 == "quadrafolium" \ || @xyshape2 == "trifolium" || @xyshape2 == "right strophoid" || @xyshape2 == "scarabaeus" \ || @xyshape2 == "anguinea" || @xyshape2 == "damped sine" \ || @xyshape2 == "catastrophic sine" || @xyshape2 == "plane spiric" || @xyshape2 == "spiric of Perseus" \ || @xyshape2 == "syntractrix" || @xyshape2 == "tetracuspid" || @xyshape2 == "trisectrix of Maclaurin" \ || @xyshape2 == "Trott curve" \ || @xyshape2 == "Tschirnhausen's cubic" || @xyshape2 == "resonance curve" \ || @xyshape2 == "trisectrix of Delanges" || @xyshape2 == "Watt's curve") endparam param cartconstantC2 caption = "Constant C Term 2" default = 1.0 hint = "If 'Trap 2 Type' is 'cartesian', then this 3rd shaping parameter \ modifies some of the curve equations." visible = @showprimaries && @traptype2 == "cartesian" && @twotrapstrue && \ (@xyshape2 == "circular cubic" || @xyshape2 == "cubic of Apollonius" \ || @xyshape2 == "conchoid of circle" || @xyshape2 == "conchoid of de Sluze" \ || @xyshape2 == "Rosillo curve" || @xyshape2 == "Granville's egg" || @xyshape2 == "kieroid" \ || @xyshape2 == "Klein quartic" || @xyshape2 == "Maltese cross" \ || @xyshape2 == "links curve" \ || @xyshape2 == "nodal curve" || @xyshape2 == "pearls of de Sluze" \ || @xyshape2 == "pursuit curve" || @xyshape2 == "trifolium" || @xyshape2 == "scarabaeus" \ || @xyshape2 == "catastrophic sine" || @xyshape2 == "plane spiric" || @xyshape2 == "spiric of Perseus" \ || @xyshape2 == "Trott curve" || @xyshape2 == "Watt's curve") endparam param cartexexp1 caption = "Ellipse 1 X-exponent" default = 2.5 hint = "If 'Trap Shape' is set to 'superellipse', this parameter determines the \ exponent used for the x-coordinate." visible = @showprimaries && @traptype == "cartesian" && @xyshape1 == \ "superellipse" endparam param carteyexp1 caption = "Ellipse 1 Y-exponent" default = 2.5 hint = "If 'Trap Shape' is set to 'superellipse', this parameter determines the \ exponent used for the y-coordinate." visible = @showprimaries && @traptype == "cartesian" && @xyshape1 == \ "superellipse" endparam param cartexexp2 caption = "Ellipse 2 X-exponent" default = 2.5 hint = "If '2nd Trap Shape' is set to 'superellipse', this parameter determines the \ exponent used for the x-coordinate." visible = @showprimaries && @twotrapstrue && @traptype2 == "cartesian" && @xyshape2 == \ "superellipse" endparam param carteyexp2 caption = "Ellipse 2 Y-exponent" default = 2.5 hint = "If '2nd Trap Shape' is set to 'superellipse', this parameter determines the \ exponent used for the y-coordinate." visible = @showprimaries && @twotrapstrue && @traptype2 == "cartesian" \ && @xyshape2 == "superellipse" endparam param coniceccent1 caption = "Conic 1 Eccentricity" default = 1.5 hint = "If 'Trap Shape' is set to 'conic focal conchoid', this parameter determines the \ eccentricity of the conic curve. circle, e = 0; ellipse, 01." visible = @showprimaries && @traptype == "cartesian" && @xyshape1 == \ "conic focal conchoid" endparam param conchmod1 caption = "Conchoid 1 Modulus" default = 1.5 hint = "If 'Trap Shape' is set to 'conic focal conchoid', this parameter determines the \ modulus of the conchoid." visible = @showprimaries && @traptype == "cartesian" && @xyshape1 == \ "conic focal conchoid" endparam param coniceccent2 caption = "Conic 2 Eccentricity" default = 1.5 hint = "If '2nd Trap Shape' is set to 'conic focal conchoid', this parameter determines the \ eccentricity of the conic curve. circle, e = 0; ellipse, 01." visible = @showprimaries && @traptype2 == "cartesian" && @xyshape2 == \ "conic focal conchoid" && @twotrapstrue endparam param conchmod2 caption = "Conchoid 2 Modulus" default = 1.5 hint = "If '2nd Trap Shape' is set to 'conic focal conchoid', this parameter determines the \ modulus of the conchoid." visible = @showprimaries && @traptype2 == "cartesian" && @xyshape2 == \ "conic focal conchoid" && @twotrapstrue endparam param sfuncfreq1 caption = "Function 1 Frequency" default = 1.0 hint = "If 'Trap 1 Type' is set to 'simple functions', this parameter sets \ the frequency for some of the trig functions." visible = @showprimaries && @traptype == "simple functions" && \ (@funcshape1 == "cosine" || @funcshape1 == "tangent" || @funcshape1 == "sine" || @funcshape1 == "cot" \ || @funcshape1 == "sec" || @funcshape1 == "csc" || @funcshape1 == "ver" || @funcshape1 == "vcs" \ || @funcshape1 == "cvs" || @funcshape1 == "cvc" || @funcshape1 == "exs" || @funcshape1 == "exc" \ || @funcshape1 == "crd" || @funcshape1 == "asin" || @funcshape1 == "acos" || @funcshape1 == "atan" \ || @funcshape1 == "acot" || @funcshape1 == "exp" || @funcshape1 == "exp(-z)" || @funcshape1 == "exp(1/z)" \ || @funcshape1 == "exp(-1/z)" || @funcshape1 == "exp(z^2)" || @funcshape1 == "exp(-z^2)" \ || @funcshape1 == "exp(1/z^2)" || @funcshape1 == "exp(-1/z^2)" || @funcshape1 == "sinh" \ || @funcshape1 == "asinh" || @funcshape1 == "cosh" || @funcshape1 == "acosh" || @funcshape1 == "tanh" \ || @funcshape1 == "atanh" || @funcshape1 == "cotanh" || @funcshape1 == "sqr" || @funcshape1 == "sqrt" \ || @funcshape1 == "log" || @funcshape1 == "log(-z)" || @funcshape1 == "log(1/z)" || \ @funcshape1 == "log(-1/z)" || @funcshape1 == "1/z" || @funcshape1 == "absolute value" \ || @funcshape1 == "ceiling" || @funcshape1 == "floor" || @funcshape1 == "truncation" \ || @funcshape1 == "rounding" || @funcshape1 == "asin 2" || @funcshape1 == "acos 2" \ || @funcshape1 == "atan 2" || @funcshape1 == "acot 2" || @funcshape1 == "log(z^2)" \ || @funcshape1 == "log(-z^2)" || @funcshape1 == "log(1/z^2)" || @funcshape1 == "log(-1/z^2)" \ || @funcshape1 == "log log" || @funcshape1 == "exp(exp)") endparam param sfuncamp1 caption = "Function 1 Amplitude" default = 1.0 hint = "If 'Trap 1 Type' is set to 'simple functions', this parameter sets \ the amplitude for some of the trig functions." visible = @showprimaries && @traptype == "simple functions" && \ (@funcshape1 == "cosine" || @funcshape1 == "tangent" || @funcshape1 == "sine" || @funcshape1 == "cot" \ || @funcshape1 == "sec" || @funcshape1 == "csc" || @funcshape1 == "ver" || @funcshape1 == "vcs" \ || @funcshape1 == "cvs" || @funcshape1 == "cvc" || @funcshape1 == "exs" || @funcshape1 == "exc" \ || @funcshape1 == "crd" || @funcshape1 == "asin" || @funcshape1 == "acos" || @funcshape1 == "atan" \ || @funcshape1 == "acot" || @funcshape1 == "exp" || @funcshape1 == "exp(-z)" || @funcshape1 == "exp(1/z)" \ || @funcshape1 == "exp(-1/z)" || @funcshape1 == "exp(z^2)" || @funcshape1 == "exp(-z^2)" \ || @funcshape1 == "exp(1/z^2)" || @funcshape1 == "exp(-1/z^2)" || @funcshape1 == "sinh" \ || @funcshape1 == "asinh" || @funcshape1 == "cosh" || @funcshape1 == "acosh" || @funcshape1 == "tanh" \ || @funcshape1 == "atanh" || @funcshape1 == "cotanh" || @funcshape1 == "sqr" || @funcshape1 == "sqrt" \ || @funcshape1 == "log" || @funcshape1 == "log(-z)" || @funcshape1 == "log(1/z)" || \ @funcshape1 == "log(-1/z)" || @funcshape1 == "1/z" || @funcshape1 == "absolute value" \ || @funcshape1 == "ceiling" || @funcshape1 == "floor" || @funcshape1 == "truncation" \ || @funcshape1 == "rounding" || @funcshape1 == "asin 2" || @funcshape1 == "acos 2" \ || @funcshape1 == "atan 2" || @funcshape1 == "acot 2" || @funcshape1 == "log(z^2)" \ || @funcshape1 == "log(-z^2)" || @funcshape1 == "log(1/z^2)" || @funcshape1 == "log(-1/z^2)" \ || @funcshape1 == "log log" || @funcshape1 == "exp(exp)" || @funcshape1 == "power" \ || @funcshape1 == "asec 2" || @funcshape1 == "acsc 2" || @funcshape1 == "aver 2" \ || @funcshape1 == "avcs 2" || @funcshape1 == "acvs 2" || @funcshape1 == "acvc 2" || @funcshape1 == \ "aexs 2" || @funcshape1 == "aexc 2" || @funcshape1 == "acrd 2" || @funcshape1 == "z^z" \ || @funcshape1 == "z^z^z" || @funcshape1 == "constant^z" || @funcshape1 == "constant^z^z") endparam param sfuncfreq2 caption = "Function 2 Frequency" default = 1.0 hint = "If 'Trap 2 Type' is set to 'simple functions', this parameter sets \ the frequency for some of the trig functions." visible = @showprimaries && @traptype2 == "simple functions" && @twotrapstrue && \ (@funcshape2 == "cosine" || @funcshape2 == "tangent" || @funcshape2 == "sine" || @funcshape2 == "cot" \ || @funcshape2 == "sec" || @funcshape2 == "csc" || @funcshape2 == "ver" || @funcshape2 == "vcs" \ || @funcshape2 == "cvs" || @funcshape2 == "cvc" || @funcshape2 == "exs" || @funcshape2 == "exc" \ || @funcshape2 == "crd" || @funcshape2 == "asin" || @funcshape2 == "acos" || @funcshape2 == "atan" \ || @funcshape2 == "acot" || @funcshape2 == "exp" || @funcshape2 == "exp(-z)" || @funcshape2 == "exp(1/z)" \ || @funcshape2 == "exp(-1/z)" || @funcshape2 == "exp(z^2)" || @funcshape2 == "exp(-z^2)" \ || @funcshape2 == "exp(1/z^2)" || @funcshape2 == "exp(-1/z^2)" || @funcshape2 == "sinh" \ || @funcshape2 == "asinh" || @funcshape2 == "cosh" || @funcshape2 == "acosh" || @funcshape2 == "tanh" \ || @funcshape2 == "atanh" || @funcshape2 == "cotanh" || @funcshape2 == "sqr" || @funcshape2 == "sqrt" \ || @funcshape2 == "log" || @funcshape2 == "log(-z)" || @funcshape2 == "log(1/z)" || \ @funcshape2 == "log(-1/z)" || @funcshape2 == "1/z" || @funcshape2 == "absolute value" \ || @funcshape2 == "ceiling" || @funcshape2 == "floor" || @funcshape2 == "truncation" \ || @funcshape2 == "rounding" || @funcshape2 == "asin 2" || @funcshape2 == "acos 2" \ || @funcshape2 == "atan 2" || @funcshape2 == "acot 2" || @funcshape2 == "log(z^2)" \ || @funcshape2 == "log(-z^2)" || @funcshape2 == "log(1/z^2)" || @funcshape2 == "log(-1/z^2)" \ || @funcshape2 == "log log" || @funcshape2 == "exp(exp)") endparam param sfuncamp2 caption = "Function 2 Amplitude" default = 1.0 hint = "If 'Trap 2 Type' is set to 'simple functions', this parameter sets \ the amplitude for some of the trig functions." visible = @showprimaries && @traptype2 == "simple functions" && @twotrapstrue && \ (@funcshape2 == "cosine" || @funcshape2 == "tangent" || @funcshape2 == "sine" || @funcshape2 == "cot" \ || @funcshape2 == "sec" || @funcshape2 == "csc" || @funcshape2 == "ver" || @funcshape2 == "vcs" \ || @funcshape2 == "cvs" || @funcshape2 == "cvc" || @funcshape2 == "exs" || @funcshape2 == "exc" \ || @funcshape2 == "crd" || @funcshape2 == "asin" || @funcshape2 == "acos" || @funcshape2 == "atan" \ || @funcshape2 == "acot" || @funcshape2 == "exp" || @funcshape2 == "exp(-z)" || @funcshape2 == "exp(1/z)" \ || @funcshape2 == "exp(-1/z)" || @funcshape2 == "exp(z^2)" || @funcshape2 == "exp(-z^2)" \ || @funcshape2 == "exp(1/z^2)" || @funcshape2 == "exp(-1/z^2)" || @funcshape2 == "sinh" \ || @funcshape2 == "asinh" || @funcshape2 == "cosh" || @funcshape2 == "acosh" || @funcshape2 == "tanh" \ || @funcshape2 == "atanh" || @funcshape2 == "cotanh" || @funcshape2 == "sqr" || @funcshape2 == "sqrt" \ || @funcshape2 == "log" || @funcshape2 == "log(-z)" || @funcshape2 == "log(1/z)" || \ @funcshape2 == "log(-1/z)" || @funcshape2 == "1/z" || @funcshape2 == "absolute value" \ || @funcshape2 == "ceiling" || @funcshape2 == "floor" || @funcshape2 == "truncation" \ || @funcshape2 == "rounding" || @funcshape2 == "asin 2" || @funcshape2 == "acos 2" \ || @funcshape2 == "atan 2" || @funcshape2 == "acot 2" || @funcshape2 == "log(z^2)" \ || @funcshape2 == "log(-z^2)" || @funcshape2 == "log(1/z^2)" || @funcshape2 == "log(-1/z^2)" \ || @funcshape2 == "log log" || @funcshape2 == "exp(exp)" || @funcshape2 == "power" \ || @funcshape2 == "asec 2" || @funcshape2 == "acsc 2" || @funcshape2 == "aver 2" \ || @funcshape2 == "avcs 2" || @funcshape2 == "acvs 2" || @funcshape2 == "acvc 2" || @funcshape2 == \ "aexs 2" || @funcshape2 == "aexc 2" || @funcshape2 == "acrd 2" || @funcshape2 == "z^z" \ || @funcshape2 == "z^z^z" || @funcshape2 == "constant^z" || @funcshape2 == "constant^z^z") endparam param whattotrap caption = "Trap What?" enum = "minimum" "maximum" "2nd minimum" "3rd minimum" "4th minimum" "2nd maximum" \ "3rd maximum" "4th maximum" "1st threshold" "last threshold" "threshold count" \ "2nd threshold" "1st limit" "2nd limit" "last limit" "Nth z iterate" "last z" \ "max-min" "max+min" "max*min" "max/min" "max^min" \ "min-max" "min/max" "min^max" "min,max avg" "count" "average" default = 0 hint = "What size of value will be trapped? 'Threshold' means first iterate value to \ fall below the 'Threshold Value' parameter; 'Limit' means the first iterate to \ exceed the 'Threshold Value'. Use 'count' with parameter 'Color By?' = 'count' too" visible = @showprimaries endparam param nthiterate caption = "Nth Iterate Value" default = 3 hint = "If 'Trap What' is set to 'Nth z iterate', then this is the value \ of 'N', the iteration that z will be trapped" visible = @showprimaries && (@whattotrap == 15) endparam param threshold caption = "Threshold Value" default = 0.5 hint = "Upper bound (maximum value that will be trapped) if one of the \ 'Threshold' options is chosen for param 'Trap What'; \ also, lower bound (minimum trapped value) if 'Trap What' is set to \ a 'Limit' option" visible = ((( @whattotrap > 7 ) && ( @whattotrap < 15 )) || (@whattotrap == 26)) && @showprimaries endparam param varythresh caption = "Vary Threshold?" default = FALSE hint = "If set, the value of the trap will modify the value of 'threshold' and \ 'limit' type traps each iteration; parameter \ 'ThreshFeedback' can be used to modulate the variation" visible = ((( @whattotrap > 7 ) && ( @whattotrap < 15 )) || (@whattotrap == 26)) && @showprimaries endparam param threshstp caption = "ThreshFeedback" default = 1.0 hint = "If 'Vary Threshold' is set, this setting adjusts the amount of variation" visible = @varythresh && ((( @whattotrap > 7 ) && ( @whattotrap < 15 )) || \ (@whattotrap == 26)) && @showprimaries endparam param ringstyle caption = "Enable Bands?" default = FALSE hint = "If 'Enable Bands' is active, AND if param 'Trap What' is set to a \ 'Threshold' or 'Limit' option, then trapping is limited to a narrow \ region near the 'Threshold Value'. \ 'Threshold Value' sets one band radius, and 'Band Width' sets the width \ of the trapping region" visible = ((( @whattotrap > 7 ) && ( @whattotrap < 15 )) || (@whattotrap == 26)) && @showprimaries endparam param ringwidth caption = "Band Width" default = 0.25 hint = "If 'Enable Bands' is TRUE and 'Trap What' is set to either a 'Threshold', \ or 'Limit' option, this parameter determines the width of the band trap" visible = @ringstyle && ((( @whattotrap > 7 ) && ( @whattotrap < 15 )) || \ (@whattotrap == 26)) && @showprimaries endparam param varyrwidth caption = "Vary Band Width?" default = FALSE hint = "If set, the value of the trap will modify the band width of 'threshold' \ and 'limit' band-type traps each iteration; parameter 'BandFeedback' can be \ used to modulate the variation" visible = @ringstyle && ((( @whattotrap > 7 ) && ( @whattotrap < 15 )) || \ (@whattotrap == 26)) && @showprimaries endparam param ringstp caption = "BandFeedback" default = 1.0 hint = "If 'Vary Band Width' is set, this setting adjusts the amount of variation" visible = @varyrwidth && @ringstyle && ((( @whattotrap > 7 ) && ( @whattotrap < 15 )) || \ (@whattotrap == 26)) && @showprimaries endparam param trapmode caption = "Trap Flavor" enum = "distance" "magnitude" "real" "imaginary" "angle" \ "trap magnitude" "trap real" "trap imaginary" "trap angle" \ "difference angle" "diff. angle 2" "raw angle" \ "arith. mean" "geom. mean" "sum" "product" "product 2" \ "quotient 1" "quotient 2" "quotient 3" "quotient 4" \ "power 1" "power 2" "power 3" "power 4" \ "angle 2" "angle 3" "angle 4" "angle 5" "angle 6" "angle 7" "angle 8" \ "real 2" "real 3" "real 4" "real 5" "real 6" "real 7" "real 8" \ "imag 2" "imag 3" "imag 4" "imag 5" "imag 6" "imag 7" "imag 8" \ "crosssum" "crossdifference 1" "crossdifference 2" \ "crossproduct" "crossquotient 1" "crossquotient 2" \ "crosspower 1" "crosspower 2" \ "manhattan metric" "cubic metric" \ "cubic2" "quartic metric" "warp1" "warp2" "warp3" "warp4" \ "warp5" "warp6" "warp7" "inverted" default = 0 hint = "What variable will be watched for possible trapping?" visible = @showprimaries endparam param colorby caption = "Color By?" enum = "distance" "mod distance" "magnitude" "mod magnitude" "flavor value" \ "iteration" "angle" "mod angle" "real" "mod real" "imag" "mod imag" \ "trap magnitude" "trap angle" "trap real" "trap imag" "Perlin/texture only" \ "mod iter" "discrete iter" "smooth moditer 1" "smooth moditer 2" "count" \ "modulus angle" default = 4 hint = "Criterion for computing color index; index will be based on the value of this variable. \ Use 'count' with parameter 'Trap What?' = 'count' too" visible = @showprimaries endparam param itermodulus caption = "Iteration Modulus" default = 5 min = 1 hint = "If 'Color By?' is set to 'mod iter' or 'discrete iter', than this parameter \ sets the modulus (number of color ranges for 'mod iter', number of individual \ colors for 'discrete iter')" visible = @showprimaries && (( @colorby == "mod iter" ) || ( @colorby == "discrete iter" ) \ || ( @colorby == "smooth moditer 1" ) || ( @colorby == "smooth moditer 2" )) endparam param anglemodulus caption = "Angle Modulus" default = 0.78539816339744830961566084581988 ; pi/4 min = 1.0e-9 hint = "If 'Color By?' is set to 'mod angle', than this parameter \ sets the modulus (number of color ranges)" visible = @showprimaries && ( @colorby == 22 ) endparam param countmode caption = "Count Mode" enum = "raw" "maxiter" "numiter" "raw 2" "raw 3" default = 2 hint = "If 'Color By?' is set to 'count', than this parameter \ determines how the hit count is normalized. Use with parameters 'Trap What?' \ and 'Color By?' set to 'count'" visible = @showprimaries && @colorby == "count" endparam param nscale1 caption = "Trap 1 Scale" default = 0.3 hint = "This parameter fixes the overall size of trap 1." visible = @showprimaries endparam param nscale2 caption = "Trap 2 Scale" default = 0.3 hint = "This parameter fixes the overall size of the second trap." visible = @showprimaries && @twotrapstrue endparam param polarsmoothing1 caption = "Distance Smoothing" default = FALSE hint = "If 'Trap 1 Type' is set to 'polar', than enabling this setting can \ sometimes smooth out the coloring." visible = @showprimaries && @traptype == "polar functions" && @polarmode1 == "implicit" endparam param polarsmoothmod1 caption = "Smoothing 1 Modulus" default = 4.0 hint = "If 'Distance Smoothing' is enabled, this value affects the degree of smoothing." visible = @showprimaries && @traptype == "polar functions" && @polarmode1 == "implicit" && \ @polarsmoothing1 endparam param polarsmoothing2 caption = "Distance 2 Smoothing" default = FALSE hint = "If 'Trap 2 Type' is set to 'polar' 'implicit', than enabling this setting can \ sometimes smooth out the coloring." visible = @showprimaries && @traptype2 == "polar functions" && @polarmode2 == "implicit" && @twotrapstrue endparam param polarsmoothmod2 caption = "Smoothing 2 Modulus" default = 4.0 hint = "If 'Distance 2 Smoothing' is enabled, this value affects the degree of smoothing." visible = @showprimaries && @traptype2 == "polar functions" && @polarmode2 == "implicit" && \ @polarsmoothing2 && @twotrapstrue endparam param cartsmoothing caption = "Distance Smoothing" default = 4.0 hint = "If 'Trap 1 Type' is set to 'cartesian', than increasing this setting can \ sometimes smooth out the coloring. Also available for trap type \ 'simple functions' in 'cartesian' mode." visible = @showprimaries && (@traptype == "cartesian" || \ (@traptype == "simple functions" && @funcmode1 == "cartesian")) endparam param cartsmoothing2 caption = "Distance 2 Smoothing" default = 4.0 hint = "If 'Trap 2 Type' is set to 'cartesian', than increasing this setting can \ sometimes smooth out the coloring. Also available for trap 2 type \ 'simple functions' in 'cartesian' mode." visible = @showprimaries && @twotrapstrue && (@traptype2 == "cartesian" || \ (@traptype2 == "simple functions" && @funcmode2 == "cartesian")) endparam param trapcycle caption = "Trap Cycle Length" default = 2 min = 2 hint = "If 'Trap Combination' is set to 'cyclical' or 'cyclical 2', then this \ parameter determines the cycle length. A cycle length of 2 means the traps \ alternate according to iteration" visible = @twotrapstrue && @showprimaries && (@trapcombo == "cyclical" || @trapcombo == "cyclical 2") endparam param twotrapsblend caption = "Blend the Traps?" default = FALSE hint = "If enabled, then different weights can be assigned to the two trap functions \ that will affect the proportions in which they will be combined by 'Trap \ Combination'. Sometimes convenient so that all the different amplitudes/scales \ don't have to be individually adjusted" visible = @twotrapstrue && @showprimaries endparam param trap1weight caption = "Trap 1 Weight" default = 0.5 hint = "This value sets how much of Trap 1 will be combined by 'Trap Combination' \ if 'Enable Blending' is turned on" visible = @twotrapstrue && @twotrapsblend && @showprimaries endparam param trap2weight caption = "Trap 2 Weight" default = 0.5 hint = "This value sets how much of Trap 2 will be combined by 'Trap Combination' \ if 'Enable Blending' is turned on" visible = @twotrapstrue && @twotrapsblend && @showprimaries endparam param showprimaries caption = "Show Primary Params?" default = TRUE endparam heading caption = "Trap Positional Settings" $ifdef VER40 expanded = TRUE $endif endheading param tworotations caption = "New Style Rotations?" default = FALSE hint = "If enabled, then this parameter lets the two trap shapes be independently \ centered and rotated." visible = @showpositionals && @twotrapstrue endparam param rotate caption = "Rotation Angle" default = 0.0 min = -179.98 max = 359.98 hint = "Number of degrees (0-359) that the trap should be rotated from its default position" visible = @showpositionals endparam param rotateT2 caption = "Rotation 2 Angle" default = 0.0 min = -179.98 max = 359.98 hint = "Number of degrees (0-359) that the second trap should be rotated from its default position" visible = @showpositionals && @twotrapstrue && @tworotations endparam param varyrotation caption = "Vary Rotation?" default = FALSE hint = "If set, the value of the trap will modify the trap rotation each iteration; \ parameter 'RotationFeedback' can be used to modulate the variation" visible = @showpositionals endparam param rotationstp caption = "RotationFeedback" default = 1.0 hint = "If 'Vary Rotation' is set, this setting adjusts the amount of variation" visible = @varyrotation && @showpositionals endparam param centr caption = "Center" default = (0,0) hint = "Enter coordinates of trap center" visible = @showpositionals endparam param centrT2 caption = "Center 2" default = (0,0) hint = "Enter coordinates of the center of the 2nd trap" visible = @showpositionals && @twotrapstrue && @tworotations endparam param varycenter caption = "Vary Center?" default = FALSE hint = "If set, the value of the trap will modify the trap center each iteration; \ parameter 'CenterFeedback' can be used to modulate the variation. Only active \ if initial trap center is NOT (0,0)" visible = @showpositionals endparam param centerstp caption = "CenterFeedback" default = 1.0 hint = "If 'Vary Center' is set, this setting adjusts the amount of variation" visible = @varycenter && @showpositionals endparam param reflecttrap1 caption = "Reflect Trap?" default = FALSE hint = "If enabled, the first trap shape is reflected across the y-axis." visible = @showpositionals && @traptype == "lines & points" endparam param reflecttrap2 caption = "Reflect 2nd Trap?" default = FALSE hint = "If enabled, the second trap shape is reflected across the y-axis." visible = @showpositionals && @twotrapstrue && @traptype2 == "lines & points" endparam param offsetangle caption = "Offset Angle?" default = FALSE hint = "If enabled, a constant angle can be added to the value of \ atan(z); set param 'AngleOffset Amount' to fix the increment. \ The increment is added before any adjustment by 'Spread Angle'" visible = @showpositionals endparam param offsetfactor caption = "AngleOffset Amount" default = -3.1415926535897932384626433832795 hint = "If param 'Offset Angle?' is enabled, this is the increment \ added to atan(z). The angle is given in radians. \ Inactive if 'Spread Angle?' is not enabled. \ The increment is added before any adjustment by 'Spread Angle'" visible = @offsetangle && @showpositionals endparam param sprangle caption = "Spread Angle?" default = FALSE hint = "If enabled, the angular range of z is stretched out or compressed, \ depending on the value of param 'AngleSpread Factor'. Active after \ 'Offset Angle'" visible = @showpositionals endparam param sprangfactor caption = "AngleSpread Factor" default = 3.0 hint = "If param 'Spread Angle?' is enabled, this is the stretching or \ compression multiplier of atan(z). 1.0 corresponds to no spreading. \ Inactive if 'Spread Angle?' is not enabled" visible = @sprangle && @showpositionals endparam param recipangle caption = "Prereciprocal Angle?" default = FALSE hint = "If enabled, then the reciprocal of Atan(z) is used to compute the trap \ function point. Operates prior to the 'Screwiness' routines" visible = @showpositionals endparam param @showpositionals caption = "Show Positional Params?" $ifdef VER40 default = TRUE $else default = FALSE $endif endparam heading caption = "Modifiers" $ifdef VER40 expanded = FALSE $endif endheading param skippediters caption = "Iterations to Skip" default = 0 hint = "Values will not be watched for trapping until after this many \ fractal iterations. Filling the 'History' array ignores this setting, \ so if 'History' is enabled, try a non-zero value here to have the \ array fill with previous gnerations of z before trapping begins" visible = @showmodifiers endparam param towatch caption = "Iterations to Watch" default = 0 min = 0 hint = "How many iterations should the orbit be monitored for potential trapping? \ '0' means watch all iterations" visible = @showmodifiers endparam param periodicity caption = "Enable Periodicity?" default = FALSE hint = "If this parameter is enabled, then #z is only checked for possible \ trapping every n cycles, where n is set by parameter 'Period Length'" visible = @showmodifiers endparam param altperiodstyle caption = "Alternative Style Periods?" default = FALSE hint = "If enabled, then periodicity functions similarly to the 'Limited Iterations' \ options of Damien and Toby. The trap will be monitored for blocks of \ iterations (set in parameter 'Iters to Monitor'), followed by blocks of \ iterations that will not be monitored (set in param 'Iters to Ignore')" visible = @showmodifiers && @periodicity endparam param period caption = "Period Length" default = 2 min = 2 hint = "If 'Enable Periodicity' is turned on, then this setting determines how \ often (in iterations) the orbit of #z is checked for possible trapping" visible = @showmodifiers && @periodicity && !@altperiodstyle endparam param perphase caption = "Period Phase" default = 0 min = 0 hint = "If 'Enable Periodicity' is turned on, then this setting determines which \ cycle of the period is checked for possible trapping. The useful phase range \ is from a minimum of 0 up to a maximum of 'Period Length' -1. Values above \ this limit are reset to 0" visible = @showmodifiers && @periodicity && !@altperiodstyle endparam param reversephase caption = "Reverse Phase?" default = FALSE hint = "If 'Enable Periodicity' is turned on, and this parameter is also enabled, \ then trapping is examined only when the period is NOT in the cycle set by \ parameter 'Period Phase'" visible = @showmodifiers && @periodicity && !@altperiodstyle endparam param monitorlimit caption = "Iters to Monitor" default = 1 min = 1 hint = "If 'Alternative Style Periods' is enabled, then this value determines how many \ consecutive iterations of the trap are monitored in each block before switching \ to the unmonitored mode" visible = @showmodifiers && @periodicity && @altperiodstyle endparam param skiplimit caption = "Iters to Ignore" default = 1 min = 1 hint = "If 'Alternative Style Periods' is enabled, then this value determines how many \ consecutive iterations of the trap are ignored in each block before switching \ back to the monitored mode" visible = @showmodifiers && @periodicity && @altperiodstyle endparam param anglerestrict caption = "Restrict Angle?" default = FALSE hint = "If enabled, then orbit trapping will be calculated only every when the angle of #z \ falls between the 'Low Angle' and 'High Angle' limits" visible = @showmodifiers endparam param anglelow caption = "Low Angle" default = 0.0 min = 0.0 max = 359.9 hint = "If 'Restrict Angle' is enabled, then this setting determines the lower angular boundary \ for #z in order for the orbit trapping algorithm to be executed (0-360)" visible = @showmodifiers && @anglerestrict endparam param anglehigh caption = "High Angle" default = 90.0 min = 0.1 max = 360.0 hint = "If 'Restrict Angle' is enabled, then this setting determines the upper angular boundary \ for #z in order for the orbit trapping algorithm to be executed (0-360)" visible = @showmodifiers && @anglerestrict endparam param operator caption = "Enable Z Operator?" enum = "none" "multiply" "add" "subtract" "divide" "exponentiate" \ "subtraction2" "division2" "exponential2" "logarithm" "logarithm2" default = 0 hint = "If enabled, z is multiplied by (added to, etc) this constant on each \ iteration before testing; parameter 'Z Operation Constant' sets the constant \ value that is used in the operation" visible = @showmodifiers endparam param operatee caption = "Z Operation Constant" default = (0.2, 0) hint = "If 'Enable Z Operator' is set, this is the constant used in the \ multiplication/addition/subtraction/division/exponentiation/logarithm" visible = (@operator != "none") && @showmodifiers endparam param trapvariant caption = "Z Variants" enum = "Normal" "Flip" "Conjugate" "FlipConjugate" "Negate" "Negate Flip" \ "Negate Conjugate" "Conjugate Flip" "Polar" "Polar 2" "Elliptic" \ "Parabolic" "Parabolic Variant" default = 0 hint = "Enables alternative coloring algorithms based on manipulation of \ real(z) and imag(z) before trapping" visible = @showmodifiers endparam param swaporder caption = "Swap Order?" default = FALSE hint = "Swaps order of 'Z Variants' and 'Enable Z Operator'. Normally, \ the z variation is executed AFTER the z arithmetic operation; this \ param toggles the execution order" visible = ( @trapvariant != "normal" ) && ( @operator != "none" ) && @showmodifiers endparam param operator2 caption = "Enable Z Op2?" enum = "none" "multiply" "add" "subtract" "divide" "exponentiate" \ "subtraction2" "division2" "exponential2" "logarithm" "logarithm2" default = 0 hint = "If enabled, z is multiplied by (added to, etc) this constant on each \ iteration before testing; parameter 'Z Op Const2' sets the constant \ value that is used in the operation. This action always occurs AFTER \ the first 'Enable Z Operator' and 'Z Variants' actions" visible = @showmodifiers endparam param operatee2 caption = "Z Op Const2" default = (-0.15, -0.1) hint = "If 'Enable Z Op2' is set, this is the constant used in the \ multiplication/addition/subtraction/division/exponentiation/logarithm" visible = (@operator2 != "none") && @showmodifiers endparam param varytraptype caption = "Trap Variants" enum = "Normal" "Flip" "Conjugate" "FlipConjugate" "Negate" "Negate Flip" \ "Negate Conjugate" "Conjugate Flip" "Polar" "Polar 2" "Elliptic" \ "Parabolic" "Parabolic Variant" default = 0 hint = "Enables alternative coloring algorithms based on manipulation of \ real(trap) and imag(trap) before testing" visible = @showmodifiers endparam param toperator caption = "Enable T Operator?" enum = "none" "multiply" "add" "subtract" "divide" "exponentiate" \ "subtraction2" "division2" "exponential2" "logarithm" "logarithm2" default = 0 hint = "If enabled, the trap is multiplied by (added to, etc) this constant \ on each iteration before testing; parameter 'T Operation Constant' sets the \ constant value that is used in the operation" visible = @showmodifiers endparam param toperatee caption = "T Operation Constant" default = (0.15, 0) hint = "If 'Enable T Operator' is set, this is the constant used in the \ multiplication/addition/subtraction/division/exponentiation/logarithm" visible = (@toperator != "none") && @showmodifiers endparam param twavy caption = "Enable T Waviness?" default = FALSE hint = "Adds waves to the trap function. If enabled, params 'Waviness Mode', \ 'Waviness Amplitude', & 'Waviness Frequency' may be adjusted to vary \ wave character" visible = @showmodifiers endparam param twavmode caption = "T Wave Mode" enum = "radial" "tangential" "both" default = 0 hint = "If 'Enable T Waviness' is on, this param sets the type of waves \ superposed on the trap function; inactive otherwise" visible = @twavy && @showmodifiers endparam param twavamp caption = "T Wave Amplitude" default = 0.3 hint = "If 'Enable T Waviness' is on, this param sets the height of the waves \ superposed on the trap function; inactive otherwise" visible = @twavy && @showmodifiers endparam param twavfreq caption = "T Wave Frequency" default = 15.0 hint = "If 'Enable T Waviness' is on, this param sets the density of waves \ superposed on the trap function; inactive otherwise" visible = @twavy && @showmodifiers endparam param twavamp2 caption = "Secondary Amplitude" default = 0.3 hint = "If 'Enable T Waviness' is on and 'T Wave Mode' is set to 'both', \ this param sets the height of the tangential wave component \ superposed on the trap function; inactive otherwise" visible = @twavy && @showmodifiers && (@twavmode == 2) endparam param twavfreq2 caption = "Secondary Frequency" default = 15.0 hint = "If 'Enable T Waviness' is on and 'T Wave Mode' is set to 'both', \ this param sets the frequency of the tangential wave component \ superposed on the trap function; inactive otherwise" visible = @twavy && @showmodifiers && (@twavmode == 2) endparam param screwmode caption = "Screwiness Type" enum = "none" "AR" "AI" "R" "I" "A+R" "A+I" "R-A" "I-A" "ARI" \ "A+R+I" "A+R-I" "A-R+I" "A-R-I" "R+I" "R-I" "RI" "(A+R)*I" "(A+I)*R" \ "(A-R)*I" "(A-I)*R" "A*(R+I)" "A*(R-I)" "M" "M+A" "M-A" "M+R" "M-R" \ "M+I" "M-I" "A/M" "R/M" "I/M" "A*(M+R)" "A*(M+I)" "A*(M-R)" "A*(M-I)" \ "A/R" "A/I" default = 0 hint = "If enabled, parts of Real(z), Imag(z), or the magnitude |z| are combined \ with Atan(z) before input to the trap routines" visible = @showmodifiers endparam param absolutelyscrewy caption = "Absolutely Screwy?" default = FALSE hint = "If 'Screwiness Type' is active, then this alters the argument to \ the screwiness function" visible = @showmodifiers && (@screwmode != 0) endparam param negatescrew caption = "Negative Screwiness?" default = FALSE hint = "If enabled, then the final output of the screwiness routine is negated" visible = @showmodifiers && (@screwmode != 0) endparam param dividebymagn caption = "Divide by |z|?" default = FALSE hint = "If enabled, then the chosen screwiness mode is divided by the current magnitude of #z" visible = @showmodifiers && (@screwmode != 0) endparam param blendscrewiness caption = "Blend Screwiness?" default = FALSE hint = "If enabled, than the screwiness perturbation can be only partially mixed into \ the calculation" visible = @showmodifiers && (@screwmode != 0) endparam param screwyfraction caption = "Screwy Fraction" default = 0.1 hint = "If 'Blend Screwiness' is enabled, than this is the fraction of the screwiness \ to mix in with the unperturbed angle" visible = @showmodifiers && (@screwmode != 0) && @blendscrewiness endparam param recipreal caption = "Reciprocal Real?" default = FALSE hint = "If enabled, then the reciprocal of Real(z) is used to compute the screwiness" visible = @showmodifiers && ( (@screwmode == 1) || (@screwmode == 3) || (@screwmode == 5) \ || (@screwmode == 7) || (@screwmode == 9) || (@screwmode == 10) || (@screwmode == 11) \ || (@screwmode == 12) || (@screwmode == 13) || (@screwmode == 14) || (@screwmode == 15) \ || (@screwmode == 16) || (@screwmode == 17) || (@screwmode == 18) || (@screwmode == 19) \ || (@screwmode == 20) || (@screwmode == 21) || (@screwmode == 22) || (@screwmode == 26) \ || (@screwmode == 27) || (@screwmode == 31) || (@screwmode == 33) || (@screwmode == 35) \ || (@screwmode == 37) ) endparam param recipimag caption = "Reciprocal Imaginary?" default = FALSE hint = "If enabled, then the reciprocal of Imag(z) is used to compute the screwiness" visible = @showmodifiers && ( (@screwmode == 2) || (@screwmode == 4) || (@screwmode == 6) \ || (@screwmode == 8) || (@screwmode == 9) || (@screwmode == 10) || (@screwmode == 11) \ || (@screwmode == 12) || (@screwmode == 13) || (@screwmode == 14) || (@screwmode == 15) \ || (@screwmode == 16) || (@screwmode == 17) || (@screwmode == 18) || (@screwmode == 19) \ || (@screwmode == 20) || (@screwmode == 21) || (@screwmode == 22) || (@screwmode == 28) \ || (@screwmode == 29) || (@screwmode == 32) || (@screwmode == 34) || (@screwmode == 36) \ || (@screwmode == 38) ) endparam param recipmagn caption = "Reciprocal Magnitude?" default = FALSE hint = "If enabled, then the reciprocal of |z| is used to compute the screwiness" visible = @showmodifiers && ( (@screwmode > 22) && (@screwmode < 37) ) endparam param weirdness caption = "Weirdness?" default = FALSE hint = "If enabled, original #z is used rather than modified #z to determine \ screwiness" visible = @showmodifiers && (@screwmode != 0) endparam param weirdtype caption = "Weirdness Type" enum = "z only" "z+z'" "z-z'" "z'-z" "z*z'" "z/z'" "z'/z" "z^z'" "z'^z" \ "average" "geometric mean" default = 0 hint = "If enabled, both original #z and modified #z are used to determine \ screwiness" visible = @showmodifiers && (@screwmode != 0) && @weirdness endparam param blendweirdness caption = "Blend Weirdness?" default = FALSE hint = "If enabled, than the weirdiness perturbation can be only partially mixed into \ the calculation" visible = @showmodifiers && (@screwmode != 0) && @weirdness endparam param weirdfraction caption = "Weirdness Fraction" default = 0.1 hint = "If 'Blend Weirdness' is enabled, than this is the fraction of the weirdness \ to mix in with the modified #z" visible = @showmodifiers && (@screwmode != 0) && @weirdness && @blendweirdness endparam param postrecipangle caption = "Postreciprocal Angle?" default = FALSE hint = "If enabled, then the reciprocal of Atan(z) is used to compute the trap \ function point. Operates after the 'Screwiness' routines" visible = @showmodifiers && (@screwmode != 0) endparam param alternatespread caption = "Alternate Spread Style?" default = FALSE hint = "If 'Offset Angle' or 'Spread Angle' are enabled, or if 'Screwiness Type' is \ not set to 'none', then selecting this option changes how the \ trapped point is calculated, thereby changing the shape of the trap curve" visible = @showpositionals && ((@screwmode != 0) || @sprangle || @offsetangle) endparam param modflavor caption = "Modify Flavor Param?" default = TRUE hint = "If enabled, initialized z, rather than raw #z, is used for some \ testing purposes; does not affect 'Flavor' modes 5-12 ('trap magnitude' \ through 'trap imaginary')" visible = @showmodifiers endparam param varymode caption = "Feedback Mode" enum = "trapped" "not trapped" "always" default = 2 hint = "Variation style; variation of individual parameters must still \ be enabled. 'trapped' -- feedback occurs only on iterations where some \ value was trapped; 'not trapped' -- varies on iterations when nothing \ trapped; 'always' -- feedback on every iteation" visible = @showmodifiers && \ (@varyrotation || @varythresh || @varyrwidth || @varycenter) endparam param showmodifiers caption = "Show Modifiers?" $ifdef VER40 default = TRUE $else default = FALSE $endif endparam heading caption = "Bias Settings" text = "Try the new Angle Bias options, with both one trap and two. Parameter \ 'New Style Rotations' under 'Trap Positional Settings' must be enabled \ in order to use the new Angle Bias options." $ifdef VER40 expanded = FALSE $endif endheading param initialbias caption = "Initial Bias?" default = FALSE hint = "If enabled, then #z is modified by parameters 'InitialAdd', 'InitialProd', and 'InitialExp' \ at the beginning of the iteration loop and just before the 'Original History' \ modifications. Try using the Explorer tool" visible = @showbias endparam param ibaddend caption = "InitialAdd" default = (0,0) hint = "If 'Initial Bias' is turned on, then this value is added to #z \ at the beginning of the iteration loop and just before the 'Original History' \ modifications" visible = @showbias && @initialbias endparam param ibprod caption = "InitialProd" default = (1,0) hint = "If 'Initial Bias' is turned on, then this value is multiplied by #z \ at the beginning of the iteration loop and just before the 'Original History' \ modifications" visible = @showbias && @initialbias endparam param ibexponent caption = "InitialExp" default = (1,0) hint = "If 'Initial Bias' is turned on, then #z is raised to this power \ at the beginning of the iteration loop and just before the 'Original History' \ modifications" visible = @showbias && @initialbias endparam param frontendbias caption = "Front End Bias?" default = FALSE hint = "If enabled, then #z is modified by parameters 'FrontEndAdd', 'FrontEndProd', and 'FrontEndExp' \ after the 'Original History' modifications and just prior to entering the \ front end modulator functions" visible = @showbias endparam param febaddend caption = "FrontEndAdd" default = (0,0) hint = "If 'Front End Bias' is turned on, then this value is added to #z before starting the \ front end modulator functions; operates before 'FrontEndProd'" visible = @showbias && @frontendbias endparam param febprod caption = "FrontEndProd" default = (1,0) hint = "If 'Front End Bias' is turned on, then this value is multiplied by #z before starting the \ front end modulator functions; operates before 'FrontEndExp'" visible = @showbias && @frontendbias endparam param febexponent caption = "FrontEndExp" default = (1,0) hint = "If 'Front End Bias' is turned on, then #z is raised to this power before starting the \ front end modulator functions; operates after 'FrontEndAdd'" visible = @showbias && @frontendbias endparam param zinitbias caption = "Z Init Bias?" default = FALSE hint = "If enabled, then #z is modified by parameters 'ZInitAdd', 'ZInitProd', and 'ZInitExp' \ after the front end real & imag modulator functions and just prior to entering the \ #z initialization modulator function" visible = @showbias endparam param zibaddend caption = "ZInitAdd" default = (0,0) hint = "If 'Z Init Bias' is turned on, then this value is added to #z before starting the \ #z initialization modulator function; operates before 'ZInitProd'" visible = @showbias && @zinitbias endparam param zibprod caption = "ZInitProd" default = (1,0) hint = "If 'Z Init Bias' is turned on, then this value is multiplied by #z before starting the \ #z initialization modulator function; operates before 'ZInitExp'" visible = @showbias && @zinitbias endparam param zibexponent caption = "ZInitExp" default = (1,0) hint = "If 'Z Init Bias' is turned on, then #z is raised to this power before starting the \ #z initialization modulator function; operates after 'ZInitAdd'" visible = @showbias && @zinitbias endparam param zalthisbias caption = "Z AltHistory Bias?" default = FALSE hint = "If enabled, then #z is modified by parameters 'ZAltHAdd', 'ZAltHProd', and 'ZAltHExp' \ after the alternative history modifier routine and just prior to entering the \ z attractor routines" visible = @showbias endparam param zahbaddend caption = "ZAltHAdd" default = (0,0) hint = "If 'Z AltHistory Bias' is turned on, then this value is added to #z before entering the \ z attractor routines; operates before 'ZAltHProd'" visible = @showbias && @zalthisbias endparam param zahbprod caption = "ZAltHProd" default = (1,0) hint = "If 'Z AltHistory Bias' is turned on, then this value is multiplied by #z before entering the \ z attractor routines; operates before 'ZAltHExp'" visible = @showbias && @zalthisbias endparam param zahbexponent caption = "ZAltHExp" default = (1,0) hint = "If 'Z AltHistory Bias' is turned on, then #z is raised to this power before entering the \ z attractor routines; operates after 'ZAltHProd'" visible = @showbias && @zalthisbias endparam param anglebias caption = "Angle Bias?" default = FALSE hint = "If enabled, then the angle input to the trapping function is modified by \ parameters 'AngleAdd', 'AngleProd', and 'AngleExp'" visible = @showbias endparam param abtype caption = "Angle Bias Type" enum = "both traps" "trap 1" "trap 2" default = 0 hint = "If 'Angle Bias' is enabled, this settings allows the bias to apply to each trap \ individually, or to both traps equally." visible = @showbias && @anglebias && @twotrapstrue && @tworotations endparam param abaddend caption = "AngleAdd" default = (0,0) hint = "If 'Angle Bias' is turned on, then this value is added to the angle of #z before \ entering the trapping functions; operates before 'AngleProd'" visible = @showbias && @anglebias endparam param abprod caption = "AngleProd" default = (1,0) hint = "If 'Angle Bias' is turned on, then this value is multiplied by #z before entering the \ trapping functions; operates before 'AngleExp'" visible = @showbias && @anglebias endparam param abexponent caption = "AngleExp" default = (-1,0.75) hint = "If 'Angle Bias' is turned on, then the angle of #z is raised to this power \ before entering the trapping functions; operates after 'AngleAdd'" visible = @showbias && @anglebias endparam param abmode caption = "Angle Bias Mode" enum = "original" "sine" "truncation" "exponential" "sine sqr" default = 0 hint = "If 'Angle Bias' is enabled, this parameter determines how the bias is computed." visible = @showbias && @anglebias endparam param absinamp caption = "Bias Sine Amplitude" default = 0.05 hint = "If 'Angle Bias' is enabled and 'Angle Bias Mode' is set to 'sine', then this setting \ determines the size of the modulation." visible = @showbias && @anglebias && (@abmode == "sine" || @abmode == "sine sqr") endparam param absinfreq caption = "Bias Sine Frequency" default = 6.0 hint = "If 'Angle Bias' is enabled and 'Angle Bias Mode' is set to 'sine', then this setting \ determines the frequency of the modulation." visible = @showbias && @anglebias && (@abmode == "sine" || @abmode == "sine sqr") endparam param abtruncconst caption = "Bias Trunc Factor" default = 6.0 hint = "If 'Angle Bias' is enabled and 'Angle Bias Mode' is set to 'truncation' or 'exponential', \ then this setting determines the size of the modulation." visible = @showbias && @anglebias && (@abmode == "truncation" || @abmode == "exponential") endparam param tattractbias caption = "T Attractor Bias?" default = FALSE hint = "If enabled, then the trap point is modified by parameters 'TrapAdd', 'TrapProd', and 'TrapExp' \ just before the trap attractor routines" visible = @showbias endparam param tattraddend caption = "TattractAdd" default = (0,0) hint = "If 'T attractor Bias' is turned on, then this value is added to the trap point before \ entering the trap attractor routine; operates before 'TattractProd'" visible = @showbias && @tattractbias endparam param tattrprod caption = "TattractProd" default = (1,0) hint = "If 'T Attractor Bias' is turned on, then this value is multiplied by the trap point before \ entering the trap attractor routine; operates before 'TattractExp'" visible = @showbias && @tattractbias endparam param tattrexponent caption = "TattractExp" default = (1,0) hint = "If 'T Attractor Bias' is turned on, then the trap point is raised to this power \ before entering the trap attractor routine; operates after 'TattractProd'" visible = @showbias && @tattractbias endparam param trapbias caption = "Trap Bias?" default = FALSE hint = "If enabled, then the trap point is modified by parameters 'TrapAdd', 'TrapProd', and 'TrapExp' \ after the trap attractor routine and just before the alternative trap history routine" visible = @showbias endparam param tbaddend caption = "TrapAdd" default = (0,0) hint = "If 'Trap Bias' is turned on, then this value is added to the trap point before \ entering the alternative trap history routine; operates before 'TrapProd'" visible = @showbias && @trapbias endparam param tbprod caption = "TrapProd" default = (1,0) hint = "If 'Trap Bias' is turned on, then this value is multiplied by the trap point before \ entering the alternative trap history routine; operates before 'TrapExp'" visible = @showbias && @trapbias endparam param tbexponent caption = "TrapExp" default = (1,0) hint = "If 'Trap Bias' is turned on, then the trap point is raised to this power \ before entering the alternative trap history routine; operates after 'TrapProd'" visible = @showbias && @trapbias endparam param transmutebias caption = "Transmute Bias?" default = FALSE hint = "If enabled, then the trap point is modified by parameters 'TransmuteAdd', 'TransmuteProd', and \ 'TransmuteExp' after the 'Alternative Trap History' routine and just before \ the 'Trap Transmute' modulator function" visible = @showbias endparam param tmbaddend caption = "TransmuteAdd" default = (0,0) hint = "If 'Transmute Bias' is turned on, then this value is added to the trap point \ after the 'Alternative Trap History' routine and just before \ the 'Trap Transmute' modulator function" visible = @showbias && @transmutebias endparam param tmbprod caption = "TransmuteProd" default = (1,0) hint = "If 'Transmute Bias' is turned on, then this value is multiplied by the trap point \ after the 'Alternative Trap History' routine and just before \ the 'Trap Transmute' modulator function" visible = @showbias && @transmutebias endparam param tmbexponent caption = "TransmuteExp" default = (1,0) hint = "If 'Transmute Bias' is turned on, then the trap point is raised to this power \ after the 'Alternative Trap History' routine and just before \ the 'Trap Transmute' modulator function" visible = @showbias && @transmutebias endparam param backendbias caption = "Back End Bias?" default = FALSE hint = "If enabled, then the trap point is modified by parameters 'BackEndAdd', 'BackEndProd', and \ 'BackEndExp' after the 'Trap Transmute' modulator function and just before \ the real and imaginary back end modulator functions" visible = @showbias endparam param bebaddend caption = "BackEndAdd" default = (0,0) hint = "If 'Back End Bias' is turned on, then this value is added to the trap point \ after the 'Trap Transmute' modulator function and just before \ the real and imaginary back end modulator functions" visible = @showbias && @backendbias endparam param bebprod caption = "BackEndProd" default = (1,0) hint = "If 'Back End Bias' is turned on, then this value is multiplied by the trap point \ after the 'Trap Transmute' modulator function and just before \ the real and imaginary back end modulator functions" visible = @showbias && @backendbias endparam param bebexponent caption = "BackEndExp" default = (1,0) hint = "If 'Back End Bias' is turned on, then the trap point is raised to this power \ after the 'Trap Transmute' modulator function and just before \ the real and imaginary back end modulator functions" visible = @showbias && @backendbias endparam param tvariantbias caption = "TrapVariant Bias?" default = FALSE hint = "If enabled, then the trap point is modified by parameters 'TVariantAdd', 'TVariantProd', and \ 'TVariantExp' after the real and imaginary back end modulator functions and \ just before the 'Trap Variants' modifier routine" visible = @showbias endparam param tvbaddend caption = "TVariantAdd" default = (0,0) hint = "If 'TVariant Bias' is turned on, then this value is added to the trap point \ after the real and imaginary back end modulator functions and \ just before the 'Trap Variants' modifier routine" visible = @showbias && @tvariantbias endparam param tvbprod caption = "TVariantProd" default = (1,0) hint = "If 'TVariant Bias' is turned on, then this value is multiplied by the trap point \ after the real and imaginary back end modulator functions and \ just before the 'Trap Variants' modifier routine" visible = @showbias && @tvariantbias endparam param tvbexponent caption = "TVariantExp" default = (1,0) hint = "If 'TVariant Bias' is turned on, then the trap point is raised to this power \ after the real and imaginary back end modulator functions and \ just before the 'Trap Variants' modifier routine" visible = @showbias && @tvariantbias endparam param thisbias caption = "TrapHist Bias?" default = FALSE hint = "If enabled, then the trap point is modified by parameters 'THistAdd', 'THistProd', and 'THistExp' \ just after the 'Trap Variants' routine, and just before the original trap history routine" visible = @showbias endparam param thbaddend caption = "THistAdd" default = (0,0) hint = "If 'TrapHist Bias' is turned on, then this value is added to the trap point \ just after the 'Trap Variants' routine, and just before the original trap history routine" visible = @showbias && @thisbias endparam param thbprod caption = "THistProd" default = (1,0) hint = "If 'TrapHist Bias' is turned on, then this value is multiplied by the trap point \ just after the 'Trap Variants' routine, and just before the original trap history routine" visible = @showbias && @thisbias endparam param thbexponent caption = "THistExp" default = (1,0) hint = "If 'THist Bias' is turned on, then the trap point is raised to this power \ just after the 'Trap Variants' routine, and just before the original trap history routine" visible = @showbias && @thisbias endparam param finalbias caption = "Final Bias?" default = FALSE hint = "If enabled, then the trap point is modified by parameters 'FinalAdd', 'FinalProd', and 'FinalExp' \ just after the original trap history routine, and just before the 'Trap Flavor' routine" visible = @showbias endparam param fbaddend caption = "FinalAdd" default = (0,0) hint = "If 'Final Bias' is turned on, then this value is added to the trap point \ just after the original trap history routine, and just before the 'Trap Flavor' routine" visible = @showbias && @finalbias endparam param fbprod caption = "FinalProd" default = (1,0) hint = "If 'Final Bias' is turned on, then this value is multiplied by the trap point \ just after the original trap history routine, and just before the 'Trap Flavor' routine" visible = @showbias && @finalbias endparam param fbexponent caption = "FinalExp" default = (1,0) hint = "If 'Final Bias' is turned on, then the trap point is raised to this power \ just after the original trap history routine, and just before the 'Trap Flavor' routine" visible = @showbias && @finalbias endparam param showbias caption = "Show Bias Params?" $ifdef VER40 default = TRUE $else default = FALSE $endif endparam heading caption = "Perlin Noise Settings" $ifdef VER40 expanded = FALSE $endif endheading param enableperlin caption = "Enable Perlin Noise?" default = FALSE hint = "If enabled, the coloring is modified by the addition of Perlin noise variations." visible = @showfbm endparam param perlininitpoint caption = "Perlin Initial Point" enum = "#z" "mod z" "trap" \ "trapped #z" "trapped mod z" "trapped trap" "combination" \ "pixel" "test result" "angle 1" "angle 2" "angle 3" default = 6 hint = "This parameter determines the initial point input to the Perlin algorithm." visible = @enableperlin && @showfbm endparam param perlincombo caption = "Perlin Combination" enum = "#z + modz" "#z * modz" "#z - modz" "modz - #z" "#z/modz" "modz/#z" \ "#z + t" "#z * t" "#z - t" "t - #z" "#z/t" "t/#z" \ "modz + t" "modz * t" "modz - t" "t - modz" "modz/t" "t/modz" \ "#z + pix" "#z * pix" "#z - pix" "pix - #z" "#z/pix" "pix/#z" \ "modz + pix" "modz * pix" "modz - pix" "pix - modz" "modz/pix" "pix/modz" \ "t + pix" "t * pix" "t - pix" "pix - t" "t/pix" "pix/t" \ "z' + modz'" "z' * modz'" "z' - modz'" \ "modz' - z'" "z'/modz'" "modz'/z'" \ "z' + t'" "z' * t'" "z' - t'" \ "t' - z'" "z'/t'" "t'/z'" \ "modz' + t'" "modz' * t'" "modz' - t'" \ "t' - modz'" "modz'/t'" "t'/modz'" \ "z' + pix" "z' * pix" "z' - pix" "pix - z'" \ "z'/pix" "pix/z'" \ "modz' + pix" "modz' * pix" "modz' - pix" \ "pix - modz'" "modz'/pix" "pix/modz'" \ "t' + pix" "t' * pix" "t' - pix" "pix - t'" \ "t'/pix" "pix/t'" \ "#z + z'" "#z * z'" "#z - z'" "z' - #z" "#z/z'" "z'/#z" \ "#z + modz'" "#z * modz'" "#z - modz'" "modz' - #z" "#z/modz'" "modz'/#z" \ "#z + t'" "#z * t'" "#z - t'" "t' - #z" "#z/t'" "t'/#z" \ "modz + z'" "modz * z'" "modz - z'" "z' - modz" "modz/z'" "z'/modz" \ "modz + modz'" "modz * modz'" "modz - modz'" "modz' - modz" "modz/modz'" "modz'/modz" \ "modz + t'" "modz * t'" "modz - t'" "t' - modz" "modz/t'" "t'/modz" \ "t + z'" "t * z'" "t - z'" "z' - t" "t/z'" "z'/t" \ "t + modz'" "t * modz'" "t - modz'" "modz' - t" "t/modz'" "modz'/t" \ "t + t'" "t * t'" "t - t'" "t' - t" "t/t'" "t'/t" default = 78 hint = "If 'Perlin Initial Point' is set to 'combination', then this is the \ combination of points that is used. #z is the raw z value of the current iteration; \ modz is the current initialized z (after rotation, modifiers, modulation etc); \ t is the point of the trap shape associated with the current iteration; z' is the \ trapped value of raw z (min, max, threshold, etc); modz' is the trapped initialized \ value of z; and t' is the actual trap shape point associated with the min, max, etc." visible = @enableperlin && (@perlininitpoint == "combination") && @showfbm endparam param perlincriterion caption = "Initialization Criterion" enum = "initialization point" "average" default = 1 hint = "This parameter determines how the 'Perlin Initial Point' is trapped and used." visible = @enableperlin && @showfbm endparam param perlinavgiters caption = "Iterations to Average" default = 8 min = 1 hint = "If 'Initialization Criterion' is set to 'average', then this parameter determines \ how many iterations of z are used. Min is 1; a value of 1 \ means to average ALL iterations." visible = @enableperlin && @showfbm && (@perlincriterion == "average") endparam param perlinavgstart caption = "Starting Iter to Average" default = 1 min = 1 hint = "If 'Initialization Criterion' is set to 'average', then this parameter determines \ the starting iteration to average." visible = @enableperlin && @showfbm && (@perlincriterion == "average") endparam param perlinaverage caption = "Noise Averaging" enum = "arithmetic" "quadratic" "cubic" "quartic" "general power" "geometric" \ "harmonic" "HG" "function average" default = 0 hint = "If 'Initialization Criterion' is set to 'average', then this parameter determines \ how the z-values are combined." visible = @enableperlin && @showfbm && (@perlincriterion == "average") endparam param perlinavgfn caption = "Noise Averaging Function" enum = "exp" "log" "sine" default = 0 hint = "If 'Type of Averaging' is set to 'Function Avg', then this is the function." visible = @enableperlin && @showfbm && (@perlinaverage == "function average") && \ (@perlincriterion == "average") endparam param perlinavgscale caption = "Average Scale Factor" default = 1.0 hint = "This parameter scales the input to the noise averaging function. For example, \ it functions as the frequency if 'Averaging Function' is set to 'sine'." visible = @enableperlin && @showfbm && (@perlinaverage == "function average") && \ (@perlincriterion == "average") endparam param perlinpower caption = "Averaging Power" default = 0.5 hint = "If 'Noise Averaging' is set to 'general power', then this parameter \ is the exponent used." visible = @enableperlin && @showfbm && (@perlincriterion == "average") && (@perlinaverage == "general power") endparam param perlinmutate caption = "Mutate Noise?" default = FALSE hint = "This setting provides an alternative set of inputs to the Perlin algorithm \ if enabled." visible = @enableperlin && @showfbm && (@perlininitpoint == "combination") endparam param perlinmutstyle caption = "Mutant Style" enum = "antares" "rigel" "fomalhaut" "arcturus" "capella" "polaris" default = 0 hint = "This setting which alternative inputs are provided to the Perlin algorithm \ if enabled." visible = @enableperlin && @showfbm && (@perlininitpoint == "combination") && @perlinmutate endparam param perlinaltmutant caption = "Alternative Mutants?" default = FALSE hint = "This setting provides an alternative set of inputs to the noise mutation \ if enabled." visible = @enableperlin && @showfbm && @perlinmutate && (@perlincriterion == "average") && (@perlininitpoint == "combination") endparam param perlinscale caption = "Noise Scale" default = 0.5 hint = "The overall scale of the Perlin turbulence. This parameter scales the \ initial noise prior to the beginning of Perlin iterations." visible = @enableperlin && @showfbm endparam param perlinamount caption = "Noise Amount" default = 0.3 hint = "If Perlin noise is enabled, this parameter determines the overall \ perturbation of the color palette index. It scales the noise after \ the Perlin iterations are completed." visible = @enableperlin && @showfbm endparam param perlinadjustment caption = "Noise Adjustment" default = 1.0 hint = "This parameter is added to the final Perlin noise value \ just prior to combining it with the color index." visible = @enableperlin && @showfbm endparam param perlinoctaves caption = "Noise Octaves" default = 6 min = 1 hint = "The number of iterations of the Perlin noise function. Increasing this value \ generally increases the noise." visible = @enableperlin && @showfbm endparam param perlinfreq caption = "Noise Frequency" default = 0.4 hint = "Frequency multiplier for Perlin noise. Decreasing this value \ generally increases the noise." visible = @enableperlin && @showfbm endparam param perlinamplitude caption = "Noise Stepsize" default = 0.6 hint = "Scale (amplitude) step size for Perlin noise iterations. Increasing this value \ generally increases the noise." visible = @enableperlin && @showfbm endparam param perlinrotstep caption = "Noise Rotation Step" default = 0.0 hint = "The angle in degrees for noise function rotation after \ each Perlin iteration." visible = @enableperlin && @showfbm endparam param perlingridsize caption = "Grid Size?" enum = "16" "64" "256" "1024" default = 2 hint = "This parameter affects the graininess of the noise function." visible = @enableperlin && @showfbm endparam param perlingridstyle caption = "Grid Style?" enum = "Perlin" "topaz" "opal" "ruby" "emerald" "sapphire" default = 0 hint = "This parameter affects the randomness of the grid." visible = @enableperlin && @showfbm endparam param perlinrotation caption = "Noise Rotation" default = 0.0 hint = "Angular parameter for Perlin noise. The input point to the Perlin \ algorithm can be rotated by this amount." visible = @enableperlin && @showfbm endparam param perlinoffset caption = "Noise Offset" default = (0.0,0.0) hint = "Offset added to Perlin noise initialization. The input point to the Perlin \ algorithm can be translated by this value." visible = @enableperlin && @showfbm endparam param avgcolorwt caption = "Weight of Trap Coloring" default = 0.5 hint = "This parameter weights the gradient from the orbit trap coloring \ as it is blended with the Perlin noise." visible = @enableperlin && @showfbm endparam param perlincolorwt caption = "Weight of Perlin Coloring" default = 0.5 hint = "This parameter weights the gradient from the Perlin noise \ as it is blended with the Stripes/Curvature/TIA averaging." visible = @enableperlin && @showfbm endparam param perlinfade caption = "Perlin Fade Function" enum = "poppy" "gardenia" "thistle" "dandelion" "dahlia" "honeysuckle" default = 0 hint = "This function smooths the gradient." visible = @enableperlin && @showfbm endparam param fadeadjust caption = "Perlin Fade Adjustment" default = 1.0 hint = "This parameter modifies some of the fade functions" visible = @enableperlin && (@perlinfade > 1) && @showfbm endparam param perlintransform caption = "Transform Perlin Input?" enum = "none" "circle" "diamond" "x-axis" default = 0 hint = "The input to the noise function can be transformed by this setting." visible = @enableperlin && @showfbm endparam param transformcombo caption = "Transform Type" enum = "trap" "sum" "difference 1" "difference 2" "product" "quotient 1" "quotient 2" \ "power 1" "power 2" "arithmetic average" "geometric average" default = 0 hint = "This setting determines how the transformed point is combined with the original \ noise input." visible = @enableperlin && (@perlintransform != "none") && @showfbm endparam param perlinradius caption = "Transform Scale" default = 1.0 hint = "If 'Transform Input' is set to 'circle', then this parameter determines \ the circle radius; etc." visible = @enableperlin && (@perlintransform != "none") && @showfbm endparam param perlincenter caption = "Transform Center" default = (0,0) hint = "If 'Transform Input' is set to 'circle', e.g., then this parameter determines \ the circle center; etc." visible = @enableperlin && (@perlintransform != "none") && @showfbm endparam param perlinseed caption = "Perlin Random Seed" default = 314159 hint = "This setting initializes the random number generator." visible = @enableperlin && @showfbm endparam param showfbm caption = "Show Perlin Params?" $ifdef VER40 default = TRUE $else default = FALSE $endif endparam heading caption = "Absolute Value Options" $ifdef VER40 expanded = FALSE $endif endheading param absolutez caption = "Absolute A?" default = FALSE hint = "Affects z at the top of the iteration loop" visible = @showabsolutes endparam param absoluter caption = "Absolute B?" default = FALSE hint = "Affects real(z) at the top of the iteration loop" visible = @showabsolutes && !@absolutez endparam param absolutei caption = "Absolute C?" default = FALSE hint = "Affects imag(z) at the top of the iteration loop" visible = @showabsolutes && !@absolutez endparam param absoluter2 caption = "Absolute D?" default = FALSE hint = "Affects input to front end real modulator function" visible = @showabsolutes && (@rfscale != 1.0 || @realfront != 0) endparam param absoluter3 caption = "Absolute E?" default = FALSE hint = "Affects front end real modulator function output (result)" visible = @showabsolutes && (@rfscale != 1.0 || @realfront != 0) endparam param absolutei2 caption = "Absolute F?" default = FALSE hint = "Affects input to front end imaginary modulator function" visible = @showabsolutes && (@ifscale != 1.0 || @imagfront != 0) endparam param absolutei3 caption = "Absolute G?" default = FALSE hint = "Affects front end imag modulator function output (result)" visible = @showabsolutes && (@ifscale != 1.0 || @imagfront != 0) endparam param absolutez2 caption = "Absolute H?" default = FALSE hint = "Affects z initialization modulator function result" visible = @showabsolutes && (@ziscale != 1.0 || @initialization != 0) endparam param absoluter4 caption = "Absolute I?" default = FALSE hint = "Affects real part of z initialization modulator function output" visible = @showabsolutes && (@ziscale != 1.0 || @initialization != 0) && !@absolutez2 endparam param absolutei4 caption = "Absolute J?" default = FALSE hint = "Affects imaginary part of z initialization modulator function output" visible = @showabsolutes && (@ziscale != 1.0 || @initialization != 0) && !@absolutez2 endparam param absolutez3 caption = "Absolute K?" default = FALSE hint = "Affects z just before trap testing, after modifiers such as 'Z Variant', \ 'Enable Operator', etc." visible = @showabsolutes endparam param absoluter5 caption = "Absolute L?" default = FALSE hint = "Affects real z just before trap testing, after modifiers such as 'Z Variant', \ 'Enable Operator', etc." visible = @showabsolutes && !@absolutez3 endparam param absolutei5 caption = "Absolute M?" default = FALSE hint = "Affects imag z just before trap testing, after modifiers such as 'Z Variant', \ 'Enable Operator', etc." visible = @showabsolutes && !@absolutez3 endparam param absolutet caption = "Absolute N?" default = FALSE hint = "Affects trap point coordinates before transmute" visible = @showabsolutes endparam param absoluter6 caption = "Absolute O?" default = FALSE hint = "Affects trap point real coordinate before transmute" visible = @showabsolutes && !@absolutet endparam param absolutei6 caption = "Absolute P?" default = FALSE hint = "Affects trap point imag coordinate before transmute" visible = @showabsolutes && !@absolutet endparam param absolutet2 caption = "Absolute Q?" default = FALSE hint = "Affects trap point after all back end modulation functions" visible = @showabsolutes && (@rbscale != 1.0 || @realback != 0 \ || @ibscale != 1.0 || @imagback != 0 || @transmogrify != 0 \ || @tiscale != 1.0) endparam param absoluter7 caption = "Absolute R?" default = FALSE hint = "Affects real coordinate of trap point after all back end modulation functions" visible = @showabsolutes && (@rbscale != 1.0 || @realback != 0 \ || @ibscale != 1.0 || @imagback != 0 || @transmogrify != 0 \ || @tiscale != 1.0) && !@absolutet2 endparam param absolutei7 caption = "Absolute S?" default = FALSE hint = "Affects imaginary coordinate of trap point after all back end modulation functions" visible = @showabsolutes && (@rbscale != 1.0 || @realback != 0 \ || @ibscale != 1.0 || @imagback != 0 || @transmogrify != 0 \ || @tiscale != 1.0) && !@absolutet2 endparam param showabsolutes caption = "Show Absolute Options?" $ifdef VER40 default = TRUE $else default = FALSE $endif hint = "Options based on use of absolute values. Not all absolute options \ are always available, depending upon other settings" endparam heading caption = "Modulator Functions" $ifdef VER40 expanded = FALSE $endif endheading param initialization caption = "Z Initialization" enum = "z" "1/z" "z^2" "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)" "z^power" \ "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^(1/(z^2))" "abs(z)" "round(z)" "trunc(z)" \ "ceil(z)" "floor(z)" "z/log(z)" "log(z)/z" "(e^z)/z" "(e^(1/z))/z" \ "(e^(z^2))/z" "(e^(1/(z^2))/z" "z*e^(z^2)" "z*e^(1/(z^2))" \ "e^(-z^2)" "e^(-1/(z^2))" "(e^(-z^2))/z" "(e^(-1/(z^2))/z" \ "z*e^(-z^2)" "z*e^(-1/(z^2))" "log(z) B" "log(log(z)) B" "sin(z^power)" default = 0 hint = "The fractal is initialized to this value at each iteration prior to \ being fed to the trap, but after the two 'Front End' modulators" visible = @showmodulators endparam param zpower caption = "Z Power" default = (4,0) hint = "Z exponent if param 'Z Initialization' is set to 'z^power' or 'sin(z^power)'" visible = ((@initialization == "z^power") || (@initialization == "sin(z^power)")) && @showmodulators endparam param ziscale caption = "Z Init Scale" default = 1.0 hint = "This param can be used to scale the overall iterate a \ before a initialization" visible = @showmodulators endparam param initperturb caption = "Perturb Z Initialization?" default = FALSE hint = "If enabled, then 'Z Initialization' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'Z Init Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@initialization != "z") && @showmodulators endparam param initblend caption = "Z Init Blend" default = 0.1 hint = "If 'Perturb Z initialization' is enabled, then this sets the fraction \ of 'Z Initialization' that is mixed in with the original #z. \ Inactive if 'Perturb Z Initialization' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @initperturb && (@initialization != "z") && @showmodulators endparam param transmogrify caption = "Trap Transmute" enum = "t" "1/t" "t^2" "1/t^2" "log(t)" "e^t" "t^t" "sin(t)" "cos(t)" \ "tan(t)" "asin(t)" "acos(t)" "atan(t)" "sinh(t)" "cosh(t)" "tanh(t)" \ "asinh(t)" "acosh(t)" "atanh(t)" "log(1/t)" "log(log(t))" "e^-t" \ "e^(1/t)" "t^-t" "sin(t)^2" "cos(t)^2" "tan(t)^2" "cot(t)" "sec(t)" \ "csc(t)" "cot(t)^2" "sec(t)^2" "csc(t)^2" "t^t^t" "1/t^t^t" "log(-t)" \ "1/log(t)" "tlog(t)" "sin(t)/t" "cos(t)/t" "sin(t)*cos(t)" "sin(t^2)" \ "e^(-1/t)" "te^t" "te^-t" "te^(1/t)" "te^(-1/t)" "t^3" "1/t^3" \ "acot(t)" "asec(t)" "acsc(t)" "tan(t)/t" "cot(t)/t" "sec(t)/t" \ "csc(t)/t" "tsin(t)" "tcos(t)" "ttan(t)" "tcot(t)" "tsec(t)" "tcsc(t)" \ "sin(1/t)" "cos(1/t)" "tan(1/t)" "cot(1/t)" "sec(1/t)" "csc(1/t)" \ "cotanh(t)" "sech(t)" "cosech(t)" "acoth(t)" "asech(t)" "acosech(t)" "t^power" \ "sinh(t)^2" "cosh(t)^2" "tanh(t)^2" "cotanh(t)^2" \ "sech(t)^2" "cosech(t)^2" "sinh(1/t)" "cosh(1/t)" "tanh(1/t)" \ "cotanh(1/t)" "sech(1/t)" "cosech(1/t)" "sin(t)tan(t)" "sinh(t)tanh(t)" \ "sinh(t)cosh(t)" "sinh(t)^2*cosh(t)^2" "sin(t)^2*cos(t)^2" \ "sin(1/t)*cos(1/t)" "sin(1/t)^2" "sin(t)cos(1/t)" "sin(t)sin(1/t)" \ "log(t)^2" "sin(t)sin(2t)" "e^2t" "e^-2t" "sinh(1/t)cosh(1/t)" \ "sinh(1/t)^2" "sinh(t)cosh(1/t)" "sinh(t)sinh(1/t)" "sin(t)sinh(t)" \ "sin(t)cosh(t)" "sin(t)^2*sinh(t)^2" "sin(t)e^t" "cos(t)e^t" \ "sinh(t)e^t" "cosh(t)e^t" "sin(t)log(t)" "cos(t)log(t)" "sinh(t)log(t)" \ "cosh(t)log(t)" \ "e^(t^2)" "e^(1/(t^2))" "abs(t)" "round(t)" "trunc(t)" \ "ceil(t)" "floor(t)" "t/log(t)" "log(t)/t" "(e^t)/t" "(e^(1/t))/t" \ "(e^(t^2))/t" "(e^(1/(t^2))/t" "t*e^(t^2)" "t*e^(1/(t^2))" \ "e^(-t^2)" "e^(-1/(t^2))" "(e^(-t^2))/t" "(e^(-1/(t^2))/t" \ "t*e^(-t^2)" "t*e^(-1/(t^2))" "log(t) B" "log(log(t)) B" "sin(t^power)" default = 0 hint = "The point, t, on the trap can be further transformed \ prior to testing; select 't' for no transmutation. \ Transmutation does not affect a few trap flavors. Transmutation \ occurs before the two 'Back End' modulations" visible = @showmodulators endparam param tpower caption = "Trap Power" default = (4,0) hint = "Trap point t exponent if param 'Trap Transmute' is set to 't^power' or 'sin(t^power)'" visible = ((@transmogrify == "t^power") || (@transmogrify == "sin(t^power)")) && @showmodulators endparam param tiscale caption = "Trap Scale" default = 1.0 hint = "This param can be used to scale the overall trap point t \ before transmutation" visible = @showmodulators endparam param trapperturb caption = "Perturb Trap Transmute?" default = FALSE hint = "If enabled, then 'Trap Transmute' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'Trap Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@transmogrify != "t") && @showmodulators endparam param trapblend caption = "Trap Blend" default = 0.1 hint = "If 'Perturb Trap Transmute' is enabled, then this sets the fraction \ of 'Trap Transmute' that is mixed in with the original trap point, t. \ Inactive if 'Perturb Trap Transmute' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @trapperturb && (@transmogrify != "t") && @showmodulators endparam param realfront caption = "FrontEndReal Warp" enum = "r" "1/r" "r^2" "1/r^2" "log(r)" "e^r" "r^r" "sin(r)" "cos(r)" \ "tan(r)" "asin(r)" "acos(r)" "atan(r)" "sinh(r)" "cosh(r)" "tanh(r)" \ "asinh(r)" "acosh(r)" "atanh(r)" "log(1/r)" "log(log(r))" "e^-r" \ "e^(1/r)" "r^-r" "sin(r)^2" "cos(r)^2" "tan(r)^2" "cot(r)" "sec(r)" \ "csc(r)" "cot(r)^2" "sec(r)^2" "csc(r)^2" "r^r^r" "1/r^r^r" "log(-r)" \ "1/log(r)" "rlog(r)" "sin(r)/r" "cos(r)/r" "sin(r)*cos(r)" "sin(r^2)" \ "e^(-1/r)" "re^r" "re^-r" "re^(1/r)" "re^(-1/r)" "r^3" "1/r^3" \ "acot(r)" "asec(r)" "acsc(r)" "tan(r)/r" "cot(r)/r" "sec(r)/r" \ "csc(r)/r" "rsin(r)" "rcos(r)" "rtan(r)" "rcot(r)" "rsec(r)" "rcsc(r)" \ "sin(1/r)" "cos(1/r)" "tan(1/r)" "cot(1/r)" "sec(1/r)" "csc(1/r)" \ "cotanh(r)" "sech(r)" "cosech(r)" "acoth(r)" "asech(r)" "acosech(r)" "r^power" \ "sinh(r)^2" "cosh(r)^2" "tanh(r)^2" "cotanh(r)^2" \ "sech(r)^2" "cosech(r)^2" "sinh(1/r)" "cosh(1/r)" "tanh(1/r)" \ "cotanh(1/r)" "sech(1/r)" "cosech(1/r)" "sin(r)tan(r)" "sinh(r)tanh(r)" \ "sinh(r)cosh(r)" "sinh(r)^2*cosh(r)^2" "sin(r)^2*cos(r)^2" \ "sin(1/r)*cos(1/r)" "sin(1/r)^2" "sin(r)cos(1/r)" "sin(r)sin(1/r)" \ "log(r)^2" "sin(r)sin(2r)" "e^2r" "e^-2r" "sinh(1/r)cosh(1/r)" \ "sinh(1/r)^2" "sinh(r)cosh(1/r)" "sinh(r)sinh(1/r)" "sin(r)sinh(r)" \ "sin(r)cosh(r)" "sin(r)^2*sinh(r)^2" "sin(r)e^r" "cos(r)e^r" \ "sinh(r)e^r" "cosh(r)e^r" "sin(r)log(r)" "cos(r)log(r)" "sinh(r)log(r)" \ "cosh(r)log(r)" \ "e^(r^2)" "e^(1/(r^2))" "abs(r)" "round(r)" "trunc(r)" \ "ceil(r)" "floor(r)" "r/log(r)" "log(r)/r" "(e^r)/r" "(e^(1/r))/r" \ "(e^(r^2))/r" "(e^(1/(r^2))/r" "r*e^(r^2)" "r*e^(1/(r^2))" \ "e^(-r^2)" "e^(-1/(r^2))" "(e^(-r^2))/r" "(e^(-1/(r^2))/r" \ "r*e^(-r^2)" "r*e^(-1/(r^2))" "log(r) B" "log(log(r)) B" "sin(r^power)" default = 0 hint = "This function can warp the initial value of real(z) before input to \ the 'Z Initialization' function. For 'r^power' set param 'FrontEndReal \ Power'" visible = @showmodulators endparam param rfpower caption = "FrontEndReal Power" default = 4.0 hint = "Real(z) exponent if param 'FrontEndReal Warp' is set to 'r^power'" visible = ((@realfront == "r^power") || (@realfront == "sin(r^power)")) && @showmodulators endparam param rfscale caption = "Real(z) PreScale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ iterate z before warping or initialization" visible = @showmodulators endparam param rfperturb caption = "Perturb FrontEndReal?" default = FALSE hint = "If enabled, then 'FrontEndReal Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'FrontEndReal Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@realfront != "r") && @showmodulators endparam param rfblend caption = "FrontEndReal Blend" default = 0.1 hint = "If 'Perturb FrontEndReal' is enabled, then this sets the fraction \ of 'FrontEndReal Warp' that is mixed in with the original real(a). \ Inactive if 'Perturb FrontEndReal' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @rfperturb && (@realfront != "r") && @showmodulators endparam param rfpostscale caption = "Real(z) PostScale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ iterate z before warping or initialization" visible = @showmodulators && @realfront != 0 endparam param imagfront caption = "FrontEndImag Warp" enum = "i" "1/i" "i^2" "1/i^2" "log(i)" "e^i" "i^i" "sin(i)" "cos(i)" \ "tan(i)" "asin(i)" "acos(i)" "atan(i)" "sinh(i)" "cosh(i)" "tanh(i)" \ "asinh(i)" "acosh(i)" "atanh(i)" "log(1/i)" "log(log(i))" "e^-i" \ "e^(1/i)" "i^-i" "sin(i)^2" "cos(i)^2" "tan(i)^2" "cot(i)" "sec(i)" \ "csc(i)" "cot(i)^2" "sec(i)^2" "csc(i)^2" "i^i^i" "1/i^i^i" "log(-i)" \ "1/log(i)" "ilog(i)" "sin(i)/i" "cos(i)/i" "sin(i)*cos(i)" "sin(i^2)" \ "e^(-1/i)" "ie^i" "ie^-i" "ie^(1/i)" "ie^(-1/i)" "i^3" "1/i^3" \ "acot(i)" "asec(i)" "acsc(i)" "tan(i)/i" "cot(i)/i" "sec(i)/i" \ "csc(i)/i" "isin(i)" "icos(i)" "itan(i)" "icot(i)" "isec(i)" "icsc(i)" \ "sin(1/i)" "cos(1/i)" "tan(1/i)" "cot(1/i)" "sec(1/i)" "csc(1/i)" \ "cotanh(i)" "sech(i)" "cosech(i)" "acoth(i)" "asech(i)" "acosech(i)" "i^power" \ "sinh(i)^2" "cosh(i)^2" "tanh(i)^2" "cotanh(i)^2" \ "sech(i)^2" "cosech(i)^2" "sinh(1/i)" "cosh(1/i)" "tanh(1/i)" \ "cotanh(1/i)" "sech(1/i)" "cosech(1/i)" "sin(i)tan(i)" "sinh(i)tanh(i)" \ "sinh(i)cosh(i)" "sinh(i)^2*cosh(i)^2" "sin(i)^2*cos(i)^2" \ "sin(1/i)*cos(1/i)" "sin(1/i)^2" "sin(i)cos(1/i)" "sin(i)sin(1/i)" \ "log(i)^2" "sin(i)sin(2i)" "e^2i" "e^-2i" "sinh(1/i)cosh(1/i)" \ "sinh(1/i)^2" "sinh(i)cosh(1/i)" "sinh(i)sinh(1/i)" "sin(i)sinh(i)" \ "sin(i)cosh(i)" "sin(i)^2*sinh(i)^2" "sin(i)e^i" "cos(i)e^i" \ "sinh(i)e^i" "cosh(i)e^i" "sin(i)log(i)" "cos(i)log(i)" "sinh(i)log(i)" \ "cosh(i)log(i)" \ "e^(i^2)" "e^(1/(i^2))" "abs(i)" "round(i)" "trunc(i)" \ "ceil(i)" "floor(i)" "i/log(i)" "log(i)/i" "(e^i)/i" "(e^(1/i))/i" \ "(e^(i^2))/i" "(e^(1/(i^2))/i" "i*e^(i^2)" "i*e^(1/(i^2))" \ "e^(-i^2)" "e^(-1/(i^2))" "(e^(-i^2))/i" "(e^(-1/(i^2))/i" \ "i*e^(-i^2)" "i*e^(-1/(i^2))" "log(i) B" "log(log(i)) B" "sin(i^power)" default = 0 hint = "This function can warp the initial value of imag(z) before input to \ the 'Z Initialization' function. For 'i^power' set param 'FrontEndImag \ Power'" visible = @showmodulators endparam param ifpower caption = "FrontEndImag Power" default = 4.0 hint = "Imag(z) exponent if param 'FrontEndImag Warp' is set to 'i^power'" visible = ((@imagfront == "i^power") || (@imagfront == "sin(i^power)")) && @showmodulators endparam param ifscale caption = "Imag(z) PreScale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ iterate z before warping or initialization" visible = @showmodulators endparam param ifperturb caption = "Perturb FrontEndImag?" default = FALSE hint = "If enabled, then 'FrontEndImag Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'FrontEndImag Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@imagfront != "i") && @showmodulators endparam param ifblend caption = "FrontEndImag Blend" default = 0.1 hint = "If 'Perturb FrontEndImag' is enabled, then this sets the fraction \ of 'FrontEndImag Warp' that is mixed in with the original imag(a). \ Inactive if 'Perturb FrontEndImag' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @ifperturb && (@imagfront != "i") && @showmodulators endparam param ifpostscale caption = "Imag(z) PostScale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ iterate z before warping or initialization" visible = @showmodulators && @imagfront != 0 endparam param realback caption = "BackEndReal Warp" enum = "r" "1/r" "r^2" "1/r^2" "log(r)" "e^r" "r^r" "sin(r)" "cos(r)" \ "tan(r)" "asin(r)" "acos(r)" "atan(r)" "sinh(r)" "cosh(r)" "tanh(r)" \ "asinh(r)" "acosh(r)" "atanh(r)" "log(1/r)" "log(log(r))" "e^-r" \ "e^(1/r)" "r^-r" "sin(r)^2" "cos(r)^2" "tan(r)^2" "cot(r)" "sec(r)" \ "csc(r)" "cot(r)^2" "sec(r)^2" "csc(r)^2" "r^r^r" "1/r^r^r" "log(-r)" \ "1/log(r)" "rlog(r)" "sin(r)/r" "cos(r)/r" "sin(r)*cos(r)" "sin(r^2)" \ "e^(-1/r)" "re^r" "re^-r" "re^(1/r)" "re^(-1/r)" "r^3" "1/r^3" \ "acot(r)" "asec(r)" "acsc(r)" "tan(r)/r" "cot(r)/r" "sec(r)/r" \ "csc(r)/r" "rsin(r)" "rcos(r)" "rtan(r)" "rcot(r)" "rsec(r)" "rcsc(r)" \ "sin(1/r)" "cos(1/r)" "tan(1/r)" "cot(1/r)" "sec(1/r)" "csc(1/r)" \ "cotanh(r)" "sech(r)" "cosech(r)" "acoth(r)" "asech(r)" "acosech(r)" "r^power" \ "sinh(r)^2" "cosh(r)^2" "tanh(r)^2" "cotanh(r)^2" \ "sech(r)^2" "cosech(r)^2" "sinh(1/r)" "cosh(1/r)" "tanh(1/r)" \ "cotanh(1/r)" "sech(1/r)" "cosech(1/r)" "sin(r)tan(r)" "sinh(r)tanh(r)" \ "sinh(r)cosh(r)" "sinh(r)^2*cosh(r)^2" "sin(r)^2*cos(r)^2" \ "sin(1/r)*cos(1/r)" "sin(1/r)^2" "sin(r)cos(1/r)" "sin(r)sin(1/r)" \ "log(r)^2" "sin(r)sin(2r)" "e^2r" "e^-2r" "sinh(1/r)cosh(1/r)" \ "sinh(1/r)^2" "sinh(r)cosh(1/r)" "sinh(r)sinh(1/r)" "sin(r)sinh(r)" \ "sin(r)cosh(r)" "sin(r)^2*sinh(r)^2" "sin(r)e^r" "cos(r)e^r" \ "sinh(r)e^r" "cosh(r)e^r" "sin(r)log(r)" "cos(r)log(r)" "sinh(r)log(r)" \ "cosh(r)log(r)" \ "e^(r^2)" "e^(1/(r^2))" "abs(r)" "round(r)" "trunc(r)" \ "ceil(r)" "floor(r)" "r/log(r)" "log(r)/r" "(e^r)/r" "(e^(1/r))/r" \ "(e^(r^2))/r" "(e^(1/(r^2))/r" "r*e^(r^2)" "r*e^(1/(r^2))" \ "e^(-r^2)" "e^(-1/(r^2))" "(e^(-r^2))/r" "(e^(-1/(r^2))/r" \ "r*e^(-r^2)" "r*e^(-1/(r^2))" "log(r) B" "log(log(r)) B" "sin(r^power)" default = 0 hint = "This function can warp the final value of real(trap) before testing for \ trapping by the 'Trap What?' function. For 'r^power' set param 'BackEndReal \ Power'. Functions after 'Trap Transmute'" visible = @showmodulators endparam param rbpower caption = "BackEndReal Power" default = 4.0 hint = "Real(trap) exponent if param 'BackEndReal Warp' is set to 'r^power'" visible = ((@realback == "r^power") || (@realback == "sin(r^power)")) && @showmodulators endparam param rbscale caption = "Real(t) PreScale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ trap point t before warping (but after transmutation)" visible = @showmodulators endparam param rbperturb caption = "Perturb BackEndReal?" default = FALSE hint = "If enabled, then 'BackEndReal Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'BackEndReal Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@realback != "r") && @showmodulators endparam param rbblend caption = "BackEndReal Blend" default = 0.1 hint = "If 'Perturb BackEndReal' is enabled, then this sets the fraction \ of 'BackEndReal Warp' that is mixed in with the original real(trap). \ Inactive if 'Perturb BackEndReal' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @rbperturb &&(@realback != "r") && @showmodulators endparam param rbpostscale caption = "Real(t) PostScale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ trap point t before warping (but after transmutation)" visible = @showmodulators && @realback != 0 endparam param imagback caption = "BackEndImag Warp" enum = "i" "1/i" "i^2" "1/i^2" "log(i)" "e^i" "i^i" "sin(i)" "cos(i)" \ "tan(i)" "asin(i)" "acos(i)" "atan(i)" "sinh(i)" "cosh(i)" "tanh(i)" \ "asinh(i)" "acosh(i)" "atanh(i)" "log(1/i)" "log(log(i))" "e^-i" \ "e^(1/i)" "i^-i" "sin(i)^2" "cos(i)^2" "tan(i)^2" "cot(i)" "sec(i)" \ "csc(i)" "cot(i)^2" "sec(i)^2" "csc(i)^2" "i^i^i" "1/i^i^i" "log(-i)" \ "1/log(i)" "ilog(i)" "sin(i)/i" "cos(i)/i" "sin(i)*cos(i)" "sin(i^2)" \ "e^(-1/i)" "ie^i" "ie^-i" "ie^(1/i)" "ie^(-1/i)" "i^3" "1/i^3" \ "acot(i)" "asec(i)" "acsc(i)" "tan(i)/i" "cot(i)/i" "sec(i)/i" \ "csc(i)/i" "isin(i)" "icos(i)" "itan(i)" "icot(i)" "isec(i)" "icsc(i)" \ "sin(1/i)" "cos(1/i)" "tan(1/i)" "cot(1/i)" "sec(1/i)" "csc(1/i)" \ "cotanh(i)" "sech(i)" "cosech(i)" "acoth(i)" "asech(i)" "acosech(i)" "i^power" \ "sinh(i)^2" "cosh(i)^2" "tanh(i)^2" "cotanh(i)^2" \ "sech(i)^2" "cosech(i)^2" "sinh(1/i)" "cosh(1/i)" "tanh(1/i)" \ "cotanh(1/i)" "sech(1/i)" "cosech(1/i)" "sin(i)tan(i)" "sinh(i)tanh(i)" \ "sinh(i)cosh(i)" "sinh(i)^2*cosh(i)^2" "sin(i)^2*cos(i)^2" \ "sin(1/i)*cos(1/i)" "sin(1/i)^2" "sin(i)cos(1/i)" "sin(i)sin(1/i)" \ "log(i)^2" "sin(i)sin(2i)" "e^2i" "e^-2i" "sinh(1/i)cosh(1/i)" \ "sinh(1/i)^2" "sinh(i)cosh(1/i)" "sinh(i)sinh(1/i)" "sin(i)sinh(i)" \ "sin(i)cosh(i)" "sin(i)^2*sinh(i)^2" "sin(i)e^i" "cos(i)e^i" \ "sinh(i)e^i" "cosh(i)e^i" "sin(i)log(i)" "cos(i)log(i)" "sinh(i)log(i)" \ "cosh(i)log(i)" \ "e^(i^2)" "e^(1/(i^2))" "abs(i)" "round(i)" "trunc(i)" \ "ceil(i)" "floor(i)" "i/log(i)" "log(i)/i" "(e^i)/i" "(e^(1/i))/i" \ "(e^(i^2))/i" "(e^(1/(i^2))/i" "i*e^(i^2)" "i*e^(1/(i^2))" \ "e^(-i^2)" "e^(-1/(i^2))" "(e^(-i^2))/i" "(e^(-1/(i^2))/i" \ "i*e^(-i^2)" "i*e^(-1/(i^2))" "log(i) B" "log(log(i)) B" "sin(i^power)" default = 0 hint = "This function can warp the final value of imag(trap) before testing for \ trapping by the 'Trap What?' function. For 'i^power' set param 'BackEndImag \ Power'. Functions after 'Trap Transmute'" visible = @showmodulators endparam param ibpower caption = "BackEndImag Power" default = 4.0 hint = "Imag(trap) exponent if param 'BackEndImag Warp' is set to 'i^power'" visible = ((@imagback == "i^power") || (@imagback == "sin(i^power)")) && @showmodulators endparam param ibscale caption = "Imag(t) PreScale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ trap point t before warping (but after transmutation)" visible = @showmodulators endparam param ibperturb caption = "Perturb BackEndImag?" default = FALSE hint = "If enabled, then 'BackEndImag Warp' is only partially \ blended into the original value, instead of replacing it (less \ warping); param 'BackEndImag Blend' sets the fraction to be blended \ in (0=no perturbation, 1=full perturbation)" visible = (@imagback != "i") && @showmodulators endparam param ibblend caption = "BackEndImag Blend" default = 0.1 hint = "If 'Perturb BackEndImag' is enabled, then this sets the fraction \ of 'BackEndImag Warp' that is mixed in with the original imag(trap). \ Inactive if 'Perturb BackEndImag' is disabled. 0=no perturbation, \ 1=full perturbation" visible = @ibperturb && (@imagback != "i") && @showmodulators endparam param ibpostscale caption = "Imag(t) PostScale" default = 1.0 hint = "These params can be used to scale the individual parts of the \ trap point t before warping (but after transmutation)" visible = @showmodulators && @imagback != 0 endparam param showmodulators caption = "Show Modulator Funcs?" $ifdef VER40 default = TRUE $else default = FALSE $endif hint = "The order of the modulator functions is as follows: The two 'Front End' \ functions operate on the real and imaginary parts of the current z iterate; \ then the 'Z Initialization' function transforms the front-end modified z; \ after trapping, the trap point can be further altered with 'Trap Transmute'; \ and finally, the transmuted trap real and imaginary components can be \ modulated with the two 'Back End' functions" endparam heading caption = "Color Settings" $ifdef VER40 expanded = FALSE $endif endheading param softendistance caption = "Soften Distance?" default = FALSE hint = "If enabled, coloring by distance is modified to smear out distances that \ fall very close to the trap. The effect can be adjusted with the two \ parameters 'Soft Distance' and 'Soft Exponent'. Designed for use with the \ 'distance', 'mod distance', or 'flavor' 'Color By' modes, but can be used \ with any of the modes with less predictable results" visible = @showcolors endparam param softdistamt caption = "Soft Distance" default = 0.05 min = 1e-10 hint = "If 'Soften Distance' is enabled, this value fixes the minimum distance \ at which the effect is active. Useful values are generally very small. \ The larger the value, the greater the smearing" visible = @showcolors && @softendistance endparam param softdistpwr caption = "Soft Exponent" default = 0.5 min = 1e-10 hint = "If 'Soften Distance' is enabled, this exponent sets the rate that the \ gradient changes as distance from the trap increases. For slower fading, \ decrease this value" visible = @showcolors && @softendistance endparam param softaccel caption = "Soft Acceleration" default = 1.0 hint = "If 'Soften Distance' is enabled, this factor sets the rate that the \ 'Soft Exponent' grows as distance from the trap increases. For slower fading, \ decrease this value" visible = @showcolors && @softendistance endparam param enablestretch caption = "Stretch Color Range?" default = FALSE hint = "If enabled, the color range can be expanded or contracted by setting \ associated parameters. Stretching occurs prior to Perlin noise, texture, \ offset, or other color modifications, but after softening" visible = @showcolors endparam param stretchtype caption = "Color Stretch Type" enum = "linear" "linear2" "exponential" "quadratic" "quadratic2" "tanh" default = 1 hint = "If 'Stretch Color Range' is enabled, \ then this parameter determines the style of gradient stretching" visible = @showcolors && @enablestretch endparam param stretchcolor caption = "Linear Color Stretch" default = 2.0 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'linear', \ then this parameter determines the amount of gradient stretching \ (fixed linear stretch)" visible = @showcolors && @enablestretch && (@stretchtype == 0) endparam param stretchlinear21 caption = "Linear2 1st Point" default = 0.003 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'linear2', \ then this parameter is stretched to the value of param 'Linear2 2nd Point' \ (zero fixed, point 1 stretched/compressed to point 2)" visible = @showcolors && @enablestretch && (@stretchtype == 1) endparam param stretchlinear22 caption = "Linear2 2nd Point" default = 0.1 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'linear2', \ then parameter 'Linear2 1st Point' is stretched to this value \ (zero fixed, point 1 stretched/compressed to point 2)" visible = @showcolors && @enablestretch && (@stretchtype == 1) endparam param stretchdelta caption = "Exponential Stretch Delta" default = 0.02 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'exponential', \ then this parameter sets the width near zero subject to exponential stretching \ (zero fixed, this value stretched/compressed to point 2)" visible = @showcolors && @enablestretch && (@stretchtype == 2) endparam param stretchamount caption = "Exponential Stretch Amount" default = 0.3 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'exponential', \ then this parameter sets the degree of stretching \ (zero fixed, point 1 stretched/compressed to this value)" visible = @showcolors && @enablestretch && (@stretchtype == 2) endparam param stretchquad11 caption = "Quadratic 1st Point" default = 0.003 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'quadratic', \ then this value is stretched to the value of param 'Quadratic 2nd Point' \ (0.0 and point 3 fixed, this value stretched/compressed to point 2)" visible = @showcolors && @enablestretch && (@stretchtype == 3) endparam param stretchquad12 caption = "Quadratic 2nd Point" default = 0.1 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'quadratic', \ then parameter 'Quadratic 1st Point' is stretched to this value \ (0.0 and point 3 fixed, point 1 stretched/compressed to this value)" visible = @showcolors && @enablestretch && (@stretchtype == 3) endparam param stretchquad13 caption = "Quadratic 3rd Point" default = 2.0 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'quadratic', \ then this value remains constant under the stretch \ (0.0 and this point fixed, point 1 stretched/compressed to point 2)" visible = @showcolors && @enablestretch && (@stretchtype == 3) endparam param stretchquad21 caption = "Quadratic2 1st Point" default = 0.003 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'quadratic2', \ then this value is stretched to the value of param 'Quadratic2 2nd Point' \ (0.0 and 1.0 fixed, this value stretched/compressed to point 2)" visible = @showcolors && @enablestretch && (@stretchtype == 4) endparam param stretchquad22 caption = "Quadratic2 2nd Point" default = 0.1 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'quadratic2', \ then parameter 'Quadratic2 1st Point' is stretched to this value \ (0.0 and 1.0 fixed, point 1 stretched/compressed to this value)" visible = @showcolors && @enablestretch && (@stretchtype == 4) endparam param stretchtanhfixedpt caption = "Tanh Fixed Point" default = 0.4 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'tanh', \ then this parameter sets the value that is fixed \ (not subject to stretching/compression)" visible = @showcolors && @enablestretch && (@stretchtype == 5) endparam param stretchtanhamount caption = "Tanh Stretch Amount" default = 2.0 hint = "If 'Stretch Color Range' is enabled and 'Stretch Type' is set to 'tanh', \ then this parameter sets the amount of the stretching" visible = @showcolors && @enablestretch && (@stretchtype == 5) endparam param filledtrap caption = "Fill Trap?" default = FALSE hint = "If enabled, coloring by distance is modified so that some negative values \ are reset to zero" visible = @showcolors && ( (@colorby == 0) || (@colorby == 1) ) endparam param maxsoften caption = "Maxima Smoothing" default = 0.05 min = 1.0e-10 hint = "This parameter smoothes out the coloring when one of the maxima \ 'Trap What' values are chosen. Smaller is smoother" visible = @showcolors && ( (@whattotrap == 1) || (@whattotrap == 5) || \ (@whattotrap == 6) || (@whattotrap == 7) || (@whattotrap > 15) ) && \ ( (@colorby != 4) && (@colorby != 5) && (@colorby != 6) && \ (@colorby != 7) && (@colorby < 12) ) endparam param ranges caption = "Color Ranges" default = 1 min = 1 hint = "Applies different parts of the color palette to various portions of \ the image" visible = @showcolors endparam param maskranges caption = "Mask Color Ranges?" default = FALSE hint = "If enabled, then param 'Mask What Range?' and 'Mask Range If' can be \ set to mask the appropriate pixels. Only valid if 'Color Ranges' > 1" visible = (@ranges > 1) && @showcolors endparam param whatrange caption = "Mask What Range?" enum = "<=" ">=" "=" "not =" "between" "outside" default = 0 hint = "If 'Mask Color Ranges?' is turned on, then pixels falling in this color \ range will be visible; others will be set to the solid color" visible = @maskranges && @showcolors && (@ranges > 1) endparam param rangemin caption = "Range Value/Minimum" default = 1 min = 1 hint = "This is the range value that will be affected. If two limits are \ required, then this value is the lower (minimum) one. Use '1' for \ the first range" visible = @maskranges && @showcolors && (@ranges > 1) endparam param rangemax caption = "Range Maximum" default = 2 min = 1 hint = "When two limits are required, this is the higher (maximum) range value \ that will be affected" visible = @maskranges && @showcolors && (@ranges > 1) && ((@whatrange == 4) || (@whatrange == 5)) endparam param @colorwarp caption = "Color Warp Factor" enum = "c" "1/c" "c^2" "1/c^2" "c^3" "1/c^3" "c^power" "c^c" "c^-c" \ "c^c^c" "1/c^c^c" "log(c)" "log(1/c)" "log(log(c))" "log(c)^2" \ "log(-c)" "1/log(c)" "clog(c)" "c/log(c)" "log(c)/c" "log(c) B" \ "log(log(c)) B" \ "sin(c)" "cos(c)" "tan(c)" "sin(c)^2" "cos(c)^2" "tan(c)^2" \ "sin(c^2)""sin(c)/c" "cos(c)/c" "tan(c)/c" "sin(c)*cos(c)" \ "asin(c)" "acos(c)" "atan(c)" "cot(c)" "sec(c)" "csc(c)" \ "cot(c)^2" "sec(c)^2" "csc(c)^2" \ "acot(c)" "asec(c)" "acsc(c)" "cot(c)/c" "sec(c)/c" \ "csc(c)/c" "csin(c)" "ccos(c)" "ctan(c)" "ccot(c)" "csec(c)" "ccsc(c)" \ "sin(1/c)" "cos(1/c)" "tan(1/c)" "cot(1/c)" "sec(1/c)" "csc(1/c)" \ "e^c" "e^-c" "e^(1/c)" "e^(-1/c)" "e^2c" "e^-2c" \ "ce^c" "ce^-c" "ce^(1/c)" "ce^(-1/c)" "e^(c^2)" "e^(1/(c^2))" \ "sinh(c)" "cosh(c)" "tanh(c)" "asinh(c)" "acosh(c)" "atanh(c)" \ "cotanh(c)" "sech(c)" "cosech(c)" "acoth(c)" "asech(c)" "acosech(c)" \ "sinh(c)^2" "cosh(c)^2" "tanh(c)^2" "cotanh(c)^2" \ "sech(c)^2" "cosech(c)^2" "sinh(1/c)" "cosh(1/c)" "tanh(1/c)" \ "cotanh(1/c)" "sech(1/c)" "cosech(1/c)" "abs(c)" "round(c)" "trunc(c)" \ "ceil(c)" "floor(c)" "sin(c)tan(c)" "sinh(c)tanh(c)" \ "sinh(c)cosh(c)" "sinh(c)^2*cosh(c)^2" "sin(c)^2*cos(c)^2" \ "sin(1/c)*cos(1/c)" "sin(1/c)^2" "sin(c)cos(1/c)" "sin(c)sin(1/c)" \ "sin(c)sin(2c)" "sinh(1/c)cosh(1/c)" \ "sinh(1/c)^2" "sinh(c)cosh(1/c)" "sinh(c)sinh(1/c)" "sin(c)sinh(c)" \ "sin(c)cosh(c)" "sin(c)^2*sinh(c)^2" "sin(c)e^c" "cos(c)e^c" \ "sinh(c)e^c" "cosh(c)e^c" "sin(c)log(c)" "cos(c)log(c)" "sinh(c)log(c)" \ "cosh(c)log(c)" "(e^c)/c" "(e^(1/c))/c" "(e^(c^2))/c" "(e^(1/(c^2)))/c" \ "c*e^(c^2)" "c*e^(1/(c^2))" "e^(-c^2)" "e^(-1/(c^2))" "(e^(-c^2))/c" \ "(e^(-1/(c^2))/c" "c*e^(-c^2)" "c*e^(1/(-c^2))" default = 0 hint = "The final color index can be warped by this function; default is \ 'c' (no change in color index)" visible = @showcolors endparam param cpower caption = "Color Power" default = 0.14285714285714285714285714285714 hint = "Color index exponent if param 'Color Warp Factor' is set to 'c^power'" visible = (@colorwarp == "c^power") && @showcolors endparam param absolutewarp caption = "Warp Absolute Value?" default = FALSE hint = "If enabled, then the value used for the 'Color Warp Factor' is the \ absolute value of the normal input." visible = @showcolors endparam param coloruntrappedregion caption = "Color Untrapped?" default = FALSE hint = "Normaly, pixels that are never trapped are set to the solid color. \ Enabling this option allows those regions to be set to any gradient color \ by setting parameter 'Untrapped Color'. This effect is usually only visible \ at low magnifications" visible = @showcolors endparam param untrappedcolor caption = "Untrapped Color" default = 0.0 min = 0.0 hint = "If param 'Color Untrapped?' is enabled, then this parameter defines which \ gradient color will be used to color untrapped pixels. The normal linear \ range is 0.0-1.0, but higher values are allowed in case a nonlinear transfer \ function is being used" visible = @coloruntrappedregion && @showcolors endparam param offsetcolor caption = "Offset Color Minimium?" default = FALSE hint = "If enabled, then the minimum color value of the trapped range is offset in \ the gradient by the amount set in parameter 'Offset Amount'" visible = @showcolors endparam param coloroffset caption = "Offset Amount" default = 0.1 min = -1.0 max = 1.0 hint = "If 'Offset Color Minimum' is enabled, then the minimum color value of the \ trapped range is offset by this amount" visible = @showcolors && @offsetcolor endparam param offsetcolor2 caption = "Offset Color Type2?" default = FALSE hint = "If enabled, then the minimum color value of the trapped range is offset in \ the gradient by the amount set in parameter 'Offset Amount2'" visible = @showcolors endparam param coloroffset2 caption = "Offset Amount2" default = 0.1 min = -1.0 max = 1.0 hint = "If 'Offset Color Type2' is enabled, then the minimum color value of the \ trapped range is offset by this amount" visible = @showcolors && @offsetcolor2 endparam param showcolors caption = "Show Color Params?" $ifdef VER40 default = TRUE $else default = FALSE $endif endparam heading caption = "History Settings" $ifdef VER40 expanded = FALSE $endif endheading param history caption = "Enable History?" default = FALSE hint = "If enabled, previous iterations of z are also used to \ determine the trap. If enabled, it may also be of interest \ to set param 'Iterations to Skip' (in the 'Modifiers' section) \ to a non-zero value. Since the history array \ (containing values of previous z iterates) fills up regardless of the \ setting of 'Iterations to Skip', a non-zero value for 'Iterations to \ Skip' allows the history array to initialize with interesting values \ before trapping begins" visible = @showhistory endparam param hismode caption = "History Mode" default = 0 enum = "original" "alternative" "both" hint = "Determines whether history modifications are carried out before (original) \ or after (alternative) other #z initializations are performed. If no other \ #z initializations are enabled (such as modifiers 'Z Variants', 'Z Initialization', \ or any of the Z, front end real, or front end imag modulator functions), \ then 'original' mode will be the same as 'alternative' mode" visible = @history && @showhistory endparam param histype caption = "History Type" default = 1 min = 0 max = 370 hint = "Determines how previous z's are used for trapping, for 'History Mode' = \ 'original'. Range is an integer from 0 (no previous z used) to 370. \ Types 1-324 recur in sets of 36 (types 1-36 use previous z, 37-72 use 2nd \ previous z, etc). Types 325-370 use three generations of z" visible = @history && @showhistory && (@hismode == "original" || @hismode == "both") endparam param histype1index caption = "History 1 Index" default = 0 min = 0 max = 9 hint = "Determines how previous z's are used for trapping, for 'History Mode' = \ 'original'. Range is an integer from 0 to 9" visible = @history && @showhistory && (@hismode == "original" || @hismode == "both") endparam param zmixmatch1 caption = "Z MixMatch1" default = 0 min = 0 max = 1 hint = "Affects whether #z or modified z is used in the original history procedure. Results \ may not be apparent unless some of the Z modifiers, Z initialization, or front \ end modulator functions are also turned on. Options are 0 (#z) or 1 (modified z)" visible = @history && @showhistory && (@hismode == "original" || @hismode == "both") endparam param zmixmatch2 caption = "Z MixMatch2" default = 0 min = 0 max = 1 hint = "Affects whether #z or modified z is used in the original history procedure. Results \ may not be apparent unless some of the Z modifiers, Z initialization, or front \ end modulator functions are also turned on. Options are 0 (#z) or 1 (modified z)" visible = @history && @showhistory && (@hismode == "original" || @hismode == "both") endparam param zhist1blend caption = "Blend Original?" default = FALSE hint = "If 'History Mode' is set to 'original' or 'both', then enabling this option \ mixes in a portion of the unmodified #z with the history-modified z. The fraction \ of modified z blended in is set by parameter 'History Fraction'" visible = @history && @showhistory && (@hismode == "original" || @hismode == "both") endparam param zhist1fraction caption = "History Fraction" default = 0.1 hint = "If 'History Mode' is set to 'original' or 'both' and 'Blend Original' is enabled, \ then this is the fraction of modified z mixed in with the history-unmodified #z" visible = @history && @showhistory && (@hismode == "original" || @hismode == "both") && \ @zhist1blend endparam param histype2 caption = "History Type 2" default = 1 min = 0 max = 370 hint = "Determines how previous z's are used for trapping, for 'History Mode' = \ 'alternative'. Range is an integer from 0 (no previous z used) to 370. \ Types 1-324 recur in sets of 36 (types 1-36 use previous z, 37-72 use 2nd \ previous z, etc). Types 325-370 use three generations of z" visible = @history && @showhistory && (@hismode == "alternative" || @hismode == "both") endparam param histype2index caption = "History 2 Index" default = 0 min = 0 max = 9 hint = "Determines how previous z's are used for trapping, for 'History Mode' = \ 'alternative'. Range is an integer from 0 to 9" visible = @history && @showhistory && (@hismode == "alternative" || @hismode == "both") endparam param zmixmatch3 caption = "Z MixMatch3" default = 0 min = 0 max = 1 hint = "Affects whether #z or modified z is used in the alternative history procedure. Results \ may not be apparent unless some of the Z modifiers, Z initialization, or front \ end modulator functions are also turned on. Options are 0 (#z) or 1 (modified z)" visible = @history && @showhistory && (@hismode == "alternative" || @hismode == "both") endparam param zmixmatch4 caption = "Z MixMatch4" default = 1 min = 0 max = 1 hint = "Affects whether #z or modified z is used in the alternative history procedure. Results \ may not be apparent unless some of the Z modifiers, Z initialization, or front \ end modulator functions are also turned on. Options are 0 (#z) or 1 (modified z)" visible = @history && @showhistory && (@hismode == "alternative" || @hismode == "both") endparam param zhist2blend caption = "Blend Alternative?" default = FALSE hint = "If 'History Mode' is set to 'alternative' or 'both', then enabling this option \ mixes in a portion of the unmodified #z with the alternatively history-modified z. \ The fraction of modified z blended in is set by parameter 'History2 Fraction'" visible = @history && @showhistory && (@hismode == "alternative" || @hismode == "both") endparam param zhist2fraction caption = "History2 Fraction" default = 0.1 hint = "If 'History Mode' is set to 'alternative' or 'both' and 'Blend Alternative' is enabled, \ then this is the fraction of modified z mixed in with the history-unmodified #z" visible = @history && @showhistory && (@hismode == "alternative" || @hismode == "both") && \ @zhist2blend endparam param fixaltbug caption = "Fix Alt Bug?" default = TRUE hint = "Early versions of this formula with 'History Mode' set to 'alternative' contained \ a bug, which has been corrected. If you used that setting in an image and have compatibility \ problems, disable this parameter to get the original version of Trapestry" visible = @history && @showhistory && @hismode == "alternative" endparam param thistory caption = "Enable Trap History?" default = FALSE hint = "If enabled, previous generations of the trap point are also used to \ determine the new, current iteration trap point. Because of the \ implementation, the 'Trap History' effect is often more effective if \ one of the other trap modifiers is also turned on, such as 'Trap Variants', \ 'T Operator', 'T Waviness', or the trap or back end modulator functions" visible = @showhistory endparam param thismode caption = "Trap Hist Mode" default = 0 enum = "original" "alternative" "both" hint = "Determines whether trap history modifications are carried out before (alternative) \ or after (original) other trap modifiers are performed. If no other \ trap options are enabled (such as trap operator modifiers, 'Trap Variants', 'Trap Transmute', \ or any of the back end real or back end imag modulator functions), \ then 'original' mode will be the same as 'alternative' mode" visible = @thistory && @showhistory endparam param thistype caption = "Trap History Type" default = 1 min = 0 max = 370 hint = "Determines how previous trap generations are used to determine the new trap point \ for 'Trap Hist Mode' = 'original'. Range is an integer from 0 (no previous trap \ point used) to 370. \ Types 1-324 recur in sets of 36 (types 1-36 use previous trap, 37-72 use 2nd \ previous trap, etc). Types 325-370 use three generations of trapped point" visible = @thistory && @showhistory && ((@thismode == "original") || (@thismode == "both")) endparam param traphisindex caption = "Trap History Index" default = 0 min = 0 max = 9 hint = "Determines how previous trap generations are used to determine the new trap point \ for 'Trap Hist Mode' = 'original'. Range is an integer from 0 to 9" visible = @thistory && @showhistory && ((@thismode == "original") || (@thismode == "both")) endparam param trapmixmatch1 caption = "T MixMatch1" default = 1 min = 0 max = 1 hint = "Affects whether unmodified or modified trap point is used in the original history procedure. Results \ may not be apparent unless some of the trap modifiers, 'Trap Transmute', or back \ end modulator functions are also turned on. Options are 0 or 1" visible = @thistory && @showhistory && (@thismode == "original" || @thismode == "both") endparam param trapmixmatch2 caption = "T MixMatch2" default = 0 min = 0 max = 1 hint = "Affects whether unmodified or modified trap point is used in the original history procedure. Results \ may not be apparent unless some of the trap modifiers, 'Trap Transmute', or back \ end modulator functions are also turned on. Options are 0 or 1" visible = @thistory && @showhistory && (@thismode == "original" || @thismode == "both") endparam param thist1blend caption = "Blend TrapOriginal?" default = FALSE hint = "If 'Trap Hist Mode' is set to 'original' or 'both', then enabling this option \ mixes in a portion of the unmodified trap point with the history-modified trap. The fraction \ of modified trap blended in is set by parameter 'Trap Hist Fraction'" visible = @thistory && @showhistory && (@thismode == "original" || @thismode == "both") endparam param thist1fraction caption = "Trap Hist Fraction" default = 0.1 hint = "If 'Trap Hist Mode' is set to 'original' or 'both' and 'Blend TrapOriginal' is enabled, \ then this is the fraction of history-modified trap mixed in with the history-unmodified trap \ point" visible = @thistory && @showhistory && (@thismode == "original" || @thismode == "both") && \ @thist1blend endparam param thistype2 caption = "T Hist Type2" default = 1 min = 0 max = 370 hint = "Determines how previous trap generations are used to determine the new trap point \ for 'Trap Hist Mode' = 'alternative'. Range is an integer from 0 (no previous trap \ point used) to 370. \ Types 1-324 recur in sets of 36 (types 1-36 use previous trap, 37-72 use 2nd \ previous trap, etc). Types 325-370 use three generations of trapped point" visible = @thistory && @showhistory && ((@thismode == "alternative") || (@thismode == "both")) endparam param traphisindex2 caption = "T Hist Index2" default = 0 min = 0 max = 9 hint = "Determines how previous trap generations are used to determine the new trap point \ for 'Trap Hist Mode' = 'alternative'. Range is an integer from 0 to 9" visible = @thistory && @showhistory && ((@thismode == "alternative") || (@thismode == "both")) endparam param trapmixmatch3 caption = "T MixMatch3" default = 0 min = 0 max = 1 hint = "Affects whether unmodified or modified trap point is used in the alternative history procedure. Results \ may not be apparent unless some of the trap modifiers, 'Trap Transmute', or back \ end modulator functions are also turned on. Options are 0 or 1" visible = @thistory && @showhistory && (@thismode == "alternative" || @thismode == "both") endparam param trapmixmatch4 caption = "T MixMatch4" default = 1 min = 0 max = 1 hint = "Affects whether unmodified or modified trap point is used in the alternative history procedure. Results \ may not be apparent unless some of the trap modifiers, 'Trap Transmute', or back \ end modulator functions are also turned on. Options are 0 or 1" visible = @thistory && @showhistory && (@thismode == "alternative" || @thismode == "both") endparam param thist2blend caption = "Blend TrapAlternative?" default = FALSE hint = "If 'Trap Hist Mode' is set to 'alternative' or 'both', then enabling this option \ mixes in a portion of the unmodified trap point with the history-modified trap. The fraction \ of modified trap blended in is set by parameter 'Trap Hist2 Fraction'" visible = @thistory && @showhistory && (@thismode == "alternative" || @thismode == "both") endparam param thist2fraction caption = "Trap Hist2 Fraction" default = 0.1 hint = "If 'Trap Hist Mode' is set to 'alternative' or 'both' and 'Blend TrapAlternative' is enabled, \ then this is the fraction of history-modified trap mixed in with the history-unmodified trap \ point" visible = @thistory && @showhistory && (@thismode == "alternative" || @thismode == "both") && \ @thist2blend endparam param showhistory caption = "Show History Params?" hint = "The history-related parameters control the mixing in of previous generations \ of #z before or during the trapping of the current #z iterate" $ifdef VER40 default = TRUE $else default = FALSE $endif endparam heading caption = "Attractor Settings" $ifdef VER40 expanded = FALSE $endif endheading param zattractor caption = "Enable Z Attractors" default = FALSE hint = "If enabled, then #z can be subjected to various attractor iterations prior \ to trapping. Z attractor modifications are executed after all other z \ transformations, but before angle and screwiness modifications" endparam param zattractmartin caption = "Martin Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to Martin attractor iterations" visible = @zattractor endparam param zmartiniters caption = "Martin Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of Martin attractor iterations of #z" visible = @zattractor && @zattractmartin endparam param zmartinparam caption = "Martin Z Parameter" default = 3.1415926535897932384626433832795 hint = "This parameter modulates the #z Martin attractor" visible = @zattractor && @zattractmartin endparam param zmartinscale caption = "Martin x,y Scale (z)" default = (5.0, 5.0) hint = "This parameter scales #z before the Martin iterations" visible = @zattractor && @zattractmartin endparam param blendzmartin caption = "Blend Z Martin?" default = FALSE hint = "If enabled, than the Martin attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractmartin endparam param zmartinfraction caption = "Martin Fraction" default = 0.1 hint = "If 'Blend Z Martin' is enabled, than this is the fraction of the Martin attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractmartin && @blendzmartin endparam param zattractcosmartin caption = "CosMartin Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to cosine Martin attractor iterations" visible = @zattractor endparam param zcosmartiniters caption = "CosMartin Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of cosine Martin attractor iterations of #z" visible = @zattractor && @zattractcosmartin endparam param zcosmartinparam caption = "CosMartin Z Parameter" default = 6.2012553360599640350952630134203 hint = "This parameter modulates the #z cosine Martin attractor" visible = @zattractor && @zattractcosmartin endparam param zcosmartinscale caption = "CosMartin x,y Scale (z)" default = (5.0, 5.0) hint = "This parameter scales #z before the cosine Martin iterations" visible = @zattractor && @zattractcosmartin endparam param blendzcosmartin caption = "Blend Z Cosmartin?" default = FALSE hint = "If enabled, than the cosmartin attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractcosmartin endparam param zcosmartinfraction caption = "Cosmartin Fraction" default = 0.1 hint = "If 'Blend Z Cosmartin' is enabled, than this is the fraction of the cosmartin attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractcosmartin && @blendzcosmartin endparam param zattractpopcorn caption = "Popcorn Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to popcorn attractor iterations" visible = @zattractor endparam param zpopcorniters caption = "Popcorn Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of popcorn attractor iterations of #z" visible = @zattractor && @zattractpopcorn endparam param zpopcornparam1 caption = "1st,3rd Popcorn Parameters (Z)" default = (0.05, 0.05) hint = "This parameter modulates the #z popcorn attractor" visible = @zattractor && @zattractpopcorn endparam param zpopcornparam2 caption = "2nd, 4th Popcorn Parameters (Z)" default = (3.0,3.0) hint = "This parameter modulates the #z popcorn attractor" visible = @zattractor && @zattractpopcorn endparam param zpopcornscale caption = "Popcorn x,y Scale (z)" default = (1.0,1.0) hint = "This parameter scales #z before the popcorn iterations" visible = @zattractor && @zattractpopcorn endparam param blendzpopcorn caption = "Blend Z Popcorn?" default = FALSE hint = "If enabled, than the popcorn attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractpopcorn endparam param zpopcornfraction caption = "Popcorn Fraction" default = 0.1 hint = "If 'Blend Z Popcorn' is enabled, than this is the fraction of the popcorn attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractpopcorn && @blendzpopcorn endparam param zattractvine caption = "Vine Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to vine attractor iterations" visible = @zattractor endparam param zvineiters caption = "Vine Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of vine attractor iterations of #z" visible = @zattractor && @zattractvine endparam param zvineparam1 caption = "1st,3rd Vine Parameters (Z)" default = (0.1,0.1) hint = "This parameter modulates the #z vine attractor" visible = @zattractor && @zattractvine endparam param zvineparam2 caption = "2nd,4th Vine Parameters (Z)" default = (2.7182818284590452353602874713527,2.7182818284590452353602874713527) hint = "This parameter modulates the #z vine attractor" visible = @zattractor && @zattractvine endparam param zvinescale caption = "Vine x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the vine iterations" visible = @zattractor && @zattractvine endparam param blendzvine caption = "Blend Z Vine?" default = FALSE hint = "If enabled, than the vine attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractvine endparam param zvinefraction caption = "Vine Fraction" default = 0.1 hint = "If 'Blend Z Vine' is enabled, than this is the fraction of the vine attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractvine && @blendzvine endparam param zattractvine2 caption = "Vine2 Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to vine2 attractor iterations" visible = @zattractor endparam param zvine2iters caption = "Vine2 Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of vine2 attractor iterations of #z" visible = @zattractor && @zattractvine2 endparam param zvine2param1 caption = "1st,3rd Vine2 Parameters (Z)" default = (0.1,0.1) hint = "This parameter modulates the #z vine2 attractor" visible = @zattractor && @zattractvine2 endparam param zvine2param2 caption = "2nd,4th Vine2 Parameters (Z)" default = (2.7182818284590452353602874713527,2.7182818284590452353602874713527) hint = "This parameter modulates the #z vine2 attractor" visible = @zattractor && @zattractvine2 endparam param zvine2exp1 caption = "Vine2 Exponents (Z)" default = (2.0,2.0) hint = "These parameters are the powers used in the first & second vine2 attractor equations" visible = @zattractor && @zattractvine2 endparam param zvine2scale caption = "Vine2 x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the vine2 iterations" visible = @zattractor && @zattractvine2 endparam param blendzvine2 caption = "Blend Z Vine2?" default = FALSE hint = "If enabled, than the vine2 attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractvine2 endparam param zvine2fraction caption = "Vine2 Fraction" default = 0.1 hint = "If 'Blend Z Vine2' is enabled, than this is the fraction of the vine2 attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractvine2 && @blendzvine2 endparam param zattractquadruptwo caption = "Quadruptwo Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to quadruptwo attractor iterations" visible = @zattractor endparam param zquadruptwoiters caption = "Quadruptwo Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of quadruptwo attractor iterations of #z" visible = @zattractor && @zattractquadruptwo endparam param zquadruptwoparam1 caption = "Quadruptwo a,b Parameters (Z)" default = (1.0,1.0) hint = "This parameter modulates the #z quadruptwo attractor" visible = @zattractor && @zattractquadruptwo endparam param zquadruptwoparam2 caption = "Quadruptwo c,d Parameters (Z)" default = (1.0,2.0) hint = "This parameter modulates the #z quadruptwo attractor" visible = @zattractor && @zattractquadruptwo endparam param zquadruptwoscale caption = "Quadruptwo x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the quadruptwo iterations" visible = @zattractor && @zattractquadruptwo endparam param blendzquadruptwo caption = "Blend Z Quadruptwo?" default = FALSE hint = "If enabled, than the quadruptwo attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractquadruptwo endparam param zquadruptwofraction caption = "Quadruptwo Fraction" default = 0.1 hint = "If 'Blend Z Quadruptwo' is enabled, than this is the fraction of the quadruptwo attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractquadruptwo && @blendzquadruptwo endparam param zattractthreeply caption = "Threeply Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to threeply attractor iterations" visible = @zattractor endparam param zthreeplyiters caption = "Threeply Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of threeply attractor iterations of #z" visible = @zattractor && @zattractthreeply endparam param zthreeplyparam1 caption = "Threeply a,b Parameters (Z)" default = (1.0,1.0) hint = "This parameter modulates the #z threeply attractor" visible = @zattractor && @zattractthreeply endparam param zthreeplyparam2 caption = "Threeply c,d Parameters (Z)" default = (1.0,1.0) hint = "This parameter modulates the #z threeply attractor" visible = @zattractor && @zattractthreeply endparam param zthreeplyscale caption = "Threeply x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the threeply iterations" visible = @zattractor && @zattractthreeply endparam param blendzthreeply caption = "Blend Z Threeply?" default = FALSE hint = "If enabled, than the threeply attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractthreeply endparam param zthreeplyfraction caption = "Threeply Fraction" default = 0.1 hint = "If 'Blend Z Threeply' is enabled, than this is the fraction of the threeply attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractthreeply && @blendzthreeply endparam param zattracthenon caption = "Henon Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to henon attractor iterations" visible = @zattractor endparam param zhenoniters caption = "Henon Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of henon attractor iterations of #z" visible = @zattractor && @zattracthenon endparam param zhenonparam1 caption = "Henon a,b Parameters (Z)" default = (1.4,0.3) hint = "This parameter modulates the #z henon attractor" visible = @zattractor && @zattracthenon endparam param zhenonscale caption = "Henon x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the henon iterations" visible = @zattractor && @zattracthenon endparam param blendzhenon caption = "Blend Z Henon?" default = FALSE hint = "If enabled, than the henon attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattracthenon endparam param zhenonfraction caption = "Henon Fraction" default = 0.1 hint = "If 'Blend Z Henon' is enabled, than this is the fraction of the henon attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattracthenon && @blendzhenon endparam param zattracthopalong caption = "Hopalong Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to hopalong attractor iterations" visible = @zattractor endparam param zhopalongiters caption = "Hopalong Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of hopalong attractor iterations of #z" visible = @zattractor && @zattracthopalong endparam param zhopalongparam1 caption = "Hopalong a,b Parameters (Z)" default = (0.4,1.0) hint = "This parameter modulates the #z hopalong attractor" visible = @zattractor && @zattracthopalong endparam param zhopalongparam2 caption = "Hopalong c,d Parameters (Z)" default = (0.0,0.5) hint = "This parameter modulates the #z hopalong attractor" visible = @zattractor && @zattracthopalong endparam param zhopalongscale caption = "Hopalong x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the hopalong iterations" visible = @zattractor && @zattracthopalong endparam param blendzhopalong caption = "Blend Z Hopalong?" default = FALSE hint = "If enabled, than the hopalong attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattracthopalong endparam param zhopalongfraction caption = "Hopalong Fraction" default = 0.1 hint = "If 'Blend Z Hopalong' is enabled, than this is the fraction of the hopalong attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattracthopalong && @blendzhopalong endparam param zattractchip caption = "Chip Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to chip attractor iterations" visible = @zattractor endparam param zchipiters caption = "Chip Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of chip attractor iterations of #z" visible = @zattractor && @zattractchip endparam param zchipparam1 caption = "Chip a,b Parameters (Z)" default = (-15.0,-3.0) hint = "This parameter modulates the #z chip attractor" visible = @zattractor && @zattractchip endparam param zchipparam2 caption = "Chip c,d Parameters (Z)" default = (1.0,2.0) hint = "This parameter modulates the #z chip attractor" visible = @zattractor && @zattractchip endparam param zchipscale caption = "Chip x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the chip iterations" visible = @zattractor && @zattractchip endparam param blendzchip caption = "Blend Z Chip?" default = FALSE hint = "If enabled, than the chip attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractchip endparam param zchipfraction caption = "Chip Fraction" default = 0.1 hint = "If 'Blend Z Chip' is enabled, than this is the fraction of the chip attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractchip && @blendzchip endparam param zattractliar caption = "Liar Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to liar attractor iterations" visible = @zattractor endparam param zliariters caption = "Liar Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of liar attractor iterations of #z" visible = @zattractor && @zattractliar endparam param zliarparam1 caption = "Liar a,b Parameters (Z)" default = (1.0,1.0) hint = "This parameter modulates the #z liar attractor" visible = @zattractor && @zattractliar endparam param zliarparam2 caption = "Liar c,d Parameters (Z)" default = (1.0,1.0) hint = "This parameter modulates the #z liar attractor" visible = @zattractor && @zattractliar endparam param zliarscale caption = "Liar x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the liar iterations" visible = @zattractor && @zattractliar endparam param blendzliar caption = "Blend Z Liar?" default = FALSE hint = "If enabled, than the liar attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractliar endparam param zliarfraction caption = "Liar Fraction" default = 0.1 hint = "If 'Blend Z Liar' is enabled, than this is the fraction of the liar attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractliar && @blendzliar endparam param zattractgingerbread caption = "Gingerbread Z Attractor" default = FALSE hint = "If enabled, then #z is subjected to gingerbread attractor iterations" visible = @zattractor endparam param zgingerbreaditers caption = "Gingerbread Z Iterations" default = 2 min = 1 hint = "This parameter determines the number of gingerbread attractor iterations of #z" visible = @zattractor && @zattractgingerbread endparam param zgingerbreadparam1 caption = "Gingerbread a,b Parameters (Z)" default = (1.4,0.3) hint = "This parameter modulates the #z gingerbread attractor" visible = @zattractor && @zattractgingerbread endparam param zgingerbreadscale caption = "Gingerbread x,y Scale (z)" default = (3.0,3.0) hint = "This parameter scales #z before the gingerbread iterations" visible = @zattractor && @zattractgingerbread endparam param blendzgingerbread caption = "Blend Z Gingerbread?" default = FALSE hint = "If enabled, than the gingerbread attractor perturbation is only partially mixed into \ the unmodified #z" visible = @zattractor && @zattractgingerbread endparam param zgingerbreadfraction caption = "Gingerbread Fraction" default = 0.1 hint = "If 'Blend Z Gingerbread' is enabled, than this is the fraction of the gingerbread attractor \ that is mixed in with the unmodified #z" visible = @zattractor && @zattractgingerbread && @blendzgingerbread endparam param zattractorfix caption = "Fix Bug (Z Attractors)?" default = FALSE hint = "If enabled, a bug in the #z attractor routines will be corrected." visible = @zattractor endparam param tattractor caption = "Enable Trap Attractors" default = FALSE hint = "If enabled, then #z can be subjected to various attractor iterations prior \ to trapping. Z attractor modifications are executed after all other z \ transformations, but before angle and screwiness modifications" endparam param tattractmartin caption = "Martin Trap Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to Martin attractor iterations" visible = @tattractor endparam param tmartiniters caption = "Martin T Iterations" default = 2 min = 1 hint = "This parameter determines the number of Martin attractor iterations of the trap point" visible = @tattractor && @tattractmartin endparam param tmartinparam caption = "Martin T Parameter" default = 3.1415926535897932384626433832795 hint = "This parameter modulates the trap Martin attractor" visible = @tattractor && @tattractmartin endparam param tmartinscale caption = "Martin x,y Scale (T)" default = (5.0, 5.0) hint = "This parameter scales the trap point before the Martin iterations" visible = @tattractor && @tattractmartin endparam param blendtmartin caption = "Blend T Martin?" default = FALSE hint = "If enabled, than the Martin attractor perturbation is only partially mixed into \ the unmodified trap point" visible = @tattractor && @tattractmartin endparam param tmartinfraction caption = "Martin Fraction" default = 0.1 hint = "If 'Blend T Martin' is enabled, than this is the fraction of the Martin attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractmartin && @blendtmartin endparam param tattractcosmartin caption = "CosMartin T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to cosine Martin attractor iterations" visible = @tattractor endparam param tcosmartiniters caption = "CosMartin T Iterations" default = 2 min = 1 hint = "This parameter determines the number of cosine Martin attractor iterations of the trap point" visible = @tattractor && @tattractcosmartin endparam param tcosmartinparam caption = "CosMartin T Parameter" default = 6.2012553360599640350952630134203 hint = "This parameter modulates the trap point cosine Martin attractor" visible = @tattractor && @tattractcosmartin endparam param tcosmartinscale caption = "CosMartin x Scale (T)" default = (5.0, 5.0) hint = "This parameter scales the trappoint before the cosine Martin iterations" visible = @tattractor && @tattractcosmartin endparam param blendtcosmartin caption = "Blend T Cosmartin?" default = FALSE hint = "If enabled, than the cosmartin attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractcosmartin endparam param tcosmartinfraction caption = "Cosmartin Fraction" default = 0.1 hint = "If 'Blend T Cosmartin' is enabled, than this is the fraction of the cosmartin attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractcosmartin && @blendtcosmartin endparam param tattractpopcorn caption = "Popcorn T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to popcorn attractor iterations" visible = @tattractor endparam param tpopcorniters caption = "Popcorn T Iterations" default = 2 min = 1 hint = "This parameter determines the number of popcorn attractor iterations of the trap point" visible = @tattractor && @tattractpopcorn endparam param tpopcornparam1 caption = "1st,3rd Popcorn Parameters (T)" default = (0.05,0.05) hint = "This parameter modulates the trap popcorn attractor" visible = @tattractor && @tattractpopcorn endparam param tpopcornparam2 caption = "2nd, 4th Popcorn Parameters (T)" default = (3.0,3.0) hint = "This parameter modulates the trap popcorn attractor" visible = @tattractor && @tattractpopcorn endparam param tpopcornscale caption = "Popcorn x,y Scale (T)" default = (4.0,4.0) hint = "This parameter scales the trap point before the popcorn iterations" visible = @tattractor && @tattractpopcorn endparam param blendtpopcorn caption = "Blend T Popcorn?" default = FALSE hint = "If enabled, than the popcorn attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractpopcorn endparam param tpopcornfraction caption = "Popcorn Fraction" default = 0.1 hint = "If 'Blend T Popcorn' is enabled, than this is the fraction of the popcorn attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractpopcorn && @blendtpopcorn endparam param tattractvine caption = "Vine T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to vine attractor iterations" visible = @tattractor endparam param tvineiters caption = "Vine T Iterations" default = 2 min = 1 hint = "This parameter determines the number of vine attractor iterations of the trap point" visible = @tattractor && @tattractvine endparam param tvineparam1 caption = "1st,3rd Vine Parameters (T)" default = (0.1,0.1) hint = "This parameter modulates the trap vine attractor" visible = @tattractor && @tattractvine endparam param tvineparam2 caption = "2nd,4th Vine Parameters (T)" default = (2.7182818284590452353602874713527,2.7182818284590452353602874713527) hint = "This parameter modulates the trap vine attractor" visible = @tattractor && @tattractvine endparam param tvinescale caption = "Vine x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales the trap point before the vine iterations" visible = @tattractor && @tattractvine endparam param blendtvine caption = "Blend T Vine?" default = FALSE hint = "If enabled, than the vine attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractvine endparam param tvinefraction caption = "Vine Fraction" default = 0.1 hint = "If 'Blend T Vine' is enabled, than this is the fraction of the vine attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractvine && @blendtvine endparam param tattractvine2 caption = "Vine2 T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to vine2 attractor iterations" visible = @tattractor endparam param tvine2iters caption = "Vine2 T Iterations" default = 2 min = 1 hint = "This parameter determines the number of vine2 attractor iterations of the trap" visible = @tattractor && @tattractvine2 endparam param tvine2param1 caption = "1st,3rd Vine2 Parameters (T)" default = (0.1,0.1) hint = "This parameter modulates the trap vine2 attractor" visible = @tattractor && @tattractvine2 endparam param tvine2param2 caption = "2nd,4th Vine2 Parameter (T)" default = (2.7182818284590452353602874713527,2.7182818284590452353602874713527) hint = "This parameter modulates the trap vine2 attractor" visible = @tattractor && @tattractvine2 endparam param tvine2exp1 caption = "Vine2 Exponents (T)" default = (2.0,2.0) hint = "These parameters are the powers used in the first & second vine2 attractor equations" visible = @tattractor && @tattractvine2 endparam param tvine2scale caption = "Vine2 x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales the trap point before the vine2 iterations" visible = @tattractor && @tattractvine2 endparam param blendtvine2 caption = "Blend T Vine2?" default = FALSE hint = "If enabled, than the vine2 attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractvine2 endparam param tvine2fraction caption = "Vine2 Fraction" default = 0.1 hint = "If 'Blend T Vine2' is enabled, than this is the fraction of the vine2 attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractvine2 && @blendtvine2 endparam param tattractquadruptwo caption = "Quadruptwo T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to quadruptwo attractor iterations" visible = @tattractor endparam param tquadruptwoiters caption = "Quadruptwo T Iterations" default = 2 min = 1 hint = "This parameter determines the number of quadruptwo attractor iterations of the trap" visible = @tattractor && @tattractquadruptwo endparam param tquadruptwoparam1 caption = "Quadruptwo a,b Parameters (T)" default = (1.0,1.0) hint = "This parameter modulates the trap quadruptwo attractor" visible = @tattractor && @tattractquadruptwo endparam param tquadruptwoparam2 caption = "Quadruptwo c,d Parameters (T)" default = (1.0,2.0) hint = "This parameter modulates the trap quadruptwo attractor" visible = @tattractor && @tattractquadruptwo endparam param tquadruptwoscale caption = "Quadruptwo x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales trap before the quadruptwo iterations" visible = @tattractor && @tattractquadruptwo endparam param blendtquadruptwo caption = "Blend T Quadruptwo?" default = FALSE hint = "If enabled, than the quadruptwo attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractquadruptwo endparam param tquadruptwofraction caption = "Quadruptwo Fraction" default = 0.1 hint = "If 'Blend T Quadruptwo' is enabled, than this is the fraction of the quadruptwo attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractquadruptwo && @blendtquadruptwo endparam param tattractthreeply caption = "Threeply T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to threeply attractor iterations" visible = @tattractor endparam param tthreeplyiters caption = "Threeply T Iterations" default = 2 min = 1 hint = "This parameter determines the number of threeply attractor iterations of the trap" visible = @tattractor && @tattractthreeply endparam param tthreeplyparam1 caption = "Threeply a,b Parameters (T)" default = (1.0,1.0) hint = "This parameter modulates the trap threeply attractor" visible = @tattractor && @tattractthreeply endparam param tthreeplyparam2 caption = "Threeply c,d Parameters (T)" default = (1.0,1.0) hint = "This parameter modulates the trap threeply attractor" visible = @tattractor && @tattractthreeply endparam param tthreeplyscale caption = "Threeply x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales trap before the threeply iterations" visible = @tattractor && @tattractthreeply endparam param blendtthreeply caption = "Blend T Threeply?" default = FALSE hint = "If enabled, than the threeply attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractthreeply endparam param tthreeplyfraction caption = "Threeply Fraction" default = 0.1 hint = "If 'Blend T Threeply' is enabled, than this is the fraction of the threeply attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractthreeply && @blendtthreeply endparam param tattracthenon caption = "Henon T Attractor" default = FALSE hint = "If enabled, then thr trap point is subjected to henon attractor iterations" visible = @tattractor endparam param thenoniters caption = "Henon T Iterations" default = 2 min = 1 hint = "This parameter determines the number of henon attractor iterations of thr trap" visible = @tattractor && @tattracthenon endparam param thenonparam1 caption = "Henon a,b Parameters (T)" default = (1.4,0.0) hint = "This parameter modulates the trap henon attractor" visible = @tattractor && @tattracthenon endparam param thenonscale caption = "Henon x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales the trap before the henon iterations" visible = @tattractor && @tattracthenon endparam param blendthenon caption = "Blend T Henon?" default = FALSE hint = "If enabled, than the henon attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattracthenon endparam param thenonfraction caption = "Henon Fraction" default = 0.1 hint = "If 'Blend T Henon' is enabled, than this is the fraction of the henon attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattracthenon && @blendthenon endparam param tattracthopalong caption = "Hopalong T Attractor" default = FALSE hint = "If enabled, then thr trap point is subjected to hopalong attractor iterations" visible = @tattractor endparam param thopalongiters caption = "Hopalong T Iterations" default = 2 min = 1 hint = "This parameter determines the number of hopalong attractor iterations of the trap" visible = @tattractor && @tattracthopalong endparam param thopalongparam1 caption = "Hopalong a,b Parameters (T)" default = (0.4,1.0) hint = "This parameter modulates the trap hopalong attractor" visible = @tattractor && @tattracthopalong endparam param thopalongparam2 caption = "Hopalong c,d Parameters (T)" default = (0.0,0.5) hint = "This parameter modulates the trap hopalong attractor" visible = @tattractor && @tattracthopalong endparam param thopalongscale caption = "Hopalong x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales the trap before the hopalong iterations" visible = @tattractor && @tattracthopalong endparam param blendthopalong caption = "Blend T Hopalong?" default = FALSE hint = "If enabled, than the hopalong attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattracthopalong endparam param thopalongfraction caption = "Hopalong Fraction" default = 0.1 hint = "If 'Blend T Hopalong' is enabled, than this is the fraction of the hopalong attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattracthopalong && @blendthopalong endparam param tattractchip caption = "Chip T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to chip attractor iterations" visible = @tattractor endparam param tchipiters caption = "Chip T Iterations" default = 2 min = 1 hint = "This parameter determines the number of chip attractor iterations of the trap" visible = @tattractor && @tattractchip endparam param tchipparam1 caption = "Chip a,b Parameters (T)" default = (-1.0,-1.0) hint = "This parameter modulates the trap chip attractor" visible = @tattractor && @tattractchip endparam param tchipparam2 caption = "Chip c,d Parameters (T)" default = (1.0,2.0) hint = "This parameter modulates the trap chip attractor" visible = @tattractor && @tattractchip endparam param tchipscale caption = "Chip x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales the trap point before the chip iterations" visible = @tattractor && @tattractchip endparam param blendtchip caption = "Blend T Chip?" default = FALSE hint = "If enabled, than the chip attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractchip endparam param tchipfraction caption = "Chip Fraction" default = 0.1 hint = "If 'Blend T Chip' is enabled, than this is the fraction of the chip attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractchip && @blendtchip endparam param tattractliar caption = "Liar T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to liar attractor iterations" visible = @tattractor endparam param tliariters caption = "Liar T Iterations" default = 2 min = 1 hint = "This parameter determines the number of liar attractor iterations of the trap" visible = @tattractor && @tattractliar endparam param tliarparam1 caption = "Liar a,b Parameters (T)" default = (1.0,1.0) hint = "This parameter modulates the trap liar attractor" visible = @tattractor && @tattractliar endparam param tliarparam2 caption = "Liar c,d Parameters (T)" default = (1.0,1.0) hint = "This parameter modulates the trap liar attractor" visible = @tattractor && @tattractliar endparam param tliarscale caption = "Liar x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales the trap before the liar iterations" visible = @tattractor && @tattractliar endparam param blendtliar caption = "Blend T Liar?" default = FALSE hint = "If enabled, than the liar attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractliar endparam param tliarfraction caption = "Liar Fraction" default = 0.1 hint = "If 'Blend T Liar' is enabled, than this is the fraction of the liar attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractliar && @blendtliar endparam param tattractgingerbread caption = "Gingerbread T Attractor" default = FALSE hint = "If enabled, then the trap point is subjected to gingerbread attractor iterations" visible = @tattractor endparam param tgingerbreaditers caption = "Gingerbread T Iterations" default = 2 min = 1 hint = "This parameter determines the number of gingerbread attractor iterations of the trap" visible = @tattractor && @tattractgingerbread endparam param tgingerbreadparam1 caption = "Gingerbread a,b Parameters (T)" default = (1.4,0.3) hint = "This parameter modulates the trap gingerbread attractor" visible = @tattractor && @tattractgingerbread endparam param tgingerbreadscale caption = "Gingerbread x,y Scale (T)" default = (3.0,3.0) hint = "This parameter scales the trap before the gingerbread iterations" visible = @tattractor && @tattractgingerbread endparam param blendtgingerbread caption = "Blend t Gingerbread?" default = FALSE hint = "If enabled, than the gingerbread attractor perturbation is only partially mixed into \ the unmodified trap" visible = @tattractor && @tattractgingerbread endparam param tgingerbreadfraction caption = "Gingerbread Fraction" default = 0.1 hint = "If 'Blend t Gingerbread' is enabled, than this is the fraction of the gingerbread attractor \ that is mixed in with the unmodified trap" visible = @tattractor && @tattractgingerbread && @blendtgingerbread endparam param tattractorfix caption = "Fix Bug (T Attractors)?" default = FALSE hint = "If enabled, a bug in the trap attractor routines will be corrected." visible = @tattractor endparam heading caption = "Texture Settings" $ifdef VER40 expanded = FALSE $endif endheading param texture caption = "Enable Texture?" default = FALSE hint = "If enabled, up to four texture function scan be specified" visible = @showtex endparam param texamount caption = "Texture Amount" default = 0.1 hint = "This param sets the overall amount of texture, if enabled" visible = @showtex && @texture endparam param texfunc1 caption = "Texture Func 1" enum = "x" "1/x" "x^2" "1/x^2" "log(x)" "e^x" "x^x" "sin(x)" "cos(x)" \ "tan(x)" "asin(x)" "acos(x)" "atan(x)" "sinh(x)" "cosh(x)" "tanh(x)" \ "asinh(x)" "acosh(x)" "atanh(x)" "log(1/x)" "log(log(x))" "e^-x" \ "e^(1/x)" "x^-x" "sin(x)^2" "cos(x)^2" "tan(x)^2" "cot(x)" "sec(x)" \ "csc(x)" "cot(x)^2" "sec(x)^2" "csc(x)^2" "x^x^x" "1/x^x^x" "log(-x)" \ "1/log(x)" "xlog(x)" "sin(x)/x" "cos(x)/x" "sin(x)*cos(x)" "sin(x^2)" \ "e^(-1/x)" "xe^x" "xe^-x" "xe^(1/x)" "xe^(-1/x)" "x^3" "1/x^3" \ "acot(x)" "asec(x)" "acsc(x)" "tan(x)/x" "cot(x)/x" "sec(x)/x" \ "csc(x)/x" "xsin(x)" "xcos(x)" "xtan(x)" "xcot(x)" "xsec(x)" "xcsc(x)" \ "sin(1/x)" "cos(1/x)" "tan(1/x)" "cot(1/x)" "sec(1/x)" "csc(1/x)" \ "cotanh(x)" "sech(x)" "cosech(x)" "acoth(x)" "asech(x)" "acosech(x)" "x^power" \ "sinh(x)^2" "cosh(x)^2" "tanh(x)^2" "cotanh(x)^2" \ "sech(x)^2" "cosech(x)^2" "sinh(1/x)" "cosh(1/x)" "tanh(1/x)" \ "cotanh(1/x)" "sech(1/x)" "cosech(1/x)" "sin(x)tan(x)" "sinh(x)tanh(x)" \ "sinh(x)cosh(x)" "sinh(x)^2*cosh(x)^2" "sin(x)^2*cos(x)^2" \ "sin(1/x)*cos(1/x)" "sin(1/x)^2" "sin(x)cos(1/x)" "sin(x)sin(1/x)" \ "log(x)^2" "sin(x)sin(2x)" "e^2x" "e^-2x" "sinh(1/x)cosh(1/x)" \ "sinh(1/x)^2" "sinh(x)cosh(1/x)" "sinh(x)sinh(1/x)" "sin(x)sinh(x)" \ "sin(x)cosh(x)" "sin(x)^2*sinh(x)^2" "sin(x)e^x" "cos(x)e^x" \ "sinh(x)e^x" "cosh(x)e^x" "sin(x)log(x)" "cos(x)log(x)" "sinh(x)log(x)" \ "cosh(x)log(x)" \ "e^(x^2)" "e^(1/(x^2))" "abs(x)" "round(x)" "trunc(x)" \ "ceil(x)" "floor(x)" "x/log(x)" "log(x)/x" "(e^x)/x" "(e^(1/x))/x" \ "(e^(x^2))/x" "(e^(1/(x^2))/x" "x*e^(x^2)" "x*e^(1/(x^2))" \ "e^(-x^2)" "e^(-1/(x^2))" "(e^(-x^2))/x" "(e^(-1/(x^2))/x" \ "x*e^(-x^2)" "x*e^(-1/(x^2))" default = 2 hint = "This is the first of up to four texture functions. Texture functions may be turned \ off by setting them to 'x'" visible = @showtex && @texture endparam param tex2power caption = "Tex Fn1 Power" default = 4.0 hint = "This is the exponent if 'Texture Func 1' is \ set to 'x^power'" visible = @showtex && @texfunc1 == "x^power" && @texture endparam param texf1offset caption = "Tex Fn1 Offset" default = (0, 0) hint = "This constant is added to the result of 'Texture Func 1'" visible = @showtex && @texture endparam param texf1multiplier caption = "Tex Fn1 Multiplier" default = (1, 0) hint = "This constant is multiplied by the result of 'Texture Func 1'" visible = @showtex && @texture endparam param texfunc2 caption = "Texture Func 2" enum = "x" "1/x" "x^2" "1/x^2" "log(x)" "e^x" "x^x" "sin(x)" "cos(x)" \ "tan(x)" "asin(x)" "acos(x)" "atan(x)" "sinh(x)" "cosh(x)" "tanh(x)" \ "asinh(x)" "acosh(x)" "atanh(x)" "log(1/x)" "log(log(x))" "e^-x" \ "e^(1/x)" "x^-x" "sin(x)^2" "cos(x)^2" "tan(x)^2" "cot(x)" "sec(x)" \ "csc(x)" "cot(x)^2" "sec(x)^2" "csc(x)^2" "x^x^x" "1/x^x^x" "log(-x)" \ "1/log(x)" "xlog(x)" "sin(x)/x" "cos(x)/x" "sin(x)*cos(x)" "sin(x^2)" \ "e^(-1/x)" "xe^x" "xe^-x" "xe^(1/x)" "xe^(-1/x)" "x^3" "1/x^3" \ "acot(x)" "asec(x)" "acsc(x)" "tan(x)/x" "cot(x)/x" "sec(x)/x" \ "csc(x)/x" "xsin(x)" "xcos(x)" "xtan(x)" "xcot(x)" "xsec(x)" "xcsc(x)" \ "sin(1/x)" "cos(1/x)" "tan(1/x)" "cot(1/x)" "sec(1/x)" "csc(1/x)" \ "cotanh(x)" "sech(x)" "cosech(x)" "acoth(x)" "asech(x)" "acosech(x)" "x^power" \ "sinh(x)^2" "cosh(x)^2" "tanh(x)^2" "cotanh(x)^2" \ "sech(x)^2" "cosech(x)^2" "sinh(1/x)" "cosh(1/x)" "tanh(1/x)" \ "cotanh(1/x)" "sech(1/x)" "cosech(1/x)" "sin(x)tan(x)" "sinh(x)tanh(x)" \ "sinh(x)cosh(x)" "sinh(x)^2*cosh(x)^2" "sin(x)^2*cos(x)^2" \ "sin(1/x)*cos(1/x)" "sin(1/x)^2" "sin(x)cos(1/x)" "sin(x)sin(1/x)" \ "log(x)^2" "sin(x)sin(2x)" "e^2x" "e^-2x" "sinh(1/x)cosh(1/x)" \ "sinh(1/x)^2" "sinh(x)cosh(1/x)" "sinh(x)sinh(1/x)" "sin(x)sinh(x)" \ "sin(x)cosh(x)" "sin(x)^2*sinh(x)^2" "sin(x)e^x" "cos(x)e^x" \ "sinh(x)e^x" "cosh(x)e^x" "sin(x)log(x)" "cos(x)log(x)" "sinh(x)log(x)" \ "cosh(x)log(x)" \ "e^(x^2)" "e^(1/(x^2))" "abs(x)" "round(x)" "trunc(x)" \ "ceil(x)" "floor(x)" "x/log(x)" "log(x)/x" "(e^x)/x" "(e^(1/x))/x" \ "(e^(x^2))/x" "(e^(1/(x^2))/x" "x*e^(x^2)" "x*e^(1/(x^2))" \ "e^(-x^2)" "e^(-1/(x^2))" "(e^(-x^2))/x" "(e^(-1/(x^2))/x" \ "x*e^(-x^2)" "x*e^(-1/(x^2))" default = 0 hint = "This is the second of up to four texture functions. Texture functions may be turned \ off by setting them to 'x'" visible = @showtex && @texture endparam param tex2power2 caption = "Tex Fn2 Power" default = 4.0 hint = "This is the exponent if 'Texture Func 2' is \ set to 'x^power'" visible = @showtex && @texfunc2 == "x^power" && @texture endparam param texf2offset caption = "Tex Fn2 Offset" default = (0, 0) hint = "This constant is added to the result of 'Texture Func 2'" visible = @showtex && @texture endparam param texfunc3 caption = "Texture Func 3" enum = "x" "1/x" "x^2" "1/x^2" "log(x)" "e^x" "x^x" "sin(x)" "cos(x)" \ "tan(x)" "asin(x)" "acos(x)" "atan(x)" "sinh(x)" "cosh(x)" "tanh(x)" \ "asinh(x)" "acosh(x)" "atanh(x)" "log(1/x)" "log(log(x))" "e^-x" \ "e^(1/x)" "x^-x" "sin(x)^2" "cos(x)^2" "tan(x)^2" "cot(x)" "sec(x)" \ "csc(x)" "cot(x)^2" "sec(x)^2" "csc(x)^2" "x^x^x" "1/x^x^x" "log(-x)" \ "1/log(x)" "xlog(x)" "sin(x)/x" "cos(x)/x" "sin(x)*cos(x)" "sin(x^2)" \ "e^(-1/x)" "xe^x" "xe^-x" "xe^(1/x)" "xe^(-1/x)" "x^3" "1/x^3" \ "acot(x)" "asec(x)" "acsc(x)" "tan(x)/x" "cot(x)/x" "sec(x)/x" \ "csc(x)/x" "xsin(x)" "xcos(x)" "xtan(x)" "xcot(x)" "xsec(x)" "xcsc(x)" \ "sin(1/x)" "cos(1/x)" "tan(1/x)" "cot(1/x)" "sec(1/x)" "csc(1/x)" \ "cotanh(x)" "sech(x)" "cosech(x)" "acoth(x)" "asech(x)" "acosech(x)" "x^power" \ "sinh(x)^2" "cosh(x)^2" "tanh(x)^2" "cotanh(x)^2" \ "sech(x)^2" "cosech(x)^2" "sinh(1/x)" "cosh(1/x)" "tanh(1/x)" \ "cotanh(1/x)" "sech(1/x)" "cosech(1/x)" "sin(x)tan(x)" "sinh(x)tanh(x)" \ "sinh(x)cosh(x)" "sinh(x)^2*cosh(x)^2" "sin(x)^2*cos(x)^2" \ "sin(1/x)*cos(1/x)" "sin(1/x)^2" "sin(x)cos(1/x)" "sin(x)sin(1/x)" \ "log(x)^2" "sin(x)sin(2x)" "e^2x" "e^-2x" "sinh(1/x)cosh(1/x)" \ "sinh(1/x)^2" "sinh(x)cosh(1/x)" "sinh(x)sinh(1/x)" "sin(x)sinh(x)" \ "sin(x)cosh(x)" "sin(x)^2*sinh(x)^2" "sin(x)e^x" "cos(x)e^x" \ "sinh(x)e^x" "cosh(x)e^x" "sin(x)log(x)" "cos(x)log(x)" "sinh(x)log(x)" \ "cosh(x)log(x)" \ "e^(x^2)" "e^(1/(x^2))" "abs(x)" "round(x)" "trunc(x)" \ "ceil(x)" "floor(x)" "x/log(x)" "log(x)/x" "(e^x)/x" "(e^(1/x))/x" \ "(e^(x^2))/x" "(e^(1/(x^2))/x" "x*e^(x^2)" "x*e^(1/(x^2))" \ "e^(-x^2)" "e^(-1/(x^2))" "(e^(-x^2))/x" "(e^(-1/(x^2))/x" \ "x*e^(-x^2)" "x*e^(-1/(x^2))" default = 0 hint = "This is the third of up to four texture functions. Texture functions may be turned \ off by setting them to 'x'" visible = @showtex && @texture endparam param tex2power3 caption = "Tex Fn3 Power" default = 4.0 hint = "This is the exponent if 'Texture Func 3' is \ set to 'x^power'" visible = @showtex && @texfunc3 == "x^power" && @texture endparam param texf3offset caption = "Tex Fn3 Offset" default = (0, 0) hint = "This constant is added to the result of 'Texture Func 3'" visible = @showtex && @texture endparam param texf3multiplier caption = "Tex Fn3 Multiplier" default = (1, 0) hint = "This constant is multiplied by the result of 'Texture Func 3'" visible = @showtex && @texture endparam param texfunc4 caption = "Texture Func 4" enum = "x" "1/x" "x^2" "1/x^2" "log(x)" "e^x" "x^x" "sin(x)" "cos(x)" \ "tan(x)" "asin(x)" "acos(x)" "atan(x)" "sinh(x)" "cosh(x)" "tanh(x)" \ "asinh(x)" "acosh(x)" "atanh(x)" "log(1/x)" "log(log(x))" "e^-x" \ "e^(1/x)" "x^-x" "sin(x)^2" "cos(x)^2" "tan(x)^2" "cot(x)" "sec(x)" \ "csc(x)" "cot(x)^2" "sec(x)^2" "csc(x)^2" "x^x^x" "1/x^x^x" "log(-x)" \ "1/log(x)" "xlog(x)" "sin(x)/x" "cos(x)/x" "sin(x)*cos(x)" "sin(x^2)" \ "e^(-1/x)" "xe^x" "xe^-x" "xe^(1/x)" "xe^(-1/x)" "x^3" "1/x^3" \ "acot(x)" "asec(x)" "acsc(x)" "tan(x)/x" "cot(x)/x" "sec(x)/x" \ "csc(x)/x" "xsin(x)" "xcos(x)" "xtan(x)" "xcot(x)" "xsec(x)" "xcsc(x)" \ "sin(1/x)" "cos(1/x)" "tan(1/x)" "cot(1/x)" "sec(1/x)" "csc(1/x)" \ "cotanh(x)" "sech(x)" "cosech(x)" "acoth(x)" "asech(x)" "acosech(x)" "x^power" \ "sinh(x)^2" "cosh(x)^2" "tanh(x)^2" "cotanh(x)^2" \ "sech(x)^2" "cosech(x)^2" "sinh(1/x)" "cosh(1/x)" "tanh(1/x)" \ "cotanh(1/x)" "sech(1/x)" "cosech(1/x)" "sin(x)tan(x)" "sinh(x)tanh(x)" \ "sinh(x)cosh(x)" "sinh(x)^2*cosh(x)^2" "sin(x)^2*cos(x)^2" \ "sin(1/x)*cos(1/x)" "sin(1/x)^2" "sin(x)cos(1/x)" "sin(x)sin(1/x)" \ "log(x)^2" "sin(x)sin(2x)" "e^2x" "e^-2x" "sinh(1/x)cosh(1/x)" \ "sinh(1/x)^2" "sinh(x)cosh(1/x)" "sinh(x)sinh(1/x)" "sin(x)sinh(x)" \ "sin(x)cosh(x)" "sin(x)^2*sinh(x)^2" "sin(x)e^x" "cos(x)e^x" \ "sinh(x)e^x" "cosh(x)e^x" "sin(x)log(x)" "cos(x)log(x)" "sinh(x)log(x)" \ "cosh(x)log(x)" \ "e^(x^2)" "e^(1/(x^2))" "abs(x)" "round(x)" "trunc(x)" \ "ceil(x)" "floor(x)" "x/log(x)" "log(x)/x" "(e^x)/x" "(e^(1/x))/x" \ "(e^(x^2))/x" "(e^(1/(x^2))/x" "x*e^(x^2)" "x*e^(1/(x^2))" \ "e^(-x^2)" "e^(-1/(x^2))" "(e^(-x^2))/x" "(e^(-1/(x^2))/x" \ "x*e^(-x^2)" "x*e^(-1/(x^2))" default = 0 hint = "This is the fourth of up to four texture functions. Texture functions may be turned \ off by setting them to 'x'" visible = @showtex && @texture endparam param tex2power4 caption = "Tex Fn4 Power" default = 4.0 hint = "This is the exponent if 'Texture Func 4' is \ set to 'x^power'" visible = @showtex && @texfunc4 == "x^power" && @texture endparam param texf4offset caption = "Tex Fn4 Offset" default = (1, 0) hint = "This constant is multiplied by the result of 'Texture Func 1'" visible = @showtex && @texture endparam param texpower caption = "Texture Power" default = 0.25 hint = "Params 'Tex Power' & 'Tex Scale' set the initial overall levels in the \ texture algorithm" visible = @showtex && @texture endparam param texscale caption = "Texture Scale1" default = 10.0 hint = "Params 'Texture Power' & 'Texture Scale1' set the initial overall levels in the \ texture algorithm; 'Texture Scale1' affects the size of the texture pattern" visible = @showtex && @texture endparam param texoffset caption = "Texture Offset" default = (-1,-1) hint = "This param modifies the texture pattern" visible = @showtex && @texture endparam param texmod caption = "Texture Scale2" default = 5.0 hint = "This param sets the final level in the texture algorithm; \ affects the shapes made by the texture functions" visible = @showtex && @texture endparam param texinit caption = "Texture Initialization" enum = "z" "mod z" "trap" default = 0 hint = "This setting defines the input to the texture algorithm" visible = @showtex && @texture endparam param showtex caption = "Show Texture Settings?" $ifdef VER40 default = TRUE $else default = FALSE $endif endparam heading caption = "Mask Settings" $ifdef VER40 expanded = FALSE $endif endheading param maskA caption = "Enable Mask A?" default = FALSE hint = "If enabled, pixels can be masked depending upon the values \ of parameters 'Mask What(A)?' and 'Mask If(A)?' \ Masked pixels will be colored the solid color" visible = @showmasks endparam param maskwhatA caption = "Mask What (A)?" enum = "distance" "mod distance" "magnitude" "mod magnitude" "flavor value" \ "iteration" "angle" "mod angle" "real" "mod real" "imag" "mod imag" \ "trap magnitude" "trap angle" "trap real" "trap imag" "difference angle" \ "diff. angle 2" "sum" "product" "quotient 1" "quotient 2" "power 1" \ "power 2" "arith. mean" "geom. mean" "mod iter" "modulus angle" default = 4 hint = "If 'Enable Mask A' is active, then this param determines what type of \ value is checked to determine masking; the range of values that will be \ masked is set by param 'Mask If (A)'" visible = @showmasks && @maskA endparam param maskifA caption = "Mask If (A)?" enum = "falls above" "falls below" "falls between" "falls outside" "equals" "not equal" default = 0 hint = "If 'Enable Mask A' is active, then this param sets the range of \ values that will be masked; the type of value is set be param \ 'Mask What (A)'" visible = @showmasks && @maskA endparam param maskAmin caption = "Mask A Threshold" default = 0.1 hint = "If 'Enable Mask A' is active, then this param sets the threshold \ for masking. If two values are needed, then this is the lower value \ for masking" visible = @showmasks && @maskA endparam param maskAmax caption = "Mask A Maximum" default = 1.0 hint = "If 'Enable Mask A' is active and 'Mask If (A)' is set to \ 'falls between' or 'falls below', then this param sets the upper value \ for masking" visible = @showmasks && @maskA && ( (@maskifA == 2) || (@maskifA == 3) ) endparam param maskAmod caption = "Mask A Modifiers?" default = FALSE hint = "If enabled, then the masking test is modified to more closely \ track the 'Color By' test values. This setting doesn't affect \ every choice of 'Mask What': the angle, flavor value, and \ real & imag options are made to work like 'Color By', and the \ sum, product, quotient, etc. options are made to work like 'Trap Flavor' \ when option 'Modify Flavor Value' is enabled. Generally, this option \ uses absolute values" visible = @showmasks && @maskA endparam param itermaskmod caption = "MaskA Iter Modulus" default = 2 min = 1 hint = "If 'Mask What (A)' is set to 'mod iter', then this parameter sets \ the modulus" visible = @showmasks && @maskwhatA == "mod iter" endparam param anglemaskmod caption = "MaskA Angle Modulus" default = 1.5707963267948966192313216916398 ; pi/2 min = 1.0e-9 hint = "If 'Mask What (A)' is set to 'mod iter', then this parameter sets \ the modulus" visible = @showmasks && @maskwhatA == "modulus angle" endparam param maskcombo caption = "Mask Combination Mode" enum = "or" "and" "not" "eor" "nor" "nand" "neor" "Aor!B" default = 0 hint = "If both Mask A and Mask B are enabled, then they will be combined \ as specified by this setting. The default, 'or', corresponds to \ completely independent masks" visible = @maskA && @maskB && @showmasks endparam param maskB caption = "Enable Mask B?" default = FALSE hint = "If enabled, pixels can be masked depending upon the values \ of parameters 'Mask What(B)?' and 'Mask If(B)?' \ Masked pixels will be colored the solid color" visible = @showmasks endparam param maskwhatB caption = "Mask What (B)?" enum = "distance" "mod distance" "magnitude" "mod magnitude" "flavor value" \ "iteration" "angle" "mod angle" "real" "mod real" "imag" "mod imag" \ "trap magnitude" "trap angle" "trap real" "trap imag" "difference angle" \ "diff. angle 2" "sum" "product" "quotient 1" "quotient 2" "power 1" \ "power 2" "arith. mean" "geom. mean" "mod iter" "modulus angle" default = 1 hint = "If 'Enable Mask B' is active, then this param determines what type of \ value is checked to determine masking; the range of values that will be \ masked is set by param 'Mask If (B)'" visible = @showmasks && @maskB endparam param maskifB caption = "Mask If (B)?" enum = "falls above" "falls below" "falls between" "falls outside" "equals" "not equal" default = 0 hint = "If 'Enable Mask B' is active, then this param sets the range of \ values that will be masked; the type of value is set be param \ 'Mask What (B)'" visible = @showmasks && @maskB endparam param maskBmin caption = "Mask B Threshold" default = 1.0 hint = "If 'Enable Mask B' is active, then this param sets the threshold \ for masking. If two values are needed, then this is the lower value \ for masking" visible = @showmasks && @maskB endparam param maskBmax caption = "Mask B Maximum" default = 1.0 hint = "If 'Enable Mask B' is active and 'Mask If (B)' is set to \ 'falls between' or 'falls below', then this param sets the upper value \ for masking" visible = @showmasks && @maskB && ( (@maskifB == 2) || (@maskifB == 3) ) endparam param maskBmod caption = "Mask B Modifiers?" default = FALSE hint = "If enabled, then the masking test is modified to more closely \ track the 'Color By' test values. This setting doesn't affect \ every choice of 'Mask What': the angle, flavor value, and \ real & imag options are made to work like 'Color By', and the \ sum, product, quotient, etc. options are made to work like 'Trap Flavor' \ when option 'Modify Flavor Value' is enabled. Generally, this option \ uses absolute values" visible = @showmasks && @maskB endparam param itermaskmodB caption = "MaskB Iter Modulus" default = 2 min = 1 hint = "If 'Mask What (B)' is set to 'mod iter', then this parameter sets \ the modulus" visible = @showmasks && @maskwhatB == "mod iter" endparam param anglemaskmodB caption = "MaskB Angle Modulus" default = 1.5707963267948966192313216916398 ; pi/2 min = 1.0e-9 hint = "If 'Mask What (B)' is set to 'mod iter', then this parameter sets \ the modulus" visible = @showmasks && @maskwhatB == "modulus angle" endparam param showmasks caption = "Show Mask Params?" $ifdef VER40 default = TRUE $else default = FALSE $endif endparam }