Q1
FFT Execution. (In this question, section a is for submission, section b is not for submission.)
Consider the polynomial whose degree is less than 4.
Write all calculations over the complex field (including recursive calls) for:
- a) FFT execution of order 4 (running ) on the polynomial coefficients.
- b) INVERSE-FFT execution (running ) on the values obtained in section a.
Q2
FFT-based Integer Multiplication: Integer multiplication is an algorithmic problem of supreme practical importance. For simplicity, let’s assume that both numbers being multiplied are of equal length (both have a binary representation of bits) and both are positive. This exercise will present the main components of one of the most efficient algorithms known today for integer multiplication: its running time is only .
Recall that Karatsuba’s multiplication algorithm is based on splitting the digits of each input into two equal-sized blocks and runs in time. Present an improved algorithm that divides each input into blocks of size . Use the FFT algorithm to solve the resulting sub-problems. Assume for simplicity (and without justification) that the multiplications performed during recursive calls do not increase the length of the numbers, and therefore these multiplications can be implemented naively while performing bit operations. Finally, choose the block size to be .
Q3
Matrix Multiplication (Strassen). We want to multiply two square matrices of order over a certain field. The product result is a matrix of order . Exactly scalar multiplication operations (scalar = number in the field) are required if computing directly according to the definition .
In this question, we’ll present a clever recursive algorithm that significantly reduces the number of scalar multiplications (which are considered expensive compared to scalar addition and subtraction operations). For simplicity, assume that is a power of 2, so each matrix can be “decomposed” into 4 sub-matrices of order , as follows:
Note that from the definition of matrix multiplication:
Now let’s compute the 7 matrices:
a) Explain how to compute the 4 required matrices using only addition and subtraction operations on matrices (matrix multiplication is not allowed). For example .
Calculate s: ___________________________________________________________ Calculate t: ___________________________________________________________ Calculate r: ___________________________________________________________
b) Check how many scalar multiplications are required in total for the recursive algorithm described in this question.
Q4
Computing all derivatives of a polynomial at a point. It is customary to denote by the -th order derivative of the function . For example, , , and . Given the coefficients of the polynomial: and a certain point , present an algorithm to compute the values of all derivatives at that point , while performing only basic arithmetic operations. (Basic operation = addition, subtraction, multiplication, division, or comparison of numbers).
For example, for a polynomial of degree , you need to compute the following values:
A 4-5 line answer is required. An FFT-based answer is required. In particular, no credit will be given for the trivial algorithm that separately computes each of the terms. Use in your answer the standard factorial reduction: