<<

Towards fast Puiseux computation

Adrien Poteaux?, Marc Rybowicz†

?: LIFL - Université Lille 1 †: XLIM - Université de Limoges

Computer algebra and Workshop, Linz November 25th, 2013

adrien.poteaux@lifl.fr 1 / 16 Algebraic plane curves: a projective point of view

y3 = (α) a number field K Q y2′ F (X , Y ) K[X , Y ] y2′′ ∈ 2 = (x, y) C F (x, y) = 0 C { ∈ | } Let x0 C : ∈ y2 y1′′ Fiber at x0: (x0) = roots of F (x0, Y ) = 0 . F { } y1′ y1 Regular point : # (x0) = dY . F Critical point : # (x0) < dY . F = roots of RF = ResY (F , FY ). ⇒ x0 α1 α2

adrien.poteaux@lifl.fr Puiseux series 1 / 16 x0 critical Theorem (Puiseux) ∞ k X jk e There are dY seriesY ij (X ) = αik ζ (X x0) i s.t. ei − k=ni 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).

Puiseux series: a generalization of formal

x0 regular ; (x0) = y1, , yd . F { ··· Y } Theorem ( theorem) ∞ X k There are dY series Yi (X ) = αik (X x0) s.t − k=0 F (X , Yi (X )) = 0 around x0 and Yi (x0) = yi .

adrien.poteaux@lifl.fr Definition 2 / 16 Puiseux series: a generalization of

x0 regular ; (x0) = y1, , yd . F { ··· Y } Theorem (Implicit function theorem) ∞ X k There are dY series Yi (X ) = αik (X x0) s.t − k=0 F (X , Yi (X )) = 0 around x0 and Yi (x0) = yi .

x0 critical Theorem (Puiseux) ∞ k X jk e There are dY seriesY ij (X ) = αik ζ (X x0) i s.t. ei − k=ni 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 w w  Monodromy group w w  Effective Abel-Jacobi theorem

.& Computer Algebra Physics

Integral basis computation.s KP & KdV equations Algebraic solutions of ODEs Differential Galois theory

adrien.poteaux@lifl.fr Motivations 3 / 16 Difficult part is the singular part

∞ k X jk e Sij (X x0) = αik ζ (X x0) i − ei − k=ni

rij k X jk e = αik ζ (X x0) i + next terms ei − k=ni

rij is the regularity index; ri = rij for 1 j ei ≤ ≤ Next terms can be computed using quadratic 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 ”. → 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 2 Supp(F)= (i, j) N aij = 0 × { ∈ | 6 }

— (F ): lower part of the convex hullN of Supp(F).

Characteristic polynomial:

X i−i0 φ∆(T ) = aij T q (i, j)∈∆

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 — (F ): lower part of the convex hullN of Supp(F).

Characteristic polynomial:

X i−i0 φ∆(T ) = aij T q (i, j)∈∆

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 − −

2 Supp(F)= (i, j) N aij = 0 6 × { ∈ | 6 }

4

2 1

0 2 3 4 5 7

adrien.poteaux@lifl.fr Newton-Puiseux algorithm 6 / 16 Characteristic polynomial:

X i−i0 φ∆(T ) = aij T q (i, j)∈∆

Newton polygon

X i j F (X , Y ) = aij Y X i, j

2 Supp(F)= (i, j) N aij = 0 6 × { ∈ | 6 } (F ) N — (F ): lower part of the convex Nhull of Supp(F).

2

1

0 2 4 7

adrien.poteaux@lifl.fr Newton-Puiseux algorithm 6 / 16 Characteristic polynomial

X i j F (X , Y ) = aij Y X i, j

2 Supp(F)= (i, j) N aij = 0 × { ∈ | 6 } 6 N (F ) — (F ): lower part of the convex Nhull of Supp(F).

Characteristic polynomial: 2 ∆, slope − m X i−i0 q φ∆(T ) = aij T q 1 (i, j)∈∆ 0 i0 = 2 4 7

adrien.poteaux@lifl.fr Newton-Puiseux algorithm 6 / 16 First turn: initial polygon 0(F ) N

