/*
Orion Sky Lawlor, olawlor@acm.org, 9/23/2000

Computes the Ricatti-Bessel function Psi_n(z).
This function is used in, for example, various
spherical harmonics applications.
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

class ricatti_bessel { public:
	//Compute the R/B function of order n at z
	// Picks the most accurate function below
	static double psi(int n,double z) {
		if (z<1.0+0.3*n) return inf_series(n,z);
		else return recurse(n,z);
	}
	//Compute derivative with respect to z of
	// the R/B function of order n at z (via finite difference)
	static double psiPrime(int n,double z) {
		double dz=1e-11*z;
		return 0.5*(psi(n,z+dz)-psi(n,z-dz))/dz;
	}
	
	//Compute the R/B function of order n at z
	// using an infinite series.
	//  Blows up (does not converge) for large z (>20)
	//  Converges to 1e-15 in under 10 iterations for z<1.0
	static double inf_series(int n,double z,int *nIt=NULL);
	
	//Compute the R/B function of order n at z
	// using a simple recursion formula.
	//  Blows up for small z (>0.01) and reasonable n
	static double recurse(int n,double z);
	
	//Compute the R/B function of order n at z
	// using the Gumprecht and Sliepcevich 1951
	// finite series identity.  [NOT RECOMMENDED]
	//  Blows up for smallish z (>0.1) and reasonable n
	static double series(int n,double z);
private:
	static double fact(int n) {
		register double ret=1;
		while (n>1) {
			ret*=n;
			n--;
		}
		return ret;
	}
};

//Compute the R/B function of order n at z
// using the Gumprecht and Sliepcevich 1951
// finite series identity.
double ricatti_bessel::series(int n,double z)
{
	long double sum_s=0,sum_c=0;
	int m,top=n/2;
	for (m=0;m<=top;m++)
		sum_s+=((m&1)?-1:1)*fact(n+2*m)/ (
			fact(2*m)*fact(n-2*m)*pow(2*z,2*m) );
	top=(int)floor((n-1)/2.0);
	for (m=0;m<=top;m++)
		sum_c+=((m&1)?-1:1)*fact(n+2*m+1)/ (
			fact(2*m+1)*fact(n-2*m-1)*pow(2*z,2*m+1) );
	return sin(z-(n&3)*(M_PI/2)) * sum_s +
	       cos(z-(n&3)*(M_PI/2)) * sum_c;
}

//Compute the R/B function of order n at z
// using an infinite series.
double ricatti_bessel::inf_series(int n,double z,int *nIt)
{
	long double sum=0;
	int m=0;
	double err=10.0;
	while ((fabs(err)>1e-15*fabs(sum)) && (m<100000)) {
		err=((m&1)?-1:1)*fact(n+m)/ (
			fact(m)*fact(2*n+2*m+1)) * pow(z,2*m);
		sum+=err;
		m++;
	}
	if (nIt!=NULL) *nIt=m;
	return z*pow(2*z,n)*sum;
}

//Compute the R/B function of order n at z
// using a simple recursion formula:
//  Zn+1(z)=(2(n+1/2)/z)*Zn(z)+Zn-1(z)
//  Z0(z)=sin(z), Z1(z)=sinz/z - cos(z)
double ricatti_bessel::recurse(int n_stop,double z)
{
	register long double Znm=sin(z);
	if (n_stop==0) return Znm;
	register long double Zn=Znm/z-cos(z);
	int n=1;
	register long double i_z=2.0/z;
	while (n<n_stop) {
		register long double Znp=(n+0.5)*i_z*Zn-Znm;
		n++;Znm=Zn;Zn=Znp;
	}
	return Zn;
}

#if 1
int main()
{
	double z;
	int n;
	for (n=0;n<10;n++)
		for (z=1e-3;z<1e2;z*=1.4)
		printf("Psi%d(%.3f)=%e   %e  %e\n",n,z,
				ricatti_bessel::psi(n,z),
				ricatti_bessel::psiPrime(n,z));
}
#endif
/*<@>
<@> ******** Program output: ********
<@> Psi0(0.001)=9.999998e-04   1.000003e+00  4.097840e+00
<@> Psi0(0.001)=1.400000e-03   1.000006e+00  4.097840e+00
<@> Psi0(0.002)=1.959999e-03   1.000011e+00  4.097840e+00
<@> Psi0(0.003)=2.743997e-03   9.999868e-01  4.097840e+00
<@> Psi0(0.004)=3.841591e-03   9.999857e-01  4.097840e+00
<@> Psi0(0.005)=5.378214e-03   9.999857e-01  4.097840e+00
<@> Psi0(0.008)=7.529465e-03   9.999754e-01  4.097840e+00
<@> Psi0(0.011)=1.054116e-02   9.999466e-01  4.097840e+00
<@> Psi0(0.015)=1.475735e-02   9.998831e-01  4.097840e+00
<@> Psi0(0.021)=2.065958e-02   9.997832e-01  4.097840e+00
<@> Psi0(0.029)=2.892143e-02   9.995805e-01  4.097840e+00
<@> Psi0(0.040)=4.048458e-02   9.991709e-01  4.097840e+00
<@> Psi0(0.057)=5.666355e-02   9.984023e-01  4.097840e+00
<@> Psi0(0.079)=7.928817e-02   9.968497e-01  4.097840e+00
<@> Psi0(0.111)=1.108915e-01   9.938248e-01  4.097840e+00
<@> Psi0(0.156)=1.549414e-01   9.879158e-01  4.097840e+00
<@> Psi0(0.218)=2.160776e-01   9.763787e-01  4.097840e+00
<@> Psi0(0.305)=3.002106e-01   9.538612e-01  4.097840e+00
<@> Psi0(0.427)=4.140318e-01   9.102641e-01  4.097840e+00
<@> Psi0(0.598)=5.626852e-01   8.266803e-01  4.097840e+00
<@> Psi0(0.837)=7.424248e-01   6.699361e-01  4.097840e+00
<@> Psi0(1.171)=9.212786e-01   3.889008e-01  4.097840e+00
<@> Psi0(1.640)=9.976134e-01   -6.904460e-02  4.097840e+00
<@> Psi0(2.296)=7.484592e-01   -6.631796e-01  4.097840e+00
<@> Psi0(3.214)=-7.254327e-02   -9.973604e-01  4.097840e+00
<@> Psi0(4.500)=-9.775047e-01   -2.109135e-01  4.097840e+00
<@> Psi0(6.300)=1.664534e-02   9.998643e-01  4.097840e+00
<@> Psi0(8.820)=5.687736e-01   -8.224965e-01  4.097840e+00
<@> Psi0(12.348)=-2.169618e-01   9.761773e-01  4.097840e+00
<@> Psi0(17.287)=-9.999682e-01   7.977581e-03  4.097840e+00
<@> Psi0(24.201)=-8.024017e-01   5.967843e-01  4.097840e+00
<@> Psi0(33.882)=6.252984e-01   -7.803908e-01  4.097840e+00
<@> Psi0(47.435)=-3.059324e-01   -9.520595e-01  4.097840e+00
<@> Psi0(66.409)=-4.216685e-01   -9.067502e-01  4.097840e+00
<@> Psi0(92.972)=-9.567326e-01   2.909670e-01  4.097840e+00
<@> Psi1(0.001)=3.333333e-07   6.666679e-04  4.097840e+00
<@> Psi1(0.001)=6.533332e-07   9.333358e-04  4.097840e+00
<@> Psi1(0.002)=1.280533e-06   1.306678e-03  4.097840e+00
<@> Psi1(0.003)=2.509843e-06   1.829324e-03  4.097840e+00
<@> Psi1(0.004)=4.919290e-06   2.561053e-03  4.097840e+00
<@> Psi1(0.005)=9.641794e-06   3.585476e-03  4.097840e+00
<@> Psi1(0.008)=1.889786e-05   5.019649e-03  4.097840e+00
<@> Psi1(0.011)=3.703961e-05   7.027448e-03  4.097840e+00
<@> Psi1(0.015)=7.259686e-05   9.838098e-03  4.097840e+00
<@> Psi1(0.021)=1.422869e-04   1.377276e-02  4.097840e+00
<@> Psi1(0.029)=2.788709e-04   1.928040e-02  4.097840e+00
<@> Psi1(0.040)=5.465430e-04   2.698802e-02  4.097840e+00
<@> Psi1(0.057)=1.071056e-03   3.777196e-02  4.097840e+00
<@> Psi1(0.079)=2.098621e-03   5.284749e-02  4.097840e+00
<@> Psi1(0.111)=4.110810e-03   7.389665e-02  4.097840e+00
<@> Psi1(0.156)=8.047637e-03   1.032105e-01  4.097840e+00
<@> Psi1(0.218)=1.573673e-02   1.438226e-01  4.097840e+00
<@> Psi1(0.305)=3.070357e-02   1.995134e-01  4.097840e+00
<@> Psi1(0.427)=5.964216e-02   2.743161e-01  4.097840e+00
<@> Psi1(0.598)=1.148558e-01   3.705025e-01  4.097840e+00
<@> Psi1(0.837)=2.174140e-01   4.825746e-01  4.097840e+00
<@> Psi1(1.171)=3.976032e-01   5.818371e-01  4.097840e+00
<@> Psi1(1.640)=6.773853e-01   5.845452e-01  4.097840e+00
<@> Psi1(2.296)=9.891851e-01   3.176011e-01  4.097840e+00
<@> Psi1(3.214)=9.747956e-01   -3.758203e-01  4.097840e+00
<@> Psi1(4.500)=-6.315574e-03   -9.760985e-01  4.097840e+00
<@> Psi1(6.300)=-9.972193e-01   1.749388e-01  4.097840e+00
<@> Psi1(8.820)=8.869827e-01   4.682069e-01  4.097840e+00
<@> Psi1(12.348)=-9.937512e-01   -1.364803e-01  4.097840e+00
<@> Psi1(17.287)=-6.582369e-02   -9.961637e-01  4.097840e+00
<@> Psi1(24.201)=-6.299394e-01   -7.763729e-01  4.097840e+00
<@> Psi1(33.882)=7.988409e-01   6.017253e-01  4.097840e+00
<@> Psi1(47.435)=9.456037e-01   -3.258694e-01  4.097840e+00
<@> Psi1(66.409)=9.004005e-01   -4.352271e-01  4.097840e+00
<@> Psi1(92.972)=-3.012593e-01   -9.534866e-01  4.097840e+00
<@> Psi2(0.001)=6.666666e-11   2.000006e-07  4.097840e+00
<@> Psi2(0.001)=1.829333e-10   3.920033e-07  4.097840e+00
<@> Psi2(0.002)=5.019689e-10   7.683258e-07  4.097840e+00
<@> Psi2(0.003)=1.377402e-09   1.505901e-06  4.097840e+00
<@> Psi2(0.004)=3.779590e-09   2.951568e-06  4.097840e+00
<@> Psi2(0.005)=1.037118e-08   5.785084e-06  4.097840e+00
<@> Psi2(0.008)=2.845848e-08   1.133874e-05  4.097840e+00
<@> Psi2(0.011)=7.808975e-08   2.222379e-05  4.097840e+00
<@> Psi2(0.015)=2.142766e-07   4.355762e-05  4.097840e+00
<@> Psi2(0.021)=5.879663e-07   8.537084e-05  4.097840e+00
<@> Psi2(0.029)=1.613332e-06   1.673196e-04  4.097840e+00
<@> Psi2(0.040)=4.426730e-06   3.279133e-04  4.097840e+00
<@> Psi2(0.057)=1.214558e-05   6.425980e-04  4.097840e+00
<@> Psi2(0.079)=3.332013e-05   1.259019e-03  4.097840e+00
<@> Psi2(0.111)=9.139094e-05   2.465889e-03  4.097840e+00
<@> Psi2(0.156)=2.505644e-04   4.826334e-03  4.097840e+00
<@> Psi2(0.218)=6.864081e-04   9.433483e-03  4.097840e+00
<@> Psi2(0.305)=1.877381e-03   1.838930e-02  4.097840e+00
<@> Psi2(0.427)=5.118723e-03   3.566021e-02  4.097840e+00
<@> Psi2(0.598)=1.387061e-02   6.843740e-02  4.097840e+00
<@> Psi2(0.837)=3.713239e-02   1.286538e-01  4.097840e+00
<@> Psi2(1.171)=9.703692e-02   2.319197e-01  4.097840e+00
<@> Psi2(1.640)=2.415832e-01   3.827512e-01  4.097840e+00
<@> Psi2(2.296)=5.441106e-01   5.151906e-01  4.097840e+00
<@> Psi2(3.214)=9.823769e-01   3.635219e-01  4.097840e+00
<@> Psi2(4.500)=9.732942e-01   -4.389014e-01  4.097840e+00
<@> Psi2(6.300)=-4.915244e-01   -8.411781e-01  4.097840e+00
<@> Psi2(8.820)=-2.670707e-01   9.475472e-01  4.097840e+00
<@> Psi2(12.348)=-2.448081e-02   -9.897831e-01  4.097840e+00
<@> Psi2(17.287)=9.885449e-01   -1.801945e-01  4.097840e+00
<@> Psi2(24.201)=7.243147e-01   -6.897969e-01  4.097840e+00
<@> Psi2(33.882)=-5.545670e-01   8.315816e-01  4.097840e+00
<@> Psi2(47.435)=3.657368e-01   9.301893e-01  4.097840e+00
<@> Psi2(66.409)=4.623439e-01   8.864765e-01  4.097840e+00
<@> Psi2(92.972)=9.470116e-01   -3.216293e-01  4.097840e+00
<@> Psi3(0.001)=9.523809e-15   3.809543e-11  4.097840e+00
<@> Psi3(0.001)=3.658666e-14   1.045340e-10  4.097840e+00
<@> Psi3(0.002)=1.405513e-13   2.868427e-10  4.097840e+00
<@> Psi3(0.003)=5.399418e-13   7.870854e-10  4.097840e+00
<@> Psi3(0.004)=2.074240e-12   2.159759e-09  4.097840e+00
<@> Psi3(0.005)=7.968392e-12   5.926399e-09  4.097840e+00
<@> Psi3(0.008)=3.061133e-11   1.626205e-08  4.097840e+00
<@> Psi3(0.011)=1.175961e-10   4.462287e-08  4.097840e+00
<@> Psi3(0.015)=4.517546e-10   1.224429e-07  4.097840e+00
<@> Psi3(0.021)=1.735440e-09   3.359771e-07  4.097840e+00
<@> Psi3(0.029)=6.666716e-09   9.218948e-07  4.097840e+00
<@> Psi3(0.040)=2.560971e-08   2.529492e-06  4.097840e+00
<@> Psi3(0.057)=9.837367e-08   6.940111e-06  4.097840e+00
<@> Psi3(0.079)=3.778475e-07   1.903858e-05  4.097840e+00
<@> Psi3(0.111)=1.451051e-06   5.221537e-05  4.097840e+00
<@> Psi3(0.156)=5.570688e-06   1.431376e-04  4.097840e+00
<@> Psi3(0.218)=2.137274e-05   3.920112e-04  4.097840e+00
<@> Psi3(0.305)=8.189792e-05   1.071594e-03  4.097840e+00
<@> Psi3(0.427)=3.130607e-04   2.918627e-03  4.097840e+00
<@> Psi3(0.598)=1.190991e-03   7.892086e-03  4.097840e+00
<@> Psi3(0.837)=4.488521e-03   2.103850e-02  4.097840e+00
<@> Psi3(1.171)=1.660458e-02   5.451021e-02  4.097840e+00
<@> Psi3(1.640)=5.919476e-02   1.332928e-01  4.097840e+00
<@> Psi3(2.296)=1.957985e-01   2.882595e-01  4.097840e+00
<@> Psi3(3.214)=5.533871e-01   4.658657e-01  4.097840e+00
<@> Psi3(4.500)=1.087783e+00   2.480872e-01  4.097840e+00
<@> Psi3(6.300)=6.071101e-01   -7.806346e-01  4.097840e+00
<@> Psi3(8.820)=-1.038387e+00   8.613270e-02  4.097840e+00
<@> Psi3(12.348)=9.838380e-01   -2.635142e-01  4.097840e+00
<@> Psi3(17.287)=3.517495e-01   9.275041e-01  4.097840e+00
<@> Psi3(24.201)=7.795823e-01   6.276784e-01  4.097840e+00
<@> Psi3(33.882)=-8.806789e-01   -4.765925e-01  4.097840e+00
<@> Psi3(47.435)=-9.070522e-01   4.231059e-01  4.097840e+00
<@> Psi3(66.409)=-8.655900e-01   5.014469e-01  4.097840e+00
<@> Psi3(92.972)=3.521891e-01   9.356418e-01  4.097840e+00
<@> Psi4(0.001)=1.058201e-18   5.291021e-15  4.097840e+00
<@> Psi4(0.001)=5.691259e-18   2.032604e-14  4.097840e+00
<@> Psi4(0.002)=3.060895e-17   7.808490e-14  4.097840e+00
<@> Psi4(0.003)=1.646223e-16   2.999662e-13  4.097840e+00
<@> Psi4(0.004)=8.853778e-16   1.152352e-12  4.097840e+00
<@> Psi4(0.005)=4.761771e-15   4.426892e-12  4.097840e+00
<@> Psi4(0.008)=2.560992e-14   1.700637e-11  4.097840e+00
<@> Psi4(0.011)=1.377359e-13   6.533135e-11  4.097840e+00
<@> Psi4(0.015)=7.407733e-13   2.509728e-10  4.097840e+00
<@> Psi4(0.021)=3.984019e-12   9.641228e-10  4.097840e+00
<@> Psi4(0.029)=2.142661e-11   3.703710e-09  4.097840e+00
<@> Psi4(0.040)=1.152332e-10   1.422734e-08  4.097840e+00
<@> Psi4(0.057)=6.197077e-10   5.465085e-08  4.097840e+00
<@> Psi4(0.079)=3.332469e-09   2.099037e-07  4.097840e+00
<@> Psi4(0.111)=1.791789e-08   8.060525e-07  4.097840e+00
<@> Psi4(0.156)=9.631481e-08   3.094201e-06  4.097840e+00
<@> Psi4(0.218)=5.174573e-07   1.186919e-05  4.097840e+00
<@> Psi4(0.305)=2.777252e-06   4.546434e-05  4.097840e+00
<@> Psi4(0.427)=1.487619e-05   1.736666e-04  4.097840e+00
<@> Psi4(0.598)=7.937288e-05   6.597427e-04  4.097840e+00
<@> Psi4(0.837)=4.202605e-04   2.479356e-03  4.097840e+00
<@> Psi4(1.171)=2.191770e-03   9.119991e-03  4.097840e+00
<@> Psi4(1.640)=1.109313e-02   3.213649e-02  4.097840e+00
<@> Psi4(2.296)=5.287325e-02   1.036789e-01  4.097840e+00
<@> Psi4(3.214)=2.228094e-01   2.761046e-01  4.097840e+00
<@> Psi4(4.500)=7.188572e-01   4.487802e-01  4.097840e+00
<@> Psi4(6.300)=1.166109e+00   -1.332973e-01  4.097840e+00
<@> Psi4(8.820)=-5.570683e-01   -7.857442e-01  4.097840e+00
<@> Psi4(12.348)=5.822271e-01   7.952244e-01  4.097840e+00
<@> Psi4(17.287)=-8.461093e-01   5.475335e-01  4.097840e+00
<@> Psi4(24.201)=-4.988290e-01   8.620289e-01  4.097840e+00
<@> Psi4(33.882)=3.726193e-01   -9.246752e-01  4.097840e+00
<@> Psi4(47.435)=-4.995914e-01   -8.649292e-01  4.097840e+00
<@> Psi4(66.409)=-5.535839e-01   -8.322461e-01  4.097840e+00
<@> Psi4(92.972)=-9.204948e-01   3.917898e-01  4.097840e+00
<@> Psi5(0.001)=9.620009e-23   5.772024e-19  4.097840e+00
<@> Psi5(0.001)=7.243420e-22   3.104340e-18  4.097840e+00
<@> Psi5(0.002)=5.453959e-21   1.669595e-17  4.097840e+00
<@> Psi5(0.003)=4.106577e-20   8.979346e-17  4.097840e+00
<@> Psi5(0.004)=3.092061e-19   4.829320e-16  4.097840e+00
<@> Psi5(0.005)=2.328178e-18   2.597340e-15  4.097840e+00
<@> Psi5(0.008)=1.753008e-17   1.396909e-14  4.097840e+00
<@> Psi5(0.011)=1.319931e-16   7.512898e-14  4.097840e+00
<@> Psi5(0.015)=9.938425e-16   4.040557e-13  4.097840e+00
<@> Psi5(0.021)=7.483113e-15   2.173080e-12  4.097840e+00
<@> Psi5(0.029)=5.634348e-14   1.168718e-11  4.097840e+00
<@> Psi5(0.040)=4.242272e-13   6.285346e-11  4.097840e+00
<@> Psi5(0.057)=3.194040e-12   3.380178e-10  4.097840e+00
<@> Psi5(0.079)=2.404679e-11   1.817637e-09  4.097840e+00
<@> Psi5(0.111)=1.810190e-10   9.772656e-09  4.097840e+00
<@> Psi5(0.156)=1.362368e-09   5.252764e-08  4.097840e+00
<@> Psi5(0.218)=1.024884e-08   2.821715e-07  4.097840e+00
<@> Psi5(0.305)=7.703389e-08   1.514032e-06  4.097840e+00
<@> Psi5(0.427)=5.780403e-07   8.105685e-06  4.097840e+00
<@> Psi5(0.598)=4.323149e-06   4.320399e-05  4.097840e+00
<@> Psi5(0.837)=3.212370e-05   2.282912e-04  4.097840e+00
<@> Psi5(1.171)=2.356720e-04   1.185785e-03  4.097840e+00
<@> Psi5(1.640)=1.685935e-03   5.952727e-03  4.097840e+00
<@> Psi5(2.296)=1.147020e-02   2.789297e-02  4.097840e+00
<@> Psi5(3.214)=7.049602e-02   1.131453e-01  4.097840e+00
<@> Psi5(4.500)=3.499704e-01   3.299899e-01  4.097840e+00
<@> Psi5(6.300)=1.058805e+00   3.257675e-01  4.097840e+00
<@> Psi5(8.820)=4.699351e-01   -8.234812e-01  4.097840e+00
<@> Psi5(12.348)=-5.594629e-01   8.087707e-01  4.097840e+00
<@> Psi5(17.287)=-7.922597e-01   -6.169586e-01  4.097840e+00
<@> Psi5(24.201)=-9.650863e-01   -2.994429e-01  4.097840e+00
<@> Psi5(33.882)=9.796569e-01   2.280518e-01  4.097840e+00
<@> Psi5(47.435)=8.122627e-01   -5.852141e-01  4.097840e+00
<@> Psi5(66.409)=7.905659e-01   -6.131068e-01  4.097840e+00
<@> Psi5(92.972)=-4.412959e-01   -8.967569e-01  4.097840e+00
<@> Psi6(0.001)=7.400007e-27   5.180017e-23  4.097840e+00
<@> Psi6(0.001)=7.800607e-26   3.900331e-22  4.097840e+00
<@> Psi6(0.002)=8.222892e-25   2.936780e-21  4.097840e+00
<@> Psi6(0.003)=8.668038e-24   2.211222e-20  4.097840e+00
<@> Psi6(0.004)=9.137280e-23   1.664950e-19  4.097840e+00
<@> Psi6(0.005)=9.631923e-22   1.253637e-18  4.097840e+00
<@> Psi6(0.008)=1.015334e-20   9.439305e-18  4.097840e+00
<@> Psi6(0.011)=1.070297e-19   7.107346e-17  4.097840e+00
<@> Psi6(0.015)=1.128234e-18   5.351425e-16  4.097840e+00
<@> Psi6(0.021)=1.189302e-17   4.029333e-15  4.097840e+00
<@> Psi6(0.029)=1.253668e-16   3.033874e-14  4.097840e+00
<@> Psi6(0.040)=1.321500e-15   2.284270e-13  4.097840e+00
<@> Psi6(0.057)=1.392966e-14   1.719853e-12  4.097840e+00
<@> Psi6(0.079)=1.468224e-13   1.294787e-11  4.097840e+00
<@> Psi6(0.111)=1.547394e-12   9.746594e-11  4.097840e+00
<@> Psi6(0.156)=1.630518e-11   7.335003e-10  4.097840e+00
<@> Psi6(0.218)=1.717455e-10   5.517451e-09  4.097840e+00
<@> Psi6(0.305)=1.807683e-09   4.146253e-08  4.097840e+00
<@> Psi6(0.427)=1.899878e-08   3.110043e-07  4.097840e+00
<@> Psi6(0.598)=1.991071e-07   2.324193e-06  4.097840e+00
<@> Psi6(0.837)=2.074957e-06   1.724389e-05  4.097840e+00
<@> Psi6(1.171)=2.138636e-05   1.261251e-04  4.097840e+00
<@> Psi6(1.640)=2.156804e-04   8.968059e-04  4.097840e+00
<@> Psi6(2.296)=2.083206e-03   6.025924e-03  4.097840e+00
<@> Psi6(3.214)=1.845009e-02   3.605480e-02  4.097840e+00
<@> Psi6(4.500)=1.366489e-01   1.677666e-01  4.097840e+00
<@> Psi6(6.300)=6.826470e-01   4.086488e-01  4.097840e+00
<@> Psi6(8.820)=1.143171e+00   -3.077540e-01  4.097840e+00
<@> Psi6(12.348)=-1.080628e+00   -3.436227e-02  4.097840e+00
<@> Psi6(17.287)=3.419739e-01   -9.109574e-01  4.097840e+00
<@> Psi6(24.201)=6.017941e-02   -9.800063e-01  4.097840e+00
<@> Psi6(33.882)=-5.456773e-02   9.893266e-01  4.097840e+00
<@> Psi6(47.435)=6.879528e-01   7.252488e-01  4.097840e+00
<@> Psi6(66.409)=6.845339e-01   7.287187e-01  4.097840e+00
<@> Psi6(92.972)=8.682830e-01   -4.973279e-01  4.097840e+00
<@> Psi7(0.001)=4.933338e-31   3.946683e-27  4.097840e+00
<@> Psi7(0.001)=7.280566e-30   4.160345e-26  4.097840e+00
<@> Psi7(0.002)=1.074458e-28   4.385595e-25  4.097840e+00
<@> Psi7(0.003)=1.585673e-27   4.622929e-24  4.097840e+00
<@> Psi7(0.004)=2.340118e-26   4.873199e-23  4.097840e+00
<@> Psi7(0.005)=3.453520e-25   5.137030e-22  4.097840e+00
<@> Psi7(0.008)=5.096663e-24   5.415135e-21  4.097840e+00
<@> Psi7(0.011)=7.521587e-23   5.708273e-20  4.097840e+00
<@> Psi7(0.015)=1.110024e-21   6.017206e-19  4.097840e+00
<@> Psi7(0.021)=1.638151e-20   6.342886e-18  4.097840e+00
<@> Psi7(0.029)=2.417537e-19   6.686215e-17  4.097840e+00
<@> Psi7(0.040)=3.567690e-18   7.047920e-16  4.097840e+00
<@> Psi7(0.057)=5.264914e-17   7.429118e-15  4.097840e+00
<@> Psi7(0.079)=7.769197e-16   7.830332e-14  4.097840e+00
<@> Psi7(0.111)=1.146366e-14   8.252373e-13  4.097840e+00
<@> Psi7(0.156)=1.691204e-13   8.695322e-12  4.097840e+00
<@> Psi7(0.218)=2.494155e-12   9.158259e-11  4.097840e+00
<@> Psi7(0.305)=3.675920e-11   9.637842e-10  4.097840e+00
<@> Psi7(0.427)=5.410654e-10   1.012638e-08  4.097840e+00
<@> Psi7(0.598)=7.943971e-09   1.060604e-07  4.097840e+00
<@> Psi7(0.837)=1.160580e-07   1.103978e-06  4.097840e+00
<@> Psi7(1.171)=1.679142e-06   1.135179e-05  4.097840e+00
<@> Psi7(1.640)=2.383306e-05   1.139469e-04  4.097840e+00
<@> Psi7(2.296)=3.256950e-04   1.090169e-03  4.097840e+00
<@> Psi7(3.214)=4.126339e-03   9.463708e-03  4.097840e+00
<@> Psi7(4.500)=4.480353e-02   6.695248e-02  4.097840e+00
<@> Psi7(6.300)=3.498696e-01   2.938936e-01  4.097840e+00
<@> Psi7(8.820)=1.215056e+00   1.788161e-01  4.097840e+00
<@> Psi7(12.348)=-5.782551e-01   -7.528081e-01  4.097840e+00
<@> Psi7(17.287)=1.049431e+00   -8.297802e-02  4.097840e+00
<@> Psi7(24.201)=9.974121e-01   -2.283112e-01  4.097840e+00
<@> Psi7(33.882)=-1.000594e+00   1.521554e-01  4.097840e+00
<@> Psi7(47.435)=-6.237221e-01   7.800013e-01  4.097840e+00
<@> Psi7(66.409)=-6.565633e-01   7.537410e-01  4.097840e+00
<@> Psi7(92.972)=5.627050e-01   8.259113e-01  4.097840e+00
<@> Psi8(0.001)=2.901964e-35   2.611775e-31  4.097840e+00
<@> Psi8(0.001)=5.995760e-34   3.854441e-30  4.097840e+00
<@> Psi8(0.002)=1.238787e-32   5.688362e-29  4.097840e+00
<@> Psi8(0.003)=2.559463e-31   8.394705e-28  4.097840e+00
<@> Psi8(0.004)=5.288117e-30   1.238882e-26  4.097840e+00
<@> Psi8(0.005)=1.092580e-28   1.828335e-25  4.097840e+00
<@> Psi8(0.008)=2.257383e-27   2.698244e-24  4.097840e+00
<@> Psi8(0.011)=4.663983e-26   3.982032e-23  4.097840e+00
<@> Psi8(0.015)=9.636250e-25   5.876563e-22  4.097840e+00
<@> Psi8(0.021)=1.990939e-23   8.672494e-21  4.097840e+00
<@> Psi8(0.029)=4.113444e-22   1.279869e-19  4.097840e+00
<@> Psi8(0.040)=8.498627e-21   1.888755e-18  4.097840e+00
<@> Psi8(0.057)=1.755833e-19   2.787297e-17  4.097840e+00
<@> Psi8(0.079)=3.627439e-18   4.113023e-16  4.097840e+00
<@> Psi8(0.111)=7.493476e-17   6.068753e-15  4.097840e+00
<@> Psi8(0.156)=1.547748e-15   8.952796e-14  4.097840e+00
<@> Psi8(0.218)=3.195854e-14   1.320263e-12  4.097840e+00
<@> Psi8(0.305)=6.595060e-13   1.945565e-11  4.097840e+00
<@> Psi8(0.427)=1.359411e-11   2.863039e-10  4.097840e+00
<@> Psi8(0.598)=2.795776e-10   4.201507e-09  4.097840e+00
<@> Psi8(0.837)=5.724411e-09   6.132386e-08  4.097840e+00
<@> Psi8(1.171)=1.161937e-07   8.855719e-07  4.097840e+00
<@> Psi8(1.640)=2.318481e-06   1.252261e-05  4.097840e+00
<@> Psi8(2.296)=4.472498e-05   1.698488e-04  4.097840e+00
<@> Psi8(3.214)=8.066719e-04   2.118559e-03  4.097840e+00
<@> Psi8(4.500)=1.270023e-02   2.222470e-02  4.097840e+00
<@> Psi8(6.300)=1.503981e-01   1.588831e-01  4.097840e+00
<@> Psi8(8.820)=9.233057e-01   3.775690e-01  4.097840e+00
<@> Psi8(12.348)=3.781615e-01   -8.232619e-01  4.097840e+00
<@> Psi8(17.287)=5.686359e-01   7.862791e-01  4.097840e+00
<@> Psi8(24.201)=5.580147e-01   8.129558e-01  4.097840e+00
<@> Psi8(33.882)=-3.884080e-01   -9.088914e-01  4.097840e+00
<@> Psi8(47.435)=-8.851884e-01   -4.744360e-01  4.097840e+00
<@> Psi8(66.409)=-8.328344e-01   -5.562351e-01  4.097840e+00
<@> Psi8(92.972)=-7.774970e-01   6.296027e-01  4.097840e+00
<@> Psi9(0.001)=1.527349e-39   1.527352e-35  4.097840e+00
<@> Psi9(0.001)=4.417929e-38   3.155682e-34  4.097840e+00
<@> Psi9(0.002)=1.277906e-36   6.520003e-33  4.097840e+00
<@> Psi9(0.003)=3.696403e-35   1.347079e-31  4.097840e+00
<@> Psi9(0.004)=1.069202e-33   2.783213e-30  4.097840e+00
<@> Psi9(0.005)=3.092715e-32   5.750432e-29  4.097840e+00
<@> Psi9(0.008)=8.945815e-31   1.188101e-27  4.097840e+00
<@> Psi9(0.011)=2.587615e-29   2.454736e-26  4.097840e+00
<@> Psi9(0.015)=7.484779e-28   5.071681e-25  4.097840e+00
<@> Psi9(0.021)=2.164996e-26   1.047855e-23  4.097840e+00
<@> Psi9(0.029)=6.262292e-25   2.164967e-22  4.097840e+00
<@> Psi9(0.040)=1.811362e-23   4.472913e-21  4.097840e+00
<@> Psi9(0.057)=5.239254e-22   9.241215e-20  4.097840e+00
<@> Psi9(0.079)=1.515367e-20   1.909146e-18  4.097840e+00
<@> Psi9(0.111)=4.382639e-19   3.943804e-17  4.097840e+00
<@> Psi9(0.156)=1.267341e-17   8.145552e-16  4.097840e+00
<@> Psi9(0.218)=3.663815e-16   1.681848e-14  4.097840e+00
<@> Psi9(0.305)=1.058627e-14   3.470335e-13  4.097840e+00
<@> Psi9(0.427)=3.055626e-13   7.151877e-12  4.097840e+00
<@> Psi9(0.598)=8.801782e-12   1.470278e-10  4.097840e+00
<@> Psi9(0.837)=2.525234e-10   3.008086e-09  4.097840e+00
<@> Psi9(1.171)=7.188163e-09   6.096388e-08  4.097840e+00
<@> Psi9(1.640)=2.014746e-07   1.212752e-06  4.097840e+00
<@> Psi9(2.296)=5.477490e-06   2.325261e-05  4.097840e+00
<@> Psi9(3.214)=1.401737e-04   4.141731e-04  4.097840e+00
<@> Psi9(4.500)=3.176400e-03   6.347364e-03  4.097840e+00
<@> Psi9(6.300)=5.597742e-02   7.042846e-02  4.097840e+00
<@> Psi9(8.820)=5.646060e-01   3.471629e-01  4.097840e+00
<@> Psi9(12.348)=1.098900e+00   -4.228060e-01  4.097840e+00
<@> Psi9(17.287)=-4.902276e-01   8.238660e-01  4.097840e+00
<@> Psi9(24.201)=-6.054416e-01   7.831658e-01  4.097840e+00
<@> Psi9(33.882)=8.057134e-01   -6.024317e-01  4.097840e+00
<@> Psi9(47.435)=3.064824e-01   -9.433448e-01  4.097840e+00
<@> Psi9(66.409)=4.433657e-01   -8.929215e-01  4.097840e+00
<@> Psi9(92.972)=-7.048706e-01   -7.092591e-01  4.097840e+00
<@> */
