A C++ ensemble of functions to compute the Wigner 3j- and 6j- symbols. It implements the algorihtm designed by Schulten and Gordon. It can either compute an array of Wigner 3j or 6j symbols, or a single coefficient. It also computes the Clebsch-Gordan coefficients.
We list the user-facing functions that compute the Wigner symbols. The functions are
behind the namespace WignerSymbols
.
std::vector<double> wigner3j(double l2, double l3, double m1, double m2, double m3)
Computes Wigner 3j symbols with all possible values ofl1
. Returns anstd::vector<double>
with the coefficients sorted by increasing values ofl1
.double wigner3j(double l1, double l2, double l3, double m1, double m2, double m3)
Computes a specific Wigner 3j symbol.double clebschGordan(double l1, double l2, double l3, double m1, double m2, double m3)
Computes a specific Clebch-Gordan coeffcient.std::vector<double> wigner6j(double l2, double l3, double l4, double l5, double l6)
Computes Wigner 6j symbols with all possible values ofl1
. Returns anstd::vector<double>
with the coefficients sorted by increasing values ofl1
.double wigner6j(double l1, double l2, double l3, double l4, double l5, double l6)
Computes a specific Wigner 6j symbol.
- K. Schulten and R. G. Gordon, Recursive evaluation of 3j and 6j coefficients, Comput. Phys. Commun. 11, 269–278 (1976).
- K. Schulten, Exact recursive evaluation of 3j- and 6j-coefficients for quantum-mechanical coupling of angular momenta, J. Math. Phys. 16, 1961 (1975).