28#ifndef FNFT__POLY_FMULT_H
29#define FNFT__POLY_FMULT_H
328#ifdef FNFT_ENABLE_SHORT_NAMES
329#define poly_fmult_two_polys_len(...) fnft__poly_fmult_two_polys_len(__VA_ARGS__)
330#define poly_fmult_two_polys_lenmen(...) fnft__poly_fmult_two_polys_lenmen(__VA_ARGS__)
331#define poly_fmult_two_polys(...) fnft__poly_fmult_two_polys(__VA_ARGS__)
332#define poly_fmult_two_polys2x2(...) fnft__poly_fmult_two_polys2x2(__VA_ARGS__)
333#define poly_fmult_two_polys3x3(...) fnft__poly_fmult_two_polys3x3(__VA_ARGS__)
334#define poly_fmult_numel(...) fnft__poly_fmult_numel(__VA_ARGS__)
335#define poly_fmult2x2_numel(...) fnft__poly_fmult2x2_numel(__VA_ARGS__)
336#define poly_fmult3x3_numel(...) fnft__poly_fmult3x3_numel(__VA_ARGS__)
337#define poly_fmult(...) fnft__poly_fmult(__VA_ARGS__)
338#define poly_fmult2x2(...) fnft__poly_fmult2x2(__VA_ARGS__)
339#define poly_fmult3x3(...) fnft__poly_fmult3x3(__VA_ARGS__)
kiss_fft_cfg fnft__fft_wrapper_plan_t
Stores information needed by fnft__fft_wrapper_execute_plan to perform a (inverse) FFT.
Definition fnft__fft_wrapper_plan_t.h:41
size_t FNFT_UINT
Definition fnft_numtypes.h:62
double complex FNFT_COMPLEX
Definition fnft_numtypes.h:47
int32_t FNFT_INT
Definition fnft_numtypes.h:56
FNFT_INT fnft__poly_fmult2x2(FNFT_UINT *d, FNFT_UINT n, FNFT_COMPLEX *const p, FNFT_COMPLEX *const result, FNFT_INT *const W_ptr)
Fast multiplication of multiple 2x2 matrix-valued polynomials of the same degree.
FNFT_INT fnft__poly_fmult3x3(FNFT_UINT *d, FNFT_UINT n, FNFT_COMPLEX *const p, FNFT_COMPLEX *const result, FNFT_INT *const W_ptr)
Fast multiplication of multiple 3x3 matrix-valued polynomials of the same degree.
FNFT_UINT fnft__poly_fmult3x3_numel(const FNFT_UINT deg, const FNFT_UINT n)
Number of elements that the inputs p and result to fnft__poly_fmult3x3 should have.
FNFT_UINT fnft__poly_fmult2x2_numel(const FNFT_UINT deg, const FNFT_UINT n)
Number of elements that the inputs p and result to fnft__poly_fmult2x2 should have.
FNFT_UINT fnft__poly_fmult_two_polys_len(const FNFT_UINT deg)
Length of the FFTs used by fnft__poly_fmult_two_polys.
FNFT_INT fnft__poly_fmult_two_polys3x3(const FNFT_UINT deg, FNFT_COMPLEX const *const p1_11, const FNFT_UINT p1_stride, FNFT_COMPLEX const *const p2_11, const FNFT_UINT p2_stride, FNFT_COMPLEX *const result_11, const FNFT_UINT result_stride, fnft__fft_wrapper_plan_t plan_fwd, fnft__fft_wrapper_plan_t plan_inv, FNFT_COMPLEX *const buf0, FNFT_COMPLEX *const buf1, FNFT_COMPLEX *const buf2, const FNFT_UINT sufficient_space_flag)
Multiplies two 3x3 matrices of polynomials.
FNFT_INT fnft__poly_fmult(FNFT_UINT *const d, FNFT_UINT n, FNFT_COMPLEX *const p, FNFT_INT *const W_ptr)
Fast multiplication of multiple polynomials of same degree.
FNFT_INT fnft__poly_fmult_two_polys2x2(const FNFT_UINT deg, FNFT_COMPLEX const *const p1_11, const FNFT_UINT p1_stride, FNFT_COMPLEX const *const p2_11, const FNFT_UINT p2_stride, FNFT_COMPLEX *const result_11, const FNFT_UINT result_stride, fnft__fft_wrapper_plan_t plan_fwd, fnft__fft_wrapper_plan_t plan_inv, FNFT_COMPLEX *const buf0, FNFT_COMPLEX *const buf1, FNFT_COMPLEX *const buf2, const FNFT_UINT mode_offset)
Multiplies two 2x2 matrices of polynomials.
FNFT_INT fnft__poly_fmult_two_polys(const FNFT_UINT deg, FNFT_COMPLEX const *const p1, FNFT_COMPLEX const *const p2, FNFT_COMPLEX *const result, fnft__fft_wrapper_plan_t plan_fwd, fnft__fft_wrapper_plan_t plan_inv, FNFT_COMPLEX *const buf0, FNFT_COMPLEX *const buf1, FNFT_COMPLEX *const buf2, const FNFT_UINT mode)
Multiplies two polynomials.
FNFT_UINT fnft__poly_fmult_numel(const FNFT_UINT deg, const FNFT_UINT n)
Number of elements that the input p to fnft__poly_fmult should have.