Class DiscreteFourierTransform

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)