1 #ifndef MHO_MultidimensionalFastFourierTransformInterface_HH__
2 #define MHO_MultidimensionalFastFourierTransformInterface_HH__
28 "Array element type must be a complex floating point type.");
34 for(
size_t i = 0; i < XArgType::rank::value; i++)
68 for(std::size_t i = 0; i < XArgType::rank::value; i++)
81 for(std::size_t i = 0; i < XArgType::rank::value; i++)
97 if(axis_index < XArgType::rank::value)
103 msg_error(
"operators",
"Cannot transform axis with index: " << axis_index <<
"for array with rank: "
104 << XArgType::rank::value << eom);
127 template<
typename XCheckType = XArgType >
128 typename std::enable_if< !std::is_base_of< MHO_TableContainerBase, XCheckType >::value,
void >::type
139 template<
typename XCheckType = XArgType >
140 typename std::enable_if< std::is_base_of< MHO_TableContainerBase, XCheckType >::value,
void >::type
148 apply_at< typename XArgType::axis_pack_tuple_type, TransformAxis >(*in, axis_index, axis_xformer);
163 template<
typename XAxisType >
void operator()(XAxisType& ){};
171 std::size_t N = axis1.
GetSize();
175 double delta = axis1(1) - axis1(0);
176 double spacing = (1.0 / delta) * (1.0 / length);
178 for(std::size_t i = 0; i < N; i++)
184 double value = (x + start) * spacing;
190 double value = (x + start) * spacing;
203 std::size_t N = axis1.
GetSize();
207 float delta = axis1(1) - axis1(0);
208 float spacing = (1.0 / delta) * (1.0 / length);
210 for(std::size_t i = 0; i < N; i++)
216 float value = (x + start) * spacing;
222 float value = (x + start) * spacing;
#define msg_error(xKEY, xCONTENT)
Definition: MHO_Message.hh:244
std::size_t GetSize() const
Getter for size.
Definition: MHO_NDArrayWrapper_1.hh:107
Definition: MHO_ChannelLabeler.hh:17
Definition: MHO_Meta.hh:341