10#ifndef model_COEFF2HERMITE_H_
11#define model_COEFF2HERMITE_H_
22 template<
short unsigned int P,
short unsigned int i,
short unsigned int j>
30 template<
short unsigned int P,
short unsigned int i>
39 template<
short unsigned int P,
short unsigned int i>
48 template<
short unsigned int P>
52 FillC2H0(Eigen::Matrix<
double,(P+1)/2,(P+1)>& C2H0){
59 template<
short unsigned int P,
short unsigned int i,
short unsigned int j>
67 template<
short unsigned int P,
short unsigned int i>
76 template<
short unsigned int P>
79 FillC2H1(Eigen::Matrix<
double,(P+1)/2,(P+1)>& C2H1){
165 template<
short unsigned int polyDegree>
168 enum {polyCoeff=polyDegree+1};
170 static Eigen::Matrix<double,polyCoeff,polyCoeff> get_C2H(){
171 Eigen::Matrix<double,polyCoeff/2,polyCoeff> temp0;
172 FillC2H0<polyDegree,(polyDegree-1)/2,polyDegree> FH0(temp0);
174 Eigen::Matrix<double,polyCoeff/2,polyCoeff> temp1;
175 FillC2H1<polyDegree,(polyDegree-1)/2,polyDegree> FH1(temp1);
177 Eigen::Matrix<double,polyCoeff,polyCoeff>
temp;
184 static const Eigen::Matrix<double,polyDegree+1,polyDegree+1>
C2H;
185 static const Eigen::Matrix<double,polyDegree+1,polyDegree+1>
C2HT;
187 static const Eigen::Matrix<double,polyDegree+1,polyDegree+1>
H2C;
188 static const Eigen::Matrix<double,polyDegree+1,polyDegree+1>
H2CT;
192 template<
short unsigned int dim>
193 static Eigen::Matrix<double,dim,polyCoeff>
c2h(
const Eigen::Matrix<double,dim,polyCoeff>& C){
202 template<
short unsigned int dim>
203 static Eigen::Matrix<double,dim,polyCoeff>
h2c(
const Eigen::Matrix<double,dim,polyCoeff>& H){
214 template<
short unsigned int polyDegree>
217 template<
short unsigned int polyDegree>
220 template<
short unsigned int polyDegree>
223 template<
short unsigned int polyDegree>
Class template that performs the transformation between the polynomial coefficient matrix and the He...
static const Eigen::Matrix< double, polyDegree+1, polyDegree+1 > H2C
static const Eigen::Matrix< double, polyDegree+1, polyDegree+1 > C2HT
static Eigen::Matrix< double, dim, polyCoeff > h2c(const Eigen::Matrix< double, dim, polyCoeff > &H)
static const Eigen::Matrix< double, polyDegree+1, polyDegree+1 > H2CT
static const Eigen::Matrix< double, polyDegree+1, polyDegree+1 > C2H
static Eigen::Matrix< double, dim, polyCoeff > c2h(const Eigen::Matrix< double, dim, polyCoeff > &C)
static constexpr int factorial(int n)
FillC2H0(Eigen::Matrix< double,(P+1)/2,(P+1)> &C2H0)
FillC2H0(Eigen::Matrix< double,(P+1)/2,(P+1)> &C2H0)
FillC2H0(Eigen::Matrix< double,(P+1)/2,(P+1)> &C2H0)
FillC2H0(Eigen::Matrix< double,(P+1)/2,(P+1)> &C2H0)
FillC2H1(Eigen::Matrix< double,(P+1)/2,(P+1)> &C2H1)
FillC2H1(Eigen::Matrix< double,(P+1)/2,(P+1)> &C2H1)
FillC2H1(Eigen::Matrix< double,(P+1)/2,(P+1)> &C2H1)
static constexpr int value(int N)