MCPcopy Create free account
hub / github.com/ARM-software/ComputeLibrary / idft_1d_step

Function idft_1d_step

tests/validation/reference/DFT.cpp:152–176  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

150 */
151template <typename T>
152void idft_1d_step(const T *src_ptr, T *dst_ptr, size_t N)
153{
154#if defined(_OPENMP)
155#pragma omp parallel for
156#endif /* _OPENMP */
157 for (unsigned int n = 0; n < N; ++n)
158 {
159 float xr = 0;
160 float xi = 0;
161 for (unsigned int k = 0; k < N; ++k)
162 {
163 const float alpha = (2 * M_PI * k * n) / N;
164 const float cos_alpha = cos(alpha);
165 const float sin_alpha = sin(alpha);
166 const float val_r = src_ptr[2 * k];
167 const float val_i = src_ptr[2 * k + 1];
168
169 xr += val_r * cos_alpha - val_i * sin_alpha;
170 xi += val_i * cos_alpha + val_r * sin_alpha;
171 }
172
173 dst_ptr[2 * n] = xr;
174 dst_ptr[2 * n + 1] = xi;
175 }
176}
177
178template <typename T>
179SimpleTensor<T> rdft_1d_core(const SimpleTensor<T> &src, FFTDirection direction, bool is_odd)

Callers 1

dft_1d_coreFunction · 0.85

Calls 2

cosFunction · 0.85
sinFunction · 0.85

Tested by

no test coverage detected