iRoCS Toolbox  1.1.0
BlitzFFTW-Impl.hh
Go to the documentation of this file.
1 /**************************************************************************
2  *
3  * Copyright (C) 2010 Thorsten Falk, Mario Emmenlauer
4  *
5  * Image Analysis Lab, University of Freiburg, Germany
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software Foundation,
19  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  *
21  **************************************************************************/
22 
23 /**************************************************************************
24 ** Title: Dummy header that uses explicit template instantiation
25 ** Description:
26 **
27 ** WARNING: This is a generated file. Edit generate.cc, not this file!
28 **
29 **************************************************************************/
30 #ifndef BLITZFFTW_IMPL_HH
31 #define BLITZFFTW_IMPL_HH
32 
33 // make sure we don't include the inline template definitions
34 // before the explicit extern template instantiations
35 #define BLITZFFTW_HH_NO_INCLUDE_ICC
36 #include "BlitzFFTW.hh"
37 
38 // extern template does not conform to ISO C++, so we need to
39 // tell gcc to avoid warnings for this file. Else the -Werror
40 // option would abort compilation on this warning.
41 #if __GNUG__ >= 3
42 #pragma GCC system_header
43 #endif // gcc > 3
44 
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;
48 
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;
52 
53 
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;
57 
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;
61 
62 
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;
66 
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;
70 
71 
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;
75 
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;
79 
80 
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;
84 
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;
88 
89 
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;
93 
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;
97 
98 
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;
102 
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;
106 
107 
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;
111 
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;
115 
116 
117 extern template BlitzFFTW<float>::blitz_fftw_plan BlitzFFTW<float>::get_plan_forward(blitz::Array<float,1>& in, blitz::Array<std::complex<float>,1>& out, const DataPreservePolicy policy, const unsigned int plan_flags) const;
118 extern template BlitzFFTW<float>::blitz_fftw_plan BlitzFFTW<float>::get_plan_forward(blitz::Array<float,2>& in, blitz::Array<std::complex<float>,2>& out, const DataPreservePolicy policy, const unsigned int plan_flags) const;
119 extern template BlitzFFTW<float>::blitz_fftw_plan BlitzFFTW<float>::get_plan_forward(blitz::Array<float,3>& in, blitz::Array<std::complex<float>,3>& out, const DataPreservePolicy policy, const unsigned int plan_flags) const;
120 
121 extern template BlitzFFTW<double>::blitz_fftw_plan BlitzFFTW<double>::get_plan_forward(blitz::Array<double,1>& in, blitz::Array<std::complex<double>,1>& out, const DataPreservePolicy policy, const unsigned int plan_flags) const;
122 extern template BlitzFFTW<double>::blitz_fftw_plan BlitzFFTW<double>::get_plan_forward(blitz::Array<double,2>& in, blitz::Array<std::complex<double>,2>& out, const DataPreservePolicy policy, const unsigned int plan_flags) const;
123 extern template BlitzFFTW<double>::blitz_fftw_plan BlitzFFTW<double>::get_plan_forward(blitz::Array<double,3>& in, blitz::Array<std::complex<double>,3>& out, const DataPreservePolicy policy, const unsigned int plan_flags) const;
124 
125 
126 extern template BlitzFFTW<float>::blitz_fftw_plan BlitzFFTW<float>::get_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;
127 extern template BlitzFFTW<float>::blitz_fftw_plan BlitzFFTW<float>::get_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;
128 extern template BlitzFFTW<float>::blitz_fftw_plan BlitzFFTW<float>::get_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;
129 
130 extern template BlitzFFTW<double>::blitz_fftw_plan BlitzFFTW<double>::get_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;
131 extern template BlitzFFTW<double>::blitz_fftw_plan BlitzFFTW<double>::get_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;
132 extern template BlitzFFTW<double>::blitz_fftw_plan BlitzFFTW<double>::get_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;
133 
134 
135 extern template BlitzFFTW<float>::blitz_fftw_plan BlitzFFTW<float>::get_plan_backward(blitz::Array<std::complex<float>,1>& in, blitz::Array<float,1>& out, const DataPreservePolicy policy, const unsigned int plan_flags) const;
136 extern template BlitzFFTW<float>::blitz_fftw_plan BlitzFFTW<float>::get_plan_backward(blitz::Array<std::complex<float>,2>& in, blitz::Array<float,2>& out, const DataPreservePolicy policy, const unsigned int plan_flags) const;
137 extern template BlitzFFTW<float>::blitz_fftw_plan BlitzFFTW<float>::get_plan_backward(blitz::Array<std::complex<float>,3>& in, blitz::Array<float,3>& out, const DataPreservePolicy policy, const unsigned int plan_flags) const;
138 
139 extern template BlitzFFTW<double>::blitz_fftw_plan BlitzFFTW<double>::get_plan_backward(blitz::Array<std::complex<double>,1>& in, blitz::Array<double,1>& out, const DataPreservePolicy policy, const unsigned int plan_flags) const;
140 extern template BlitzFFTW<double>::blitz_fftw_plan BlitzFFTW<double>::get_plan_backward(blitz::Array<std::complex<double>,2>& in, blitz::Array<double,2>& out, const DataPreservePolicy policy, const unsigned int plan_flags) const;
141 extern template BlitzFFTW<double>::blitz_fftw_plan BlitzFFTW<double>::get_plan_backward(blitz::Array<std::complex<double>,3>& in, blitz::Array<double,3>& out, const DataPreservePolicy policy, const unsigned int plan_flags) const;
142 
143 
144 extern template BlitzFFTW<float>::blitz_fftw_plan BlitzFFTW<float>::get_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;
145 extern template BlitzFFTW<float>::blitz_fftw_plan BlitzFFTW<float>::get_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;
146 extern template BlitzFFTW<float>::blitz_fftw_plan BlitzFFTW<float>::get_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;
147 
148 extern template BlitzFFTW<double>::blitz_fftw_plan BlitzFFTW<double>::get_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;
149 extern template BlitzFFTW<double>::blitz_fftw_plan BlitzFFTW<double>::get_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;
150 extern template BlitzFFTW<double>::blitz_fftw_plan BlitzFFTW<double>::get_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;
151 
152 
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;
156 
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;
160 
161 
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;
165 
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;
169 
170 
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;
174 
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;
178 
179 
180 
181 // include inline template declarations only after
182 // the explicit extern template instantiations
183 #include "BlitzFFTW.icc"
184 
185 #endif
186 
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
Definition: BlitzFFTW.hh:78
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...