5#if !defined XPED_USE_WIG_SU2_COEFFS && !defined XPED_USE_WIG_SU2_COEFFS && !defined XPED_USE_FAST_WIG_SU2_COEFFS
6# define XPED_USE_GSL_SU2_COEFFS 1
10#ifdef XPED_USE_GSL_SU2_COEFFS
11# include <gsl/gsl_sf_coupling.h>
14#ifdef XPED_USE_WIG_SU2_COEFFS
16# pragma message("Xped is using WIGXJPF library for 3nj-symbols.")
19#ifdef XPED_USE_FAST_WIG_SU2_COEFFS
20# include "fastwigxj.h"
22# pragma message("Xped is using FASTWIGXJ library for 3nj-symbols.")
66#ifdef XPED_USE_GSL_SU2_COEFFS
68coupl_9j_base(
const int q1,
const int q2,
const int q3,
const int q4,
const int q5,
const int q6,
const int q7,
const int q8,
const int q9)
70 return gsl_sf_coupling_9j(q1 - 1, q2 - 1, q3 - 1, q4 - 1, q5 - 1, q6 - 1, q7 - 1, q8 - 1, q9 - 1);
73inline double coupl_6j_base(
const int q1,
const int q2,
const int q3,
const int q4,
const int q5,
const int q6)
75 return gsl_sf_coupling_6j(q1 - 1, q2 - 1, q3 - 1, q4 - 1, q5 - 1, q6 - 1);
78inline double coupl_3j_base(
const int q1,
const int q2,
const int q3,
const int q1_z,
const int q2_z,
const int q3_z)
80 return gsl_sf_coupling_3j(q1 - 1, q2 - 1, q3 - 1, q1_z, q2_z, q3_z);
84#ifdef XPED_USE_WIG_SU2_COEFFS
86coupl_9j_base(
const int q1,
const int q2,
const int q3,
const int q4,
const int q5,
const int q6,
const int q7,
const int q8,
const int q9)
88 return wig9jj(q1 - 1, q2 - 1, q3 - 1, q4 - 1, q5 - 1, q6 - 1, q7 - 1, q8 - 1, q9 - 1);
91inline double coupl_6j_base(
const int q1,
const int q2,
const int q3,
const int q4,
const int q5,
const int q6)
93 return wig6jj(q1 - 1, q2 - 1, q3 - 1, q4 - 1, q5 - 1, q6 - 1);
96inline double coupl_3j_base(
const int q1,
const int q2,
const int q3,
const int q1_z,
const int q2_z,
const int q3_z)
98 return wig3jj(q1 - 1, q2 - 1, q3 - 1, q1_z, q2_z, q3_z);
104#ifdef XPED_USE_FAST_WIG_SU2_COEFFS
106coupl_9j_base(
const int q1,
const int q2,
const int q3,
const int q4,
const int q5,
const int q6,
const int q7,
const int q8,
const int q9)
108 return fw9jja(q1 - 1, q2 - 1, q3 - 1, q4 - 1, q5 - 1, q6 - 1, q7 - 1, q8 - 1, q9 - 1);
111inline double coupl_6j_base(
const int q1,
const int q2,
const int q3,
const int q4,
const int q5,
const int q6)
113 return fw6jja(q1 - 1, q2 - 1, q3 - 1, q4 - 1, q5 - 1, q6 - 1);
116inline double coupl_3j_base(
const int q1,
const int q2,
const int q3,
const int q1_z,
const int q2_z,
const int q3_z)
118 return fw3jja(q1 - 1, q2 - 1, q3 - 1, q1_z, q2_z);
123coupling_9j(
const int q1,
const int q2,
const int q3,
const int q4,
const int q5,
const int q6,
const int q7,
const int q8,
const int q9)
128inline double coupling_6j(
const int q1,
const int q2,
const int q3,
const int q4,
const int q5,
const int q6)
133inline double coupling_3j(
const int q1,
const int q2,
const int q3,
const int q1_z,
const int q2_z,
const int q3_z)
double coupl_6j_base(const int q1, const int q2, const int q3, const int q4, const int q5, const int q6)
Definition: SU2Wrappers.hpp:73
double coupl_3j_base(const int q1, const int q2, const int q3, const int q1_z, const int q2_z, const int q3_z)
Definition: SU2Wrappers.hpp:78
double coupling_9j(const int q1, const int q2, const int q3, const int q4, const int q5, const int q6, const int q7, const int q8, const int q9)
Definition: SU2Wrappers.hpp:123
double coupling_3j(const int q1, const int q2, const int q3, const int q1_z, const int q2_z, const int q3_z)
Definition: SU2Wrappers.hpp:133
double coupling_6j(const int q1, const int q2, const int q3, const int q4, const int q5, const int q6)
Definition: SU2Wrappers.hpp:128
double coupl_9j_base(const int q1, const int q2, const int q3, const int q4, const int q5, const int q6, const int q7, const int q8, const int q9)
Definition: SU2Wrappers.hpp:68