20 #ifndef WIGNER_CHEMPS2_H 21 #define WIGNER_CHEMPS2_H 23 #define CHEMPS2_WIGNER_FACTORIAL_MAX 191 24 #define CHEMPS2_WIGNER_MAX_2J 95 // Maximum factorial = (4j+1)! <=> 2j = 95 48 static double wigner3j(
const int two_ja,
const int two_jb,
const int two_jc,
const int two_ma,
const int two_mb,
const int two_mc );
58 static double wigner6j(
const int two_ja,
const int two_jb,
const int two_jc,
const int two_jd,
const int two_je,
const int two_jf );
71 static double wigner9j(
const int two_ja,
const int two_jb,
const int two_jc,
const int two_jd,
const int two_je,
const int two_jf,
const int two_jg,
const int two_jh,
const int two_ji );
76 static const long double sqrt_fact[ CHEMPS2_WIGNER_FACTORIAL_MAX + 1 ];
79 static bool triangle_fails(
const int two_ja,
const int two_jb,
const int two_jc );
82 static long double sqrt_delta(
const int two_ja,
const int two_jb,
const int two_jc );
static double wigner6j(const int two_ja, const int two_jb, const int two_jc, const int two_jd, const int two_je, const int two_jf)
Wigner-6j symbol (gsl api)
static int max_2j()
Two times the maximum value of the angular momentum which is allowed.
static double wigner3j(const int two_ja, const int two_jb, const int two_jc, const int two_ma, const int two_mb, const int two_mc)
Wigner-3j symbol (gsl api)
static double wigner9j(const int two_ja, const int two_jb, const int two_jc, const int two_jd, const int two_je, const int two_jf, const int two_jg, const int two_jh, const int two_ji)
Wigner-9j symbol (gsl api)