Logiu.cin

From TORI
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

// Logiu.cin is the C++ routine to calculate the superfunction of the logistic operator

// \(T(z)=4 z (1\!-\!z)\)

// built up at the fied point \(1\!-\!1/4=3/4\)

//



DB Q=3; //
DB LQ;
DB QQ,Q2,Q3,Q4,Q5,Q6,Q7;
DB C1,C2,C3,C4,C5,C6,C7;
DB S1,S2,S3,S4,S5,S6,S7,S8;

void maq(DB q){
Q=q;
QQ=Q*Q;
Q2=QQ;
Q3=QQ*Q;
Q4=QQ*QQ;
Q5=Q4*Q;
Q6=Q3*Q3;
Q7=Q6*Q;
LQ=log(Q);
C2=1. / (1.-Q) ;
C3=2. /((1.-Q)*(1.-Q2) );
C4= (5.+Q) /((1.-Q)*(1.-Q2)*(1.-Q3) );
C5=2.*(7.+Q*(3.+Q*2.)) /((1.-Q)*(1.-Q2)*(1.-Q3)*(1.-Q4) );
C6=2.*(21.+Q*(14.+Q*(14.+Q*( 8.+Q*3.)))) /((1.-Q)*(1.-Q2)*(1.-Q3)*(1.-Q4)*(1.-Q5));
C7=4.*(33.+Q*(30.+Q*(37.+Q*(32.+Q*(27.+Q*(12.+Q*(8.+Q))))))) /((1.-Q)*(1.-Q2)*(1.-Q3)*(1.-Q4)*(1.-Q5)*(1.-Q6));
S1=1.;
S2=1. / (Q-1.);
S3=2.*Q /((Q-1.)*(Q2-1.));
S4= Q *(1.+5.*Q*Q) /((Q-1.)*(Q2-1.)*(Q3-1.) );
S5=2.*Q3*(3.+Q*(2.+QQ*7.)) /((Q-1.)*(Q2-1.)*(Q3-1.)*(Q4-1.) );
S6=2.*Q3*(1.+Q*(3.+QQ*(14.+Q*(14.+Q*(7.+QQ*21))))) /((Q-1.)*(Q2-1.)*(Q3-1.)*(Q4-1.)*(Q5-1.));
S7=4.*Q4*(1.+Q*(5.+Q*(15.+Q*(12.+Q*(8.+Q*(30.+Q*(37.+Q*(27.+Q*(12.+QQ*(33.))))))))))
                                                                /((Q-1.)*(Q2-1.)*(Q3-1.)*(Q4-1.)*(Q5-1.)*(Q6-1.));
S8=Q4*(1.+QQ*(5.+Q*(60.+Q*(69.+Q*(89.+Q*(162.+Q*(415.+Q*(495.+Q*(531.+Q*(267.+Q*(630.+Q*(705.+Q*(621.+Q*(396+Q*(165.+Q*429)
              ) ) ) ) ) ) ) ) ) ) ) ) )
        ) /((Q-1.)*(Q2-1.)*(Q3-1.)*(Q4-1.)*(Q5-1.)*(Q6-1.)*(Q7-1.));
;
printf("maq: Q=%9.6f\n",Q);}

z_type J(z_type z){ return .5-sqrt(.25-z/Q); }
z_type H(z_type z){ return Q*z*(1.-z); }

z_type f(z_type z){z_type e;e=exp(LQ*z);return e*(1.+e*(C2+e*(C3+e*(C4+e*(C5+e*(C6+e*C7)))))); }
z_type F(z_type z){ if(Re(z)>-6.) return H(F(z-1.)); return f(z);}
z_type e(z_type z){ return z*(1.+z*(S2+z*(S3+z*(S4+z*(S5+z*(S6+z*(S7+z* S8)))))));}
z_type E(z_type z){ if(abs(z)>.1) return E(J(z))+1.;
                        return log(e(z))/LQ;}
//#include "efjh.cin"
/*
z_type arccos(z_type z){ return -I*log(z+I*sqrt(1.-z*z)); }
z_type coe(z_type z){ return .5*(1.-cos(exp((z+1.)/LQ))); }
z_type boe(z_type z){ return LQ*log(arccos(1.-2.*z))-1.; }
z_type doe(z_type z){ return coe(1.+boe(z));; }
*/
z_type u(z_type z){
DB q1 =Q-1.;
DB q2 =Q-2.;
DB q3 =Q-3.;
DB q2L=log(q2);
DB U0=q1/Q;
DB U1=1.;
DB U2=-Q/(q1*q2);
DB U3=-2.*QQ/(q1*q1*q2*q2*q3);
DB U4=-2.*Q3*(Q-7.)/(q1*q1*q1*q2*q2*q2*(-21.+Q*(22.+Q*(-8.+Q))) );
z_type e=-exp(z*q2L)*cos(M_PI*z);
//return U0+e;
//return U0+e*(1.+e*(U2));
//return U0+e*(U1+e*(U2+e*U3));
return U0+e*(U1+e*(U2+e*(U3+e*U4)));
}
z_type U(z_type z){ if(Re(z)+3*fabs(Im(z))>-6.) return H(U(z-1.)); return u(z);}

//

//