110 likes | 222 Vues
Learn about fast multiplication of large numbers using Fourier techniques, starting with basic multiplication and progressing to polynomial multiplication and convolution. Explore how the Fast Fourier Transform (FFT) can be utilized for efficient multiplication, compare FFT multiplication with regular convolution in terms of time complexity, and discover the benefits of this method for multiplying large numbers quickly.
E N D
Fast Multiplication of Large Numbers Using Fourier Techniques Henry Skiba Advisor: Dr. Marcus Pendergrass
What is Multiplication? • Multiplication of small numbers • This can also be represented in the following way: • where x is equal to 10 • Multiplication of small numbers
Multiplication in a New Way • Represent basic numbers as polynomials when x equals 10 • Multiply two polynomials together
General Polynomial Multiplication • General Polynomials • General Polynomial Multiplication • Even More General Form • where • Convolution
What is Convolution? • This opens the door for use of the Fast Fourier Transform (FFT) for multiplication
Using the FFT to Convolve • Convolution in the time domain is point wise multiplication in the frequency domain • But
Using the FFT to Convolve (cont.) • Arrays are zero padded to make and equivalent • p = [p0,p1,p2,…,pn-1,pn,0,0,0,0,0…] vs. with zero padding without zero padding
Algorithm • Starts with two arrays, p and q • Zero pads p and q • carry
Testing vs. Regular Convolution in Time Domain • Timed how long it took to multiply to random numbers of a certain length • 10,000 to 100,000 with digit stepping of 10,000 • Repeated iteration 5 times • Used theoretical times to plot “fit” based on average of 10,000 digit time values • FFT Multiplication: nlog10n • Convolution: n2