SLIDE 5 5
25
Hints towards FFT:
- II. Evaluation & Interpolation
P: a0,a1,...,am-1 Q: b0,b1,...,bm-1 P(y0),Q(y0) P(y1),Q(y1) ... P(yn-1),Q(yn-1)
R(y0)=P(y0)Q(y0) R(y1)=P(y1)Q(y1) ... R(yn-1)=P(yn-1)Q(yn-1) R:c0,c1,...,cn-1
∑
= +
←
k j i j i k
b a c
multiplication Θ(n2) point-wise multiplication
evaluation at y0,...,yn-1 O(?) interpolation from y0,...,yn-1 O(?)
26
Hints towards FFT:
- III. Evaluation at Special Points
❚ Evaluation of polynomial at 1 point takes O(m), so m points (naively) takes O(m2)—no savings ❚ Key trick: use carefully chosen points where there’s some sharing of work for several points, namely various powers of ❚ Plus more Divide & Conquer. ❚ Result: both eval and interpolation in O(n log n)
1
2
− = = ω
π
i , e
m / i
27
Multiplying Matrices
❚ n3 multiplications, n3-n2 additions
44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11 44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11
b b b b b b b b b b b b b b b b a a a a a a a a a a a a a a a a + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + =
44 44 34 43 24 42 14 41 42 44 32 43 22 42 12 41 41 44 31 43 21 42 11 41 44 34 34 33 24 32 14 31 42 34 32 33 22 32 12 31 41 34 31 33 21 32 11 31 44 24 34 23 24 22 14 21 42 24 32 23 22 22 12 21 41 24 31 23 21 22 11 21 44 14 34 13 24 12 14 11 42 14 32 13 22 12 12 11 41 14 31 13 21 12 11 11
b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a
Multiplying Matrices
44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11 44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11
b b b b b b b b b b b b b b b b a a a a a a a a a a a a a a a a + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + =
44 44 34 43 24 42 14 41 42 44 32 43 22 42 12 41 41 44 31 43 21 42 11 41 44 34 34 33 24 32 14 31 42 34 32 33 22 32 12 31 41 34 31 33 21 32 11 31 44 24 34 23 24 22 14 21 42 24 32 23 22 22 12 21 41 24 31 23 21 22 11 21 44 14 34 13 24 12 14 11 42 14 32 13 22 12 12 11 41 14 31 13 21 12 11 11
b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a
Multiplying Matrices
44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11 44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11
b b b b b b b b b b b b b b b b a a a a a a a a a a a a a a a a + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + =
44 44 34 43 24 42 14 41 42 44 32 43 22 42 12 41 41 44 31 43 21 42 11 41 44 34 34 33 24 32 14 31 42 34 32 33 22 32 12 31 41 34 31 33 21 32 11 31 44 24 34 23 24 22 14 21 42 24 32 23 22 22 12 21 41 24 31 23 21 22 11 21 44 14 34 13 24 12 14 11 42 14 32 13 22 12 12 11 41 14 31 13 21 12 11 11
b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a
Multiplying Matrices
44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11 44 43 42 41 34 33 32 31 24 23 22 21 14 13 12 11
b b b b b b b b b b b b b b b b a a a a a a a a a a a a a a a a + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + =
44 44 34 43 24 42 14 41 42 44 32 43 22 42 12 41 41 44 31 43 21 42 11 41 44 34 34 33 24 32 14 31 42 34 32 33 22 32 12 31 41 34 31 33 21 32 11 31 44 24 34 23 24 22 14 21 42 24 32 23 22 22 12 21 41 24 31 23 21 22 11 21 44 14 34 13 24 12 14 11 42 14 32 13 22 12 12 11 41 14 31 13 21 12 11 11
b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a b a
A12 A21 A11B12+A12B22 A22 A11B11+A12B21 B11 B12 B21 B22 A21B12+A22B22 A21B11+A22B21