/////////////////////////////////////
// ftloo01.c
// 
// stephen c. ferguson
// created 10/18/98
// modified 27 June 2007 by Tad Boniecki
//
/////////////////////////////////////
void Formula_00(CDATA *v)
{
	// Nova variation method
	z = v->z;
	temp = 1;
      while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
      {
  	      v->pXTemp[v->Iteration] = __real__ v->z;
	      v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		sine_cosine();

		z2 = z*z;
		z3 = z2*z;
            v->z = z - (zsin*clog_z() - ctan_z())/(z2*zcos - 2*z)* v->c;   

		zd = z1-v->z;
	      temp = sum_sqrs_zd();
      }

      v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// 3243 - 3258
void Formula_01(CDATA *v)
{
	// Nova variation method
	z = v->z;
	//v->z += 1;

	temp = 1;
      while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
      {
  	      v->pXTemp[v->Iteration] = __real__ v->z;
	      v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		sine_cosine();

		z2 = z*z;
		z3 = z2*z;
            v->z = z-(z3*zsin - 1)/(7*z2*zcos - 1)+ v->c;    // 

		zd = z1-v->z;
	      temp = sum_sqrs_zd();
      }

      v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}

// very similar to #6
void Formula_02(CDATA *v)
{
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();

		v->z = z-(zsin/(1e-15+zcos))*(z8-z6-zsin-z-1)/(8*z7-6*z5-zcos -c);    // almost the old 49 for 3165 "no 1-3"

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 3189 - 3197, and 3199 - 3205 a very complicated one
void Formula_03(CDATA *v)
{
	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z3*z;
		z5 = z4*z;
		sine_cosine();
		//zcos = (1e-15+zcos)/0.1;
		//zsin = (1e-15+zsin)/0.1;

            v->z = z - ((z*zsin) - z3 + v->c/(z5*zcos))/(c/z5 + zsin*zcos - 100*z5);
		v->z = v->z - z*((z4 - z*zsin - v->c)/(4*z3 - 3*z2 - 2*z -  z*zcos - v->c)); 
            v->z = c/(v->z);
            v->z = (v->z)*(v->z) - v->z;

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;

}
// OK 3045 - 3077
void Formula_04(CDATA *v)
{
	// Newton method
	if (v->jul == 0)
	 v->z = 1;
	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
		z = z1 = v->z;
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		sine_cosine();
    //v->z = z-(z4-z)/(4*z3)+v->c;    

		// a good one
		v->z = z - ((z5 - z4 + z3*zsin + v->c)/(z4 + z3 - z2*zcos + v->c)); 

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }

	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 3003 - 3044
void Formula_05(CDATA *v)
{
	// Twister weed method
	z1 = z;
	z = v->z;
      c2 = cexp_z();
	//z = z1;
	
	//c2 = 1;
	temp = 1;

  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
		z1 = z;
  	
		v->pXTemp[v->Iteration] = __real__ z;
	  v->pYTemp[v->Iteration] = __imag__ z;
  	
		z2 = z*z;
		sine_cosine();
		z = z -(c2*z2*z2-1)/(z*z2*zcos - z*c)+ v->c;

		zd = z1-z;
	  temp = sum_sqrs_zd();
  }

	v->pXTemp[v->Iteration] = __real__ z;
	v->pYTemp[v->Iteration] = __imag__ z;

	v->z = z;
}
// another variant of old #49, ?? 3167 - 3174 Others too - it's good
void Formula_06(CDATA *v)
{
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();

		//v->z = z-(zsin/(1e-15+zcos))*(z8-z6-zsin-z-1)/(8*z7-6*z5-zcos -c);    // almost the old 49 for 3165 "no 1-3"
		//v->z = z-(zsin/(1e-15+zcos))*(z8-zsin-z*c)/(8*z7-zcos-c);           // current #8 - same red/blue flame as the above when enlarged

		v->z = z-(zsin/(1e-15+zcos))*(z8-z6-zsin-z-1)/(8*z7-6*z5-zcos);     // new 3167 - 3174 ?

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 2946 - 2987
void Formula_07(CDATA *v)  // Phoenix
{
	// Nova variation method
	z = v->z;
	v->z = csin_z();

	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		sine_cosine();
    v->z = z -(c*cexp_z()*z4-z)*(z3 - zsin*clog_z())/(z2*zcos + zsin*zsin*zsin)+v->c;  

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }

  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;

}
// variant of old #49, 3152 to 3163
void Formula_08(CDATA *v)
{
 	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();

		v->z = z-(zsin/(1e-15+zcos))*(z8-zsin-z*c)/(8*z7-zcos-c);    

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 2848 - 2872
void Formula_09(CDATA *v)
{
	// Nova variation method
	z = v->z;
	v->z = csin_z();

	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		sine_cosine();
            //v->z = z-(z4-z)/(4*z3-z)+ v->c;    
    v->z = z-(z3 - zsin*clog_z())/(z2*zcos + zsin*zsin*zsin)+v->c;  

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }

  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;

}
// OK 2719 - 2809
void Formula_10(CDATA *v)
{
	// Nova variation method
	z = v->z;
	//v->z += 1;

	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		sine_cosine();

		z2 = z*z;
		z3 = z2*z;
    v->z = z-(z3*zsin-1)/(3*z2*zcos - zsin*zsin)+v->c;    

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }

  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;

}
//OK 2698 - 2718
void Formula_11(CDATA *v)
{
	z = v->z;
	c = v->c;

  z = -z/3;
	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
    v->pXTemp[v->Iteration] = __real__ z;
	  v->pYTemp[v->Iteration] = __imag__ z;

    z2 = z;
    z1 = z*z;
    sine_cosine();
    
    z = z - (c*cexp_z()*zsin * z1*clog_z())/(z*z + c * zcos);

    zd = z-z2;
	  temp = sum_sqrs_zd();
  }
	__real__ v->z = __real__ z;
	__imag__ v->z = __imag__ z;
  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}

// OK 2652 - 2687
void Formula_18(CDATA *v)  // Newton M-Set, Explanation by Paul Carlson
{
	z = v->z;
	c = v->c;

  z = -z/3;
	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
    v->pXTemp[v->Iteration] = __real__ z;
	  v->pYTemp[v->Iteration] = __imag__ z;

    z2 = z;
    z1 = z*z;
    sine_cosine();
    //z=z-(z*z1+z1*c-z+c-zsin)/(3*z1+2*c*z-1-zcos);
    
    z= z - (c*cexp_z()*zsin - z1*clog_z())/(z*z + c*z - zcos);

    zd = z-z2;
	  temp = sum_sqrs_zd();
  }
	__real__ v->z = __real__ z;
	__imag__ v->z = __imag__ z;
  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 2620 - 2651
void Formula_19(CDATA *v)
{
	z = v->z;
	c = v->c;

  z = -z/3;
	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ z;
	  v->pYTemp[v->Iteration] = __imag__ z;

    z2 = z;
		
		//ztan = ctan_z()/v->bailout;
		sine_cosine();
		zcos = (1e-15+zcos)/v->dStrands;
		zsin = (1e-15+zsin)/v->dStrands;
    
		z=z-(z*z*z+ c*cexp_z() - z - z*clog_z())/(3*z*z+2*c*z-zcos);
    
		zd = z-z2;
	  temp = sum_sqrs_zd();
  }
	__real__ v->z = __real__ z;
	__imag__ v->z = __imag__ z;
  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 2599 - 2619
void Formula_20(CDATA *v)
{
  /*
  Solve the roots of the function.
  Initialize z to one of the roots.
  Apply Newton's method for solving roots.
  f(z) = z - z/z'

  z   = z*z*z*z - z*z*z*c - z - c;  // the function
  z'  = 4*z*z*z - 3*z*z*c - 1;      // 1st derivative
  z'' = 12*z*z - 6*z*c;             // 2nd derivative

  12*z*z = 6*z*c;
  z   = (6*z*c)/(12*z);             // solve for z
  z   = c/2;

  */

	z = v->z;
	c = v->c;

  z = z/2;
	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ z;
	  v->pYTemp[v->Iteration] = __imag__ z;

    z2 = z;
    z1 = z*z;

		sine_cosine();
		//zcos = (1e-15+zcos)/v->dStrands;
		//zsin = (1e-15+zsin)/v->dStrands;
    
		z=z-(z1*c*cexp_z() - z1*z*c - z - z*clog_z())/(4*z*z1 - 3*z1*c - zcos);

    zd = z-z2;
	  temp = sum_sqrs_zd();
  }
	__real__ v->z = __real__ z;
	__imag__ v->z = __imag__ z;
  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}