Rational Newton-Puiseux algorithm D. Duval 1989, Rational Puiseux Expansions

For each edge ∆ of (F ) N s Y Mk – φ∆ = φk k=1 l q – For each φk

v q m u F (ξ X , X (ξ + Y )) ∆, slope − m F (X , Y ) k k q ← X l with 0 i0 I(F )

ξ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

For each edge ∆ of 0(F ) N s Y Mk – φ∆ = φk k=1

– For each φk F (ξv X q, X m(ξu + Y )) F (X , Y ) k k ← X l with

∆, slope − m ξk s. t. φk (ξk ) = 0, q · i0 dY (u, v) such that uq vm = 1. l · − q First turn: initial polygon 0(F ) N

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 − − − − − 3 RH (X ) = X P(X ), degX (P) = 23; β s.t. P(β) = 0

Singular parts of Puiseux series of H above β:

Si (X ) = αi,0, 1 i 4. ≤ ≤ 1 Si (X ) = αi,0 + αi,1(X β) 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 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 Factorising “well” φ∆

4

x2 2.0 x + 0.9999 − 2 =? (x 0.99)(x 1.01) − − 1 =? (x 1.)2 − 0 2 4 7 = 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. 6≡ 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 of Puiseux series and complexity of the Newton-Puiseux algorithm over finite 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”

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, α 6= 0) ? Factorization

2 Fast computation in between two branch separations

2 3 7 4 9 5 11 35 S(X ) = 2 + X X + X +3X 2 +4X X 2 2X + X 2 +7X 6 + ... − − −

adrien.poteaux@lifl.fr A fast algorithm 13 / 16 A new algorithm

1 Substitutions F (X , Y ) F (X , Y + Ad −1(X )) ← Y (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 = GH 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 implementation. . . 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 Annexes

adrien.poteaux@lifl.fr A fast algorithm 16 / 16 Following the structure numerically: one example

Puiseux series of F :

S1(X ) = X + 1 ··· 7 S2(X ) = 4X 2 + X 8 + 1 ··· S3(X ) = 2X 2 + 2X + 1 ···7 S4(X ) = 2X 2 + X + X 6 + 1 5 ··· S5(X ) = X 2 + 2X + X 4 + 1 ··· S6(X ) = X 2 + X + 1 ··· S7(X ) = X 2 + 4X + ···

13 dY = 25, dX = 26 ; 1 coefficients 10 ; Digits = 20. ≤ ≤

adrien.poteaux@lifl.fr A fast algorithm 16 / 16 First Newton polygon

13 1, (1) 12

1/2, (4,4,4)

1 25

adrien.poteaux@lifl.fr A fast algorithm 16 / 16 First Newton polygon

8 1 13 1, 0.16777216 10 (T 1.) 12 · − 1/2, (T 1.)4(T 4.)4(T 16.)4 − − −

1 25

1 S1(x)=1.x 2 ZOOM

adrien.poteaux@lifl.fr A fast algorithm 16 / 16 Filter according to the polygons

2 1/2 F (X , X (Y + ξi )) Gi (X , Y ) , ξ1 = 1. ξ2 = 4. ξ3 = 16. ← X G , G , G { 1 2 3}

4 4 3

4 4 4

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

G1,G2 G3 { }

4 4 3 (2,1,1) (3,1)

4 4 4 φ = 17199267840000.0(T 1.)1 3 −

1 7 S2(x)= 4.x 2 + 1.x 8 Sorting polynomials according to multiplicity structures

adrien.poteaux@lifl.fr A fast algorithm 16 / 16 Filter according to the multiplicity structure

Multiplicity Structures: (2, 1, 1) deg(pgcd(φ, φ0)) = 1 ⇒ (3, 1) deg(pgcd(φ, φ0)) = 2 ⇒

Characteristic Polynomials: 2 3 4 φ1 = 1049760000.0 − 2361960000.0 T + 1837080000.0 T − 590490000.0 T + 65610000.0 T

2 3 4 φ2 = 1719926784.0 − 6019743744.0 T + 7739670528.0 T − 4299816960.0 T + 859963392.0 T

0 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]

G1 G2

4 4

(2,1,1) (3,1)

4 4

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