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

Function rdft_1d_step

tests/validation/reference/DFT.cpp:52–73  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

50 */
51template <typename T>
52void rdft_1d_step(const T *src_ptr, size_t N, T *dst_ptr, size_t K)
53{
54#if defined(_OPENMP)
55#pragma omp parallel for
56#endif /* _OPENMP */
57 for (unsigned int k = 0; k < K; ++k)
58 {
59 float Xr = 0;
60 float Xi = 0;
61 for (unsigned int n = 0; n < N; ++n)
62 {
63 const float alpha = (2 * M_PI * k * n) / N;
64 const float val_r = src_ptr[n];
65 // Assuming DFT from the R domain thus skipping imaginary calculations
66 Xr += val_r * cos(alpha);
67 Xi -= val_r * sin(alpha);
68 }
69
70 dst_ptr[k * 2] = Xr;
71 dst_ptr[k * 2 + 1] = Xi;
72 }
73}
74
75/** Performs an one dimensional DFT on a given complex sequence.
76 *

Callers 1

rdft_1d_coreFunction · 0.85

Calls 2

cosFunction · 0.85
sinFunction · 0.85

Tested by

no test coverage detected