// OK 2584 - 2598
void Formula_21(CDATA *v)  // 
{
  /*
  Solve the roots of the function.
  Initialize z to one of the roots.
  Apply Newton's method for solving roots.
  f(z) = z - z/z'

  z   = z*z*z*c + z*z + z + c;  // the function
  z'  = 3*z*z*c + 2*z + 1;      // 1st derivative
  z'' = 6*z*c   + 2;            // 2nd derivative

  6*z*c = -2;
  z     = -2/(6*c);             // solve for z
  z     = -1/(3*c)

  */

	z = v->z;
	c = v->c;

  z = -1/(3*z);
	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ z;
	  v->pYTemp[v->Iteration] = __imag__ z;

    z2 = z;
    z1 = z*z;
		sine_cosine();
    z =z-(z1*c + c*cexp_z() + ctan_z() - zcos)/(z1*z1*c + z*clog_z() + c - zsin);
    zd = z-z2;
	  temp = sum_sqrs_zd();
  }
	__real__ v->z = __real__ z;
	__imag__ v->z = __imag__ z;
  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 2550 to 2583
void Formula_22(CDATA *v)  // 
{
	z = v->z;
	c = v->c;

  if (v->jul == 0)
    z = -.5;

	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ z;
	v->pYTemp[v->Iteration] = __imag__ z;

    z2 = z;
    z1 = z*z;
    z  = z2;

    sine_cosine();
    
    z  = z-(z1*z*c * c * cexp_z()*zsin)/(zsin + 2*zcos);

    zd = z-z2;
    temp = sum_sqrs_zd();
  }
	__real__ v->z = __real__ z;
	__imag__ v->z = __imag__ z;
      v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 2511 - 2542
void Formula_23(CDATA *v)  // 
{
	z = v->z;
	c = v->c;

  z = -.5/z;
	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ z;
	  v->pYTemp[v->Iteration] = __imag__ z;

    z2 = z;
    z1 = z*z;

		//ztan = ctan_z();
		sine_cosine();
		//zcos = (1e-15+zcos)/v->dStrands;
		//zsin = (1e-15+zsin)/v->dStrands;
    
    z  = z-(z1*z1*c + z1*z + z + c - zsin)/(4*z1*z*c + 3*cexp_z() - zcos);
    zd = z-z2;
	  temp = sum_sqrs_zd();
  }
	__real__ v->z = __real__ z;
	__imag__ v->z = __imag__ z;
  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 2479 - 2510
void Formula_24(CDATA *v)  // testing
{
  /*
  Solve the roots of the function.
  Initialize z to one of the roots.
  Apply Newton's method for solving roots.
  f(z) = z - z/z'

  z   = z*z*z + z*z*c + c;  // the function
  z'  = 3*z*z + 2*z*c    ;  // 1st derivative
  z'' = 6*z + 2*c        ;  // 2nd derivative

	6*z = -2*c;
  z     = -2*c/6;

  */

	z = v->z;
	c = v->c;

  z = -z/3;

	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ z;
	  v->pYTemp[v->Iteration] = __imag__ z;

    z2 = z;
    z1 = z*z;

		//ztan = ctan_z();
		sine_cosine();
		//zcos = (1e-15+zcos)/v->dStrands;
		//zsin = (1e-15+zsin)/v->dStrands;
    
    z  = z - (z1*cexp_z() + z1*c + c - zsin)/(3*z1 + 2*z*c - zcos);

    zd = z-z2;
	  temp = sum_sqrs_zd();
  }
	__real__ v->z = __real__ z;
	__imag__ v->z = __imag__ z;
  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 2449 - 2478
void Formula_25(CDATA *v)  // testing
{
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();
	      v->z = z + (z5*zsin - c*z4*zcos)/((z5*clog_z() + ctan_z()) * ctan_z());
		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 2434 - 2448
void Formula_26(CDATA *v)  // testing
{
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();
      	v->z = z + cexp_z() * (z5*zsin - c*z4*zcos)/((z5*clog_z() + ctan_z()) * ctan_z());
		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK but not too hot 2421 - 2433
void Formula_27(CDATA *v)  // testing
{
  /*
  Solve the roots of the function.
  Initialize z to one of the roots.
  Apply Newton's method for solving roots.
  f(z) = z - z/z'

  z   = z*z*z*z*z*z*z + z*z*z*z*z*z*c + c;  // the function
  z'  = 7*z*z*z*z*z*z + 6*z*z*z*z*z*c    ;  // 1st derivative
  z'' = 42*z*z*z*z*z  + 30*z*z*z*z*c     ;  // 2nd derivative

	42*z*z*z*z*z = -30*z*z*z*z*c;
  z            = -(30*z*z*z*z*c)/(42*z*z*z*z);
  z            = -(15*c)/21;
  z            = -(5*c)/7;

  */

  //if (jul == 0)

	z = v->z;
	c = v->c;

  z = -(5*z)/7;

	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ z;
	  v->pYTemp[v->Iteration] = __imag__ z;

    z1 = z;
    z2 = z1*z1;
    z5 = z2*z2*z1;

		sine_cosine();
		//zcos = (1e-15+zcos)/v->dStrands;
		//zsin = (1e-15+zsin)/v->dStrands;
    
		z  = (7*z5*z1 + 6*z5*c - zcos);    
		z  = z1-(z5*z2 + z5*z1*c + c - zsin)/z;
      	v->z = z + ctan_z() * (z5*zsin - z4*zcos)/(z5 + ctan_z()) * zsin * zcos * ctan_z();

    zd = z-z1;
	  temp = sum_sqrs_zd();
  }
	__real__ v->z = __real__ z;
	__imag__ v->z = __imag__ z;
  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 2405 to 2420
void Formula_28(CDATA *v)  // 9th order Newton Mset
{
  /*
  Solve the roots of the function.
  Initialize z to one of the roots.
  Apply Newton's method for solving roots.
  f(z) = z - z/z'

  z   = z*z*z*z*z*z*z*z*z + z*z*z*z*z*z*z*z*c + c;  // the function
  z'  = 9*z*z*z*z*z*z*z*z + 8*z*z*z*z*z*z*z*c    ;  // 1st derivative
  z'' = 72*z*z*z*z*z*z*z  + 56*z*z*z*z*z*z*c     ;  // 2nd derivative

	72*z*z*z*z*z*z*z = -56*z*z*z*z*z*z*c;
  z                = -(56*z*z*z*z*z*z*c)/(72*z*z*z*z*z*z);
  z                = -(7*c)/9;

  */

  //if (jul == 0)

	z = v->z;
	c = v->c;

  z = -(7*z)/9;

	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ z;
	  v->pYTemp[v->Iteration] = __imag__ z;

    z1 = z;
    z2 = z*z;
    z4 = z2*z2;
    z5 = z2*z2*z;
    z8 = z4*z4;

		sine_cosine();
		//zcos = (1e-15+zcos)/v->dStrands;
		//zsin = (1e-15+zsin)/v->dStrands;
    
    //z  = z-(z5*z4 + z8*c + c - zsin)/(9*z8 + 8*z5*z2*c - zcos);
    z = z - zsin/(clog_z()*z8 + (cexp_z() + c*z - zcos));

    zd = z-z1;
	  temp = sum_sqrs_zd();
  }
	__real__ v->z = __real__ z;
	__imag__ v->z = __imag__ z;
  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 2386 to 2404
void Formula_29(CDATA *v)  // 13th order Newton Mset
{
  /*
  Solve the roots of the function.
  Initialize z to one of the roots.
  Apply Newton's method for solving roots.
  f(z) = z - z/z'

  z   = z^13         + (z^12)*c + c;    // the function
  z'  = 13*(z^12)    + 12*(z^11)*c;     // 1st derivative
  z'' = 12*13*(z^11) + 11*12*(z^10)*c;  // 2nd derivative

  12*13*(z^11) = -11*12*(z^10)*c;
  z            = -(11*12*(z^10)*c)/(12*13*(z^10));
               = -(11*12*c)/(12*13);
               = -11*c/13;

  */

  //if (jul == 0)

	z = v->z;
	c = v->c;

  z = -(11*z)/13;

	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ z;
	  v->pYTemp[v->Iteration] = __imag__ z;

    z1 = z;
    z2 = z*z;
    z4 = z2*z2;
    z5 = z2*z2*z;
    z8 = z4*z2;
    z8 = z4;

		sine_cosine();
		//zcos = (1e-15+zcos)/v->dStrands;
		//zsin = (1e-15+zsin)/v->dStrands;
    
    z = z - (clog_z()*z8 + (cexp_z() + c*z - zcos))/zsin;

    zd = z-z1;
	  temp = sum_sqrs_zd();
  }
	__real__ v->z = __real__ z;
	__imag__ v->z = __imag__ z;
  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 2364 to 2380
void Formula_30(CDATA *v)  // Testing again
{
	z = v->z;
	c = v->c;

 	z = -(3*z)/5;
	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ z;
	  v->pYTemp[v->Iteration] = __imag__ z;

    z1 = z;
    z2 = z*z;

		sine_cosine();
		//zcos = (1e-15+zcos)/v->dStrands;
		//zsin = (1e-15+zsin)/v->dStrands;
    
    z = z - clog_z()*(z2*z2*z + z2*z2*c + z + c - zsin)/(5*z2*cexp_z() + 4*z2*z*c + 1 - zcos);

    zd = z-z1;
	  temp = sum_sqrs_zd();
  }
	__real__ v->z = __real__ z;
	__imag__ v->z = __imag__ z;
  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;

}
// OK 2311 to 2341
void Formula_31(CDATA *v)  // Newton Diamond
{
  /*
  Solve the roots of the function.
  Initialize z to one of the roots.
  Apply Newton's method for solving roots.
  f(z) = z - z/z'

  z   = z^5      + (z^4)*c   + z + c;  // the function
  z'  = 5*(z^4)  + 4*(z^3)*c + 1;      // 1st derivative
  z'' = 20*(z^3) + 12*(z^2)*c;         // 2nd derivative

  20*(z^3) = -12*(z^2)*c;
  z   = -(12*(z^2)*c)/(20*(z^2));       // solve for z
  z   = -(3*c)/5;

  */

	z = v->z;
	c = v->c;

  z = -(3*z)/5;
	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ z;
	  v->pYTemp[v->Iteration] = __imag__ z;

    z1 = z;
    z2 = z*z;

		sine_cosine();
		//zcos = (1e-15+zcos)/v->dStrands;
		//zsin = (1e-15+zsin)/v->dStrands;
    
    z = z - clog_z()*(z2*z2*z + z2*z2*c + z + c - zsin)/(5*z2*z2 + 4*z2*z*c + 1 - zcos);

    zd = z-z1;
	  temp = sum_sqrs_zd();
  }
	__real__ v->z = __real__ z;
	__imag__ v->z = __imag__ z;
  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// ok 2283 to 2310
void Formula_32(CDATA *v)  // Newton Pentagon
{
  /*
  Solve the roots of the function.
  Initialize z to one of the roots.
  Apply Newton's method for solving roots.
  f(z) = z - z/z'

  z   = z^6      + (z^5)*c   + z + c;  // the function
  z'  = 6*(z^5)  + 5*(z^4)*c + 1;      // 1st derivative
  z'' = 30*(z^4) + 20*(z^3)*c;         // 2nd derivative

  30*(z^4) = -20*(z^3)*c;
  z   = -(20*(z^3)*c)/(30*(z^3));      // solve for z
  z   = -(2*c)/3;
  */

	z = v->z;
	c = v->c;

  z = -(2*z)/3;
	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ z;
	  v->pYTemp[v->Iteration] = __imag__ z;

    z1 = z;
    z2 = z*z;
    z4 = z2*z2;

		sine_cosine();
		//zcos = (1e-15+zcos)/v->dStrands;
		//zsin = (1e-15+zsin)/v->dStrands;
    
    //z=z-(z4*z2 + z4*z*c + z + c - zsin)/(6*z4*z + 5*z4*c - zcos);
		z = z - z2*cexp_z()+ c*zcos;
    
		zd = z-z1;
	  temp = sum_sqrs_zd();
  }
	__real__ v->z = __real__ z;
	__imag__ v->z = __imag__ z;
  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 2270 to 2282
void Formula_33(CDATA *v)  // Newton Hexagon
{
  /*
  Solve the roots of the function.
  Initialize z to one of the roots.
  Apply Newton's method for solving roots.
  f(z) = z - z/z'

  z   = z^7      + (z^6)*c   + z + c;  // the function
  z'  = 7*(z^6)  + 6*(z^5)*c + 1;      // 1st derivative
  z'' = 42*(z^5) + 30*(z^4)*c;         // 2nd derivative

  42*(z^5) = -30*(z^4)*c;
  z   = -(30*(z^4)*c)/(42*(z^4));      // solve for z
  z   = -(5*c)/7;

  */

	z = v->z;
	c = v->c;

  z = -(5*z)/7;
	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ z;
	  v->pYTemp[v->Iteration] = __imag__ z;

    z1 = z;
    z2 = z*z;
    z4 = z2*z2;

		sine_cosine();
		//zcos = (1e-15+zcos)/v->dStrands;
		//zsin = (1e-15+zsin)/v->dStrands;
    
    z = z - (z4*z2*z + z4*z2*c + z*cexp_z() + c - zsin)/(7*z4*z2 + 6*z4*z*c + cexp_z()* - zcos);
    
		zd = z-z1;
	  temp = sum_sqrs_zd();
  }
	__real__ v->z = __real__ z;
	__imag__ v->z = __imag__ z;
  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 2257 to 2269
void Formula_34(CDATA *v)  // Newton Octagon
{
  /*

  Solve the roots of the function.
  Initialize z to one of the roots.
  Apply Newton's method for solving roots.
  f(z) = z - z/z'

  z   = z^9      + (z^8)*c   + z + c;  // the function
  z'  = 9*(z^8)  + 8*(z^7)*c + 1;      // 1st derivative
  z'' = 72*(z^7) + 56*(z^6)*c;         // 2nd derivative

  72*(z^7) = -56*(z^6)*c;
  z   = -(56*(z^6)*c)/(72*(z^6));      // solve for z
  z   = -(7*c)/9;

  */

	z = v->z;
	c = v->c;

  z = -(7*z)/9;
	temp = 1;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ z;
	  v->pYTemp[v->Iteration] = __imag__ z;

    z1 = z;
    z2 = z*z;
    z4 = z2*z2;

		sine_cosine();
		//zcos = (1e-15+zcos)/v->dStrands;
		//zsin = (1e-15+zsin)/v->dStrands;
        
		z=z- cexp_z()*(z4*z4*z + z4*z4*c + z + c - zsin)/(9*z4*z4 + 8*z4*z2*z*c + 1 - zcos);

    zd = z-z1;
	  temp = sum_sqrs_zd();
  }
	__real__ v->z = __real__ z;
	__imag__ v->z = __imag__ z;
  v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// keep 3147 to 3151
void Formula_35(CDATA *v)  // Testing
{
 	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();

		v->z = z-(zsin/(1e-15+zcos))*(z7-zsin-z*c-1)/(8*z7-zcos-c);    

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// keep 2207 to 2241
void Formula_36(CDATA *v)
{
  //MessageBox(NULL, "formula 02", "bug", MB_OK);

	//if (v->jul == 0)
	  //v->z += 1;
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();
	      c2 = cexp_z();

    		v->z = z-(z5-z3-z2*zsin-c2*zsin)/(5*z3-z*z2-z2*zcos-1-zcos)+ v->c;    

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 2193-2206
void Formula_37(CDATA *v)
{
  //MessageBox(NULL, "formula 02", "bug", MB_OK);

	//if (v->jul == 0)
	  //v->z += 1;
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();
    		v->z = z + (ctan_z()*ctan_z() - z4 + 7*c )/((z*zsin * zcos - z5)*ctan_z());

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK 2184 to 2192
void Formula_38(CDATA *v)
{
  //MessageBox(NULL, "formula 02", "bug", MB_OK);

	//if (v->jul == 0)
	  //v->z += 1;
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();
            v->z = z - (z7*zcos - z4)/(z2*zsin -1 ) + v->c;    

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// keep 2149 - 2171
void Formula_39(CDATA *v)
{
  //MessageBox(NULL, "formula 02", "bug", MB_OK);

	//if (v->jul == 0)
	  //v->z += 1;
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();
    
		v->z = z-(z3-z2-z*zsin)/(z3-z2-z*zcos)+v->c;    
		
		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// keep 2137 - 2148
void Formula_40(CDATA *v)
{
  //MessageBox(NULL, "formula 02", "bug", MB_OK);

	if (v->jul == 0)
	  v->z += 1;
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();

            v->z = z - (z - c)*(z + c)*(z*z + c)*c;

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// keep 2123-2134
void Formula_41(CDATA *v)
{
  //MessageBox(NULL, "formula 02", "bug", MB_OK);

	//if (v->jul == 0)
	  //v->z += 1;
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();
		v->z = z-(zsin/(1e-15+zsin))*(z8-z5*zsin-z*c-1)/(8*z7-6*z5-zcos-c)*(z5-z4*zsin-zsin*z*c-z);    

// was    v->z = z-(z5-z4*zsin-zsin*z*c-z)/(5*z4-5*z4*zcos-zcos*z*c-1);    

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// OK but weak 3123 - 3135
void Formula_42(CDATA *v)
{
  //MessageBox(NULL, "formula 02", "bug", MB_OK);

	//if (v->jul == 0)
	  //v->z += 1;
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();
            v->z = z-(z3*zsin * zcos * zcos - c)/(z*cexp_z() - zsin + z2);      // change this 

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// Similar to original 3087 - 3095
void Formula_43(CDATA *v)
{
  //MessageBox(NULL, "formula 02", "bug", MB_OK);

	//if (v->jul == 0)
	  //v->z += 1;
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();

    v->z = z-(z5*zsin-z3*zsin-zsin*z*c-z)/(5*z4*zcos-z4*zcos-zcos*z2*c-1);        

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}
// keep 2050 - 2070
void Formula_44(CDATA *v)
{
  //MessageBox(NULL, "formula 02", "bug", MB_OK);

	//if (v->jul == 0)
	  //v->z += 1;
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();
    
// was      v->z = z-(z6-z5-z5*zsin-z4*zsin*c-zsin*z*c-z)/(6*z5-5*z4-z5*zcos-z4*zcos*c-zcos*z*c-1);    

	      v->z = z-(z5*zsin-z4*zsin-z3*zsin-z2*zsin*c)/(4*z3*zcos-3*z2*zcos-z2*zcos*c);    
	
		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}

// keep 2032-2049
void Formula_45(CDATA *v)
{
  //MessageBox(NULL, "formula 02", "bug", MB_OK);

	//if (v->jul == 0)
	  //v->z += 1;
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();

    		v->z = (z -(z*zsin * zcos - z5)*ctan_z())/(zsin*z5 -zcos*(z2-zsin));

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}

// keep 1986 - 2028
void Formula_46(CDATA *v)
{
  //MessageBox(NULL, "formula 02", "bug", MB_OK);

	//if (v->jul == 0)
	  //v->z += 1;
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();

  		v->z = z-(z8+z6+z5-z5*zsin-z4*zcos*c-z)/(8*z7-6*z5-5*z4-z5*zcos*zcos-z4*zcos-1);    

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}

// keep 1957 - 1985
void Formula_47(CDATA *v)
{
  //MessageBox(NULL, "formula 02", "bug", MB_OK);

	//if (v->jul == 0)
	  //v->z += 1;
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();
    
		v->z = z - (c + ctan_z() + zcos*zsin)/(ctan_z() + z4*zsin - z5);

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}

// 1921 - 1930 keep
void Formula_48(CDATA *v)
{
  //MessageBox(NULL, "formula 02", "bug", MB_OK);

	//if (v->jul == 0)
	  //v->z += 1;
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();

    		v->z = (z -(z*zsin * zcos - z5)*ctan_z()/(ctan_z()*ctan_z() - z4 + 7*c));

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}

// modified 20 June 2007 produced # 1696 - 1713; to keep
void Formula_49(CDATA *v)
{

	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();

		v->z = z-(zsin/(1e-15+zcos*zsin + c))*(z8-z6-zsin-z*c-1)/(8*z7-6*z5-zcos-c);    
// was   	v->z = z-(zsin/(1e-15+zcos))*(z8-z6-zsin-z*c-1)/(8*z7-6*z5-zcos-c);    

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}

// modified June 2007; another version of #49; made # 1714 - 1733; To keep
void Formula_50(CDATA *v)
{
  temp = 1;
  c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
      v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();

// was      v->z = z-(z4-z3-z3-z2*zsin*c)/(4*z3-3*z2-z2*zcos*c);    
		v->z = z-(zsin/(1e-15+7*zcos*zsin + c))*(4*z8-z6-zsin-z*c-1)/(z7-6*z5-zcos-c);    

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
  v->pXTemp[v->Iteration] = __real__ v->z;
  v->pYTemp[v->Iteration] = __imag__ v->z;
}

// entirely new formula 27/6/7; used for # 1737 - 1778; to keep
void Formula_51(CDATA *v)
{
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();

// was	v->z = z-(z4*zsin-z3*zsin-z3*zsin-z2*zsin*c)/(4*z3-3*z2-z2*zcos*c);    
		v->z = z - c*(z8*zsin - z5 + z4*zcos)/(z6 - 27*z7 + z*c);

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}

// entirely new formula 10/7/7; used for # 1800 - 1828; to keep
void Formula_52(CDATA *v)
{
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();

// was      v->z = z-(z4*zsin-z3*zsin-z3*zsin-z2*zsin*c)/(4*z3*zcos-3*z2*zcos-z2*zcos*c);    
		v->z = z - c*(z*ctan_z() - z4*zcos)/(zsin*z5 -zcos*(z2-zsin));

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}

// partially tested variant of new 52 22/7/7; 1837 - 1839 keep
void Formula_53(CDATA *v)
{
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();

// was   	v->z = z-(z3*zsin-z2*zsin*c-1)/(3*z2*zcos-2*z*zcos*c);    
            v->z = z + ctan_z()*ctan_z();

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}

// 1847 - 1860
void Formula_54(CDATA *v)
{
  //MessageBox(NULL, "formula 02", "bug", MB_OK);

	// 4th order Nova
	//if (v->jul == 0)
	  //v->z = 1;
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();

      	v->z = z + ctan_z()*ctan_z() * (z + z*ctan_z()) * z2*zsin * z3*zcos * z8*ctan_z()/(z5*zsin - z4);

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}

// 1862 - 1903
void Formula_55(CDATA *v)
{
  //MessageBox(NULL, "formula 02", "bug", MB_OK);

	//if (v->jul == 0)
	  //v->z += 1;
	temp = 1;
	c = v->c;
  while( v->Iteration++ < v->Maxit && temp > zerotol && temp < dMAX)
  {
  	v->pXTemp[v->Iteration] = __real__ v->z;
	  v->pYTemp[v->Iteration] = __imag__ v->z;

		z = z1 = v->z;
		z2 = z*z;
		z3 = z2*z;
		z4 = z2*z2;
		z5 = z4*z;
		z6 = z5*z;
		z7 = z6*z;
		z8 = z7*z;
		sine_cosine();
      	v->z = z + ctan_z() * (z5 + ctan_z()) * zsin * zcos * ctan_z()/(z5*zsin - z4*zcos);

		zd = z1-v->z;
	  temp = sum_sqrs_zd();
  }
  
	v->pXTemp[v->Iteration] = __real__ v->z;
	v->pYTemp[v->Iteration] = __imag__ v->z;
}