82template <
typename REAL,
typename Device = base_device::DEVICE_CPU>
97 void calcoef_complex(std::function<std::complex<REAL>(std::complex<REAL>)> fun);
101 void calcoef_pair(std::function<REAL(REAL)> fun1, std::function<REAL(REAL)> fun2);
118 void calfinalvec_real(std::function<
void(std::complex<REAL>*, std::complex<REAL>*,
const int)> funA,
119 std::complex<REAL>* wavein,
120 std::complex<REAL>* waveout,
126 void calfinalvec_complex(std::function<
void(std::complex<REAL>*, std::complex<REAL>*,
const int)> funA,
127 std::complex<REAL>* wavein,
128 std::complex<REAL>* waveout,
137 void tracepolyA(std::function<
void(std::complex<REAL>* in, std::complex<REAL>* out,
const int)> funA,
138 std::complex<REAL>* wavein,
144 void getpolyval(REAL x, REAL* polyval,
const int N);
157 void calpolyvec_complex(std::function<
void(std::complex<REAL>* in, std::complex<REAL>* out,
const int)> funA,
158 std::complex<REAL>* wavein,
159 std::complex<REAL>* waveout,
168 void recurs_real(std::function<
void(REAL* in, REAL* out,
const int)> funA,
177 void recurs_complex(std::function<
void(std::complex<REAL>* in, std::complex<REAL>* out,
const int)> funA,
178 std::complex<REAL>* arraynp1,
179 std::complex<REAL>* arrayn,
180 std::complex<REAL>* arrayn_1,
186 REAL
recurs(
const REAL x,
const REAL Tn,
const REAL Tn_1);
194 bool checkconverge(std::function<
void(std::complex<REAL>* in, std::complex<REAL>* out,
const int)> funA,
195 std::complex<REAL>* wavein,
221 REAL
ddot_real(
const std::complex<REAL>* psi_L,
222 const std::complex<REAL>* psi_R,
248 FFTW(
const int norder2_in);
256#ifdef __ENABLE_FLOAT_FFTW
261 FFTW(
const int norder2_in);
265 fftwf_complex* ccoef;
266 fftwf_plan coef_plan;
A class to treat the Chebyshev expansion.
Definition math_chebyshev.h:84
void getpolyval(REAL x, REAL *polyval, const int N)
Definition math_chebyshev.cpp:101
REAL * coef_real
Definition math_chebyshev.h:207
void calfinalvec_real(std::function< void(REAL *, REAL *, const int)> funA, REAL *wavein, REAL *waveout, const int N, const int LDA=1, const int m=1)
void recurs_real(std::function< void(REAL *in, REAL *out, const int)> funA, REAL *arraynp1, REAL *arrayn, REAL *arrayn_1, const int N, const int LDA=1, const int m=1)
void calfinalvec_complex(std::function< void(std::complex< REAL > *, std::complex< REAL > *, const int)> funA, std::complex< REAL > *wavein, std::complex< REAL > *waveout, const int N, const int LDA=1, const int m=1)
Definition math_chebyshev.cpp:472
void calpolyvec_real(std::function< void(REAL *in, REAL *out, const int)> funA, REAL *wavein, REAL *waveout, const int N, const int LDA=1, const int m=1)
int norder
Definition math_chebyshev.h:204
void calcoef_pair(std::function< REAL(REAL)> fun1, std::function< REAL(REAL)> fun2)
Definition math_chebyshev.cpp:312
bool getcoef_complex
Definition math_chebyshev.h:216
REAL recurs(const REAL x, const REAL Tn, const REAL Tn_1)
Definition math_chebyshev.cpp:111
void calpolyvec_complex(std::function< void(std::complex< REAL > *in, std::complex< REAL > *out, const int)> funA, std::complex< REAL > *wavein, std::complex< REAL > *waveout, const int N, const int LDA=1, const int m=1)
Definition math_chebyshev.cpp:537
~Chebyshev()
Definition math_chebyshev.cpp:82
REAL * coefr_cpu
Definition math_chebyshev.h:209
void recurs_complex(std::function< void(std::complex< REAL > *in, std::complex< REAL > *out, const int)> funA, std::complex< REAL > *arraynp1, std::complex< REAL > *arrayn, std::complex< REAL > *arrayn_1, const int N, const int LDA=1, const int m=1)
Definition math_chebyshev.cpp:628
Device * ctx
Definition math_chebyshev.h:228
base_device::DEVICE_CPU * cpu_ctx
Definition math_chebyshev.h:229
std::complex< REAL > * coef_complex
Definition math_chebyshev.h:208
REAL * polytrace
Definition math_chebyshev.h:213
void calcoef_real(std::function< REAL(REAL)> fun)
Definition math_chebyshev.cpp:160
typename container::PsiToContainer< Device >::type ct_Device
Definition math_chebyshev.h:230
void tracepolyA(std::function< void(std::complex< REAL > *in, std::complex< REAL > *out, const int)> funA, std::complex< REAL > *wavein, const int N, const int LDA=1, const int m=1)
Definition math_chebyshev.cpp:577
void calcoef_complex(std::function< std::complex< REAL >(std::complex< REAL >)> fun)
Definition math_chebyshev.cpp:222
REAL ddot_real(const std::complex< REAL > *psi_L, const std::complex< REAL > *psi_R, const int N, const int LDA=1, const int m=1)
Definition math_chebyshev.cpp:117
std::complex< REAL > * coefc_cpu
Definition math_chebyshev.h:210
FFTW< REAL > fftw
Definition math_chebyshev.h:212
bool getcoef_real
Definition math_chebyshev.h:215
bool checkconverge(std::function< void(std::complex< REAL > *in, std::complex< REAL > *out, const int)> funA, std::complex< REAL > *wavein, const int N, const int LDA, REAL &tmax, REAL &tmin, REAL stept)
Definition math_chebyshev.cpp:658
int norder2
Definition math_chebyshev.h:205
fftw_plan coef_plan
Definition math_chebyshev.h:253
fftw_complex * ccoef
Definition math_chebyshev.h:252
double * dcoef
Definition math_chebyshev.h:251
Definition math_chebyshev.h:15
#define N
Definition exp.cpp:24
Definition array_pool.h:6
Definition memory_op.h:77
Definition memory_op.h:17
Definition memory_op.h:31
Definition memory_op.h:45
T type
Definition tensor_types.h:114
This file contains the definition of the DataType enum class.