8 static const int NCM = 3000;
25 else if( dx < 1.0e-5 )
27 exp1_v = ((-x*0.5) - 1.0)*x;
29 else if( dx < 1.0e-3 )
31 exp1_v = (((-x*0.1666666667) - 0.5)*x - 1.0)*x;
35 exp1_v = 1.0 - exp(x);
106 static double ab[
NFREQ],
117 static int first =
true;
118 static const double zero = 0.;
119 static const double one = 1.;
120 static const double two = 2.;
121 static const double four = 4.;
122 static const double con1 = 0.8559;
149 vector<long> mm(
NFREQ);
153 fprintf( stderr,
" increase ncm in hypho to at least%5ld\n",
161 for( i=1; i < 7000; i++ )
164 alo[i-1] = log10(ai);
165 fal[i] = alo[i-1] + fal[i-1];
186 con2 = con1*
POW2(fn/ zed);
189 gn0 = 2.3052328943 - 2.302585093*fal[n+n-1] - fn*0.61370563888 +
190 alo[n-1]*(fn + one)*2.30258093;
191 lmax1 =
MIN2(lmax,n-1);
199 for( i=0; i < lmin; i++ )
206 gnt = 2.*(
POW2( (
double)n ) - gl);
210 for( i=0; i < ncell; i++ )
214 freq[i] = anu[i]*zed2;
215 for( j=0; j < 2; j++ )
224 freq[0] =
MAX2(freq[0],en);
228 for( il=1; il <= ilmax; il++ )
234 con3 = con2/(two*al + one);
237 for( ifp=0; ifp < ncell; ifp++ )
239 if( freq[ifp] < fth )
248 se = freq[ifp] - fth;
251 fprintf( stderr,
" %4ld%12.4e%12.4e\n", ifp,
263 p = 0.5*log10(
exp1(-ee));
272 a = two*(fn - atan(fn*e)/e);
279 ab[m] = (gn0 + a)/2.302585 - p - (fn + two)*
282 gn1e = x*gne/(fn + fn);
285 g2[1][m] = gne*fn*x*(fn + fn - one);
286 g2[0][m] = gn1e*(fn + fn - one)*(four +
292 double g22 = g2[1][m];
293 double g32 = g3[1][m];
294 double g21 = g2[0][m];
295 double g31 = g3[0][m];
329 sl =
POW2( (
double)ll );
332 g12 = (sn4 - sl4 + (two*sl - fll)*x)*g22 -
333 sn4*(sn - sl)*(one +
POW2(fll + one)*se)*
338 sm =
POW2( (
double)lm );
341 g11 = (sn4 - sm4 + (two*sm + flm)*x)*g21 -
342 sn4*(sn -
POW2(flm + one))*(one +
380 alfac = fal[n+l] - fal[n-l-1] + two*(al - fn)*
390 for( i=1; i <= llm; i++ )
393 p1 *= one + ai*ai*se;
407 for( i=llk; i <= lll; i++ )
410 p2 *= one + ai*ai*se;
428 if( fabs(sum) < 35. )
438 anl = fac*x*con3*(g11*al + g12*(al + 1.));
439 anl *= 2.*(2.*al + 1.);
441 bfnu[ifp] += (
realnum)(anl*1e-18);
449 for( i=0; i < ncell; i++ )
void hypho(double zed, long int n, long int lmin, long int lmax, double en, long int ncell, realnum anu[], realnum bfnu[])
STATIC double exp1(double x)
#define DEBUG_ENTRY(funcname)
int fprintf(const Output &stream, const char *format,...)