Improvements to ideal class group and regulator computation in real - - PowerPoint PPT Presentation

improvements to ideal class group and regulator
SMART_READER_LITE
LIVE PREVIEW

Improvements to ideal class group and regulator computation in real - - PowerPoint PPT Presentation

Outline Introduction Classical Algorithms Practical improvements Improvements to ideal class group and regulator computation in real quadratic number fields cois Biasse 1 , Michael J. Jacobson Jr 2 Jean-Fran 1 Ecole polytechnique, 2


slide-1
SLIDE 1

Outline Introduction Classical Algorithms Practical improvements

Improvements to ideal class group and regulator computation in real quadratic number fields

Jean-Fran¸ cois Biasse1, Michael J. Jacobson Jr2

Ecole polytechnique,

2University of Calgary

ANTS IX

1/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-2
SLIDE 2

Outline Introduction Classical Algorithms Practical improvements

Motivations

Let K be a quadratic number field of discrimiant ∆ and maximal

  • rder O∆. We are interested in

Computing the group structure of Cl(∆) := Cl(O∆).

2/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-3
SLIDE 3

Outline Introduction Classical Algorithms Practical improvements

Motivations

Let K be a quadratic number field of discrimiant ∆ and maximal

  • rder O∆. We are interested in

Computing the group structure of Cl(∆) := Cl(O∆). Computing the regulator R∆ of K.

2/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-4
SLIDE 4

Outline Introduction Classical Algorithms Practical improvements

Motivations

Let K be a quadratic number field of discrimiant ∆ and maximal

  • rder O∆. We are interested in

Computing the group structure of Cl(∆) := Cl(O∆). Computing the regulator R∆ of K. Computing a compact representation of the fundamental unit ε∆.

2/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-5
SLIDE 5

Outline Introduction Classical Algorithms Practical improvements

Motivations

Let K be a quadratic number field of discrimiant ∆ and maximal

  • rder O∆. We are interested in

Computing the group structure of Cl(∆) := Cl(O∆). Computing the regulator R∆ of K. Computing a compact representation of the fundamental unit ε∆. We provide practical improvements to the classical subexponential algorithms.

2/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-6
SLIDE 6

Outline Introduction Classical Algorithms Practical improvements

Motivations

Let K be a quadratic number field of discrimiant ∆ and maximal

  • rder O∆. We are interested in

Computing the group structure of Cl(∆) := Cl(O∆). Computing the regulator R∆ of K. Computing a compact representation of the fundamental unit ε∆. We provide practical improvements to the classical subexponential algorithms. We achieve the computation of Cl(∆) and R∆ for a 110-digit discriminant.

2/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-7
SLIDE 7

Outline Introduction Classical Algorithms Practical improvements

1 Introduction 2 Classical Algorithms 3 Practical improvements

3/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-8
SLIDE 8

Outline Introduction Classical Algorithms Practical improvements

1 Introduction 2 Classical Algorithms 3 Practical improvements

4/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-9
SLIDE 9

Outline Introduction Classical Algorithms Practical improvements

Ideals

We work in K that satisfies [K : Q] = 2.

5/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-10
SLIDE 10

Outline Introduction Classical Algorithms Practical improvements

Ideals

We work in K that satisfies [K : Q] = 2. Let O∆ be the ring of integers of K and ∆ its discriminant.

5/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-11
SLIDE 11

Outline Introduction Classical Algorithms Practical improvements

Ideals

We work in K that satisfies [K : Q] = 2. Let O∆ be the ring of integers of K and ∆ its discriminant. If ∆ < 0 : imaginary case. If ∆ > 0 : real case.

5/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-12
SLIDE 12

Outline Introduction Classical Algorithms Practical improvements

Ideals

We work in K that satisfies [K : Q] = 2. Let O∆ be the ring of integers of K and ∆ its discriminant. If ∆ < 0 : imaginary case. If ∆ > 0 : real case. The fractional ideals a are the sets of the form 1 d a′, | d ∈ K, a′ is an ideal of O∆.

5/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-13
SLIDE 13

Outline Introduction Classical Algorithms Practical improvements

Ideal class group

Let I(∆) be the invertible fractional ideals and P the principal ideals, then Cl(∆) := I(∆)/P.

6/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-14
SLIDE 14

Outline Introduction Classical Algorithms Practical improvements

Ideal class group

Let I(∆) be the invertible fractional ideals and P the principal ideals, then Cl(∆) := I(∆)/P. Cl(∆) is finite of cardinality h(∆).

6/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-15
SLIDE 15

Outline Introduction Classical Algorithms Practical improvements

Ideal class group

Let I(∆) be the invertible fractional ideals and P the principal ideals, then Cl(∆) := I(∆)/P. Cl(∆) is finite of cardinality h(∆). h(∆) is essentially as “hard” to compute as Cl(∆).

6/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-16
SLIDE 16

Outline Introduction Classical Algorithms Practical improvements

Ideal class group

