2#include "Angular/Wigner369j.hpp"
81 void fill(
const int in_max_twoj);
91 double get_Ckab(
int k,
int ka,
int kb)
const;
95 double get_3jkab(
int k,
int ka,
int kb)
const;
112 int max_k()
const {
return m_max_k_sofar; }
115 std::vector<std::vector<std::vector<double>>> m_3j_k_a_b = {};
116 std::vector<std::vector<double>> m_Rjab_a_b = {};
117 int m_max_jindex_sofar = -1;
118 int m_max_k_sofar = -1;
Lookup table for Ck_ab reduced matrix elements and the special 3j symbol (j_a, j_b,...
Definition CkTable.hpp:62
double get_Ckab(int k, int ka, int kb) const
Returns Ck_ab. Undefined behaviour if indices exceed max_tj() or max_k().
Definition CkTable.cpp:96
double get_tildeCkab(int k, int ka, int kb) const
Returns tilde-Ck_ab. Undefined behaviour if indices exceed max_tj() or max_k().
Definition CkTable.cpp:67
int max_tj() const
Maximum value of 2j currently stored in the table.
Definition CkTable.hpp:110
int max_k() const
Maximum value of k currently stored in the table.
Definition CkTable.hpp:112
double get_tildeCkab_mutable(int k, int ka, int kb)
Returns tilde-Ck_ab; extends table if needed. Not thread-safe.
Definition CkTable.cpp:52
double get_Lambdakab(int k, int ka, int kb) const
Returns Lambda^k_ab := 3j(j_a,j_b,k; -1/2,1/2,0)^2 * parity(l_a+l_b+k).
Definition CkTable.cpp:119
double get_3jkab_mutable(int k, int ka, int kb)
Returns 3j(j_a,j_b,k; -1/2,1/2,0); extends table if needed. Not thread-safe.
Definition CkTable.cpp:102
double get_3jkab(int k, int ka, int kb) const
Returns 3j(j_a,j_b,k; -1/2,1/2,0). Undefined behaviour if indices exceed max_tj() or max_k().
Definition CkTable.cpp:111
double get_Ckab_mutable(int k, int ka, int kb)
Returns Ck_ab; extends table if needed. Not thread-safe.
Definition CkTable.cpp:91
void fill(const int in_max_twoj)
Extends the lookup table to cover all symbols up to in_max_twoj.
Definition CkTable.cpp:9
double operator()(int k, int ka, int kb) const
Equivalent to get_Ckab(k, ka, kb).
Definition CkTable.hpp:98
CkTable(const int in_max_twoj=0)
Constructs the table, pre-filling all symbols up to in_max_twoj.
Definition CkTable.hpp:72
Angular provides functions and classes for calculating and storing angular factors (3,...
Definition CkTable.cpp:7
constexpr int twoj_to_jindex(int twoj)
Converts 2j to jindex; 2j = 1,3,5,... maps to jindex = 0,1,2,...
Definition CkTable.hpp:14
constexpr int jindex_to_twoj(int jindex)
Converts jindex to 2j; jindex = 0,1,2,... maps to 2j = 1,3,5,...
Definition CkTable.hpp:12
constexpr int kappa_to_jindex(int ka)
Converts kappa to jindex; e.g. {-1, 1, -2, 2} -> {0, 0, 1, 1}.
Definition CkTable.hpp:16