Towards fast Puiseux series computation
Adrien Poteaux⋆, Marc Rybowicz†
⋆: LIFL - Université Lille 1 †: XLIM - Université de Limoges
Computer algebra and polynomials Workshop, Linz November 25th, 2013
adrien.poteaux@lifl.fr Puiseux series 1 / 16
Towards fast Puiseux series computation Adrien Poteaux , Marc - - PowerPoint PPT Presentation
Towards fast Puiseux series computation Adrien Poteaux , Marc Rybowicz : LIFL - Universit Lille 1 : XLIM - Universit de Limoges Computer algebra and polynomials Workshop, Linz November 25th, 2013 adrien.poteaux@lifl.fr
Towards fast Puiseux series computation
Adrien Poteaux⋆, Marc Rybowicz†
⋆: LIFL - Université Lille 1 †: XLIM - Université de Limoges
Computer algebra and polynomials Workshop, Linz November 25th, 2013
adrien.poteaux@lifl.fr Puiseux series 1 / 16
Algebraic plane curves: a projective point of view
K = Q(α) a number field F(X, Y ) ∈ K[X, Y ] C = {(x, y) ∈ C2 | F(x, y) = 0} Let x0 ∈ C : Fiber at x0: F(x0) = {roots of F(x0, Y ) = 0}. Regular point : #F(x0) = dY . Critical point : #F(x0) < dY . = ⇒ roots of RF = ResY (F, FY ).
y3 y′′
2
y′′
1
y1 y2 y′
1
y′
2
α2 x0 α1
adrien.poteaux@lifl.fr Puiseux series 1 / 16
Puiseux series: a generalization of formal power series
x0 regular ; F(x0) = {y1, · · · , ydY }.
Theorem (Implicit function theorem)
There are dY series Yi(X) =
∞
αik(X − x0)k s.t F(X, Yi(X)) = 0 around x0 and Yi(x0) = yi.
adrien.poteaux@lifl.fr Definition 2 / 16
Puiseux series: a generalization of formal power series
x0 regular ; F(x0) = {y1, · · · , ydY }.
Theorem (Implicit function theorem)
There are dY series Yi(X) =
∞
αik(X − x0)k s.t F(X, Yi(X)) = 0 around x0 and Yi(x0) = yi. x0 critical
Theorem (Puiseux)
There are dY series Yij(X) =
∞
αik ζjk
ei (X − x0)
k ei s.t.
F(X, Yij(X)) = 0 for all 1 ≤ j ≤ ei, 1 ≤ i ≤ s, with
ζei primitive ei-th root of unity, ei e1, . . . , es partition of dY (ramification indices).
adrien.poteaux@lifl.fr Definition 2 / 16
Long term goal
Puiseux series
ւ ց Computer Algebra Physics
Integral basis computation.s Algebraic solutions of ODEs Differential Galois theory KP & KdV equations
adrien.poteaux@lifl.fr Motivations 3 / 16
Difficult part is the singular part
Sij(X − x0) =
∞
αik ζjk
ei (X − x0)
k ei
=
rij
αik ζjk
ei (X − x0)
k ei + next terms
rij is the regularity index ; ri = rij for 1 ≤ j ≤ ei Next terms can be computed using quadratic Newton iterations
Kung & Traub 1978, All Algebraic Functions Can Be Computed Fast
adrien.poteaux@lifl.fr Singular part 4 / 16
Singulart part computation: the Newton-Puiseux algorithm
Newton, 1676 → introduction of the concept. Puiseux, 1850 → rediscovers ; first procedure. Chystov, 1986 → “Newton-Puiseux bit complexity is polynomial”. Duval, 1989 → rational algorithm ; arithmetic complexity O(D8). Walsh, 2000 → bit complexity O˜(D36) (classical algorithm). Walsh, 1999 → polynomial size for rational coefficients, no algorithm. Rybowicz & P., 2008 → improved arithmetic complexity: O˜(D5).
adrien.poteaux@lifl.fr Newton-Puiseux algorithm 5 / 16
The Newton-Puiseux algorithm: main tools
F(X, Y ) = Y 7 + Y 5X − 2 Y 4X + 5 Y 4X 3 + 4 Y 2X 2 + X 6
adrien.poteaux@lifl.fr Newton-Puiseux algorithm 6 / 16
Support of a polynomial
F(X, Y ) = Y 7 X 0+Y 5 X 1−2 Y 4X 1+5 Y 3X 4−Y 3X 2+4 Y 2X 2+Y 0X 6 × Supp(F)= {(i, j) ∈ N2 | aij = 0}
1 2 4 6 2 3 4 5 7
adrien.poteaux@lifl.fr Newton-Puiseux algorithm 6 / 16
Newton polygon
F(X, Y ) =
aijY iX j × Supp(F)= {(i, j) ∈ N2 | aij = 0} — N(F): lower part of the convex hull of Supp(F).
1 2 6 2 4 7
N(F)
adrien.poteaux@lifl.fr Newton-Puiseux algorithm 6 / 16
Characteristic polynomial
F(X, Y ) =
aijY iX j × Supp(F)= {(i, j) ∈ N2 | aij = 0} — N(F): lower part of the convex hull of Supp(F). Characteristic polynomial: φ∆(T) =
aijT
i−i0 q
1 2 6 4 7 N(F) i0 = 2 ∆, slope − m
q adrien.poteaux@lifl.fr Newton-Puiseux algorithm 6 / 16
Rational Newton-Puiseux algorithm
I(F)
l q
i0 ∆, slope − m
q
For each edge ∆ of N(F) – φ∆ =
s
φMk
k
– For each φk F(X, Y ) ← F(ξv
kX q, X m(ξu k + Y ))
X l with · ξk s. t. φk(ξk) = 0, · (u, v) such that uq − vm = 1.
adrien.poteaux@lifl.fr Newton-Puiseux algorithm 7 / 16
Rational Newton-Puiseux algorithm : first turn
l q
i0 dY ∆, slope − m
q
For each edge ∆ of N0(F) – φ∆ =
s
φMk
k
– For each φk F(X, Y ) ← F(ξv
kX q, X m(ξu k + Y ))
X l with · ξk s. t. φk(ξk) = 0, · (u, v) such that uq − vm = 1.
First turn: initial polygon N0(F)
adrien.poteaux@lifl.fr Newton-Puiseux algorithm 7 / 16
Pure symbolic computation is costly
H(X, Y ) = (Y 3 − X) ((Y − 1)2 − X) (Y − 2 − X 2) + X 2 Y 5 RH(X) = X 3 P(X), degX(P) = 23; β s.t. P(β) = 0 Singular parts of Puiseux series of H above β:
Si(X) = αi,0, 1 ≤ i ≤ 4. Si(X) = αi,0 + αi,1(X − β)
1 2 , 5 ≤ i ≤ 6.
Degree of the extension field
i = 5, 6: K(αi,0) = K(αi,1) = K(β) → extension of degree 23, i = 1, . . . , 4: [K(αi,0) : K(β)] = 4 → extension of degree 92,
Coefficient growth
αi,0 → rational number with 98 digits, αi,1 → rational number with 132 digits.
adrien.poteaux@lifl.fr Newton-Puiseux algorithm 8 / 16
Numerical computations ?
Direct computation: almost useless Guessing the structure ? two difficulties: Finding the correct Newton polygon
1 2 7 4 4 2
Factorising “well” φ∆ x2 − 2.0 x + 0.9999
?
= (x − 0.99)(x − 1.01)
?
= (x − 1.)2 = ⇒ Multiplicity structure ? = ⇒ Exact informations needed !
adrien.poteaux@lifl.fr Newton-Puiseux algorithm 9 / 16
A symbolic-numeric approach:
1 Compute the singular part of Puiseux series modulo a well
chosen prime number p This give us the structure of the Puiseux series, thus:
Newton polygons, Multiplicity structures of the φ∆.
2 Use this information to conduct a numerical computation of
the Puiseux series coefficients.
adrien.poteaux@lifl.fr A modular-numeric approach 10 / 16
Modular part: main results
Reduction criteria:
1
One can reduce F mod p,
2
p > dY
3
tc(RF) ≡ 0 mod p.
If p satisfies that:
1
Puiseux series can be reduced modulo p,
2
The structure computed modulo p is the good one.
Bounds for p ; log(p) ≃ log(D) with probabilistic algorithms. References for details: Poteaux & Rybowicz 2008, On the good reduction
fields ; Poteaux & Rybowicz 2012, On the good reduction of Puiseux series and Applications ; Poteaux & Rybowicz 2011, Complexity bounds for the rational Newton-Puiseux algorithm over finite fields and related problems
adrien.poteaux@lifl.fr A modular-numeric approach 11 / 16
Numerical part: following the structure
If P(X) = (X − α)m(X − β)m = (X − ˜ γ)m (X − ˜ δ)m, α ↔ ˜ γ or α ↔ ˜ δ ? no answer = ⇒ group of roots dealt together We separate the blocs later on:
1
filter according to the Newton polygon (coefficient of F zero or not)
2
filter according to the multiplicity structure first idea = approximate gcd : singular values
One example adrien.poteaux@lifl.fr A modular-numeric approach 12 / 16
Fast computation ?
1 Use only “mandatory” monomials 1
Truncating power of X
already used in the D8 of Duval, improved in our D5 version, better ? → relaxed computations (a-posteriori bounds)
2
Reducing the degree in Y
After first turn, we only look roots above (0, 0) Get rid of roots above (0, α = 0) ? Factorization
2 Fast computation in between two branch separations
S(X) = 2 + X − X 2 + X 3+3X
7 2 +4X 4 − X 9 2 − 2X 5 + X 11 2 +7X 35 6 + . . . adrien.poteaux@lifl.fr A fast algorithm 13 / 16
A new algorithm
1 Substitutions F(X, Y ) ← F(X, Y + AdY −1(X))
(compute common terms at once ; less recursive calls)
2 Factorization of the polynomial during the algorithm
(Hensel lemma → recursive calls with smaller degrees)
3 Using relax algorithms.
(no a priori bound required)
4 Improved truncation bounds (thanks to relax algorithms).
leads to O˜(D4)
adrien.poteaux@lifl.fr A fast algorithm 14 / 16
Better again ?
The idea: all series do not need the same truncations
1 Compute half of the series in O˜(D3) (the one that requires the
smallest truncations)
2 Factorize F = G H with G corresponding to the computed
series, and H to the other ones. O˜(D3) ?
3 Apply the same procedure to H.
Logarithmic number of recursive call: total complexity in O˜(D3). Remaining problem: step 2 ; how to get the starting point in order to apply Hensel lemma ? or another idea ?
adrien.poteaux@lifl.fr A fast algorithm 15 / 16
Conclusion
A modular-numerical approach
Modular part: 100% done, Numerical part: first strategy developped, Maple implementation (prototype) To be done: certified computations, error bounds, better
A new faster algorithm
D4 strategy looks to work, Missing one idea for the D3 algorithm, C++ implementation (based on NTL) started, To be done: finding this last missing part, writting and coding everything properly.
Long term: a good effective way to compute Abel’s map ?
adrien.poteaux@lifl.fr A fast algorithm 16 / 16
adrien.poteaux@lifl.fr A fast algorithm 16 / 16
Following the structure numerically: one example
Puiseux series of F : S1(X) = X + · · · S2(X) = 4X
1 2 + X 7 8 + · · ·
S3(X) = 2X
1 2 + 2X + · · ·
S4(X) = 2X
1 2 + X + X 7 6 + · · ·
S5(X) = X
1 2 + 2X + X 5 4 + · · ·
S6(X) = X
1 2 + X + · · ·
S7(X) = X
1 2 + 4X + · · ·
dY = 25, dX = 26 ; 1 ≤ coefficients ≤ 1013 ; Digits = 20.
adrien.poteaux@lifl.fr A fast algorithm 16 / 16
First Newton polygon
1 25 12 13 1, (1)
1/2, (4,4,4)
adrien.poteaux@lifl.fr A fast algorithm 16 / 16
First Newton polygon
25 1
12 13 1,
1/2,
S1(x) = 1.x
1 2
0.16777216 · 108(T − 1.)1 (T − 1.)4(T − 4.)4(T − 16.)4
adrien.poteaux@lifl.fr A fast algorithm 16 / 16
Filter according to the polygons
Gi(X, Y ) ← F(X 2, X(Y + ξ1/2
i
)) X , ξ1 = 1. ξ2 = 4. ξ3 = 16.
3 4 4 4 4 4
{G1, G2, G3}
polynom coefficient at X 3 G1 0. G2 0. G3 −17199267840000.0
adrien.poteaux@lifl.fr A fast algorithm 16 / 16
Filter according to the polygons
3 4 4 4 4 4
to multiplicity structures Sorting polynomials according
(2,1,1) (3,1) G3 {G1, G2} φ3 = 17199267840000.0(T − 1.)1 S2(x) = 4.x
1 2 + 1.x 7 8
adrien.poteaux@lifl.fr A fast algorithm 16 / 16
Filter according to the multiplicity structure
Multiplicity Structures: (2, 1, 1) ⇒ deg(pgcd(φ, φ′)) = 1 (3, 1) ⇒ deg(pgcd(φ, φ′)) = 2 Characteristic Polynomials:
φ1 = 1049760000.0 − 2361960000.0 T + 1837080000.0 T 2 − 590490000.0 T 3 + 65610000.0 T 4 φ2 = 1719926784.0 − 6019743744.0 T + 7739670528.0 T 2 − 4299816960.0 T 3 + 859963392.0 T 4 1 Si ← Syl(φi, φ′
i)
2 Computing the singular values of the Si adrien.poteaux@lifl.fr A fast algorithm 16 / 16
Tri selon les multiplicités
Singular values associated to φ1 :
[710694508.4327095884, 5827385163.0346368216, 3038236185.2953794346, 1140210769.8445335036, 40759543.641844042087, 1882790.0681572535369, 3.8263754075532025314 ·10−11]
Singular values associated to φ2 :
[ 37445022322.189717034, 24644791488.066781055, 12101920587.793187214, 3915075466.8959244453, 31534726.725839766232, 0.00000000074101187358617089031, 0.00000000027761147770454585021]
4 4 4 4
(2,1,1) (3,1)
G1 G2
adrien.poteaux@lifl.fr A fast algorithm 16 / 16
Result
mypuiseux(F,x,y,x,0);
[[[x = T, y = 1.0 T], [x = T 2, y = 1.0000000000000046423 T 2 + 1.0000000000000014628 T], [x = T 2, y = 4.0000000000000002662 T 2 + 1.0000000000000014628 T], [x = T 4, y = 0.99999999999999869303 T 5 + 2.0000000000000040470 T 4 + 1.0000000000000014628 T 2], [x = T 2, y = 1.9999999999993502275 T 2 + 2.0000000000000757425 T], [x = T 6, y = 1.0000000000036976678 T 7 + 1.0000000000047325425 T 6 + 2.0000000000000757425 T 3], [x = T 8, y = 0.99999999999483964356 T 7 + 4.0000000000009297336 T 4]]]
back adrien.poteaux@lifl.fr A fast algorithm 16 / 16