11#include "CuboidPyramidalMatrix.h"
19 ROT_TYPE_UNINITIALIZED
25 WignerMatrix() : _type(ROT_TYPE_UNINITIALIZED), order(0), mat() {}
27 WignerMatrix(RotationType rt,
unsigned ord,
bool clean =
false) :
28 _type(rt), order(ord), mat(ord + 1, clean) {}
34 void clear() {mat.clear();}
35 unsigned get_num_entries()
const {
return mat.get_num_entries();}
36 unsigned get_order()
const {
return order;}
38 void evaluate(
double theta);
44 inline double acc_c(
unsigned l,
unsigned m,
int k)
const {
return mat.access_const(l,m,k);}
47 inline double & acc(
unsigned l,
unsigned m,
int k) {
return mat.access(l,m,k);}
49 RotationType getType()
const {
return _type;}
58 inline double & acc_seq(
unsigned l) {
return mat.access_seq(l);}
61 inline double acc_c_seq(
unsigned l)
const {
return mat.access_seq_const(l);}
63 void evaluate_0_Pip2(
double theta);
67 template <
class PowPair>
68 void apply_minus_one_pow();
77 inline static int sum(
int l,
int m,
int ) {
84 inline static int sum(
int l,
int ,
int k) {
91 inline static int sum(
int ,
int m,
int k) {
97 void initializeSqrtLookUp();
98 double lookUpFactor(
unsigned l,
unsigned m,
unsigned k)
const {
99 return (_sqrtFactorialLookUp[l-k] * _sqrtFactorialLookUp[l+k]) / (_sqrtFactorialLookUp[l-m] * _sqrtFactorialLookUp[l+m]);
102 static std::vector<double> _sqrtFactorialLookUp;
103 static bool _sqrtFactorialLookUpInitialized;
Definition: CuboidPyramidalMatrix.h:16
Definition: WignerMatrix.h:22
Definition: L2PCellProcessor.cpp:15