30 #ifndef BLITZFFTW_IMPL_HH 31 #define BLITZFFTW_IMPL_HH 35 #define BLITZFFTW_HH_NO_INCLUDE_ICC 42 #pragma GCC system_header 45 extern template void BlitzFFTW<float>::plan_forward(blitz::Array<float,1>& in, blitz::Array<std::complex<float>,1>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
46 extern template void BlitzFFTW<float>::plan_forward(blitz::Array<float,2>& in, blitz::Array<std::complex<float>,2>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
47 extern template void BlitzFFTW<float>::plan_forward(blitz::Array<float,3>& in, blitz::Array<std::complex<float>,3>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
49 extern template void BlitzFFTW<double>::plan_forward(blitz::Array<double,1>& in, blitz::Array<std::complex<double>,1>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
50 extern template void BlitzFFTW<double>::plan_forward(blitz::Array<double,2>& in, blitz::Array<std::complex<double>,2>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
51 extern template void BlitzFFTW<double>::plan_forward(blitz::Array<double,3>& in, blitz::Array<std::complex<double>,3>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
54 extern template void BlitzFFTW<float>::plan_backward(blitz::Array<std::complex<float>,1>& in, blitz::Array<float,1>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
55 extern template void BlitzFFTW<float>::plan_backward(blitz::Array<std::complex<float>,2>& in, blitz::Array<float,2>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
56 extern template void BlitzFFTW<float>::plan_backward(blitz::Array<std::complex<float>,3>& in, blitz::Array<float,3>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
58 extern template void BlitzFFTW<double>::plan_backward(blitz::Array<std::complex<double>,1>& in, blitz::Array<double,1>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
59 extern template void BlitzFFTW<double>::plan_backward(blitz::Array<std::complex<double>,2>& in, blitz::Array<double,2>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
60 extern template void BlitzFFTW<double>::plan_backward(blitz::Array<std::complex<double>,3>& in, blitz::Array<double,3>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
63 extern template void BlitzFFTW<float>::plan_forward(blitz::Array<std::complex<float>,1>& in, blitz::Array<std::complex<float>,1>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
64 extern template void BlitzFFTW<float>::plan_forward(blitz::Array<std::complex<float>,2>& in, blitz::Array<std::complex<float>,2>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
65 extern template void BlitzFFTW<float>::plan_forward(blitz::Array<std::complex<float>,3>& in, blitz::Array<std::complex<float>,3>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
67 extern template void BlitzFFTW<double>::plan_forward(blitz::Array<std::complex<double>,1>& in, blitz::Array<std::complex<double>,1>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
68 extern template void BlitzFFTW<double>::plan_forward(blitz::Array<std::complex<double>,2>& in, blitz::Array<std::complex<double>,2>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
69 extern template void BlitzFFTW<double>::plan_forward(blitz::Array<std::complex<double>,3>& in, blitz::Array<std::complex<double>,3>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
72 extern template void BlitzFFTW<float>::plan_backward(blitz::Array<std::complex<float>,1>& in, blitz::Array<std::complex<float>,1>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
73 extern template void BlitzFFTW<float>::plan_backward(blitz::Array<std::complex<float>,2>& in, blitz::Array<std::complex<float>,2>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
74 extern template void BlitzFFTW<float>::plan_backward(blitz::Array<std::complex<float>,3>& in, blitz::Array<std::complex<float>,3>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
76 extern template void BlitzFFTW<double>::plan_backward(blitz::Array<std::complex<double>,1>& in, blitz::Array<std::complex<double>,1>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
77 extern template void BlitzFFTW<double>::plan_backward(blitz::Array<std::complex<double>,2>& in, blitz::Array<std::complex<double>,2>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
78 extern template void BlitzFFTW<double>::plan_backward(blitz::Array<std::complex<double>,3>& in, blitz::Array<std::complex<double>,3>& out,
const DataPreservePolicy policy,
const unsigned int plan_flags)
const;
81 extern template void BlitzFFTW<float>::forward(
const blitz::Array<float,1>& in, blitz::Array<std::complex<float>,1>& out)
const;
82 extern template void BlitzFFTW<float>::forward(
const blitz::Array<float,2>& in, blitz::Array<std::complex<float>,2>& out)
const;
83 extern template void BlitzFFTW<float>::forward(
const blitz::Array<float,3>& in, blitz::Array<std::complex<float>,3>& out)
const;
85 extern template void BlitzFFTW<double>::forward(
const blitz::Array<double,1>& in, blitz::Array<std::complex<double>,1>& out)
const;
86 extern template void BlitzFFTW<double>::forward(
const blitz::Array<double,2>& in, blitz::Array<std::complex<double>,2>& out)
const;
87 extern template void BlitzFFTW<double>::forward(
const blitz::Array<double,3>& in, blitz::Array<std::complex<double>,3>& out)
const;
90 extern template void BlitzFFTW<float>::forward(blitz::Array<std::complex<float>,1>& in, blitz::Array<std::complex<float>,1>& out)
const;
91 extern template void BlitzFFTW<float>::forward(blitz::Array<std::complex<float>,2>& in, blitz::Array<std::complex<float>,2>& out)
const;
92 extern template void BlitzFFTW<float>::forward(blitz::Array<std::complex<float>,3>& in, blitz::Array<std::complex<float>,3>& out)
const;
94 extern template void BlitzFFTW<double>::forward(blitz::Array<std::complex<double>,1>& in, blitz::Array<std::complex<double>,1>& out)
const;
95 extern template void BlitzFFTW<double>::forward(blitz::Array<std::complex<double>,2>& in, blitz::Array<std::complex<double>,2>& out)
const;
96 extern template void BlitzFFTW<double>::forward(blitz::Array<std::complex<double>,3>& in, blitz::Array<std::complex<double>,3>& out)
const;
99 extern template void BlitzFFTW<float>::backward(blitz::Array<std::complex<float>,1>& in, blitz::Array<float,1>& out,
const DataPreservePolicy policy)
const;
100 extern template void BlitzFFTW<float>::backward(blitz::Array<std::complex<float>,2>& in, blitz::Array<float,2>& out,
const DataPreservePolicy policy)
const;
101 extern template void BlitzFFTW<float>::backward(blitz::Array<std::complex<float>,3>& in, blitz::Array<float,3>& out,
const DataPreservePolicy policy)
const;
103 extern template void BlitzFFTW<double>::backward(blitz::Array<std::complex<double>,1>& in, blitz::Array<double,1>& out,
const DataPreservePolicy policy)
const;
104 extern template void BlitzFFTW<double>::backward(blitz::Array<std::complex<double>,2>& in, blitz::Array<double,2>& out,
const DataPreservePolicy policy)
const;
105 extern template void BlitzFFTW<double>::backward(blitz::Array<std::complex<double>,3>& in, blitz::Array<double,3>& out,
const DataPreservePolicy policy)
const;
108 extern template void BlitzFFTW<float>::backward(blitz::Array<std::complex<float>,1>& in, blitz::Array<std::complex<float>,1>& out,
const DataPreservePolicy policy)
const;
109 extern template void BlitzFFTW<float>::backward(blitz::Array<std::complex<float>,2>& in, blitz::Array<std::complex<float>,2>& out,
const DataPreservePolicy policy)
const;
110 extern template void BlitzFFTW<float>::backward(blitz::Array<std::complex<float>,3>& in, blitz::Array<std::complex<float>,3>& out,
const DataPreservePolicy policy)
const;
112 extern template void BlitzFFTW<double>::backward(blitz::Array<std::complex<double>,1>& in, blitz::Array<std::complex<double>,1>& out,
const DataPreservePolicy policy)
const;
113 extern template void BlitzFFTW<double>::backward(blitz::Array<std::complex<double>,2>& in, blitz::Array<std::complex<double>,2>& out,
const DataPreservePolicy policy)
const;
114 extern template void BlitzFFTW<double>::backward(blitz::Array<std::complex<double>,3>& in, blitz::Array<std::complex<double>,3>& out,
const DataPreservePolicy policy)
const;
153 extern template void BlitzFFTW<float>::exec_guru_plan(blitz::Array<std::complex<float>,1>& in, blitz::Array<std::complex<float>,1>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
154 extern template void BlitzFFTW<float>::exec_guru_plan(blitz::Array<std::complex<float>,2>& in, blitz::Array<std::complex<float>,2>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
155 extern template void BlitzFFTW<float>::exec_guru_plan(blitz::Array<std::complex<float>,3>& in, blitz::Array<std::complex<float>,3>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
157 extern template void BlitzFFTW<double>::exec_guru_plan(blitz::Array<std::complex<double>,1>& in, blitz::Array<std::complex<double>,1>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
158 extern template void BlitzFFTW<double>::exec_guru_plan(blitz::Array<std::complex<double>,2>& in, blitz::Array<std::complex<double>,2>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
159 extern template void BlitzFFTW<double>::exec_guru_plan(blitz::Array<std::complex<double>,3>& in, blitz::Array<std::complex<double>,3>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
162 extern template void BlitzFFTW<float>::exec_guru_plan_r2c(blitz::Array<float,1>& in, blitz::Array<std::complex<float>,1>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
163 extern template void BlitzFFTW<float>::exec_guru_plan_r2c(blitz::Array<float,2>& in, blitz::Array<std::complex<float>,2>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
164 extern template void BlitzFFTW<float>::exec_guru_plan_r2c(blitz::Array<float,3>& in, blitz::Array<std::complex<float>,3>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
166 extern template void BlitzFFTW<double>::exec_guru_plan_r2c(blitz::Array<double,1>& in, blitz::Array<std::complex<double>,1>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
167 extern template void BlitzFFTW<double>::exec_guru_plan_r2c(blitz::Array<double,2>& in, blitz::Array<std::complex<double>,2>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
168 extern template void BlitzFFTW<double>::exec_guru_plan_r2c(blitz::Array<double,3>& in, blitz::Array<std::complex<double>,3>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
171 extern template void BlitzFFTW<float>::exec_guru_plan_c2r(blitz::Array<std::complex<float>,1>& in, blitz::Array<float,1>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
172 extern template void BlitzFFTW<float>::exec_guru_plan_c2r(blitz::Array<std::complex<float>,2>& in, blitz::Array<float,2>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
173 extern template void BlitzFFTW<float>::exec_guru_plan_c2r(blitz::Array<std::complex<float>,3>& in, blitz::Array<float,3>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
175 extern template void BlitzFFTW<double>::exec_guru_plan_c2r(blitz::Array<std::complex<double>,1>& in, blitz::Array<double,1>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
176 extern template void BlitzFFTW<double>::exec_guru_plan_c2r(blitz::Array<std::complex<double>,2>& in, blitz::Array<double,2>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
177 extern template void BlitzFFTW<double>::exec_guru_plan_c2r(blitz::Array<std::complex<double>,3>& in, blitz::Array<double,3>& out, blitz_fftw_plan plan,
const DataPreservePolicy policy)
const;
183 #include "BlitzFFTW.icc" void backward(blitz::Array< std::complex< DataT >, Dim > &in, blitz::Array< DataT, Dim > &out, const DataPreservePolicy policy=PRESERVE) const
Use this method for the actual complex2real transform.
blitz_fftw_plan get_plan_backward(blitz::Array< std::complex< DataT >, Dim > &in, blitz::Array< DataT, Dim > &out, const DataPreservePolicy policy=PRESERVE, const unsigned int plan_flags=FFTW_MEASURE) const
void exec_guru_plan_r2c(blitz::Array< DataT, Dim > &in, blitz::Array< std::complex< DataT >, Dim > &out, blitz_fftw_plan plan, const DataPreservePolicy policy=PRESERVE) const
void forward(const blitz::Array< DataT, Dim > &in, blitz::Array< std::complex< DataT >, Dim > &out) const
Use this method for the actual real2complex transform.
blitz_fftw_plan get_plan_forward(blitz::Array< DataT, Dim > &in, blitz::Array< std::complex< DataT >, Dim > &out, const DataPreservePolicy policy=PRESERVE, const unsigned int plan_flags=FFTW_MEASURE) const
BlitzFFTWPlan< DataT >::real_fftw_plan blitz_fftw_plan
void plan_forward(blitz::Array< DataT, Dim > &in, blitz::Array< std::complex< DataT >, Dim > &out, const DataPreservePolicy policy=PRESERVE, const unsigned int plan_flags=FFTW_MEASURE) const
Use this method to compute a new fftw Plan, for execution of a transform of a pair of Arrays of the e...
void exec_guru_plan(blitz::Array< std::complex< DataT >, Dim > &in, blitz::Array< std::complex< DataT >, Dim > &out, blitz_fftw_plan plan, const DataPreservePolicy policy=PRESERVE) const
void exec_guru_plan_c2r(blitz::Array< std::complex< DataT >, Dim > &in, blitz::Array< DataT, Dim > &out, blitz_fftw_plan plan, const DataPreservePolicy policy=PRESERVE) const
void plan_backward(blitz::Array< std::complex< DataT >, Dim > &in, blitz::Array< DataT, Dim > &out, const DataPreservePolicy policy=PRESERVE, const unsigned int plan_flags=FFTW_MEASURE) const
Use this method to compute a new fftw Plan, for execution of a transform of a pair of Arrays of the e...