Logiu.cin

From TORI
Jump to: navigation, search

// 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);}

//

//