Class DiscreteFourierTransform
Defined in File dftransform.h
Page Contents
Nested Relationships
Nested Types
Class Documentation
-
class lbcrypto::DiscreteFourierTransform
Discrete Fourier Transform FFT implementation.
Public Static Functions
-
static std::vector<std::complex<double>> FFTForwardTransform(std::vector<std::complex<double>> &A)
Virtual FFT forward transform.
- Parameters
A – is the element to perform the transform on.
- Returns
is the output result of the transform.
-
static std::vector<std::complex<double>> FFTInverseTransform(std::vector<std::complex<double>> &A)
Virtual FFT inverse transform.
- Parameters
A – is the element to perform the inverse transform on.
- Returns
is the output result of the inverse transform.
-
static std::vector<std::complex<double>> ForwardTransform(std::vector<std::complex<double>> A)
Virtual forward transform.
- Parameters
A – is the element to perform the transform on.
- Returns
is the output result of the transform.
-
static std::vector<std::complex<double>> InverseTransform(std::vector<std::complex<double>> A)
Virtual inverse transform.
- Parameters
A – is the element to perform the inverse transform on.
- Returns
is the output result of the inverse transform.
-
static void FFTSpecialInv(std::vector<std::complex<double>> &vals, uint32_t cyclOrder)
In-place FFT-like algorithm used in CKKS encoding. For more details, see Algorithm 1 in https://eprint.iacr.org/2018/1043.pdf.
- Parameters
vals – is a vector of complex numbers.
-
static void FFTSpecial(std::vector<std::complex<double>> &vals, uint32_t cyclOrder)
In-place FFT-like algorithm used in CKKS decoding. For more details, see Algorithm 1 in https://eprint.iacr.org/2018/1043.pdf.
- Parameters
vals – is a vector of complex numbers.
-
static void Reset()
Reset cached values for the transform to empty.
-
static void PreComputeTable(uint32_t s)
-
static void Initialize(uint32_t m, uint32_t nh)
-
static std::vector<std::complex<double>> FFTForwardTransform(std::vector<std::complex<double>> &A)