Let I(∆) be the invertible fractional ideals and P the principal ideals, then Cl(∆) := I(∆)/P. Cl(∆) is finite of cardinality h(∆). h(∆) is essentially as “hard” to compute as Cl(∆). Let a, b ∈ I(∆), then we denote by a ∼ b : [a] = [b] ∈ Cl(∆) ⇔ ∃α ∈ K, a = (α)b.

6/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-17
SLIDE 17

Outline Introduction Classical Algorithms Practical improvements

Regulator

We assume that ∆ > 0.

7/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-18
SLIDE 18

Outline Introduction Classical Algorithms Practical improvements

Regulator

We assume that ∆ > 0. Elements of K such that N(x) = ±1 are units.

7/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-19
SLIDE 19

Outline Introduction Classical Algorithms Practical improvements

Regulator

We assume that ∆ > 0. Elements of K such that N(x) = ±1 are units. Every unit ε can be written as ε = ±εn

∆, where ε∆ is the

fundamental unit of K.

7/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-20
SLIDE 20

Outline Introduction Classical Algorithms Practical improvements

Regulator

We assume that ∆ > 0. Elements of K such that N(x) = ±1 are units. Every unit ε can be written as ε = ±εn

∆, where ε∆ is the

fundamental unit of K. The regulator of K is R∆ = log ε∆.

7/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-21
SLIDE 21

Outline Introduction Classical Algorithms Practical improvements

Regulator

We assume that ∆ > 0. Elements of K such that N(x) = ±1 are units. Every unit ε can be written as ε = ±εn

∆, where ε∆ is the

fundamental unit of K. The regulator of K is R∆ = log ε∆. Every unit ε satisfies ∃n, log |ε| = nR∆.

7/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-22
SLIDE 22

Outline Introduction Classical Algorithms Practical improvements

1 Introduction 2 Classical Algorithms 3 Practical improvements

8/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-23
SLIDE 23

Outline Introduction Classical Algorithms Practical improvements

General strategy

The algorithms for solving our problems follow the same pattern. Let B = {p1, . . . , pN} be a generating set of Cl(∆).

9/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-24
SLIDE 24

Outline Introduction Classical Algorithms Practical improvements

General strategy

The algorithms for solving our problems follow the same pattern. Let B = {p1, . . . , pN} be a generating set of Cl(∆).

1 Find relations of the form

(α) = pe1

1 · · · peN N ,

that is

i[pi]ei = [1]

9/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-25
SLIDE 25

Outline Introduction Classical Algorithms Practical improvements

General strategy

The algorithms for solving our problems follow the same pattern. Let B = {p1, . . . , pN} be a generating set of Cl(∆).

1 Find relations of the form

(α) = pe1

1 · · · peN N ,

that is

i[pi]ei = [1]

2 Every time a relation is found, [e1, . . . , eN] is added as a row

  • f the relation matrix M

9/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-26
SLIDE 26

Outline Introduction Classical Algorithms Practical improvements

General strategy

The algorithms for solving our problems follow the same pattern. Let B = {p1, . . . , pN} be a generating set of Cl(∆).

1 Find relations of the form

(α) = pe1

1 · · · peN N ,

that is

i[pi]ei = [1]

2 Every time a relation is found, [e1, . . . , eN] is added as a row

  • f the relation matrix M

3 Perform a linear algebra phase on M. 9/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-27
SLIDE 27

Outline Introduction Classical Algorithms Practical improvements

Complexity

We define the subexponential function by L∆(α, β) = eβ log |∆|α log log |∆|1−α.

10/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-28
SLIDE 28

Outline Introduction Classical Algorithms Practical improvements

Complexity

We define the subexponential function by L∆(α, β) = eβ log |∆|α log log |∆|1−α. For α ∈ [0, 1], L∆(α, β) is between exponential and polynomial in log |∆| since L∆(0, β) = log |∆|β, L∆(1, β) = |∆|β.

10/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-29
SLIDE 29

Outline Introduction Classical Algorithms Practical improvements

Complexity

We define the subexponential function by L∆(α, β) = eβ log |∆|α log log |∆|1−α. For α ∈ [0, 1], L∆(α, β) is between exponential and polynomial in log |∆| since L∆(0, β) = log |∆|β, L∆(1, β) = |∆|β. Our problems for qudratic number fields have complexity L∆(1/2, c), where c depends on the linear algebra phase.

10/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-30
SLIDE 30

Outline Introduction Classical Algorithms Practical improvements

The factor base

We fill the factor base with invertible prime ideals p. There is p prime such that p ∩ Z = (p) and N(p) = p.

11/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-31
SLIDE 31

Outline Introduction Classical Algorithms Practical improvements

The factor base

We fill the factor base with invertible prime ideals p. There is p prime such that p ∩ Z = (p) and N(p) = p. Let B a bound, we define B := {p invertible prime | N(p) ≤ B} = {p1, . . . , pN} .

11/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-32
SLIDE 32

Outline Introduction Classical Algorithms Practical improvements

The factor base

