Difference between revisions of "E1egf.cin"

From TORI
Jump to navigation Jump to search
 
m (Text replacement - "\$([^\$]+)\$" to "\\(\1\\)")
 
Line 1: Line 1:
// [[e1egf.cin]] defines routine for evaluation of the growing [[superfunction]] for the exponential to [[Henryk base]], $\eta=\exp(1/\mathrm e)$.
+
// [[e1egf.cin]] defines routine for evaluation of the growing [[superfunction]] for the exponential to [[Henryk base]], \(\eta=\exp(1/\mathrm e)\).
   
 
//Call it E1EGF, id est, with capital letters in the name.
 
//Call it E1EGF, id est, with capital letters in the name.

Latest revision as of 18:48, 30 July 2019

// e1egf.cin defines routine for evaluation of the growing superfunction for the exponential to Henryk base, \(\eta=\exp(1/\mathrm e)\).

//Call it E1EGF, id est, with capital letters in the name.

//


z_type e1egf(z_type z){ int n,N; z_type c,f;
         // z+= 2.798248154231454;
        // z-=19.940721351446171;
                z-=20.28740458994004; // displacement to have FTG(0)=3
                 z_type t=log(-z); z_type u=-1./(3.*z);
z_type s[16];
s[0]= 1.;
s[1]= t;
s[2]= t*(t- 1. )+ .5;
s[3]= t*(t*(t- 5/ 2.)+ 5/ 2.)- 7/10.;
s[4]= t*(t*(t*(t- 13/ 3.)+ 45/ 6.)- 53/10.)+ 67/60.;
s[5]= t*(t*(t*(t*(t- 77/12.)+ 101/ 6.)- 83/ 4.)+ 653/60.)- 2701/1680.; // this seem
s[6]= t*(t*(t*(t*(t*(t- 87/10.)+ 95/ 3.)- 175/ 3.)+ 267/ 5.)-17245/ 840.)+ 92461/42000.;
s[7]= t*(t*(t*(t*(t*(t*(t-223/20.)+1591/30.)- 535/ 4.)+ 5488/30.)-30061/ 240.)+ 503159/14000.)-348617/84000.;
s[8]=t*(t*(t*(t*(t*(t*(t*(t-481/35.)+2947/36.)-8011/30.)+29977/60.)- 9305/ 18.)+11298583/42000.)-580789/8400.)+4558331/352800.;
s[9]=
  t*(t*(t*(t*(t*(t*(t*(t*(t-4609/280.)+16659/140.)-43417/90.)+349903/300.)-199529/120.)+166822247./126000.)
        -48732671./84000.)+21806039./117600.)-12523881847./388080000.;
N=9; c=s[N]*u;
for(n=N-1;n>0;n-=1){c+=s[n];c*=u;} c+=1.;
return M_E*(1.-(2./z)*c);
}

z_type E1EGF(z_type z){
        if(Re(z)<6.) return e1egf(z);
        if(fabs(Im(z))<5.)return exp(E1EGF(z-1.)/M_E);
        if(abs(z-25.)>25. ) return e1egf(z);
                          return exp(E1EGF(z-1.)/M_E);
                }
//