58 [&](
auto& resultElement)
60 const auto i = &resultElement - result.data();
61 const auto k = static_cast<double>(i / shape.cols);
62 const auto l = static_cast<double>(i % shape.cols);
63 resultElement = std::complex<double>{ 0., 0. };
64 for (
auto m = 0u; m < std::min(
shape.rows, x.numRows()); ++m)
66 for (
auto n = 0u; n < std::min(
shape.cols, x.numCols()); ++n)
70 (((
static_cast<double>(m) * k) /
static_cast<double>(
shape.rows)) +
71 ((
static_cast<double>(n) * l) /
static_cast<double>(
shape.cols)));
72 resultElement += (x(m, n) * std::polar(1.,
angle));
92 template<
typename dtype>
111 template<
typename dtype>
130 template<
typename dtype>
149 template<
typename dtype>
154 return fft2(inArray, inArray.shape());
#define STATIC_ASSERT_ARITHMETIC(dtype)
Definition StaticAsserts.hpp:39
Holds 1D and 2D arrays, the main work horse of the NumCpp library.
Definition NdArrayCore.hpp:139
const Shape & shape() const noexcept
Definition NdArrayCore.hpp:4591
A Shape Class for NdArrays.
Definition Core/shape.hpp:41
constexpr double twoPi
2Pi
Definition Core/Constants.hpp:40
Definition FFT/FFT.hpp:42
NdArray< std::complex< double > > fft2_internal(const NdArray< std::complex< double > > &x, const Shape &shape)
Definition fft2.hpp:47
Definition FFT/FFT.hpp:40
NdArray< std::complex< double > > fft2(const NdArray< dtype > &inArray, const Shape &inShape)
Definition fft2.hpp:93
void for_each(InputIt first, InputIt last, UnaryFunction f)
Definition StlAlgorithms.hpp:226
auto angle(const std::complex< dtype > &inValue)
Definition angle.hpp:48
auto complex(dtype inReal)
Definition complex.hpp:47
Shape shape(const NdArray< dtype > &inArray) noexcept
Definition Functions/shape.hpp:42