Update the Xu table translation test (TODO the .fodt file)
Former-commit-id: cd4f3cbc1c451a790d2e06691d083e85ceab41fb
This commit is contained in:
parent
20595e0781
commit
430e5b2a6b
|
@ -28,6 +28,12 @@
|
||||||
{QPMS_NORMALISATION_XU, -72,72,1,3, {2., 0.5, 0.5}, QPMS_HANKEL_PLUS, .6946365327e-42 + -.1782022552e-41 * I, .1833377882e-43 + .7146549596e-44* I},
|
{QPMS_NORMALISATION_XU, -72,72,1,3, {2., 0.5, 0.5}, QPMS_HANKEL_PLUS, .6946365327e-42 + -.1782022552e-41 * I, .1833377882e-43 + .7146549596e-44* I},
|
||||||
{QPMS_NORMALISATION_XU, 42,52,9,81, {2., 0.5, 0.5}, QPMS_HANKEL_PLUS, .3656934399e+271 + .3705813223e+271 * I, -.4499925012e+269 + -.4440572037e+269* I},
|
{QPMS_NORMALISATION_XU, 42,52,9,81, {2., 0.5, 0.5}, QPMS_HANKEL_PLUS, .3656934399e+271 + .3705813223e+271 * I, -.4499925012e+269 + -.4440572037e+269* I},
|
||||||
{QPMS_NORMALISATION_XU, 18,100,-5,45, {2., 0.5, 0.5}, QPMS_HANKEL_PLUS, .4118769973e+293 + .7460688240e+293 * I, .5914795871e+291 + -.3265339985e+291* I},
|
{QPMS_NORMALISATION_XU, 18,100,-5,45, {2., 0.5, 0.5}, QPMS_HANKEL_PLUS, .4118769973e+293 + .7460688240e+293 * I, .5914795871e+291 + -.3265339985e+291* I},
|
||||||
|
// Yu-lin Xu, Journal of computational physics 139, 137–165 (1998), Table 14 // FIXME not in the .fodt file because of motherfucking ubuntu at work
|
||||||
|
{QPMS_NORMALISATION_XU, -2,6,-2,10, {2., 0.5, 0.5}, QPMS_HANKEL_PLUS, .1377011649e-01 + .2385575934e+13 * I, -.3282035237e+12 + .1587043209e-02* I},
|
||||||
|
{QPMS_NORMALISATION_XU, -15,16,-15,20, {2., 0.5, 0.5}, QPMS_HANKEL_PLUS, .2074318970e-01 + -.2653706899e+36 * I, -.5072175010e+35 + .9852438545E-02 * I},
|
||||||
|
{QPMS_NORMALISATION_XU, -20,35,-20,45, {2., 0.5, 0.5}, QPMS_HANKEL_PLUS, .1851837652E-05 + -.4993981811e+115 * I, -.2073152255+114 + .4193366215E-07 * I},
|
||||||
|
{QPMS_NORMALISATION_XU, 41,45,-42,45, {2., 0.5, 0.5}, QPMS_HANKEL_PLUS, .2276246420e+247 + .2937180509e+247 * I, -.8692874643e+243 + .6736775193e+243 * I},
|
||||||
|
{QPMS_NORMALISATION_XU, 45,57,-38,42, {2., 0.5, 0.5}, QPMS_HANKEL_PLUS, .4293609827e+274 + .3327447520e+274 * I, -.4939385256e+271 + -.6373592055e+271 * I},
|
||||||
// THE END
|
// THE END
|
||||||
{QPMS_NORMALISATION_UNDEF, 0,0,0,0, {0, 0, 0}, QPMS_BESSEL_UNDEF, 0 + 0 * I, 0 + 0* I}
|
{QPMS_NORMALISATION_UNDEF, 0,0,0,0, {0, 0, 0}, QPMS_BESSEL_UNDEF, 0 + 0 * I, 0 + 0* I}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// c99 -ggdb -I .. -o translations_xutable translations_xutable_test.c ../translations.c ../gaunt.c -lgsl -lblas -lm
|
// c99 -ggdb -I .. -DUSE_BROKEN_SINGLETC -o translations_xutable translations_xutable_test.c ../translations.c ../gaunt.c -lgsl -lblas -lm
|
||||||
#include "translations.h"
|
#include "translations.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
//#include <math.h>
|
//#include <math.h>
|
||||||
|
|
|
@ -290,7 +290,9 @@ complex double qpms_trans_single_B_Xu(int m, int n, int mu, int nu, sph_t kdlj,
|
||||||
complex double qpms_trans_single_B(qpms_normalisation_t norm,
|
complex double qpms_trans_single_B(qpms_normalisation_t norm,
|
||||||
int m, int n, int mu, int nu, sph_t kdlj,
|
int m, int n, int mu, int nu, sph_t kdlj,
|
||||||
bool r_ge_d, qpms_bessel_t J) {
|
bool r_ge_d, qpms_bessel_t J) {
|
||||||
//assert(0); // FIXME probably gives wrong values, do not use.
|
#ifndef USE_BROKEN_SINGLETC
|
||||||
|
assert(0); // FIXME probably gives wrong values, do not use.
|
||||||
|
#endif
|
||||||
if(r_ge_d) J = QPMS_BESSEL_REGULAR;
|
if(r_ge_d) J = QPMS_BESSEL_REGULAR;
|
||||||
double costheta = cos(kdlj.theta);
|
double costheta = cos(kdlj.theta);
|
||||||
|
|
||||||
|
@ -481,7 +483,7 @@ static void qpms_trans_calculator_multipliers_A_general(
|
||||||
double Ppfac = (Pp_order >= 0) ? 1 :
|
double Ppfac = (Pp_order >= 0) ? 1 :
|
||||||
min1pow(mu-m) * exp(lgamma(1+p+Pp_order)-lgamma(1+p-Pp_order));
|
min1pow(mu-m) * exp(lgamma(1+p+Pp_order)-lgamma(1+p-Pp_order));
|
||||||
double summandfac = (n*(n+1) + nu*(nu+1) - p*(p+1)) * min1pow(q) * a1q_n;
|
double summandfac = (n*(n+1) + nu*(nu+1) - p*(p+1)) * min1pow(q) * a1q_n;
|
||||||
dest[q] = presum * summandfac * Ppfac;
|
dest[q] = presum * summandfac * Ppfac /* * ipow(n-nu) */;
|
||||||
// FIXME I might not need complex here
|
// FIXME I might not need complex here
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -531,7 +533,7 @@ void qpms_trans_calculator_multipliers_B_general(
|
||||||
* (isq(n+nu+1)-isq(p+1))
|
* (isq(n+nu+1)-isq(p+1))
|
||||||
);
|
);
|
||||||
dest[q-BQ_OFFSET] = presum * t * Ppfac_
|
dest[q-BQ_OFFSET] = presum * t * Ppfac_
|
||||||
* cruzan_bfactor(-m,n,mu,nu,p) * ipow(p+1);
|
* cruzan_bfactor(-m,n,mu,nu,p) * ipow(p+1) /* * ipow(n-nu) */;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue