libfqfft icon indicating copy to clipboard operation
libfqfft copied to clipboard

basic radix 2 coset IFFT: combine multiply by coset and multiply by constant

Open ValarDragon opened this issue 6 years ago • 0 comments

For a coset of size L, the coset IFFT does an extra L multiplications at the moment (in exchange for better abstraction)

The basic radix 2 coset IFFT does the normal IFFT, and then multiplies the coefficients of the polynomial by powers of the coset offset. The normal IFFT at the end multiplies every element of the polynomial by a constant. These multiplications can be merged.

The multiply by coset procedure essentially computes offset, offset^2, offset^3 ..., by just multiplying the previous term by offset. In the coset IFFT, you really want to compute k*offset, k*offset^2, ..., which can be done by just multiplying the first term by the constant, and then proceeding as before.

ValarDragon avatar Jul 22 '19 20:07 ValarDragon