CiCueTea v0.0.1
Loading...
Searching...
No Matches
FFT.hpp
Go to the documentation of this file.
1//
2// FFT.hpp
3// CQTDSP
4//
5// Created by Juan Sierra on 3/9/25.
6//
7
15
16#pragma once
17
18#include <memory>
19#include <string>
20
21#include <Eigen/Core>
22
23namespace jsa::cicuetea {
24
25class DFTImpl;
26
45class DFT
46{
47 public:
52 DFT(size_t fftSize);
53
61 DFT();
62
67
71 DFT(DFT&&) noexcept;
72
76 DFT& operator=(DFT&&) noexcept;
77
81 DFT(const DFT&) = delete;
82
86 DFT& operator=(const DFT&) = delete;
87
93 void dft(const Eigen::ArrayXcd& X, Eigen::ArrayXcd& Y);
94
100 void idft(const Eigen::ArrayXcd& X, Eigen::ArrayXcd& Y);
101
107 void rdft(const Eigen::ArrayXd& x, Eigen::ArrayXcd& X);
108
114 void irdft(const Eigen::ArrayXcd& X, Eigen::ArrayXd& x);
115
121 void dft(const Eigen::ArrayXXcd& X, Eigen::ArrayXXcd& Y);
122
128 void idft(const Eigen::ArrayXXcd& X, Eigen::ArrayXXcd& Y);
129
135 void rdft(const Eigen::ArrayXXd& x, Eigen::ArrayXXcd& X);
136
142 void irdft(const Eigen::ArrayXXcd& X, Eigen::ArrayXXd& x);
143
147 static std::string getName();
148
149 private:
153 std::unique_ptr<DFTImpl> pImpl;
154};
155
156} // namespace jsa::cicuetea
Definition FFT_FFTW.h:25
DFT()
Constructs an unplanned DFT: no backend state is created.
void rdft(const Eigen::ArrayXd &x, Eigen::ArrayXcd &X)
Computes the forward Real Discrete Fourier Transform (RDFT) on 1D data.
~DFT()
Destructor.
void idft(const Eigen::ArrayXcd &X, Eigen::ArrayXcd &Y)
Computes the inverse Discrete Fourier Transform (IDFT) on 1D data.
void dft(const Eigen::ArrayXcd &X, Eigen::ArrayXcd &Y)
Computes the Discrete Fourier Transform (DFT) on 1D data.
void irdft(const Eigen::ArrayXcd &X, Eigen::ArrayXd &x)
Computes the inverse Real Discrete Fourier Transform (IRDFT) on 1D data.
DFT(size_t fftSize)
Constructor.
Definition FFT.cpp:31
static std::string getName()
gets the name of the currently used backend.
Definition FFT.cpp:57
DFT(DFT &&) noexcept
Move constructor.