NiHu  2.0
spectral_interpolate.h
Go to the documentation of this file.
1 
7 #ifndef NIHU_SPECTRAL_INTERPOLATE_H_INCLUDED
8 #define NIHU_SPECTRAL_INTERPOLATE_H_INCLUDED
9 
10 #include <fftw3.h>
11 #include <Eigen/Dense>
12 #include <complex>
13 
14 namespace NiHu
15 {
16 namespace fmm
17 {
18 
21 {
22 public:
24  typedef Eigen::Matrix<std::complex<double>, Eigen::Dynamic, 1> cvector_t;
25 
28 
30  spectral_interpolate(size_t Nto = 0, size_t Nfrom = 0);
31 
34 
37 
40 
43 
48  cvector_t const &interpolate(cvector_t const &from) const;
49 
50 private:
51  void init();
52  void destroy();
53 
54 private:
55  size_t m_Nto;
56  size_t m_Nfrom;
57  fftw_plan m_dft_plan;
58  fftw_plan m_idft_plan;
59  mutable cvector_t m_in_spec;
60  mutable cvector_t m_in;
61  mutable cvector_t m_out;
62  mutable cvector_t m_out_spec;
63 };
64 
65 } // end of namesapce
66 } // namespace NiHu
67 
68 #endif /* NIHU_SPECTRAL_INTERPOLATE_H_INCLUDED */
NiHu::fmm::spectral_interpolate::cvector_t
Eigen::Matrix< std::complex< double >, Eigen::Dynamic, 1 > cvector_t
the spectrum type
Definition: spectral_interpolate.h:24
NiHu::fmm::spectral_interpolate::operator=
spectral_interpolate & operator=(spectral_interpolate const &rhs)
assign operator
Definition: spectral_interpolate.cpp:51
NiHu::fmm::spectral_interpolate::spectral_interpolate
spectral_interpolate(size_t Nto=0, size_t Nfrom=0)
constructor
Definition: spectral_interpolate.cpp:19
NiHu::fmm::spectral_interpolate::interpolate
const cvector_t & interpolate(cvector_t const &from) const
interpolate a spectrum
Definition: spectral_interpolate.cpp:91
NiHu::fmm::spectral_interpolate::~spectral_interpolate
~spectral_interpolate()
destructor
Definition: spectral_interpolate.cpp:14
NiHu::fmm::spectral_interpolate
class performing spectral interpolation
Definition: spectral_interpolate.h:20