home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip Hitware 8
/
Chip_Hitware_Vol_08.iso
/
chiphit8
/
multmedi
/
95iterat
/
_setup.1
/
Genesis.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
1997-01-25
|
23KB
|
1,043 lines
// genesis.cpp : implementation file
//
#include "stdafx.h"
#include "itriazon.h"
#include "itriadoc.h"
#include "itriavw.h"
#include "nthorder.h"
#include "math.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
//////////////////////////////////////////////////////////
// CIterationsView meessage handlers
// Equations converted over from the Genesis1.for software
//////////////////////////////////////////////////////////
void CIterationsView::Genesis()
{
switch (nDistortion)
{
case 101:
// Generalized Mandelbrot
// cn = cmplx (cr,ci);
// Jaenisch method for generalized mandelbrot
// x1 = x = cx;
// y1 = y = cy;
// k1 = 0;
//
// // 1st pass
// for (k = 0 ; k < NMAX ; k++)
// {
// if (x == 0 && y == 0)
// {
// k1 = 0;
// goto C12_0;
// }
//
// t4 = logl(x*x + y*y);
// ri = rorder_i*atan2l(y,x);
// rr = rorder_r*atan2l(y,x);
// rt = rorder_i*t4/2.0;
// ex = expl(rorder_r*t4/2.0 - ri); // try (rt - ri) for a new fractal type
// x1 = ex * cosl(rt + rr) + cx;
// y1 = ex * sinl(rt + rr) + cy;
//
// r = x1 * x1 + y1 * y1;
// k++;
// if (r > dBailout)
// {
// k1 = k;
// b_GT4 = TRUE;
// goto C12_0;
// }
// x = x1;
// y = y1;
// }
//
// b_MAX = TRUE;
//
// x1 = x = cx;
// y1 = y = cy;
// k1 = 0;
//
// // 2nd pass
// for (k = 0 ; k < NMAX ; k++)
// {
// if (x == 0 && y == 0)
// {
// k1 = 0;
// //AfxMessageBox("going to c12_2");
// goto C12_2;
// }
//
// t4 = logl(x*x + y*y);
// ri = rorder_i*atan2l(y,x);
// rr = rorder_r*atan2l(y,x);
// rt = rorder_i*t4/2.0;
// ex = expl(rorder_r*t4/2.0 - ri); // try (rt - ri) for a new fractal type
// x1 = ex * cosl(rt + rr) + cx;
// y1 = ex * sinl(rt + rr) + cy;
//
// //r = x1*x1 + y1*y1; // This also works
//
// if (x1 < 0) x = -(log10l(fabsl(x1)));
// else if (x1 > 0) x = log10l(fabsl(x1));
// else xx = 0L;
//
// if (y1 < 0) y = -(log10l(fabsl(y1)));
// else if (y1 > 0) y = log10l(fabsl(y1));
// else yy = 0L;
//
// r = x*x + y*y; // This also works
//
// if (k == 0) { k1 = 1; rz = r; }
// else if (k == 1)
// {
// if (r > rz) rzflag = 1;
// else rzflag = -1;
// rz = r;
// }
// else
// {
// if (r > rz && rzflag != 1)
// {
// k1++;
// rzflag = 1;
// }
// else
// if (r < rz && rzflag != -1)
// {
// k1++;
// rzflag = -1;
// }
// rz = r;
// }
// C12_2:;
// }
//
// C12_0:
//
// xsquared = x1*x1;
// ysquared = y1*y1;
//
// if (k1 >= NMAX)
// b_MAX = TRUE;
// else
// b_MAX = FALSE;
//
// i = k1 % NMAX;
//
// if (i < 0 || i > NMAX)
// {
// AfxMessageBox("error, i out of range");
// Row = 0;
// }
//
// Generalized Mandelbrot 101
z1 = z;
z2 = cmplx(rorder_r, rorder_i);
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z=(z^z2) + c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (i >= JMAX)
{
// Inside
z = z1;
z2 = cmplx(rorder_r, rorder_i);
b_MAX = TRUE;
i = 0;
jrw=0;
JMAX=NMAX-2;
while (i++ < JMAX)
{
//z=z*z + c;
z=(z^z2) + c;
if (z.real() < 0) z.set_real( -(log10(fabs(z.real()))));
else if (z.real() > 0) z.set_real( log10(fabs(z.real())));
else z.set_real(0);
if (z.imag() < 0) z.set_imag( -(log10(fabs(z.imag()))));
else if (z.imag() > 0) z.set_imag( log10(fabs(z.imag())));
else z.set_imag(0);
r = z.squares();
if (i == 0) { k1 = 1; rz = r; }
else if (i == 1)
{
if (r > rz) rzflag = 1;
else rzflag = -1;
rz = r;
}
else
if (r > rz && rzflag != 1)
{
jrw+=nFF;
rzflag = 1;
}
else
if (r < rz && rzflag != -1)
{
jrw+=nFF;
rzflag = -1;
}
rz = r;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
i = jrw % NMAX;
}
else
if (nFilter) Filter_Complete();
break;
case 102:
// Multi-Fract
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = (z*z+c).csin();
z = z*z+c;
// if (nFilter) Delta_z(z.real(), z.imaginary());
}
//z = z/i;
c = z/i;
z = cmplx(0, 0);
i = 0;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 103:
z2 = cmplx(rorder_r,rorder_i);
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z+(((z*z)^z2)+c);
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 104:
t=c;
t3=t*t*t;
t2=t*t;
a=t2/t3;
b=a*a*a+(t2-cmplx(2,0))/t3;
aa3=a*a*a;
if (jul == 0)
z=-a;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z-aa3*z+b;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 105:
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z.ccos() * (z*z+c);
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 106:
// for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
// {
// z = (2*z.csin()) * (z*z+c);
// if (nFilter) Delta_z(z.real(), z.imaginary());
// }
// if (nFilter) Filter_Complete();
z1 = z;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = (z*c).ccos()*c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (i >= JMAX)
{
// Inside
z = z1;
b_MAX = TRUE;
i = 0;
jrw=0;
//while ( z.squares() < dBailout && i++ < NMAX-2)
JMAX=NMAX-2;
while (i++ < JMAX)
{
//z=z*z + c;
//z = (z^3) + z*(c - 1) - c;
z = (z*c).ccos()*c;
if (z.real() < 0) z.set_real( -(log10(fabs(z.real()))));
else if (z.real() > 0) z.set_real( log10(fabs(z.real())));
else z.set_real(0);
if (z.imag() < 0) z.set_imag( -(log10(fabs(z.imag()))));
else if (z.imag() > 0) z.set_imag( log10(fabs(z.imag())));
else z.set_imag(0);
r = z.squares();
if (i == 0) { k1 = 1; rz = r; }
else if (i == 1)
{
if (r > rz) rzflag = 1;
else rzflag = -1;
rz = r;
}
else
if (r > rz && rzflag != 1)
{
jrw+=nFF;
rzflag = 1;
}
else
if (r < rz && rzflag != -1)
{
jrw+=nFF;
rzflag = -1;
}
rz = r;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
i = jrw % NMAX;
}
else
if (nFilter) Filter_Complete();
break;
case 107: // CBAP F(z) = Z^3 - 3*(A^2)*Z + B(MOD 2)
t=c;
t3=3*t;
t2=t*t;
a=(t2+1)/t3;
b=2*a*a*a+(t2-cmplx(2,0))/t3;
aa3=a*a*3;
if (jul == 0)
z=-a;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z-aa3*z+b;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 108: // CCAP
t=c;
a=t;
b=t+2*t*t*t;
aa3=a*a*3;
if (jul == 0)
z=-a;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z-aa3*z+b;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 109:
t=c;
a=t;
b=2*t*t*t-2*t;
aa3=a*a*3;
a2=a+a;
if (jul == 0)
z=-a;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z-aa3*z+b;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 110:
a=c;
aa=a*a;
aa3=aa*3;
aaa2=aa*a*2;
if (jul == 0)
z=-a;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z-aa3*z+1+aaa2;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 111:
for (j = 0 ; j < 2 ; j++)
{
if (j)
z = z^z.ccos();
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
}
if (nFilter) Filter_Complete();
break;
case 112:
for (j = 0 ; j < 2 ; j++)
{
if (j)
z = z^z.csin();
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
}
if (nFilter) Filter_Complete();
break;
case 113:
t1 = .02;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
//z = z-c;
z = ((z*z).ccos()+c/(1+z)).ccos()+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 114:
t1 = .02;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
//z = ((z.ccos()).ccos()).ccos()*z+c;
z = z*z;
z = tangent(z)+c;
//z = tangent(z*z)+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 115:
if (jul == 0)
{
z.set_real(0);
z.set_imag(0);
}
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = (z^3) + z*(c-1) - c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 116: // Sharon01 Star
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z*z+1/c; // Sharon01
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 117: // 02 Sharon's Space Probe
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = (z*z/2+c)*(z*z/2+c);
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 118: // Sharon03
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
//z=(z*z*z*z)/(1+acos(z))+c;
z=(1/z*z-c)*(z*z*z*z+c);
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 119: // Sharon04
for (i = 0; i < JMAX && z.squares() < (dBailout) ; i++)
{
z=(z*z*z*z)/(1+z.csin())+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 120: // Sharon05
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
//z = ((z*z+c)*(z*z+c))/2;
z = ((z*z*z*z+c)*(z+1/c));
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 121: // Sharon06
c = c+(c/pi);
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z*z+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 122: // Sharon07
c = 4*(c/2);
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z*z+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 123: // Sharon08
t = (c/2)^2;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z*z+t+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 124: // Sharon09
t = (c/1.936)^2;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z*z+t+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 125: // Sharon10
t = (c/1.993)^2;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z*z+t+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 126:
for (i = 0; i < JMAX && z.squares() < dBailout*25 ; i++)
{
z = (z*z/2)+c;
z = z*z*z*z;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 127: // Sharon12
for (i = 0; i < JMAX && z.squares() < dBailout*25 ; i++)
{
z = (z+z*z/2)+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 128:
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = (z^(c+2))+z*z+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 129:
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z=(z^(c+4))+z*z*z*z+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 130:
t=((z^2)/(2+z)^4);
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z=z*z*z*z*t+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 131:
t=z^(z+2);
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z*z+t+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 132:
t=z/2+z;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z*z+t*c+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 133:
t=(1+c).csin();
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z*z/t+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 134:
temp=atan(fabs(c.real()/c.imag()));
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z*z+c/temp;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 135:
temp=atan(fabs(c.real()/c.imag()));
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z*z+c+temp/2;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 136:
temp=atan(fabs(c.real()/c.imag()));
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z*z+z*z*z+temp+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 137:
temp=atan(fabs(c.real()/c.imag()));
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z = z*z*z*z+temp/(c+z);
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 138:
z2=cmplx(.5,0);
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=z*z-z2*z2+c;
z2=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 139:
z2=z;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=z*z*z*z-z2+c;
z2=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 140:
z2=z;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=z*z*z*z+z2+c;
z2=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 141:
z2=z;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=z*z*z*z+z2/2+c;
z2=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 142:
z2=z;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=z*z*z*z+c.real()*z2/2+c.imag()*z2/2+c;
z2=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 143:
z2=z;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=z*z*z*z+c.real()*c.imag()*z2/2+c;
z2=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 144:
z2=z;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=z*z*z*z+c.real()+c.imag()*z2+c;
z2=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 145:
z2=z;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=z*z*z*z+c.real()/c.imag()*z2+c;
z2=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 146:
z2=z;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=z*z*z*z+4*z2*c;
z2=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 147:
z2=z;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=z*z*z*z+4*z2*c+c;
z2=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 148: // Quartet
z2 = z;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z2 = z;
z = z*z*z*z+c;
c = z2;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 149:
z2=cmplx(.5,0);
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=z*z*z*z-z2*c*z.real()+c+z.imag();
z2=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 150:
z2=cmplx(.5,0);
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=z*z*z*z-z2/2+c+z.real()*c+z.imag();;
z2=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
//////////////////////////////////////////////////////////////////////////////////
case 151:
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z=(((1/z*1/c)*z*z*z*z)+c);
z=z*z*z*z;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 152:
z2=cmplx(0,0);
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=(z*z*z*z+c*z2+c);
z=z*z*z*z;
z2=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 153:
z2=z1;
t=c;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=z.csin()+z*z*z*z+c;
c=t+z1-z;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 154:
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z=z*z*z/c+c;
z=z*z*z;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 155:
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z=z*z*z*z/(1+z)+c;
z=z*z*z*z;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 156:
//z2=z1;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=z*z*z*z/(1+z)+c;
c=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 157:
z2=cmplx(0,0);
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=z*z*z-z2*z2*z2+c;
z2=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 158:
z2=cmplx(0,0);
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=z*z*z*z-z2*z2*z2*z2+c;
z2=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 159:
z2=cmplx(0,0);
t=c/2;
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=(z*z*z*z-z2*z2*z2*z2+c)*(z*z*z*z-z2*z2*z2*z2+c);
z2=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 160:
z2=cmplx(0,0);
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z;
z=(z*z-z2*z2+c)*(z*z-z2*z2-c);
z2=z1;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 161:
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z=z*z+c;
z=z*z*(.5+z)/(.5+c)+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 162:
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z=z*z*z*z*(.5+z)/(.5+c)+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 163:
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z=z*z*(cn+z)/(cn+z+c)+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 164:
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z=z*z*z*z*(cn+z)/(z+c)+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 165:
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z=z*z*z*z*(cn-z)/(cn+c)+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 166:
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z=z*z*z*z*(cn-z)/(cn+c)+c;
z=z*z*z*z;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
case 167:
for (i = 0; i < JMAX && z.squares() < dBailout ; i++)
{
z1=z*z+c;
z=z*z*z*z+c^z+c;
if (nFilter) Delta_z(z.real(), z.imaginary());
}
if (nFilter) Filter_Complete();
break;
default:
AfxMessageBox("Genesis Fractals, shouldn't get here...");
break;
}
}