We fill the factor base with invertible prime ideals p. There is p prime such that p ∩ Z = (p) and N(p) = p. Let B a bound, we define B := {p invertible prime | N(p) ≤ B} = {p1, . . . , pN} . Under ERH, if B > 6 log2 |∆|, then B generates Cl(∆), and the lattice L of the relations satisfies Cl(∆) ≃ ZN/L.

11/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-33
SLIDE 33

Outline Introduction Classical Algorithms Practical improvements

The factor base

We fill the factor base with invertible prime ideals p. There is p prime such that p ∩ Z = (p) and N(p) = p. Let B a bound, we define B := {p invertible prime | N(p) ≤ B} = {p1, . . . , pN} . Under ERH, if B > 6 log2 |∆|, then B generates Cl(∆), and the lattice L of the relations satisfies Cl(∆) ≃ ZN/L. We have (a is B-smooth)⇔(N(a) is B-smooth).

11/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-34
SLIDE 34

Outline Introduction Classical Algorithms Practical improvements

Hermite Normal Form

Invertible operations on rows lead to the Hermite Normal Form H of M : H =                h1,1 . . . . . . ... . . . ∗ . . . hl,l (0) (∗) 1 (0) ... (0) 1 (0)                , where ∀i > j : 0 ≤ hij < hjj.

12/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-35
SLIDE 35

Outline Introduction Classical Algorithms Practical improvements

Hermite Normal Form

Invertible operations on rows lead to the Hermite Normal Form H of M : H =                h1,1 . . . . . . ... . . . ∗ . . . hl,l (0) (∗) 1 (0) ... (0) 1 (0)                , where ∀i > j : 0 ≤ hij < hjj. Upper left : Essential part

12/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-36
SLIDE 36

Outline Introduction Classical Algorithms Practical improvements

Smith Normal Form (SNF) and class group structure

Any matrix A ∈ Zn×n with non zero determinant can be written as : A = V −1       d1 . . . d2 ... . . . . . . ... ... . . . dn       U−1 where ∀i such that 1 ≤ i < n : di+1|di.

13/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-37
SLIDE 37

Outline Introduction Classical Algorithms Practical improvements

Smith Normal Form (SNF) and class group structure

Any matrix A ∈ Zn×n with non zero determinant can be written as : A = V −1       d1 . . . d2 ... . . . . . . ... ... . . . dn       U−1 where ∀i such that 1 ≤ i < n : di+1|di. If (di) are the diagonal coefficients of the SNF of the essential part

  • f H then

Cl(∆) =

  • 1≤i≤n

(Z/diZ)

13/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-38
SLIDE 38

Outline Introduction Classical Algorithms Practical improvements

Computing the HNF in practice

Several implementation of HNF algorithm exist : Pari, Kash, Sage, Magma, NTL ... We used an NTL/Linbox-based strategy.

14/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-39
SLIDE 39

Outline Introduction Classical Algorithms Practical improvements

Computing the HNF in practice

Several implementation of HNF algorithm exist : Pari, Kash, Sage, Magma, NTL ... We used an NTL/Linbox-based strategy. Let M ∈ ZN′×N be the relation matrix.

1 Extract two random N × N full-rank submatrices M1 and M2

  • f M.

14/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-40
SLIDE 40

Outline Introduction Classical Algorithms Practical improvements

Computing the HNF in practice

Several implementation of HNF algorithm exist : Pari, Kash, Sage, Magma, NTL ... We used an NTL/Linbox-based strategy. Let M ∈ ZN′×N be the relation matrix.

1 Extract two random N × N full-rank submatrices M1 and M2

  • f M.

2 Compute h1 ← det(M1) and h2 ← det(M2) with function det

  • f linbox.

14/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-41
SLIDE 41

Outline Introduction Classical Algorithms Practical improvements

Computing the HNF in practice

Several implementation of HNF algorithm exist : Pari, Kash, Sage, Magma, NTL ... We used an NTL/Linbox-based strategy. Let M ∈ ZN′×N be the relation matrix.

1 Extract two random N × N full-rank submatrices M1 and M2

  • f M.

2 Compute h1 ← det(M1) and h2 ← det(M2) with function det

  • f linbox.

3 Let h := gcd(h1, h2). It is a multiple of h∆. 14/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-42
SLIDE 42

Outline Introduction Classical Algorithms Practical improvements

Computing the HNF in practice

Several implementation of HNF algorithm exist : Pari, Kash, Sage, Magma, NTL ... We used an NTL/Linbox-based strategy. Let M ∈ ZN′×N be the relation matrix.

1 Extract two random N × N full-rank submatrices M1 and M2

  • f M.

2 Compute h1 ← det(M1) and h2 ← det(M2) with function det

  • f linbox.

3 Let h := gcd(h1, h2). It is a multiple of h∆. 4 Call the implementation of DomKanTro87 modular HNF

algorithm with (M, h).

14/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-43
SLIDE 43

Outline Introduction Classical Algorithms Practical improvements

Computing the HNF in practice

