M HYPE SPLASH
// news

Using FFT to efficiently multiply multiple polynomials modulo N

By Emma Terry
$\begingroup$

I have a set of polynomials $P_k$ defined as:

$$ P_k = \sum_{n = 0}^{n = N} p_{kn} x^n $$

$N$ is large ($2^{16}$)

I would like to perform multiplication on the polynomials:

$$ Q = \prod_{k=0}^{k=K} P_k $$

$K = 16$

But I only want to keep the coefficients from $0$ to $N$ i.e.

$$ Q = \sum_{n = 0}^{n = N} q_nx^n $$

I know the fastest way to multiply two large polynomials is using the FFT to perform linear convolution by zero padding the two polynomials by N before taking the forward transform, point wise multiplying and then taking the inverse transform. However, for $K$ polynomials I would have to pad $K*N$. Is there an efficient method where I can pad by N, do the forward transform on all the polynomials, and just take one inverse transform at the end?

$\endgroup$ 2 Reset to default

Know someone who can answer? Share a link to this question via email, Twitter, or Facebook.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy