Fast computation of the Nth term of an algebraic series in positive

Fast computation
of the N th term of an algebraic series
in positive characteristic
Philippe Dumas
JNCF 2015, Cluny
Joint work with
Alin Bostan and Gilles Christol
Introduction
Special case of rational series
Algorithms with low complexity
Sections and diagonal
Partial powering
Motivation
3/32
Ubiquity of algebraic functions (combinatorics, number theory)
Confluence of several domains:
– functional equations
– automatic sequences
– complexity theory
One of the most difficult questions in modular
computations is the complexity of computations
mod p for a large prime p of coefficients in the
expansion of an algebraic function.
D. Chudnovsky & G. Chudnovsky, 1990
Computer Algebra in the Service of
Mathematical Physics and Number Theory
Problem and main result
4/32
Input:
– field K of characteristic p
– f (x) ∈ K[[x]] solution of E(x, f (x)) = 0 with E(x, y) ∈ K[x, y],
f (0) = 0
– N ∈ N≥0
Output:
– the N th coefficient from the series f (x)
Problem and main result
4/32
Input:
– field K of characteristic p
– f (x) ∈ K[[x]] solution of E(x, f (x)) = 0 with E(x, y) ∈ K[x, y],
f (0) = 0
– N ∈ N≥0
Output:
– the N th coefficient from the series f (x)
Main result:
– arithmetic complexity linear in log N and almost linear in p
First N coefficients
5/32
Method
char. 0
char. p
Undetermined coefficients
Fixed point iteration
Newton iteration
Linear recurrence
O(N d )
X
X
X
X∗
∗ with
e 2)
O(N
e )
O(N
O(N )
p-adic computations
Kung + Traub, 1976
All algebraic functions can be
computed fast
e )
FFT used all along: multiplication cost for series at order N is O(N
First N coefficients
5/32
Method
char. 0
char. p
Undetermined coefficients
Fixed point iteration
Newton iteration
Linear recurrence
O(N d )
X
X
X
X∗
∗ with
e 2)
O(N
e )
O(N
O(N )
p-adic computations
not appropriate
for one coefficient
e )
FFT used all along: multiplication cost for series at order N is O(N
Introduction
Special case of rational series
Algorithms with low complexity
Sections and diagonal
Partial powering
N th coefficient via shift operator
f (x) =
X
fn xn
shift
n≥0
7/32
Sfn = fn+1
f (x) − f (0)
Sf (x) =
x
vector XX
XXz
X
f (x) = f0 + f1 x + f2 x2 + f3 x3 + · · ·
o
p
- Sf (x) = f1 + f2 x + f3 x2 + f4 x3 + · · ·
e
r
a
- S 2 f (x) = f + f x + f x2 + f x3 + · · ·
2
3
4
5
t
o
..
r
s XXX
.
XX
z
S N f (x) = fN + fN +1 x + fN +2 x2 + · · ·
linear form
N
S f (0) = fN
Shift operator and rational series
f (x) =
a(x)
b(x)
b(0) = 1
8/32
Shift operator and rational series
f (x) =
a(x)
b(x)
8/32
b(0) = 1
1 + x3
= 1 + x + 3x2 + 9x3 + · · ·
1 − x − 2x2 − 3x3 − 4x4 − 5x5
1 + 2x + 4x2 + 4x3 + 5x4
Sf (x) =
Sf (0) = 1
1 − x − 2x2 − 3x3 − 4x4 − 5x5
3 + 6x + 7x2 + 9x3 + 5x4
S 2 f (0) = 3
S 2 f (x) =
1 − x − 2x2 − 3x3 − 4x4 − 5x5
9 + 13x + 18x2 + 17x3 + 15x4
S 3 f (x) =
S 3 f (0) = 9
1 − x − 2x2 − 3x3 − 4x4 − 5x5
..
.
f (x) =
Shift operator and rational series
8/32
1 + x3
= 1 + x + 3x2 + 9x3 + · · ·
1 − x − 2x2 − 3x3 − 4x4 − 5x5
1 + 2x + 4x2 + 4x3 + 5x4
Sf (x) =
Sf (0) = 1
1 − x − 2x2 − 3x3 − 4x4 − 5x5
3 + 6x + 7x2 + 9x3 + 5x4
S 2 f (0) = 3
S 2 f (x) =
1 − x − 2x2 − 3x3 − 4x4 − 5x5
9 + 13x + 18x2 + 17x3 + 15x4
S 3 f (x) =
S 3 f (0) = 9
1 − x − 2x2 − 3x3 − 4x4 − 5x5
..
.
f (x) =
pseudo-shift operator T
Sb−1 = b−1 T
K[x]<dx stable by T
finite dimension dx
Rational series and linear representation
L=
1 0 0 0 0
9/32

1 1 0 0 0
Linear form

 2 0 1


A=
 3 0 0

2
3
4
 4 0 0
basis: (1, x, x , x , x )

5 0 0
Action


0 0 


1 0 


0 1 

0 0
6
1
1
−
1
1
b b(0)
T1 = S =
b
b
x
1 + 2x + 3x2 + 4x3 + 5x4
=
b

1

 
 0 
 
 

C=
 0 
 
 1 
 
0
6
Coordinates
a(x) = 1 + x3
Rational series and binary powering
fN = S N f (0) ⇔
Binary powering
10/32
fN = LAN C
example: N = 1234
A1234 = A2 × A16 × A64 × A128 × A1024
arithmetic complexity O(log2 N )
Miller + Brown, 1966,
An algorithm for evaluation of
remote terms in a linear recurrence sequence
Rational series
– shift operator to express fN
– space of polynomials with pseudo-shift
– finite dimensional space → linear representation
– binary powering → good arithmetic complexity
11/32
Rational series
– shift operator to express fN
– space of polynomials with pseudo-shift
– finite dimensional space → linear representation
– binary powering → good arithmetic complexity
To come: mimicking this approach in the algebraic case
11/32
Introduction
Special case of rational series
Algorithms with low complexity
Sections and diagonal
Partial powering
State of the art
Method
Baby steps – Giant steps
Divide and Conquer
∗ with
13/32
char. 0
√
e N ) + O(1)
O(
char. p
X∗
e d)
O(logp N ) + O(p
p-adic computations
Baby steps – Giant steps after precomputing
algebraic equation −→ differential equation −→ linear recurrence
Chudnovsky + Chudnovsky, 1988
Approximations and complex multiplication according to Ramanujan
State of the art
Method
Baby steps – Giant steps
Divide and Conquer
∗ with
13/32
char. 0
√
e N ) + O(1)
O(
char. p
X∗
e d)
O(logp N ) + O(p
p-adic computations
Baby steps – Giant steps after precomputing
algebraic equation −→ differential equation −→ linear recurrence
Divide and Conquer after precomputing
algebraic equation −→ Mahler equation −→ DAC recurrence
Christol + Kamae
+ Mendès France + Rauzy, 1980,
Suites algébriques, automates et
substitutions
From algebraic equation to Mahler equation
Algebraic equation
y
1
y
y

0



 1



2
0
y3
14/32
y = 2x + 5xy + 4xy 2 + xy 3
y9
p=3
y 27
1
1+2x2 +x3
x3
1+2x2 +x3 +2x5 +x6 +x8 +x9 +2x11 +x12
x12
1+x
x
1+x+2x2 +x3 +x4
x4
1+x+2x2 +x3 +x4 +2x5 +2x6 +2x7 +x8 +x9 +x10 +2x11 +x12 +x13
x13
2
2 +x3
2 1+x+2x
3
2+2x+x2 +2x3 +2x4 +x5 +x6 +x7 +2x8 +2x9 +2x10 +x11 +2x12
x12
x
Mahler equation
c0 (x)f (x)







c0 (x) = 2x2 + 2x3 + x4
+ 1 + x2 + 2x3 + 2x4 + x5 + 2x6 f (x3 )
+ 2 + 2x3 + 2x5 + x6 + 2x9 f (x9 ) + x9 f (x27 ) = 0
Frobenius f (x)p = f (xp )

(a + b)p = ap + bp
From Mahler equation to DAC recurrence
Algebraic equation
15/32
y = 2x + 5xy + 4xy 2 + xy 3
c0 (x) = 2x2 + 2x3 + x4
Mahler equation
c0 (x)f (x)
+ 1 + x2 + 2x3 + 2x4 + x5 + 2x6 f (x3 )
+ 2 + 2x3 + 2x5 + x6 + 2x9 f (x9 ) + x9 f (x27 ) = 0
Divide-and-conquer recurrence
2fn−2 + 2fn−3 + fn−4
+ f n3 + f n−2 + 2f n−3 + 2f n−4 + f n−5 + 2f n−6
3
3
3
3
3
+ 2f n9 + 2f n−3 + 2f n−5 + f n−6 + 2f n−9 + f n−9 = 0
9
fx = 0 if x 6∈ N≥0
9
9
9
27
Unrolling of the DAC recurrence
16/32
p=3
Divide-and-conquer recurrence
2fn−2 + 2fn−3 + fn−4
+ f n3 + f n−2 + 2f n−3 + 2f n−4 + f n−5 + 2f n−6
3
3
3
3
3
+ 2f n9 + 2f n−3 + 2f n−5 + f n−6 + 2f n−9 + f n−9 = 0
9
N = 100
100
9
9
9
27
Unrolling of the DAC recurrence
16/32
p=3
Divide-and-conquer recurrence
2fn−2 + 2fn−3 + fn−4
+ f n3 + f n−2 + 2f n−3 + 2f n−4 + f n−5 + 2f n−6
3
3
3
3
3
+ 2f n9 + 2f n−3 + 2f n−5 + f n−6 + 2f n−9 + f n−9 = 0
9
N = 100
100 99
34
98
33
32
11
9
9
9
27
Unrolling of the DAC recurrence
16/32
p=3
Divide-and-conquer recurrence
2fn−2 + 2fn−3 + fn−4
+ f n3 + f n−2 + 2f n−3 + 2f n−4 + f n−5 + 2f n−6
3
3
3
3
3
+ 2f n9 + 2f n−3 + 2f n−5 + f n−6 + 2f n−9 + f n−9 = 0
9
N = 100
100 99
34
98
33
12
97
32
11
4
31
10
3
96
30
9
1
9
9
9
27
Unrolling of the DAC recurrence
16/32
p=3
Divide-and-conquer recurrence
2fn−2 + 2fn−3 + fn−4
+ f n3 + f n−2 + 2f n−3 + 2f n−4 + f n−5 + 2f n−6
3
3
3
3
3
+ 2f n9 + 2f n−3 + 2f n−5 + f n−6 + 2f n−9 + f n−9 = 0
9
9
N = 100
100 99
34
98
33
12
97
32
11
4
31
10
3
95
96
30
29
8
9
2
94
1
...
28
7
...
...
0
arithmetic complexity O(N ) for fN
9
9
27
Workaround
17/32
Change of unknowns f (x) = c0 (x)g(x) yields
g(x) = (x2 + x3 + x7 + x8 + x9 + x10 )g(x3 )
+ 2x14 + 2x15 + x16 + 2x19 + 2x20 + x21 + x22 + 2x23
+ 2x26 + x28 + 2x30 + x31 + 2x32 + x33 + 2x35 + 2x36 + x37 g(x9 )
+ x59 + x60 + 2x61 + 2x62 + 2x63 + x64 + 2x65 + 2x66 + x67 + 2x71
+ 2x72 + x73 + x74 + x75 + 2x76 + x77 + x78 + 2x79 + x83 + x84
+ 2x85 + x89 + x90 + 2x91 + 2x92 + 2x93 + x94 + 2x95 + 2x96
+ x97 + 2x101 + 2x102 + x103 + x104 + x105 + 2x106 + x107
+ x108 + 2x109 g(x27 )
Workaround
17/32
Change of unknowns fn = 2gn−2 + 2gn−3 + gn−4
gn = g n−2 + g n−3 + g n−7 + g n−8 + g n−9 + g n−10
3
3
3
3
3
3
+ 2g n−14 + 2g n−15 + g n−16 + 2g n−19 + 2g n−20 + · · · + g n−37
9
9
9
9
9
9
+ g n−59 + g n−60 + · · · + 2g n−109
N = 100
27
98
97
96
27
27
Workaround
17/32
Change of unknowns fn = 2gn−2 + 2gn−3 + gn−4
gn = g n−2 + g n−3 + g n−7 + g n−8 + g n−9 + g n−10
3
3
3
3
3
3
+ 2g n−14 + 2g n−15 + g n−16 + 2g n−19 + 2g n−20 + · · · + g n−37
9
9
9
9
9
9
+ g n−59 + g n−60 + · · · + 2g n−109
N = 100
27
98
97
32
96
31
30
9
29
8
1
7
0
27
27
Workaround
17/32
Change of unknowns fn = 2gn−2 + 2gn−3 + gn−4
gn = g n−2 + g n−3 + g n−7 + g n−8 + g n−9 + g n−10
3
3
3
3
3
3
+ 2g n−14 + 2g n−15 + g n−16 + 2g n−19 + 2g n−20 + · · · + g n−37
9
9
9
9
9
9
+ g n−59 + g n−60 + · · · + 2g n−109
N = 100
27
98
97
32
96
31
10
30
9
2
29
8
1
7
0
arithmetic complexity O(logp N ) for fN
27
27
Introduction
Special case of rational series
Algorithms with low complexity
Sections and diagonal
Partial powering
N th coefficient via section operators
Section operators
X
X
Sr
un xn =
upk+r xk ,
n≥0
k≥0
0≤r<p
19/32
N th coefficient via section operators
Section operators
X
X
Sr
un xn =
upk+r xk ,
n≥0
19/32
0≤r<p
k≥0
f (x) = f0 + f1 x + f2 x2 + f3 x3 + f4 x4 + · · ·
S0 f (x) = f0 + f2 x + f4 x2 + f6 x3 + f8 x4 + · · ·
p=2
S1 f (x) = f1 + f3 x + f5 x2 + f7 x3 + f9 x4 + · · ·
linear operators
Sr ( g(x)×h(xp ) ) = ( Sr g(x) ) × h(x)
N th coefficient via section operators
19/32
100000 = 5 × 16807 + 6 × 2401 + 4 × 343 + 3 × 49 + 5 × 7 + 5 × 1
= (5, 6, 4, 3, 5, 5)7
f (x) = f0 + f1 x + f2 x2 + f3 x3 + f4 x4 + f5 x5 + · · ·
S5 f (x) = f5 + f12 x + f19 x2 + f26 x3 + f33 x4 + f40 x5 + · · ·
S5 S5 f (x) = f40 + f89 x + f138 x2 + f187 x3 + f236 x4 + f285 x5 + · · ·
S3 S5 S5 f (x) = f187 + f530 x + f873 x2 + f1216 x3 + f1559 x4 + f1902 x5 + · · ·
S4 S3 S5 S5 f (x) = f1559 + f3960 x + f6361 x2 + f8762 x3 + f11163 x4 + · · ·
S6 S4 S3 S5 S5 f (x) = f15965 + f32772 x + f49579 x2 + f66386 x3 + f83193 x4 + · · ·
S5 S6 S4 S3 S5 S5 f (x) = f100000 + f217649 x + f335298 x2 + f452947 x3 + · · ·
S5 S6 S4 S3 S5 S5 f (0) = f100000
N th coefficient via section operators
vector
19/32
- f (x) = f + f x + f x2 + f x3 + f x4 + f x5 + · · ·
0
1
2
3
4
5
2
3
4
5
: S5 f (x) = f5 + f12 x + f19 x + f26 x + f33 x + f40 x + · · ·
o p 2
3
4
5
e : S5 S5 f (x) = f40 + f89 x + f138 x + f187 x + f236 x + f285 x + · · ·
r
a - S3 S5 S5 f (x) = f187 + f530 x + f873 x2 + f1216 x3 + f1559 x4 + f1902 x5 + · · ·
tX
z
oX
S4 S3 S5 S5 f (x) = f1559 + f3960 x + f6361 x2 + f8762 x3 + f11163 x4 + · · ·
r@
R
s S@
S S S S f (x) = f
+f
x+f
x2 + f
x3 + f
x4 + · · ·
6 4 3 5 5
15965
32772
49579
66386
83193
?
S5 S6 S4 S3 S5 S5 f (x) = f100000 + f217649 x + f335298 x2 + f452947 x3 + · · ·
S5 S6 S4 S3 S5 S5 f (0) = f100000
y
X
XX
XXX linear form
Diagonal
20/32
E(x, y) ∈ K[x, y]
E(x, f (x)) = 0
m
f (x) = DF (x, y)
F (x, y) ∈ K(x, y)
Furstenberg, 1967,
Algebraic functions over
finite fields
Christol, 1974,
Éléments algébriques
Diagonal
20/32
E(x, y) ∈ K[x, y]
E(x, f (x)) = 0
m
f (x) = DF (x, y)
F (x, y) ∈ K(x, y)
Ey (0, 0) 6= 0
F (x, y) = y 2
Ey (xy, y)
E(xy, y)
E(x, y) = 2x + (5x − 1) y + 4xy 2 + xy 3
F (x, y) =
y(1 − 5xy − 8xy 2 − 3xy 3 )
1 − 2x − 5xy − 4xy 2 − xy 3
Furstenberg, 1967,
Algebraic functions over
finite fields
Christol, 1974,
Éléments algébriques
Diagonal
20/32
f (x) = 2x + 3x2 + 3x3 + x4 + 6x5 + 5x6 + 6x7 + 3x8 + x9 + 4x10 + x14 + 5x15 + · · ·
p=7
F (x, y) =
y
+ 2xy
+ 4x2 y
2 2
+ 3x y
+ 3xy
3
+ 5xy 4
+ x3 y
3 2
+ 5x y
+ 2x4 y
4 2
+x y
3 3
5 2
+ 5x y
5 3
+ 3x y
+ 6x2 y 4
+ 4x5 y
+ 6x y
+ x4 y 4
+ 2x2 y 5 + 2x3 y 5
+ 5x y
3 7
6 3
+ 4x y
+ 2x y
4 9
+x y
+ 5x3 y 10
+ 2x7 y
+ 4x8 y
7 2
+ 2x10 y
9 2
+ 2x y
7 3
+ x9 y
+ 3x10 y 2
+ 6x y
8 3
+ 6x10 y 3
+x y
+ 6x y
+ x7 y 4
+ 3x8 y 4 + 5x9 y 4
+ 6x5 y 5 + 4x6 y 5 + 5x7 y 5
+ 4x9 y 5 + 4x10 y 5
+ 5x6 y 6 + 6x7 y 6
+ 4x9 y 6 + 6x10 y 6
7 7
+ 5x y
4 8
+x y
+ 2x y
5 7
+ 6x y
3 9
6 2
+ x5 y 4
+ 2x2 y 6 + 3x3 y 6 + 5x4 y 6
2 7
+ x6 y
5 8
+ 3x y
5 9
+ 3x y
+ 3x9 y 7 + 5x10 y 7
+ 6x y
6 8
8 8
+ 2x y
6 9
+ 6x y
+ 3x y
+ 6x y
+ 6x5 y 10 + 2x6 y 10
+ 6x9 y 8 + 5x10 y 8
+ x9 y 9 + 6x10 y 9
7 9
+ x8 y 10
+ 4x10 y 10
+ x4 y 11 + x5 y 11 + 5x6 y 11 + 4x7 y 11 + 4x8 y 11 + 2x9 y 11
+ 6x5 y 12 + 2x6 y 12 + x7 y 12
+ 5x y
+ 5x y
5 14
7 14
+ 3x y
+ 5x y
+ 3x9 y 12+ 3x10 y 12
+ 3x9 y 13 + x10 y 13
6 13
4 13
+ 4x9 y 14+ 2x10 y 14
+ 6x5 y 15 + x6 y 15 + 3x7 y 15 + x8 y 15 + 2x9 y 15+ 4x10 y 15
+ 5x5 y 16 + 4x6 y 16 + 4x7 y 16
+ ···
+ 5x9 y 16+ 4x10 y 16
Section operators and diagonal
21/32
Sr f = Sr DF = DSr,r F
a
= b−1 a
b
b(0, 0) = 1
F =
Sr f = DSr,r b−1 a
= DSr,r b−p bp−1 a = Db−1 Sr,r bp−1 a
Sr f = Db−1 Tr a
Tr = Sr,r bp−1
Tr pseudo-section operator
Sr,r b−p = b−1 Tr
Finite dimension
f is algebraic
22/32
⇔
f is rational
with respect to the radix p
Christol + Kamae
+ Mendès France + Rauzy, 1980,
Suites algébriques, automates et
substitutions
Allouche + Shallit, 1992
The ring of k-regular sequences
Finite dimension
f is algebraic
22/32
f =D
f is algebraic
f is rational
with respect to the radix p
⇔
⇔
a
b
a generates
a finite dimensional vector space
under the action of the
pseudo-section operators Tr .
A stable subspace
Algebraic equation
y = 2x + 5xy + 4xy 2 + xy 3
a = y + 2xy 2 + 6xy 3 + 4xy 4
b = 1 + 5x + 2xy + 3xy 2 + 6xy 3
dy
dx = max(degx a, degx b)
dy = max(degy a, degy b)
dx
23/32
a
f =D
b
A stable subspace
a = y + 2xy 2 + 6xy 3 + 4xy 4
b = 1 + 5x + 2xy + 3xy 2 + 6xy 3
dy
dx
23/32
A stable subspace
23/32
a = y + 2xy 2 + 6xy 3 + 4xy 4
b = 1 + 5x + 2xy + 3xy 2 + 6xy 3
pdy
B = bp−1
p=7
(p − 1)dy
Tr = Sr,r B
dy
dx
pdx
(p − 1)dx
A stable subspace
23/32
a = y + 2xy 2 + 6xy 3 + 4xy 4
b = 1 + 5x + 2xy + 3xy 2 + 6xy 3
pdy
B = bp−1
p=7
(p − 1)dy
Tr = Sr,r B
K[x, y]≤dx ,≤dy stable by Tr , 0 ≤ r < p
dy
finite dimension (1 + dx )(1 + dy )
dx
pdx
(p − 1)dx
Rational series wrt p and linear representation
24/32
100000 = 5 × 16807 + 6 × 2401 + 4 × 343 + 3 × 49 + 5 × 7 + 5 × 1
= (5, 6, 4, 3, 5, 5)7
vector
- f (x) = f + f x + f x2 + f x3 + f x4 + f x5 + · · ·
0
1
2
3
4
5
2
3
4
5
: S5 f (x) = f5 + f12 x + f19 x + f26 x + f33 x + f40 x + · · ·
o p 2
3
4
5
e : S5 S5 f (x) = f40 + f89 x + f138 x + f187 x + f236 x + f285 x + · · ·
r
a - S3 S5 S5 f (x) = f187 + f530 x + f873 x2 + f1216 x3 + f1559 x4 + f1902 x5 + · · ·
tX
z
oX
S4 S3 S5 S5 f (x) = f1559 + f3960 x + f6361 x2 + f8762 x3 + f11163 x4 + · · ·
r@
R
s S@
S S S S f (x) = f
+f
x+f
x2 + f
x3 + f
x4 + · · ·
6 4 3 5 5
15965
32772
49579
66386
83193
?
S5 S6 S4 S3 S5 S5 f (x) = f100000 + f217649 x + f335298 x2 + f452947 x3 + · · ·
S5 S6 S4 S3 S5 S5 f (0) = f100000
y
X
XX
XXX linear form
Rational series wrt p and linear representation
24/32
100000 = 5 × 16807 + 6 × 2401 + 4 × 343 + 3 × 49 + 5 × 7 + 5 × 1
= (5, 6, 4, 3, 5, 5)7
vector
- a(x, y) = y + 2xy 2 + 6xy 3 + 4xy 4
: T5 a(x, y) = 6 + 6y
o p e : T5 T5 a(x, y) = 5 + 5y
r
a - T3 T5 T5 a(x, y) = 5 + 5y
tX
z
oX
T4 T3 T5 T5 a(x, y) = 2 + 2y
r@
R
s T@
6 T4 T3 T5 T5 a(x, y) = 2 + 2y
T5?
T6 T4 T3 T5 T5 a(x, y) = 4 + 4y
T5 T6 T4 T3 T5 T5 a(0, 0) = f100000 = 4
y
X
XX
XXX linear form
finite dimension (1 + dx )(1 + dy )
Rational series wrt p and linear representation
L=
1 0 0 0 0
0 0 0 0 0

Linear form A0 ,
A1 ,
1
x
y xy
basis: y 2 xy 2
y 3 xy 3
y 4 xy 4
24/32
...
A6


C=


0
1
0
0
0
0
0
2
6
4






Action
6
Coordinates
a(x, y) = y + 2xy 2 + 6xy 3 + 4xy 4
finite dimension (1 + dx )(1 + dy )
Rational series wrt p and linear representation
24/32
N = (N`−1 . . . N1 N0 )p
fN = SN`−1 · · · SN0 f (0)
m
fN = TN`−1 · · · TN0 a(0, 0)
m
fN = LAN`−1 · · · AN0 C
arithmetic complexity O(logp N )
Allouche + Shallit, 1992
The ring of k-regular sequences
Precomputation of A0 , A1 , . . . , Ap−1
25/32
All information is in B = bp−1 .
matrix Ar : xn y m −−−−−−−−−→ xn y m B −−−−−−−−−→ Sr,r xn y m B
translation
selection
No computation, except raising b to the power p − 1
e 2 ) (binary powering, Kronecker substitution, FFT)
cost: O(p
Computing the N th coefficient
26/32
precomputation
computation
B = bp−1
fN = LAN`−1 · · · AN0 C
e 2)
O(p
O(logp N )
Theorem [New]: The N th coefficient can be
computed in time
e 2 ) + O(logp N ).
O(p
Introduction
Special case of rational series
Algorithms with low complexity
Sections and diagonal
Partial powering
Only a small part of B = bp−1 is enough
28/32
Task: Computation of A0 , A1 , . . . , Ap−1
row index i = (k, `)
column index j = (n, m)
B=
X
cα,β xα y β
α,β
xn y m −−−−−−−−−→ xn y m B −−−−−−−−−→ Sr,r xn y m B
translation
selection
X
X
xn y m −−−−→
cα,β xn+α y m+β −−−−→
cα,β xk y `
α,β
(C)
n + α = pk + r
m + β = p` + r
α,β
(C)
=⇒ β − α = p(` − k) + n − m
Only a small part of B = bp−1 is enough
28/32
p=7
dx = 1
6
p
6
dx + dy + 1
?
dy = 4
Only a small part of B = bp−1 is enough
28/32
(p − 1)dy
p = 31
dx = 2
dy = 4
p
6
(p − 1)dx × (p − 1)dy ×
?dx + dy + 1
6
(p − 1)dx
dx + dy + 1
= O(p)
p
Rational series again
B(x/t, t) =
X
cα,β xα tβ−α =
29/32
X
α,β
δ = β − α = p(` − k) + n − m
δ
πδ (x)tδ
δ 6
Rational series again
B(x/t, t) =
X
29/32
cα,β xα tβ−α =
X
α,β
πδ (x)tδ
δ
δ = β − α = p(` − k) + n − m
B(x/t, t) = b(x/t, t)p−1 =
b(xp /tp , tp )
b(x/t, t)p
=
b(x/t, t)
b(x/t, t)
δ 6
Rational series again
B(x/t, t) =
X
29/32
cα,β xα tβ−α =
X
α,β
πδ (x)tδ
δ
δ = β − α = p(` − k) + n − m
B(x/t, t) = b(x/t, t)p−1 =
X
1
u
=
b(0)
u (x)t
b(x/t, t)
u
rational series
b(xp /tp , tp )
b(x/t, t)p
=
b(x/t, t)
b(x/t, t)
b(xp /tp , tp ) =
P
(1) p pv
v bv (x )t
for free
Rational series again
B(x/t, t) =
X
29/32
cα,β xα tβ−α =
α,β
X
1
u
=
b(0)
u (x)t
b(x/t, t)
u
rational series
X
πδ (x)tδ
δ
B(x/t, t) = b(x/t, t)p−1 =
πδ (x) =
X
b(xp /tp , tp )
b(x/t, t)p
=
b(x/t, t)
b(x/t, t)
b(xp /tp , tp ) =
(1) p
b(0)
u (x)bv (x )
P
(1) p pv
v bv (x )t
for free
u + pv = δ =⇒ u ≡ δ mod p
u+pv=δ
same intervals
Rational series again
29/32
u6
X
1
u
=
b(0)
u (x)t ∈ K(x)[[t]]
b(x/t, t)
u
rational series
same intervals
Evaluation and interpolation
X
1
u
=
b(0)
u (x)t ∈ K(x)[[t]]
b(x/t, t)
u
X
1
u
=
b(0)
ξ∈K
u (ξ)t ∈ K[[t]],
b(ξ/t, t)
u
rational series with coefficients in K
binary powering
about dx + dy = O(1) large leaps of length p
−→ cost O(log p)
30/32
u6
Evaluation and interpolation
binary powering
30/32
u6
about dx + dy = O(1) large leaps of length p
−→ cost O(log p)
interpolation
degree about (p − 1)dx = O(p)
e log2 p)
−→ cost O(p
(p − 1)dx
Evaluation and interpolation
binary powering
30/32
u6
about dx + dy large leaps of length p
−→ cost (dx + dy ) log p
interpolation
degree about pdx
e log2 p)
−→ cost O(p
gathering
about (dx + dy )2 = O(1) indices
e log2 p)
−→ global cost O(p
(p − 1)dx
Main result
31/32
Theorem [New and better]: The N th coefficient
can be computed in time
e
O(p)
+ O(logp N ).
Not quite obvious result following from the asymptotic expansions of the difference equation, shows
that [...] requires only O(p · logp N ) operations.
D. Chudnovsky & G. Chudnovsky, 1990
Computer Algebra in the Service of
Mathematical Physics and Number Theory
Main result
31/32
Theorem [New and better]: The N th coefficient
can be computed in time
e
O(p)
+ O(logp N ).
What is the minimal complexity of the computation of N -th coefficient of a power series
expansion of an algebraic function mod p for a
fixed (large) prime p? It is reasonable to conjecture that [. . . ] one needs at most
√ O(L(p) log N )
operations, where L(p) = exp( log p log log p) at
least for hyperelliptic algebraic functions.
D. Chudnovsky & G. Chudnovsky, 1987
Computer assisted number theory with applications
+5x131 +2x130 +4x129 +x128 +2x127 +5x126 +3x125 +2x124 +4x123 +x122 +x121 +6x120 +6x119
+2x118 +2x117 +5x116 +3x115 +6x114 +4x113 +2x112 +6x111 +4x110 +6x109 +5x108 +6x107
+5x106 +6x105 +4x104 +3x103 +4x102 +x101 +2x100 +5x99 +3x98 +4x97 +5x71 +4x69 +2x68 +2x67
+4x66 +5x65 +3x64 +x62 +2x57 +3x55 +3x54 +3x53 +6x52 +4x51 +5x50 +4x48 +2x46 +4x45
Thank you for
)
your attention!
+3x44 +x43 +6x42 +5x41 +2x40 +5x39 +3x38 +6x37 +3x36 +2x35 +x34 +4x33 +3x32 +6x31 +5x30
+3x29 +4x28 +x27 +3x26 +6x25 +5x24 +5x23 +5x22 +2x21 +4x20 +x18 +2x17 +5x16 +5x15 +3x14
+4x13 +6x12 +2x11 +4x10 +2x9 +x8 +2x7 +5x6 +5x4 +3x3 +4x2 +1 f (x7 )
+ 6x165 +5x164 +2x163 +2x162 +4x161 +3x160 +2x155 +3x153 +2x151 +4x150 +3x149 +6x147
(
+x144 +2x143 +5x142 +4x141 +3x140 +6x139 +x137 +2x136 +5x135 +x134 +3x133 +5x132 +2x130
+4x129 +3x128 +4x127 +6x126 +6x125 +6x123 +5x122 +2x121 +2x120 +4x119 +3x118 +5x116
+3x115 +4x114 +4x113 +x112 +6x111 +4x106 +6x104 +4x102 +x101 +6x100 +5x98 +2x71 +3x69
+x67 +2x66 +5x65 +5x64 +3x63 +4x62 +5x57 +4x55 +5x53 +3x52 +4x51 +x49 +5x46 +3x45 +4x44
+6x43 +x42 +2x41 +5x39 +3x38 +4x37 +5x36 +x35 +4x34 +3x32 +6x31 +x30 +6x29 +2x28 +2x27
+2x25 +4x24 +3x23 +6x21 +6x18 +5x17 +2x16 +2x15 +4x14 +3x13 +2x8 +3x6 +2x4 +4x3 +3x2 +6 f (x49 )
)
+ x165 +2x164 +5x163 +5x162 +3x161 +4x160 +5x155 +4x153 +5x151 +3x150 +4x149 +x147 f (x343 )=0
(
)