Several implementation of HNF algorithm exist : Pari, Kash, Sage, Magma, NTL ... We used an NTL/Linbox-based strategy. Let M ∈ ZN′×N be the relation matrix.

1 Extract two random N × N full-rank submatrices M1 and M2

  • f M.

2 Compute h1 ← det(M1) and h2 ← det(M2) with function det

  • f linbox.

3 Let h := gcd(h1, h2). It is a multiple of h∆. 4 Call the implementation of DomKanTro87 modular HNF

algorithm with (M, h). In fact MAGMA is much faster :( ⇒ room for improvement.

14/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-44
SLIDE 44

Outline Introduction Classical Algorithms Practical improvements

Regulator computation

Let M = (mij) ∈ ZN′×N, be the relation matrix, B = {p1, . . . , pN}, and (αi) = pmi1

1

· · · pmN1

N

.

15/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-45
SLIDE 45

Outline Introduction Classical Algorithms Practical improvements

Regulator computation

Let M = (mij) ∈ ZN′×N, be the relation matrix, B = {p1, . . . , pN}, and (αi) = pmi1

1

· · · pmN1

N

. Let X = (xi), i ≤ N′ be a kernel vector of M. Then γ := αx1

1 · · · αxN′ N′

is a unit since (γ) =

i αxi i = (1).

15/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-46
SLIDE 46

Outline Introduction Classical Algorithms Practical improvements

Regulator computation

Let M = (mij) ∈ ZN′×N, be the relation matrix, B = {p1, . . . , pN}, and (αi) = pmi1

1

· · · pmN1

N

. Let X = (xi), i ≤ N′ be a kernel vector of M. Then γ := αx1

1 · · · αxN′ N′

is a unit since (γ) =

i αxi i = (1).

There is n such that log |γ| = nR∆

15/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-47
SLIDE 47

Outline Introduction Classical Algorithms Practical improvements

Regulator computation

Let M = (mij) ∈ ZN′×N, be the relation matrix, B = {p1, . . . , pN}, and (αi) = pmi1

1

· · · pmN1

N

. Let X = (xi), i ≤ N′ be a kernel vector of M. Then γ := αx1

1 · · · αxN′ N′

is a unit since (γ) =

i αxi i = (1).

There is n such that log |γ| = nR∆ Each kernel vector of M yields a multiple of R∆. We recover R∆ by successive real-GCD computation.

15/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-48
SLIDE 48

Outline Introduction Classical Algorithms Practical improvements

1 Introduction 2 Classical Algorithms 3 Practical improvements

16/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-49
SLIDE 49

Outline Introduction Classical Algorithms Practical improvements

Relation collection via sieving

Let a be an ideal. There is a′ ∼ a of the form a′ = aZ + (b+

√ ∆) 2

Z.

17/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-50
SLIDE 50

Outline Introduction Classical Algorithms Practical improvements

Relation collection via sieving

Let a be an ideal. There is a′ ∼ a of the form a′ = aZ + (b+

√ ∆) 2

Z. Then for each x, y we have γ := ax + y

  • b +

√ ∆ 2

  • ∈ a′.

17/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-51
SLIDE 51

Outline Introduction Classical Algorithms Practical improvements

Relation collection via sieving

Let a be an ideal. There is a′ ∼ a of the form a′ = aZ + (b+

√ ∆) 2

Z. Then for each x, y we have γ := ax + y

  • b +

√ ∆ 2

  • ∈ a′.

(JacWil09) There is an ideal b such that (γ) = a′b (that is a · b ∼ 1) and N(b) = ax2 + bxy + cy2.

17/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-52
SLIDE 52

Outline Introduction Classical Algorithms Practical improvements

Relation collection via sieving

Let a be an ideal. There is a′ ∼ a of the form a′ = aZ + (b+

√ ∆) 2

Z. Then for each x, y we have γ := ax + y

  • b +

√ ∆ 2

  • ∈ a′.

(JacWil09) There is an ideal b such that (γ) = a′b (that is a · b ∼ 1) and N(b) = ax2 + bxy + cy2.

1 Start with a :=

i pei i which is B-smooth.

17/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-53
SLIDE 53

Outline Introduction Classical Algorithms Practical improvements

Relation collection via sieving

Let a be an ideal. There is a′ ∼ a of the form a′ = aZ + (b+

√ ∆) 2

Z. Then for each x, y we have γ := ax + y

  • b +

√ ∆ 2

  • ∈ a′.

(JacWil09) There is an ideal b such that (γ) = a′b (that is a · b ∼ 1) and N(b) = ax2 + bxy + cy2.

1 Start with a :=

i pei i which is B-smooth.

2 Find x, y such that φa(x, y) := ax2 + bxy + cy2 is B-smooth 17/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-54
SLIDE 54

Outline Introduction Classical Algorithms Practical improvements

Relation collection via sieving

Let a be an ideal. There is a′ ∼ a of the form a′ = aZ + (b+

√ ∆) 2

Z. Then for each x, y we have γ := ax + y

  • b +

√ ∆ 2

  • ∈ a′.

(JacWil09) There is an ideal b such that (γ) = a′b (that is a · b ∼ 1) and N(b) = ax2 + bxy + cy2.

1 Start with a :=

i pei i which is B-smooth.

2 Find x, y such that φa(x, y) := ax2 + bxy + cy2 is B-smooth 3 Deduce B-smooth ideal b such that a · b ∼ 1 17/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-55
SLIDE 55

Outline Introduction Classical Algorithms Practical improvements

The quadratic sieve

Let φa(X, Y ) = aX 2 + bXY + cY 2 and B defining B. We look for B-smooth values of φa(X, Y ). (Jac99) : use the quadratic sieve

18/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-56
SLIDE 56

Outline Introduction Classical Algorithms Practical improvements

The quadratic sieve

Let φa(X, Y ) = aX 2 + bXY + cY 2 and B defining B. We look for B-smooth values of φa(X, Y ). (Jac99) : use the quadratic sieve We look for x ∈ [−M, M] such that φa(x, 1) is B-smooth. We do not want to test them all.

18/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-57
SLIDE 57

Outline Introduction Classical Algorithms Practical improvements

The quadratic sieve

Let φa(X, Y ) = aX 2 + bXY + cY 2 and B defining B. We look for B-smooth values of φa(X, Y ). (Jac99) : use the quadratic sieve We look for x ∈ [−M, M] such that φa(x, 1) is B-smooth. We do not want to test them all.

1 We compute the roots rp of φa(X, 1) mod p for p ≤ B. 18/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-58
SLIDE 58

Outline Introduction Classical Algorithms Practical improvements

The quadratic sieve

Let φa(X, Y ) = aX 2 + bXY + cY 2 and B defining B. We look for B-smooth values of φa(X, Y ). (Jac99) : use the quadratic sieve We look for x ∈ [−M, M] such that φa(x, 1) is B-smooth. We do not want to test them all.

1 We compute the roots rp of φa(X, 1) mod p for p ≤ B. 2 We initialize S of length 2M + 1 to 0. 18/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-59
SLIDE 59

Outline Introduction Classical Algorithms Practical improvements

The quadratic sieve

Let φa(X, Y ) = aX 2 + bXY + cY 2 and B defining B. We look for B-smooth values of φa(X, Y ). (Jac99) : use the quadratic sieve We look for x ∈ [−M, M] such that φa(x, 1) is B-smooth. We do not want to test them all.

1 We compute the roots rp of φa(X, 1) mod p for p ≤ B. 2 We initialize S of length 2M + 1 to 0. 3 For x = rp + kp ∈ [−M, M] do S[x] ← S[x] + log p because

φa(x, 1) = φa(rp + kp, 1) ≡ φa(rp, 1) ≡ 0 mod p.

18/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-60
SLIDE 60

Outline Introduction Classical Algorithms Practical improvements

The quadratic sieve

Let φa(X, Y ) = aX 2 + bXY + cY 2 and B defining B. We look for B-smooth values of φa(X, Y ). (Jac99) : use the quadratic sieve We look for x ∈ [−M, M] such that φa(x, 1) is B-smooth. We do not want to test them all.

1 We compute the roots rp of φa(X, 1) mod p for p ≤ B. 2 We initialize S of length 2M + 1 to 0. 3 For x = rp + kp ∈ [−M, M] do S[x] ← S[x] + log p because

φa(x, 1) = φa(rp + kp, 1) ≡ φa(rp, 1) ≡ 0 mod p.

4 For “large” S[x], test the smoothness of φa(x, 1). 18/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-61
SLIDE 61

Outline Introduction Classical Algorithms Practical improvements

Large prime variants

We speed-up the relation collection phase by considering p such that B ≤ N(p) ≤ B2.

19/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-62
SLIDE 62

Outline Introduction Classical Algorithms Practical improvements

Large prime variants

We speed-up the relation collection phase by considering p such that B ≤ N(p) ≤ B2. Single large prime variant. We authorize relations of the form a = p1 . . . pn

∈B

p, where B ≤ N(p) ≤ B2.

19/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-63
SLIDE 63

Outline Introduction Classical Algorithms Practical improvements

Large prime variants

We speed-up the relation collection phase by considering p such that B ≤ N(p) ≤ B2. Single large prime variant. We authorize relations of the form a = p1 . . . pn

∈B

p, where B ≤ N(p) ≤ B2. Double large prime variant . We authorise relations of the form a = p1 . . . pn

∈B

pp′, where B ≤ N(p), N(p′) ≤ B2.

19/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-64
SLIDE 64

Outline Introduction Classical Algorithms Practical improvements

Batch smoothness test

Quadratic sieve : for large S[x], we test the smoothness of φa(x, 1).

20/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-65
SLIDE 65

Outline Introduction Classical Algorithms Practical improvements

Batch smoothness test

Quadratic sieve : for large S[x], we test the smoothness of φa(x, 1). This can be done by trial division.

20/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-66
SLIDE 66

Outline Introduction Classical Algorithms Practical improvements

Batch smoothness test

Quadratic sieve : for large S[x], we test the smoothness of φa(x, 1). This can be done by trial division. We used an algorithm due to Berstein.

20/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-67
SLIDE 67

Outline Introduction Classical Algorithms Practical improvements

Batch smoothness test

Quadratic sieve : for large S[x], we test the smoothness of φa(x, 1). This can be done by trial division. We used an algorithm due to Berstein. Takes non negative x1, . . . , xK and primes p1, . . . , pN.

20/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-68
SLIDE 68

Outline Introduction Classical Algorithms Practical improvements

Batch smoothness test

Quadratic sieve : for large S[x], we test the smoothness of φa(x, 1). This can be done by trial division. We used an algorithm due to Berstein. Takes non negative x1, . . . , xK and primes p1, . . . , pN. returns the {p1, . . . , pN}-smooth part of each xi

20/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-69
SLIDE 69

Outline Introduction Classical Algorithms Practical improvements

Batch smoothness test

Quadratic sieve : for large S[x], we test the smoothness of φa(x, 1). This can be done by trial division. We used an algorithm due to Berstein. Takes non negative x1, . . . , xK and primes p1, . . . , pN. returns the {p1, . . . , pN}-smooth part of each xi Test is simultanous

20/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-70
SLIDE 70

Outline Introduction Classical Algorithms Practical improvements

Batch smoothness test

Quadratic sieve : for large S[x], we test the smoothness of φa(x, 1). This can be done by trial division. We used an algorithm due to Berstein. Takes non negative x1, . . . , xK and primes p1, . . . , pN. returns the {p1, . . . , pN}-smooth part of each xi Test is simultanous uses a tree structure.

20/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-71
SLIDE 71

Outline Introduction Classical Algorithms Practical improvements

Relation collection timings

Tab.: Comparison of the relation collection time for ∆ = −4(10n + 1)

n 0LP 1LP 2LP 2LP Batch 40 0.69 0.56 0.59 0.66 45 7.25 3.77 3.83 4.41 50 18.82 9.30 9.84 6.82 55 152.28 74.78 55.99 36.49 60 333.26 166.88 140.79 83.06 65 2033.97 853.27 478.57 368.31 70 2828.92 1277.94 822.39 670.63 75 14811.70 6033.89 3324.61 2732.68

21/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-72
SLIDE 72

Outline Introduction Classical Algorithms Practical improvements

Eliminating columns

Sparse large matrix. Especially with the large primes.

22/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-73
SLIDE 73

Outline Introduction Classical Algorithms Practical improvements

Eliminating columns

Sparse large matrix. Especially with the large primes. We want to eliminate columns to reduce its dimension and apply algorithms for dense matrices.

22/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-74
SLIDE 74

Outline Introduction Classical Algorithms Practical improvements

Eliminating columns

Sparse large matrix. Especially with the large primes. We want to eliminate columns to reduce its dimension and apply algorithms for dense matrices. We can use the standard Gaussian elimination. It consists of pivoting with an arbitrary row.

22/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-75
SLIDE 75

Outline Introduction Classical Algorithms Practical improvements

Eliminating columns

Sparse large matrix. Especially with the large primes. We want to eliminate columns to reduce its dimension and apply algorithms for dense matrices. We can use the standard Gaussian elimination. It consists of pivoting with an arbitrary row. Two problems encontered :

22/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-76
SLIDE 76

Outline Introduction Classical Algorithms Practical improvements

Eliminating columns

Sparse large matrix. Especially with the large primes. We want to eliminate columns to reduce its dimension and apply algorithms for dense matrices. We can use the standard Gaussian elimination. It consists of pivoting with an arbitrary row. Two problems encontered :

1 R3 can have Hamming weight w(R3) = w(R1) + w(R2). 22/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-77
SLIDE 77

Outline Introduction Classical Algorithms Practical improvements

Eliminating columns

Sparse large matrix. Especially with the large primes. We want to eliminate columns to reduce its dimension and apply algorithms for dense matrices. We can use the standard Gaussian elimination. It consists of pivoting with an arbitrary row. Two problems encontered :

1 R3 can have Hamming weight w(R3) = w(R1) + w(R2). 2 The coefficients might grow dramatically. 22/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-78
SLIDE 78

Outline Introduction Classical Algorithms Practical improvements

Eliminating columns

Sparse large matrix. Especially with the large primes. We want to eliminate columns to reduce its dimension and apply algorithms for dense matrices. We can use the standard Gaussian elimination. It consists of pivoting with an arbitrary row. Two problems encontered :

1 R3 can have Hamming weight w(R3) = w(R1) + w(R2). 2 The coefficients might grow dramatically.

We describe a method for managing the growth of the density and the size of the coefficients during the elimination.

22/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-79
SLIDE 79

Outline Introduction Classical Algorithms Practical improvements

Structured Elimination

Row R → cost function COST(R) taking into account :

23/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-80
SLIDE 80

Outline Introduction Classical Algorithms Practical improvements

Structured Elimination

Row R → cost function COST(R) taking into account :

1 Hamming weight of R 23/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-81
SLIDE 81

Outline Introduction Classical Algorithms Practical improvements

Structured Elimination

Row R → cost function COST(R) taking into account :

1 Hamming weight of R 2 Size of its coefficients 23/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-82
SLIDE 82

Outline Introduction Classical Algorithms Practical improvements

Structured Elimination

Row R → cost function COST(R) taking into account :

1 Hamming weight of R 2 Size of its coefficients

For a given column involving rows R1, ..., Rk we construct the com- plete graph G :

23/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-83
SLIDE 83

Outline Introduction Classical Algorithms Practical improvements

Structured Elimination

Row R → cost function COST(R) taking into account :

1 Hamming weight of R 2 Size of its coefficients

For a given column involving rows R1, ..., Rk we construct the com- plete graph G :

1 vertices Ri 23/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-84
SLIDE 84

Outline Introduction Classical Algorithms Practical improvements

Structured Elimination

Row R → cost function COST(R) taking into account :

1 Hamming weight of R 2 Size of its coefficients

For a given column involving rows R1, ..., Rk we construct the com- plete graph G :

1 vertices Ri 2 edges labeled with the cost of the recombination

Cij = COST(RECOMB(Ri, Rj))

23/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-85
SLIDE 85

Outline Introduction Classical Algorithms Practical improvements

Structured Elimination

Row R → cost function COST(R) taking into account :

1 Hamming weight of R 2 Size of its coefficients

For a given column involving rows R1, ..., Rk we construct the com- plete graph G :

1 vertices Ri 2 edges labeled with the cost of the recombination

Cij = COST(RECOMB(Ri, Rj)) We then construct the minimum spanning tree of G and eliminate rows from the leaves to the root.

23/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-86
SLIDE 86

Outline Introduction Classical Algorithms Practical improvements

Minimum spanning tree on Alberta’s map

Jasper Edmonton Red Deer Calgary 24/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-87
SLIDE 87

Outline Introduction Classical Algorithms Practical improvements

Minimum spanning tree on Alberta’s map

Jasper Edmonton Red Deer Calgary 5 h 3 h 5 h 24/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-88
SLIDE 88

Outline Introduction Classical Algorithms Practical improvements

Minimum spanning tree on Alberta’s map

Jasper Edmonton Red Deer Calgary 24/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-89
SLIDE 89

Outline Introduction Classical Algorithms Practical improvements

Minimum spanning tree on Alberta’s map

Jasper Edmonton Calgary 5 h 3 h 5 h 3 h Red Deer 2 h 2 h 24/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-90
SLIDE 90

Outline Introduction Classical Algorithms Practical improvements

Minimum spanning tree on Alberta’s map

Jasper Edmonton Red Deer Calgary 24/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-91
SLIDE 91

Outline Introduction Classical Algorithms Practical improvements

Minimum spanning tree on Alberta’s map

Jasper Edmonton Red Deer Calgary 5 h 3 h 5 h 24/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-92
SLIDE 92

Outline Introduction Classical Algorithms Practical improvements

Minimum spanning tree on Alberta’s map

Jasper Edmonton Red Deer Calgary 3 h 24/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-93
SLIDE 93

Outline Introduction Classical Algorithms Practical improvements

Minimum spanning tree on Alberta’s map

Jasper Edmonton Red Deer Calgary 3 h 5 h 5 h 2 h 2 h 24/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-94
SLIDE 94

Outline Introduction Classical Algorithms Practical improvements

Minimum spanning tree on Alberta’s map

Jasper Edmonton Red Deer Calgary 3 h 2 h 24/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-95
SLIDE 95

Outline Introduction Classical Algorithms Practical improvements

Minimum spanning tree on Alberta’s map

Jasper Edmonton Red Deer Calgary 3 h 2 h 5 h 3 h 2 h 24/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-96
SLIDE 96

Outline Introduction Classical Algorithms Practical improvements

Minimum spanning tree on Alberta’s map

Jasper Edmonton Red Deer Calgary 3 h 2 h 2 h 24/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-97
SLIDE 97

Outline Introduction Classical Algorithms Practical improvements

Timings Gaussian elimination for ∆ = 4(1060 + 3)

Naive Gauss Dedicated strategy i Col Nb HNF time i Col Nb HNF time 5 1067 357.9 5 1078 368.0 10 799 184.8 10 806 187.2 50 596 93.7 50 580 84.3 125 542 73.8 125 515 63.4 160 533 72.0 160 497 56.9 170 532 222.4 170 493 192.6

25/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-98
SLIDE 98

Outline Introduction Classical Algorithms Practical improvements

Regulator computation

We want to avoid kernel computation and use fewer vectors. Idea due to Vollmer

26/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-99
SLIDE 99

Outline Introduction Classical Algorithms Practical improvements

Regulator computation

We want to avoid kernel computation and use fewer vectors. Idea due to Vollmer

1 We find k extra relations

ri.

26/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-100
SLIDE 100

Outline Introduction Classical Algorithms Practical improvements

Regulator computation

We want to avoid kernel computation and use fewer vectors. Idea due to Vollmer

1 We find k extra relations

ri.

2 We solve the k linear systems

xiM = ri

26/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-101
SLIDE 101

Outline Introduction Classical Algorithms Practical improvements

Regulator computation

We want to avoid kernel computation and use fewer vectors. Idea due to Vollmer

1 We find k extra relations

ri.

2 We solve the k linear systems

xiM = ri

3 We augment the matrix M with the k extra rows

M′ :=   M

  • ri

 

  • xi

′ :=

  • xi

0 . . . 0 −1 0 . . . 0

  • .

26/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-102
SLIDE 102

Outline Introduction Classical Algorithms Practical improvements

Regulator computation

We want to avoid kernel computation and use fewer vectors. Idea due to Vollmer

1 We find k extra relations

ri.

2 We solve the k linear systems

xiM = ri

3 We augment the matrix M with the k extra rows

M′ :=   M

  • ri

 

  • xi

′ :=

  • xi

0 . . . 0 −1 0 . . . 0

  • .

The xi

′ are kernel vectors of the new relation matrix M′.

26/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-103
SLIDE 103

Outline Introduction Classical Algorithms Practical improvements

Timings regulator computation

Kernel computation in O(L∆(1/2, √ 2)).

27/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-104
SLIDE 104

Outline Introduction Classical Algorithms Practical improvements

Timings regulator computation

Kernel computation in O(L∆(1/2, √ 2)). System solving in O(L∆(1/2, 3/ √ 8)).

27/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-105
SLIDE 105

Outline Introduction Classical Algorithms Practical improvements

Timings regulator computation

Kernel computation in O(L∆(1/2, √ 2)). System solving in O(L∆(1/2, 3/ √ 8)).

Tab.: Regulator computation time for ∆ = 4(10n + 3)

n kernel computation system solving 40 9.7 3.4 45 17.6 6.1 50 39.9 18.2 55 126.7 53.0 60 424.1 140.0 65 514.8 320.2 70 2728.5 791.1 75 8587.8 1775.8

27/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-106
SLIDE 106

Outline Introduction Classical Algorithms Practical improvements

Overall time comparison

Discriminants of the form ∆ = 4(10n + 3)

Tab.: Overall time in seconds

n Old New 40 35.6 15.5 45 107.0 57.0 50 224.0 119.0 55 756.0 271.0 60 1535.0 655.0 65 24607.0 3125.0 70 38818.0 9991.0

28/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-107
SLIDE 107

Outline Introduction Classical Algorithms Practical improvements

Heroic computations

In the imaginary case, let ∆n = −4(10n + 1)

29/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-108
SLIDE 108

Outline Introduction Classical Algorithms Practical improvements

Heroic computations

In the imaginary case, let ∆n = −4(10n + 1)

Cl∆100 ∼ = C(2)7 × C(146249177947219527457169431585749 5335176880879072) Cl∆110 ∼ = C(2)11 × C(857640364195029289112195513145214 8838284294200071440)

29/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-109
SLIDE 109

Outline Introduction Classical Algorithms Practical improvements

Heroic computations

In the imaginary case, let ∆n = −4(10n + 1)

Cl∆100 ∼ = C(2)7 × C(146249177947219527457169431585749 5335176880879072) Cl∆110 ∼ = C(2)11 × C(857640364195029289112195513145214 8838284294200071440) In the real case, let ∆110 = 4(10110 + 3)

29/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-110
SLIDE 110

Outline Introduction Classical Algorithms Practical improvements

Heroic computations

In the imaginary case, let ∆n = −4(10n + 1)

Cl∆100 ∼ = C(2)7 × C(146249177947219527457169431585749 5335176880879072) Cl∆110 ∼ = C(2)11 × C(857640364195029289112195513145214 8838284294200071440) In the real case, let ∆110 = 4(10110 + 3) Cl∆110 ∼ = Z/12Z × Z/2Z ,

29/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-111
SLIDE 111

Outline Introduction Classical Algorithms Practical improvements

Heroic computations

In the imaginary case, let ∆n = −4(10n + 1)

Cl∆100 ∼ = C(2)7 × C(146249177947219527457169431585749 5335176880879072) Cl∆110 ∼ = C(2)11 × C(857640364195029289112195513145214 8838284294200071440) In the real case, let ∆110 = 4(10110 + 3) Cl∆110 ∼ = Z/12Z × Z/2Z , R∆110 ≈ 70795074091059722608293227655184666748799878533480399.67302

29/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation

slide-112
SLIDE 112

Outline Introduction Classical Algorithms Practical improvements

Conclusion

Thank you for your attention

30/30 J-F. Biasse, M. J. Jacobson Jr Improvements in class group and regulator computation