on polynomial multiplication complexity in chebyshev basisgiorgi/seminaire-algo-inria.pdf ·...
TRANSCRIPT
![Page 1: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/1.jpg)
On Polynomial Multiplication Complexity inChebyshev Basis
Pascal Giorgi
INRIA Rocquencourt, Algorithms Project’s Seminar
November 29, 2010.
![Page 2: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/2.jpg)
Outline
1 Polynomial multiplication in monomial basis
2 Polynomial multiplication in Chebyshev basis
3 A more direct reduction from Chebyshev to monomial basis
4 Implementations and experimentations
5 Conclusion
![Page 3: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/3.jpg)
Outline
1 Polynomial multiplication in monomial basis
2 Polynomial multiplication in Chebyshev basis
3 A more direct reduction from Chebyshev to monomial basis
4 Implementations and experimentations
5 Conclusion
![Page 4: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/4.jpg)
Polynomial multiplication
Arithmetic of polynomials has been widely studied, and its complexity iswell established:
Let f , g ∈ K[x ] two polynomials of degree d < n = 2k and K a field. Onecan compute the product f .g ∈ K[x ] in
O(n2) op. in K [schoolbook method]
O(n1.58) op. in K [Karatsuba’s method]
O(nlogr+1(2r+1)) op. in K, ∀r > 0 [Toom-Cook method]
O(n log n) op. in K [DFT-based method] assuming K has a nth primitiveroot of unity.
Remark
this result assumes that f , g are given in the monomial basis (1, x , x2, ...)
![Page 5: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/5.jpg)
Polynomial multiplication
Arithmetic of polynomials has been widely studied, and its complexity iswell established:
Let f , g ∈ K[x ] two polynomials of degree d < n = 2k and K a field. Onecan compute the product f .g ∈ K[x ] in
O(n2) op. in K [schoolbook method]
O(n1.58) op. in K [Karatsuba’s method]
O(nlogr+1(2r+1)) op. in K, ∀r > 0 [Toom-Cook method]
O(n log n) op. in K [DFT-based method] assuming K has a nth primitiveroot of unity.
Remark
this result assumes that f , g are given in the monomial basis (1, x , x2, ...)
![Page 6: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/6.jpg)
Polynomial multiplication in R[x ]
All these methods works on polynomials over R[x ].
most of them use evaluation/interpolation technique
O(n log n) method needs to perform the computation in thealgebraic closure of R, which is C, to have primitive roots of unity.
Let f , g ∈ R[x ] with degree d < n = 2k ,
the sketch to compute h = fg is:
set ω = e−2iπ
2n ∈ C and calculate
[f (1), f (ω), ..., f (ω2n−1)] ∈ Cn using DFT on f and ω
[g(1), g(ω), ..., g(ω2n−1)] ∈ Cn using DFT on g and ω
fg = f (0)g(0) + f (ω)g(ω)x + ... + f (ω2n−1)g(ω2n−1)x2n−1 ∈ C[x ]
[h0, h1, ..., h2n−1] ∈ Rn using DFT on fg and ω−1 plus scaling
![Page 7: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/7.jpg)
Polynomial multiplication in R[x ]
All these methods works on polynomials over R[x ].
most of them use evaluation/interpolation technique
O(n log n) method needs to perform the computation in thealgebraic closure of R, which is C, to have primitive roots of unity.
Let f , g ∈ R[x ] with degree d < n = 2k ,
the sketch to compute h = fg is:
set ω = e−2iπ
2n ∈ C and calculate
[f (1), f (ω), ..., f (ω2n−1)] ∈ Cn using DFT on f and ω
[g(1), g(ω), ..., g(ω2n−1)] ∈ Cn using DFT on g and ω
fg = f (0)g(0) + f (ω)g(ω)x + ... + f (ω2n−1)g(ω2n−1)x2n−1 ∈ C[x ]
[h0, h1, ..., h2n−1] ∈ Rn using DFT on fg and ω−1 plus scaling
![Page 8: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/8.jpg)
Discrete Fourier Transform DFT
Let f (x) = f0 + f1x + ... + fn−1xn−1 ∈ R[x ].
The n-point Discrete Fourier Transform (DFTn) can be defined as follow :
DFTn(f ) = (Fk)k=0..n−1 such that Fk =n−1∑j=0
fje−2iπ
n kj ∈ C
which is equivalent to say
DFTn(f ) = (f (0), f (ω), ..., f (ωn−1) with ω = e−2iπ
n .
![Page 9: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/9.jpg)
Fast Fourier Transform FFT
The Fast Fourier Transform (FFT) is a fast method based on a divide andconquer approach [Gauss 19th, Cooley-Tuckey 1965] to compute the DFTn. It usesthe following property:
Let f = q0(xn2 − 1) + r0 and f = q1(x
n2 + 1) + r1 s.t. deg r0, deg r1 < n
2then ∀k ∈ N s.t. k < n
2
f (ω2k) = r0(ω2k),
f (ω2k+1) = r1(ω2k+1) = r1(ω
2k).
This means DFTn(f ) can be computed using DFT n2(r0) and DFT n
2(r1),
yielding a recursive complexity of H(n) = 2H(n/2) + O(n) = O(n log n).
![Page 10: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/10.jpg)
Polynomial multiplication in R[x ]
Asymptotic complexity is not reflecting real behaviour of algorithms inpractice, constant and lower terms in complexity does really matter !!!
Exact number of operations in R to multiply two polynomials of R[x ] withdegree d < n = 2k in monomial basis
Algorithm nbr of multiplication nbr of addition
Schoolbook n2 (n − 1)2
Karatsuba nlog 3 7nlog 3 − 7n + 2
DFT-based(∗) 3n log 2n − n + 6 9n log 2n − 12n + 12
(*) using real-valued FFT[Sorensen, Jones, Heaideman 1987] with 3/3 complex mult.
![Page 11: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/11.jpg)
Polynomial multiplication in R[x ]
100
101
102
103
104
105
106
107
108
2 4 8 16 32 64 128 256 512 1024 2048 4096
nbr
of o
pera
tions
Polynomials size (equiv. to degree+1)
Polynomial Multiplication in monomial basis (theoretical count)
1 FP mul = 1 FP add
Schoolbook methodKaratsuba methodDFT−based method
![Page 12: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/12.jpg)
Polynomial multiplication in R[x ]
100
101
102
103
104
105
106
107
108
2 4 8 16 32 64 128 256 512 1024 2048 4096
nbr
of o
pera
tions
Polynomials size (equiv. to degree+1)
Polynomial Multiplication in monomial basis (theoretical count)
1 FP mul = 2 FP add
Schoolbook methodKaratsuba methodDFT−based method
![Page 13: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/13.jpg)
Polynomial multiplication in R[x ]
100
101
102
103
104
105
106
107
108
2 4 8 16 32 64 128 256 512 1024 2048 4096
nbr
of o
pera
tions
Polynomials size (equiv. to degree+1)
Polynomial Multiplication in monomial basis (theoretical count)
1 FP mul = 4 FP add
Schoolbook methodKaratsuba methodDFT−based method
![Page 14: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/14.jpg)
Monomial basis for polynomial are not the only ones !!!
Chebyshev basis seems to be very useful
![Page 15: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/15.jpg)
Monomial basis for polynomial are not the only ones !!!
Chebyshev basis seems to be very useful
![Page 16: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/16.jpg)
In this presentation, I will assume that
polynomials have degree d = n − 1 where n = 2k .
formula will be using the degree d .
complexity estimate will be using the number of terms n.
![Page 17: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/17.jpg)
Outline
1 Polynomial multiplication in monomial basis
2 Polynomial multiplication in Chebyshev basis
3 A more direct reduction from Chebyshev to monomial basis
4 Implementations and experimentations
5 Conclusion
![Page 18: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/18.jpg)
Chebyshev Polynomials: a short definition
Chebyshev polynomials of the first kind on [−1, 1] are defined as Tk(x)s.t.
Tk(x) = cos(k arcos(x)), k ∈ N∗ and x ∈ [−1, 1]
These polynomials are orthogonal polynomials defined by the followingrecurrence relation: T0(x) = 1
T1(x) = xTk(x) = 2xTk−1(x)− Tk−2(x), ∀k > 1
Therefore, they can be used to form a base of the R-vector space of R[x ].
![Page 19: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/19.jpg)
Polynomials in Chebyshev basis
Every a ∈ R[x ] can be expressed as a linear combination of Tk :
a(x) =a0
2+
d∑k=1
akTk(x)
Question:
How fast can we multiply polynomials in Chebyshev basis ?
Main difficulty
Ti (x).Tj(x) =Ti+j (x)+T|i−j|(x)
2 , ∀i , j ∈ N
![Page 20: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/20.jpg)
Polynomials in Chebyshev basis
Every a ∈ R[x ] can be expressed as a linear combination of Tk :
a(x) =a0
2+
d∑k=1
akTk(x)
Question:
How fast can we multiply polynomials in Chebyshev basis ?
Main difficulty
Ti (x).Tj(x) =Ti+j (x)+T|i−j|(x)
2 , ∀i , j ∈ N
![Page 21: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/21.jpg)
Polynomials in Chebyshev basis
Every a ∈ R[x ] can be expressed as a linear combination of Tk :
a(x) =a0
2+
d∑k=1
akTk(x)
Question:
How fast can we multiply polynomials in Chebyshev basis ?
Main difficulty
Ti (x).Tj(x) =Ti+j (x)+T|i−j|(x)
2 , ∀i , j ∈ N
![Page 22: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/22.jpg)
Multiplication of polynomials in Chebyshev basis
Complexity results:
Let a, b ∈ R[x ] two polynomials of degree d = n − 1 given in Chebyshevbasis, one can compute the product a.b ∈ R[x ] in Chebyshev basis with
O(n2) op. in R [direct method]
O(n log n) op. in R [Baszenski, Tasche 1997]
O(M(n)) op. in R [Bostan, Salvy, Schost 2010] where M(n) is the cost ofthe multiplication in monomial basis.
Remark:
M(n) method is using basis conversions which increase constant term inthe complexity estimate and probably introduce numerical errors.
My goal is to get a more direct reduction to the monomial case !!!
![Page 23: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/23.jpg)
Multiplication of polynomials in Chebyshev basis
Complexity results:
Let a, b ∈ R[x ] two polynomials of degree d = n − 1 given in Chebyshevbasis, one can compute the product a.b ∈ R[x ] in Chebyshev basis with
O(n2) op. in R [direct method]
O(n log n) op. in R [Baszenski, Tasche 1997]
O(M(n)) op. in R [Bostan, Salvy, Schost 2010] where M(n) is the cost ofthe multiplication in monomial basis.
Remark:
M(n) method is using basis conversions which increase constant term inthe complexity estimate and probably introduce numerical errors.
My goal is to get a more direct reduction to the monomial case !!!
![Page 24: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/24.jpg)
Multiplication of polynomials in Chebyshev basis
Complexity results:
Let a, b ∈ R[x ] two polynomials of degree d = n − 1 given in Chebyshevbasis, one can compute the product a.b ∈ R[x ] in Chebyshev basis with
O(n2) op. in R [direct method]
O(n log n) op. in R [Baszenski, Tasche 1997]
O(M(n)) op. in R [Bostan, Salvy, Schost 2010] where M(n) is the cost ofthe multiplication in monomial basis.
Remark:
M(n) method is using basis conversions which increase constant term inthe complexity estimate and probably introduce numerical errors.
My goal is to get a more direct reduction to the monomial case !!!
![Page 25: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/25.jpg)
Lets first recall existing algorithms ...
![Page 26: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/26.jpg)
Multiplication in Chebyshev basis: the direct method
Derived from Ti (x).Tj(x) =Ti+j (x)+T|i−j|(x)
2 , ∀i , j ∈ N
Let a, b ∈ R[x ] of degree d , given in Chebyshev basis, then
c(x) = a(x)b(x) =c0
2+
2d∑k=1
ckTk(x)
is computed according to the following equation:
2ck =
a0b0 + 2d∑
l=1
albl , for k = 0,
k∑l=0
ak−lbl +d−k∑l=1
(albk+l + ak+lbl), for k = 1, ..., d − 1,
d∑l=k−d
ak−lbl , for k = d , ..., 2d .
using n2 + 2n − 1 multiplications and (n−1)(3n−2)2 additions in R.
![Page 27: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/27.jpg)
Multiplication in Chebyshev basis: the direct method
Derived from Ti (x).Tj(x) =Ti+j (x)+T|i−j|(x)
2 , ∀i , j ∈ N
Let a, b ∈ R[x ] of degree d , given in Chebyshev basis, then
c(x) = a(x)b(x) =c0
2+
2d∑k=1
ckTk(x)
is computed according to the following equation:
2ck =
a0b0 + 2d∑
l=1
albl , for k = 0,
k∑l=0
ak−lbl +d−k∑l=1
(albk+l + ak+lbl), for k = 1, ..., d − 1,
d∑l=k−d
ak−lbl , for k = d , ..., 2d .
using n2 + 2n − 1 multiplications and (n−1)(3n−2)2 additions in R.
![Page 28: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/28.jpg)
Multiplication in Chebyshev basis: the direct method
Derived from Ti (x).Tj(x) =Ti+j (x)+T|i−j|(x)
2 , ∀i , j ∈ N
Let a, b ∈ R[x ] of degree d , given in Chebyshev basis, then
c(x) = a(x)b(x) =c0
2+
2d∑k=1
ckTk(x)
is computed according to the following equation:
2ck =
a0b0 + 2d∑
l=1
albl , for k = 0,
k∑l=0
ak−lbl +d−k∑l=1
(albk+l + ak+lbl), for k = 1, ..., d − 1,
d∑l=k−d
ak−lbl , for k = d , ..., 2d .
using n2 + 2n − 1 multiplications and (n−1)(3n−2)2 additions in R.
![Page 29: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/29.jpg)
Yet another quadratic method
Lima, Panario and Wang [IEEE TC 2010] proposed another approach yieldinga quadratic complexity which lowers down the number of multiplications
n2 + 5n − 2
2multiplications in R,
3n2 + nlog 3 − 6n + 2 additions in R.
Main idea
perform the multiplication on polynomials as if they were in monomialbasis and correct the result.
Interesting: this approach is almost halfway from a direct reduction tomonomial basis case !!!
![Page 30: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/30.jpg)
Yet another quadratic method
Lima, Panario and Wang [IEEE TC 2010] proposed another approach yieldinga quadratic complexity which lowers down the number of multiplications
n2 + 5n − 2
2multiplications in R,
3n2 + nlog 3 − 6n + 2 additions in R.
Main idea
perform the multiplication on polynomials as if they were in monomialbasis and correct the result.
Interesting: this approach is almost halfway from a direct reduction tomonomial basis case !!!
![Page 31: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/31.jpg)
Yet another quadratic method [Lima, Panario, Wang 2010]
Let a(x) =a0
2+
d∑k=1
akTk(x) and b(x) =b0
2+
d∑k=1
bkTk(x).
Compute convolutions fk =k∑
l=0
ak−lbl using Karatsuba algorithm.
Simplifying direct method to
2ck =
f0 + 2d∑
l=1
albl for k = 0,
fk +d−k∑l=1
(albk+l + ak+lbl) for k = 1, ..., d − 1,
fk for k = d , ..., 2d .
still need to compute remaining part to get the result
![Page 32: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/32.jpg)
Yet another quadratic method [Lima, Panario, Wang 2010]
Let a(x) =a0
2+
d∑k=1
akTk(x) and b(x) =b0
2+
d∑k=1
bkTk(x).
Compute convolutions fk =k∑
l=0
ak−lbl using Karatsuba algorithm.
Simplifying direct method to
2ck =
f0 + 2d∑
l=1
albl for k = 0,
fk +d−k∑l=1
(albk+l + ak+lbl) for k = 1, ..., d − 1,
fk for k = d , ..., 2d .
still need to compute remaining part to get the result
![Page 33: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/33.jpg)
Yet another quadratic method [Lima, Panario, Wang 2010]
2ck =
f0 + 2d∑
l=1
albl for k = 0,
fk +d−k∑l=1
(albk+l + ak+lbl) for k = 1, ..., d − 1,
fk for k = d , ..., 2d .
All the terms have been already computed together in convolutions fk .
could be recomputed but at an expensive cost
could use separation technique to retrieve them [Lima, Panario, Wang 2010]
Main idea
exploit the recursive three terms structure < a0b0, a0b1 + a1b0, a1b1 > ofKaratsuba’s algorithm to separate all the aik bjk + ajk bik
still needs O(n2) operations and O(nlog3) extra memory !!!
![Page 34: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/34.jpg)
Yet another quadratic method [Lima, Panario, Wang 2010]
2ck =
f0 + 2d∑
l=1
albl for k = 0,
fk +d−k∑l=1
(albk+l + ak+lbl) for k = 1, ..., d − 1,
fk for k = d , ..., 2d .
All the terms have been already computed together in convolutions fk .
could be recomputed but at an expensive cost
could use separation technique to retrieve them [Lima, Panario, Wang 2010]
Main idea
exploit the recursive three terms structure < a0b0, a0b1 + a1b0, a1b1 > ofKaratsuba’s algorithm to separate all the aik bjk + ajk bik
still needs O(n2) operations and O(nlog3) extra memory !!!
![Page 35: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/35.jpg)
Fast method - DCT-based [Baszenski, Tasche 1997]
Let f (x) = f0 + f1x + ... + fdxd ∈ R[x ], then
DFTn(f ) = (Fk)k=0..n−1 such that Fk =n−1∑j=0
fje−2iπ
n kj
DCTn(f ) = (Fk)k=0..n−1 such that Fk = 2n−1∑j=0
fj cos
[πk
2n(2j + 1)
]
DCTn is almost the real part of a DFT2n of the even symmetrized input
Main idea
Use same approach as for monomial basis but with DCT instead of DFT.
![Page 36: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/36.jpg)
Fast method - DCT-based [Baszenski, Tasche 1997]
Use evaluation/interpolation on the points µj = cos( jπn ), j = 0, . . . , n − 1
allows the use of DCT and its inverse.
Principle
Let a(x) =a0
2+
n∑k=1
akTk(x).
Using Chebyshev polynomials definition we have
Tk(µj) = cos( kπjn )
which gives
a(µj) =n−1∑k=0
ak cos(kπj
n).
This is basically a DCTn on coefficients of a(x).
![Page 37: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/37.jpg)
Fast method - DCT-based [Baszenski, Tasche 1997]
Let a, b ∈ R[x ] given in Chebyshev basis with degree d < n = 2k
The method to compute c = ab is:
set µj = cos( jπn ), j = 0, . . . , 2n
[a(µ0), a(µ1), ..., a(µ2n)] ∈ R2n+1 using DCT on a
[b(µ0), b(µ1), ..., b(µ2n)] ∈ R2n+1 using DCT on b
ab = a(µ0)b(µ0) + a(µ1)b(µ1)x + ... + a(µ2n)b(µ2n)x2n ∈ R[x ]
[c0, c1, ..., c2n] ∈ R2n using DCT on ab plus scaling
This method requires:
3n log 2n − 2n + 3 multiplications in R,
(9n + 3) log 2n − 12n + 12 additions in R.
![Page 38: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/38.jpg)
Fast method - DCT-based [Baszenski, Tasche 1997]
Let a, b ∈ R[x ] given in Chebyshev basis with degree d < n = 2k
The method to compute c = ab is:
set µj = cos( jπn ), j = 0, . . . , 2n
[a(µ0), a(µ1), ..., a(µ2n)] ∈ R2n+1 using DCT on a
[b(µ0), b(µ1), ..., b(µ2n)] ∈ R2n+1 using DCT on b
ab = a(µ0)b(µ0) + a(µ1)b(µ1)x + ... + a(µ2n)b(µ2n)x2n ∈ R[x ]
[c0, c1, ..., c2n] ∈ R2n using DCT on ab plus scaling
This method requires:
3n log 2n − 2n + 3 multiplications in R,
(9n + 3) log 2n − 12n + 12 additions in R.
![Page 39: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/39.jpg)
Polynomial multiplication in R[x ] (Chebyshev basis)
Exact number of operations in R to multiply two polynomials of R[x ] withdegree d < n = 2k in Chebyshev basis
Algorithm nbr of multiplication nbr of addition
Direct method n2 + 2n − 1 1.5n2 − 2.5n + 1
Lima et al. 0.5n2 + 2.5n − 1 3n2 + nlog3 − 6n + 2
DCT-based 3n log 2n − 2n + 3 (9n + 3) log 2n − 12n + 12
![Page 40: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/40.jpg)
Polynomial multiplication in R[x ] (Chebyshev basis)
100
101
102
103
104
105
106
107
108
2 4 8 16 32 64 128 256 512 1024 2048 4096
nbr
of o
pera
tions
Polynomials size (equiv. to degree+1)
Polynomial Multiplication in Chebyshev basis (theoretical count)
1 FP mul = 1 FP add
Direct methodLima et. al methodDCT−based method
![Page 41: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/41.jpg)
Polynomial multiplication in R[x ] (Chebyshev basis)
100
101
102
103
104
105
106
107
108
2 4 8 16 32 64 128 256 512 1024 2048 4096
nbr
of o
pera
tions
Polynomials size (equiv. to degree+1)
Polynomial Multiplication in Chebyshev basis (theoretical count)
1 FP mul = 2 FP add
Direct methodLima et. al methodDCT−based method
![Page 42: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/42.jpg)
Polynomial multiplication in R[x ] (Chebyshev basis)
100
101
102
103
104
105
106
107
108
2 4 8 16 32 64 128 256 512 1024 2048 4096
nbr
of o
pera
tions
Polynomials size (equiv. to degree+1)
Polynomial Multiplication in Chebyshev basis (theoretical count)
1 FP mul = 4 FP add
Direct methodLima et. al methodDCT−based method
![Page 43: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/43.jpg)
Outline
1 Polynomial multiplication in monomial basis
2 Polynomial multiplication in Chebyshev basis
3 A more direct reduction from Chebyshev to monomial basis
4 Implementations and experimentations
5 Conclusion
![Page 44: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/44.jpg)
Use same approach as in [Lima, Panario, Wang 2010]
Let a(x) =a0
2+
d∑k=1
akTk(x) and b(x) =b0
2+
d∑k=1
bkTk(x).
Using any polynomial multiplication algorithms (monomial basis) tocompute convolutions:
fk =k∑
l=0
ak−lbl
2ck =
f0 + 2d∑
l=1
albl for k = 0,
fk +d−k∑l=1
(albk+l + ak+lbl) for k = 1, ..., d − 1,
fk for k = d , ..., 2d .
so we do for the remaining part !!!
![Page 45: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/45.jpg)
Use same approach as in [Lima, Panario, Wang 2010]
Let a(x) =a0
2+
d∑k=1
akTk(x) and b(x) =b0
2+
d∑k=1
bkTk(x).
Using any polynomial multiplication algorithms (monomial basis) tocompute convolutions:
fk =k∑
l=0
ak−lbl
2ck =
f0 + 2d∑
l=1
albl for k = 0,
fk +d−k∑l=1
(albk+l + ak+lbl) for k = 1, ..., d − 1,
fk for k = d , ..., 2d .
so we do for the remaining part !!!
![Page 46: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/46.jpg)
Correcting by monomial basis multiplication
We need to compute:d∑
l=1
albl
d−k∑l=1
albk+l
d−k∑l=1
ak+lbl
for k = 1, . . . , d − 1
which can be deduced from convolutions
gd
+k
=d∑
l=0
rd−lbl
gd+k =d−k∑l=0
rd−lbk+l
gd−k =d−k∑l=0
rd−k−lbl
with an extra cost of O(n) operations,where al = rd−l
![Page 47: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/47.jpg)
Correcting by monomial basis multiplication
We need to compute:d∑
l=1
albl
d−k∑l=1
albk+l
d−k∑l=1
ak+lbl
for k = 1, . . . , d − 1
which can be deduced from convolutions
gd
+k
=d∑
l=0
rd−lbl
gd+k =d−k∑l=0
rd−lbk+l
gd−k =d−k∑l=0
rd−k−lbl
with an extra cost of O(n) operations,where al = rd−l
![Page 48: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/48.jpg)
A direct reduction : PM-Chebyshev
Let a(x), b(x) ∈ R[x ] of degree d = n − 1 given in Chebyshev basis andr(x) the reverse polynomial of a(x).
Use any monomial basis algorithms to compute convolutions:
fk =k∑
l=0
ak−lbl and gk =k∑
l=0
rk−lbl
Computation of c(x) = a(x)b(x) in Chebyshev basis is deduced from :
2ck =
f0 + 2(gd − a0b0) for k = 0,
fk + gd−k + gd+k − a0bk − akb0 for k = 1, ..., d − 1,
fk for k = d , ..., 2d .
at a cost of 2M(n) + O(n) operations in R.
![Page 49: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/49.jpg)
A direct reduction : PM-Chebyshev
Let a(x), b(x) ∈ R[x ] of degree d = n − 1 given in Chebyshev basis andr(x) the reverse polynomial of a(x).
Use any monomial basis algorithms to compute convolutions:
fk =k∑
l=0
ak−lbl and gk =k∑
l=0
rk−lbl
Computation of c(x) = a(x)b(x) in Chebyshev basis is deduced from :
2ck =
f0 + 2(gd − a0b0) for k = 0,
fk + gd−k + gd+k − a0bk − akb0 for k = 1, ..., d − 1,
fk for k = d , ..., 2d .
at a cost of 2M(n) + O(n) operations in R.
![Page 50: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/50.jpg)
Analysis of the complexity
Let M(n) be the cost of polynomial multiplication in monomial basis withpolynomials of degree d < n.
PM-Chebyshev algorithm costs exactly 2M(n) + 8n − 10 op. in R.
Optimization trick
Setting a0 = b0 = 0 juste before computation of coefficients gk gives
2ck =
f0 + 2gd for k = 0,
fk + gd−k + gd+k for k = 1, ..., d − 1,
fk for k = d , ..., 2d .
reducing the cost to 2M(n) + 4n − 3 op. in R.
![Page 51: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/51.jpg)
Analysis of the complexity
Let M(n) be the cost of polynomial multiplication in monomial basis withpolynomials of degree d < n.
PM-Chebyshev algorithm costs exactly 2M(n) + 8n − 10 op. in R.
Optimization trick
Setting a0 = b0 = 0 juste before computation of coefficients gk gives
2ck =
f0 + 2gd for k = 0,
fk + gd−k + gd+k for k = 1, ..., d − 1,
fk for k = d , ..., 2d .
reducing the cost to 2M(n) + 4n − 3 op. in R.
![Page 52: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/52.jpg)
Analysis of the complexity
Exact number of operations in R to multiply two polynomials of R[x ] withdegree d < n = 2k given in Chebyshev basis
M(n) nb. of multiplication nb. of addition
Schoolbook 2n2 + 2n − 1 2n2 − 2n
Karatsuba 2nlog 3 + 2n − 1 14nlog 3 − 12n + 2
DFT-based(∗) 6n log 2n − 6n + 11 18n log 2n − 22n + 22
(*) using real-valued FFT[Sorensen, Jones, Heaideman 1987] with 3/3 complex mult.
![Page 53: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/53.jpg)
Special case of DFT-based multiplication
PM-Chebyshev algorithm can be degenerated to reduce the constant term
It involves 2 multiplications with only 3 different operands.
↪→ one DFT is computed twice
1/6th of the computation can be saved
giving a complexity in this case of
• 5n log 2n − 3n + 9 multiplications in R,
• 15n log 2n − 17n + 18 additions in R.
![Page 54: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/54.jpg)
Special case of DFT-based multiplication
PM-Chebyshev algorithm can be degenerated to reduce the constant term
It involves 2 multiplications with only 3 different operands.
↪→ one DFT is computed twice
1/6th of the computation can be saved
giving a complexity in this case of
• 5n log 2n − 3n + 9 multiplications in R,
• 15n log 2n − 17n + 18 additions in R.
![Page 55: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/55.jpg)
Special case of DFT-based multiplication
We can trade another DFT for few linear operations. Indeed, we need tocompute :
DFT2n(a(x)) and DFT2n(r(x)) where
a(x) = a0 + a1x + . . . + adxd andr(x) = ad + ad−1x + . . . + a0x
d = a(x−1)xd .
Assuming ω = e−2iπ
2n , we know that
DFT2n(a) = [ a(ωk) ]k=0...2n−1, (1)
DFT2n(r) = [ a(ω2n−k) ωkd ]k=0...2n−1. (2)
(1) and (2) are equivalent modulo 4n − 2 multiplications in C.
![Page 56: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/56.jpg)
Special case of DFT-based multiplication
Almost 1/3th of the computation can be saved
giving a complexity in this case of
• 4n log 2n + 12n + 1 multiplications,
• 12n log 2n + 8 additions.
We will now refer to our algorithm as PM-Chebyshev(XXX),where XXX represents underlying monomial basis algorithm.
![Page 57: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/57.jpg)
Special case of DFT-based multiplication
Almost 1/3th of the computation can be saved
giving a complexity in this case of
• 4n log 2n + 12n + 1 multiplications,
• 12n log 2n + 8 additions.
We will now refer to our algorithm as PM-Chebyshev(XXX),where XXX represents underlying monomial basis algorithm.
![Page 58: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/58.jpg)
Polynomial multiplication in Chebyshev basis (theoretical)
0.1
1
10
100
2 4 8 16 32 64 128 256 512 1024 2048 4096
Spe
edup
Polynomials size (equiv. to degree+1)
1 FP mul = 1 FP addDirect methodMethod of [Lima et. al 2010]DCT−based methodPM−Chebyshev (Karatsuba)PM−Chebyshev (DFT−based)
![Page 59: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/59.jpg)
Polynomial multiplication in Chebyshev basis (theoretical)
0.1
1
10
100
2 4 8 16 32 64 128 256 512 1024 2048 4096
Spe
edup
Polynomials size (equiv. to degree+1)
1 FP mul = 2 FP addDirect methodMethod of [Lima et. al 2010]DCT−based methodPM−Chebyshev (Karatsuba)PM−Chebyshev (DFT−based)
![Page 60: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/60.jpg)
Polynomial multiplication in Chebyshev basis (theoretical)
0.1
1
10
100
2 4 8 16 32 64 128 256 512 1024 2048 4096
Spe
edup
Polynomials size (equiv. to degree+1)
1 FP mul = 4 FP addDirect methodMethod of [Lima et. al 2010]DCT−based methodPM−Chebyshev (Karatsuba)PM−Chebyshev (DFT−based)
![Page 61: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/61.jpg)
Outline
1 Polynomial multiplication in monomial basis
2 Polynomial multiplication in Chebyshev basis
3 A more direct reduction from Chebyshev to monomial basis
4 Implementations and experimentations
5 Conclusion
![Page 62: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/62.jpg)
Software Implementation
My goal
provide efficient code for multiplication in Chebyshev basis
evaluate performances of existing algorithms
My method
use C++ for generic, easy, efficient code
re-use as much as possible existing efficient code↪→ especially for DFT/DCT based code [Spiral project, FFTW library]
![Page 63: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/63.jpg)
Implementing PM-Chebyshev algorithm
Easy as simple calls to monomial multiplication
template<c l a s s T, vo id mulM( vec to r<T>&,const vec to r<T>&,const vec to r<T>&)>
vo id mulC ( vec to r<T>& c , const vec to r<T>& a , const vec to r<T>& b){s i z e t da , db , dc , i ;da=a . s i z e ( ) ; db=b . s i z e ( ) ; dc=c . s i z e ( ) ;
v e c to r<T> r ( db ) , g ( dc ) ;
f o r ( i =0; i<db ; i++)r [ i ]=b [ db−1− i ] ;
mulM( c , a , b ) ;mulM(g , a , r ) ;
f o r ( i =0; i<dc;++ i )c [ i ]∗=0.5 ;
c [0]+=c2 [ da−1]−a [ 0 ]∗ b [ 0 ] ;
f o r ( i =1; i<da−1; i++)c [ i ]+= 0 .5∗ ( g [ da−1+i ]+g [ da−1− i ]−a [ 0 ]∗ b [ i ] −a [ i ]∗ b [ 0 ] ) ;
}
![Page 64: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/64.jpg)
Implementation of multiplication in monomial basis
Remark
no standard library available for R[x ]
My codes
naive implementations of Schoolbook and Karatsuba (recursive)
highly optimized DFT-based method using FFTW librarya
↪→ use hermitian symmetry of DFT on real inputs
ahttp://www.fftw.org/
![Page 65: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/65.jpg)
Implementation of multiplication in Chebshev basis
C++ based code
naive implementation of direct method
optimized DCT-based method of [Tasche, Baszenski 1997] using FFTW
Remark
No implementation of [Lima, Panario, Wang 2010] method, since
needs almost as many operations as direct method
requires O(nlog 3) extra memory
no explicit algorithm given, sounds quite tricky to implement
My feelings
it would not be efficient in practice !!!
![Page 66: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/66.jpg)
Implementation of multiplication in Chebshev basis
C++ based code
naive implementation of direct method
optimized DCT-based method of [Tasche, Baszenski 1997] using FFTW
Remark
No implementation of [Lima, Panario, Wang 2010] method, since
needs almost as many operations as direct method
requires O(nlog 3) extra memory
no explicit algorithm given, sounds quite tricky to implement
My feelings
it would not be efficient in practice !!!
![Page 67: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/67.jpg)
A note on DCT in FFTW
Numerical accuracy
Faster algorithms using pre/post processed read DFT suffer from instabilityissues. In practice, prefer to use:
smaller optimized DCT-I codelet
doubled size DFT
According to this, our PM-Chebyshev(DFT-based) should really becompetitive.
But, is our code numerically correct ???
![Page 68: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/68.jpg)
A note on DCT in FFTW
Numerical accuracy
Faster algorithms using pre/post processed read DFT suffer from instabilityissues. In practice, prefer to use:
smaller optimized DCT-I codelet
doubled size DFT
According to this, our PM-Chebyshev(DFT-based) should really becompetitive. But, is our code numerically correct ???
![Page 69: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/69.jpg)
Insight on the numerical accuracy
We experimentally check the relative error of each methods.
Relative error on polynomial multiplication
Let a, b ∈ Fl[x ] given in Chebyshev basis.
Consider c ≈ a.b ∈ Fl[x ] and c = a.b ∈ R[x ], then the relative error is
E (c) =‖c − c‖2
‖c‖2
We use GMP library1 :
to get exact result as a rational rumber,
to almost compute the relative error as a rational rumber.
1gmplib.org
![Page 70: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/70.jpg)
Insight on the numerical accuracy
We experimentally check the relative error of each methods.
Relative error on polynomial multiplication
Let a, b ∈ Fl[x ] given in Chebyshev basis.
Consider c ≈ a.b ∈ Fl[x ] and c = a.b ∈ R[x ], then the relative error is
E (c) =‖c − c‖2
‖c‖2
We use GMP library1 :
to get exact result as a rational rumber,
to almost compute the relative error as a rational rumber.
1gmplib.org
![Page 71: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/71.jpg)
Experimental relative error
Average error on random polynomials with entries lying in [−50, 50].
1e−17
1e−16
1e−15
1e−14
1e−13
1e−12
2 4 8 16 32 64 128 256 512 1024 2048 4096 8192
Re
lative
err
or
Polynomial size (equiv. to degree+1)
Direct methodDCT−based methodDCT−based (via FFT) methodPM−Chebyshev (Karatsuba)PM−Chebyshev (DFT−based)PM−Chebyshev (DFT−based accur)
![Page 72: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/72.jpg)
Experimental relative error
Average error on random polynomials with entries lying in [0, 50].
1e−17
1e−16
1e−15
1e−14
2 4 8 16 32 64 128 256 512 1024 2048 4096 8192
Re
lative
err
or
Polynomial size (equiv. to degree+1)
Direct methodDCT−based methodDCT−based (via FFT) methodPM−Chebyshev (Karatsuba)PM−Chebyshev (DFT−based)PM−Chebyshev (DFT−based accur)
![Page 73: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/73.jpg)
Lets now see practical performances ...
based on average time estimation
![Page 74: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/74.jpg)
Polynomial multiplication in Chebyshev basis:experimental performance on Intel Xeon 2GHz
0.1
1
10
100
1000
2 4 8 16 32 64 128 256 512 1024 2048 4096 8192
Sp
ee
du
p
Polynomial size (equiv. to degree+1)
Direct methodDCT−based methodDCT−based (via FFT) methodPM−Chebyshev (Karatsuba)PM−Chebyshev (DFT−based)PM−Chebyshev (DFT−based accur)
![Page 75: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/75.jpg)
Polynomial multiplication in Chebyshev basis:experimental performance on Intel Xeon 2GHz
0
0.5
1
1.5
2
2.5
3
2 4 8 16 32 64
Sp
ee
du
p
Polynomial size (equiv. to degree+1)
Direct methodDCT−based methodDCT−based (via FFT) methodPM−Chebyshev (Karatsuba)PM−Chebyshev (DFT−based)PM−Chebyshev (DFT−based accur)
![Page 76: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/76.jpg)
Polynomial multiplication in Chebyshev basis:experimental performance on Intel Xeon 2GHz
20
40
60
80
100
120
140
160
180
1024 2048 4096 8192
Sp
ee
du
p
Polynomial size (equiv. to degree+1)
DCT−based methodDCT−based (via FFT) methodPM−Chebyshev (DFT−based)PM−Chebyshev (DFT−based accur)
![Page 77: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/77.jpg)
Outline
1 Polynomial multiplication in monomial basis
2 Polynomial multiplication in Chebyshev basis
3 A more direct reduction from Chebyshev to monomial basis
4 Implementations and experimentations
5 Conclusion
![Page 78: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/78.jpg)
Conclusion
Main contribution
Provide a direct method to multiply polynomials given in Chebyshev basiswhich reduces to monomial basis multiplication:
better complexity than using basis conversions,
easy implementation offering good performances,
probably as accurate as any other direct methods,
offer the use of FFT instead of DCT-I.
Would be interesting to
compare with optimized Karatsuba’s implementation,
further investigation on stability issues,
discover similarity with finite fields (Dickson Polynomials) and seeapplications in cryptography [Hasan, Negre 2008].
![Page 79: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/79.jpg)
Conclusion
Main contribution
Provide a direct method to multiply polynomials given in Chebyshev basiswhich reduces to monomial basis multiplication:
better complexity than using basis conversions,
easy implementation offering good performances,
probably as accurate as any other direct methods,
offer the use of FFT instead of DCT-I.
Would be interesting to
compare with optimized Karatsuba’s implementation,
further investigation on stability issues,
discover similarity with finite fields (Dickson Polynomials) and seeapplications in cryptography [Hasan, Negre 2008].
![Page 80: On Polynomial Multiplication Complexity in Chebyshev basisgiorgi/seminaire-algo-inria.pdf · 2011-02-02 · Multiplication of polynomials in Chebyshev basis Complexity results: Let](https://reader033.vdocument.in/reader033/viewer/2022060314/5f0b82037e708231d430dced/html5/thumbnails/80.jpg)
Times of polynomial multiplication in Chebyshev basis (given in µs) onIntel Xeon 2GHz platform.
n Direct DCT-based DCT-based (FFT) PM-Cheby (Kara) PM-Cheby (DFT) PM-Cheby (DFT accur)
2 0.18 1.08 0.38 0.39 0.57 0.46
4 0.28 1.15 0.48 0.58 0.66 0.54
8 0.57 1.58 0.74 0.80 0.93 0.80
16 1.13 2.43 1.47 1.56 1.52 1.38
32 3.73 4.33 2.65 4.74 2.75 2.59
64 13.44 7.56 8.11 14.93 5.09 4.94
128 50.06 15.76 14.04 61.68 12.84 15.52
256 185.48 32.29 29.69 171.78 23.58 24.70
512 716.51 69.00 62.13 489.29 52.46 57.07
1024 2829.78 146.94 135.47 1427.82 104.94 112.40
2048 11273.20 304.55 317.35 4075.72 234.41 249.88
4096 47753.40 642.17 679.50 12036.00 520.56 566.43
8192 194277.00 1397.42 1437.42 35559.60 1125.40 1185.41
PM-Cheby stands for PM-Chebyshev algorithm.