integer relations among real numbers...algorithms for finding integral relations the problem of...

134
Integer Relations among Real Numbers Darya Romanova Saint-Petersburg State University Joint Advanced Student School 2007

Upload: others

Post on 22-Jan-2021

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Integer Relations among Real Numbers

Darya Romanova

Saint-Petersburg State University

Joint Advanced Student School 2007

Page 2: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Outline

1 IntroductionStarting ExamplesInteger RelationsAlgorithms for Finding Integral Relations

2 LLL-based AlgorithmsLattices and Their BasesHJLS

3 PSLQ

4 Usage

5 Applications"BBP" Formula for PiBifurcation Points in Chaos Theory

6 Further Reading

Page 3: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Outline

1 IntroductionStarting ExamplesInteger RelationsAlgorithms for Finding Integral Relations

2 LLL-based AlgorithmsLattices and Their BasesHJLS

3 PSLQ

4 Usage

5 Applications"BBP" Formula for PiBifurcation Points in Chaos Theory

6 Further Reading

Page 4: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Starting Examples

Let X be a mathematical expression, that can be approximatednumerically. (For example a definite integral.)

Suppose we know, that X is rational.

X ≈ 2.33333333333333333 . . . ⇒ X = 7/3.

X ≈ 0.1412742382271468144044321 . . . ⇒ X = ?

Page 5: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Starting Examples

Let X be a mathematical expression, that can be approximatednumerically. (For example a definite integral.)

Suppose we know, that X is rational.

X ≈ 2.33333333333333333 . . . ⇒ X = 7/3.

X ≈ 0.1412742382271468144044321 . . . ⇒ X = ?

Page 6: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Starting Examples

Let X be a mathematical expression, that can be approximatednumerically. (For example a definite integral.)

Suppose we know, that X is rational.

X ≈ 2.33333333333333333 . . . ⇒ X =

7/3.

X ≈ 0.1412742382271468144044321 . . . ⇒ X = ?

Page 7: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Starting Examples

Let X be a mathematical expression, that can be approximatednumerically. (For example a definite integral.)

Suppose we know, that X is rational.

X ≈ 2.33333333333333333 . . . ⇒ X = 7/3.

X ≈ 0.1412742382271468144044321 . . . ⇒ X = ?

Page 8: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Starting Examples

Let X be a mathematical expression, that can be approximatednumerically. (For example a definite integral.)

Suppose we know, that X is rational.

X ≈ 2.33333333333333333 . . . ⇒ X = 7/3.

X ≈ 0.1412742382271468144044321 . . . ⇒ X =

?

Page 9: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Starting Examples

Let X be a mathematical expression, that can be approximatednumerically. (For example a definite integral.)

Suppose we know, that X is rational.

X ≈ 2.33333333333333333 . . . ⇒ X = 7/3.

X ≈ 0.1412742382271468144044321 . . . ⇒ X = ?

Page 10: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Continuous Fractions

Let’s make X into continuous fraction:

1/0.14127423822714681440 ≈ 7.0784313725490196080

1/0.078431372549019607843139 ≈ 12.749999999999999975

1/0.749999999999999975 ≈ 1.3333333333333333778

1/0.3333333333333333778 ≈ 2.9999999999999995998

1/0.9999999999999995998 ≈ 1.0000000000000004002

1/0.0000000000000004002 ≈ 24987506246876561, 719

Page 11: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Continuous Fractions

Let’s make X into continuous fraction:

1/0.14127423822714681440 ≈ 7.0784313725490196080

1/0.078431372549019607843139 ≈ 12.749999999999999975

1/0.749999999999999975 ≈ 1.3333333333333333778

1/0.3333333333333333778 ≈ 2.9999999999999995998

1/0.9999999999999995998 ≈ 1.0000000000000004002

1/0.0000000000000004002 ≈ 24987506246876561, 719

Page 12: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Continuous Fractions

0.14127423822714681440 . . . ≈1

7 +1

12 +1

1 +1

2 +1

1 +1

24987506246876561, 719

X =1

7 +1

12 +1

1 +1

2 +11

=51

361.

(Actually the period of51

361is 342.)

Page 13: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Continuous Fractions

0.14127423822714681440 . . . ≈1

7 +1

12 +1

1 +1

2 +1

1 +1

24987506246876561, 719

X =1

7 +1

12 +1

1 +1

2 +11

=51

361.

(Actually the period of51

361is 342.)

Page 14: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Continuous Fractions

0.14127423822714681440 . . . ≈1

7 +1

12 +1

1 +1

2 +1

1 +1

24987506246876561, 719

X =1

7 +1

12 +1

1 +1

2 +11

=51

361.

(Actually the period of51

361is 342.)

Page 15: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Quadratic Irrationalities

Now suppose we don’t know if X is rational. But we do knowthat it is a quadratic irrationality. (That is a root of an equationax2 + bx + c = 0 with a, b, c rational.)

Theorem(Lagrange)X is a quadratic irrationality ⇔ its continuos fraction is periodic.

Page 16: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Quadratic Irrationalities

Now suppose we don’t know if X is rational. But we do knowthat it is a quadratic irrationality. (That is a root of an equationax2 + bx + c = 0 with a, b, c rational.)

Theorem(Lagrange)X is a quadratic irrationality ⇔ its continuos fraction is periodic.

Page 17: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Quadratic Irrationalities

Example:√

3

= 1 + (√

3− 1) = 1 +2√

3 + 1= 1 +

1√3 + 12

= 1 +1

2 + (√

3− 1)

2

= 1 +1

1 +

√3− 12

= 1 +1

1 +2

2(√

3 + 1)

= 1 +1

1 +1√

3 + 1

= 1 +1

1 +1

2 + (√

3− 1)

= 1 +1

1 +1

2 +1

1 +1

2 + ...

.

Page 18: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Quadratic Irrationalities

Example:√

3 = 1 + (√

3− 1)

= 1 +2√

3 + 1= 1 +

1√3 + 12

= 1 +1

2 + (√

3− 1)

2

= 1 +1

1 +

√3− 12

= 1 +1

1 +2

2(√

3 + 1)

= 1 +1

1 +1√

3 + 1

= 1 +1

1 +1

2 + (√

3− 1)

= 1 +1

1 +1

2 +1

1 +1

2 + ...

.

Page 19: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Quadratic Irrationalities

Example:√

3 = 1 + (√

3− 1) = 1 +2√

3 + 1

= 1 +1√

3 + 12

= 1 +1

2 + (√

3− 1)

2

= 1 +1

1 +

√3− 12

= 1 +1

1 +2

2(√

3 + 1)

= 1 +1

1 +1√

3 + 1

= 1 +1

1 +1

2 + (√

3− 1)

= 1 +1

1 +1

2 +1

1 +1

2 + ...

.

Page 20: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Quadratic Irrationalities

Example:√

3 = 1 + (√

3− 1) = 1 +2√

3 + 1= 1 +

1√3 + 12

= 1 +1

2 + (√

3− 1)

2

= 1 +1

1 +

√3− 12

= 1 +1

1 +2

2(√

3 + 1)

= 1 +1

1 +1√

3 + 1

= 1 +1

1 +1

2 + (√

3− 1)

= 1 +1

1 +1

2 +1

1 +1

2 + ...

.

Page 21: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Quadratic Irrationalities

Example:√

3 = 1 + (√

3− 1) = 1 +2√

3 + 1= 1 +

1√3 + 12

= 1 +1

2 + (√

3− 1)

2

= 1 +1

1 +

√3− 12

= 1 +1

1 +2

2(√

3 + 1)

= 1 +1

1 +1√

3 + 1

= 1 +1

1 +1

2 + (√

3− 1)

= 1 +1

1 +1

2 +1

1 +1

2 + ...

.

Page 22: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Quadratic Irrationalities

Example:√

3 = 1 + (√

3− 1) = 1 +2√

3 + 1= 1 +

1√3 + 12

= 1 +1

2 + (√

3− 1)

2

= 1 +1

1 +

√3− 12

= 1 +1

1 +2

2(√

3 + 1)

= 1 +1

1 +1√

3 + 1

= 1 +1

1 +1

2 + (√

3− 1)

= 1 +1

1 +1

2 +1

1 +1

2 + ...

.

Page 23: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Quadratic Irrationalities

Example:√

3 = 1 + (√

3− 1) = 1 +2√

3 + 1= 1 +

1√3 + 12

= 1 +1

2 + (√

3− 1)

2

= 1 +1

1 +

√3− 12

= 1 +1

1 +2

2(√

3 + 1)

= 1 +1

1 +1√

3 + 1

= 1 +1

1 +1

2 + (√

3− 1)

= 1 +1

1 +1

2 +1

1 +1

2 + ...

.

Page 24: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Quadratic Irrationalities

Example:√

3 = 1 + (√

3− 1) = 1 +2√

3 + 1= 1 +

1√3 + 12

= 1 +1

2 + (√

3− 1)

2

= 1 +1

1 +

√3− 12

= 1 +1

1 +2

2(√

3 + 1)

= 1 +1

1 +1√

3 + 1

= 1 +1

1 +1

2 + (√

3− 1)

= 1 +1

1 +1

2 +1

1 +1

2 + ...

.

Page 25: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Quadratic Irrationalities

Example:√

3 = 1 + (√

3− 1) = 1 +2√

3 + 1= 1 +

1√3 + 12

= 1 +1

2 + (√

3− 1)

2

= 1 +1

1 +

√3− 12

= 1 +1

1 +2

2(√

3 + 1)

= 1 +1

1 +1√

3 + 1

= 1 +1

1 +1

2 + (√

3− 1)

= 1 +1

1 +1

2 +1

1 +1

2 + ...

.

Page 26: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Quadratic Irrationalities

Example:√

3 = 1 + (√

3− 1) = 1 +2√

3 + 1= 1 +

1√3 + 12

= 1 +1

2 + (√

3− 1)

2

= 1 +1

1 +

√3− 12

= 1 +1

1 +2

2(√

3 + 1)

= 1 +1

1 +1√

3 + 1

= 1 +1

1 +1

2 + (√

3− 1)

= 1 +1

1 +1

2 +1

1 +1

2 + ...

.

Page 27: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Integer Relations

Let’s generalize the problem.

Definitionα is an algebraic number if there exist a0, . . . , an ∈ Z such thatanα

n + . . . + a1α + a0 = 0 and an 6= 0. The degree of α is thesmallest of such n.

Remarkα is algebraic of degree ≤ n ⇔ (1, α, α2, . . . , αn) posess aninteger relation [see below].

DefinitionAn integer relation for n-tuple (x1, . . . , xn) ∈ Rn is an n-tuple0 6= (a1, . . . , an) ∈ Zn such that a1x1 + . . . + anxn = 0.

Page 28: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Integer Relations

Let’s generalize the problem.

Definitionα is an algebraic number if there exist a0, . . . , an ∈ Z such thatanα

n + . . . + a1α + a0 = 0 and an 6= 0. The degree of α is thesmallest of such n.

Remarkα is algebraic of degree ≤ n ⇔ (1, α, α2, . . . , αn) posess aninteger relation [see below].

DefinitionAn integer relation for n-tuple (x1, . . . , xn) ∈ Rn is an n-tuple0 6= (a1, . . . , an) ∈ Zn such that a1x1 + . . . + anxn = 0.

Page 29: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Integer Relations

Let’s generalize the problem.

Definitionα is an algebraic number if there exist a0, . . . , an ∈ Z such thatanα

n + . . . + a1α + a0 = 0 and an 6= 0. The degree of α is thesmallest of such n.

Remarkα is algebraic of degree ≤ n ⇔ (1, α, α2, . . . , αn) posess aninteger relation [see below].

DefinitionAn integer relation for n-tuple (x1, . . . , xn) ∈ Rn is an n-tuple0 6= (a1, . . . , an) ∈ Zn such that a1x1 + . . . + anxn = 0.

Page 30: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Integer Relations

Let’s generalize the problem.

Definitionα is an algebraic number if there exist a0, . . . , an ∈ Z such thatanα

n + . . . + a1α + a0 = 0 and an 6= 0. The degree of α is thesmallest of such n.

Remarkα is algebraic of degree ≤ n ⇔ (1, α, α2, . . . , αn) posess aninteger relation [see below].

DefinitionAn integer relation for n-tuple (x1, . . . , xn) ∈ Rn is an n-tuple0 6= (a1, . . . , an) ∈ Zn such that a1x1 + . . . + anxn = 0.

Page 31: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Algorithms for Finding Integral Relations

The problem of finding an integer relation for two numbers(x1, x2) can be solved by applying the Euclidian algorithm tox1, x2, or, equivalently, by computing the continued fractionexpansion of x1/x2.

The generalization for n ≥ 3 was attempted by Euler, Jacobi,Minkowski, Perron, Bernstein, among others.

The best known and most used algorithms at the present timeare either algorithms based on lattice basis reduction algorithmby Lenstra, Lenstra, Jr. and Lovász (LLL) or PSLQ algorithmbased on ideas of Ferguson, Forcade and Bergman. (Bothdiscovered in 1970-s –1980-s.)

Page 32: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Algorithms for Finding Integral Relations

The problem of finding an integer relation for two numbers(x1, x2) can be solved by applying the Euclidian algorithm tox1, x2, or, equivalently, by computing the continued fractionexpansion of x1/x2.

The generalization for n ≥ 3 was attempted by Euler, Jacobi,Minkowski, Perron, Bernstein, among others.

The best known and most used algorithms at the present timeare either algorithms based on lattice basis reduction algorithmby Lenstra, Lenstra, Jr. and Lovász (LLL) or PSLQ algorithmbased on ideas of Ferguson, Forcade and Bergman. (Bothdiscovered in 1970-s –1980-s.)

Page 33: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Algorithms for Finding Integral Relations

The problem of finding an integer relation for two numbers(x1, x2) can be solved by applying the Euclidian algorithm tox1, x2, or, equivalently, by computing the continued fractionexpansion of x1/x2.

The generalization for n ≥ 3 was attempted by Euler, Jacobi,Minkowski, Perron, Bernstein, among others.

The best known and most used algorithms at the present timeare either algorithms based on lattice basis reduction algorithmby Lenstra, Lenstra, Jr. and Lovász (LLL) or PSLQ algorithmbased on ideas of Ferguson, Forcade and Bergman. (Bothdiscovered in 1970-s –1980-s.)

Page 34: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Outline

1 IntroductionStarting ExamplesInteger RelationsAlgorithms for Finding Integral Relations

2 LLL-based AlgorithmsLattices and Their BasesHJLS

3 PSLQ

4 Usage

5 Applications"BBP" Formula for PiBifurcation Points in Chaos Theory

6 Further Reading

Page 35: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Some Reminders from Linear Algebra

Let Rn be the n -dimensional real vector space (n > 1) with

inner product: 〈x, y〉 =n∑

j=1xjyj .

‖y‖ =√〈y, y〉 is the length of y ∈ Rn.

x and y are orthogonal ⇔ 〈x, y〉 = 0.

For a linear subspace E ⊂ Rn we denote by E⊥ ⊂ Rn theorthogonal complement of E (i.e., the subspace consistingof all vectors that are orthogonal to E).

Page 36: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Some Reminders from Linear Algebra

Let Rn be the n -dimensional real vector space (n > 1) with

inner product: 〈x, y〉 =n∑

j=1xjyj .

‖y‖ =√〈y, y〉 is the length of y ∈ Rn.

x and y are orthogonal ⇔ 〈x, y〉 = 0.

For a linear subspace E ⊂ Rn we denote by E⊥ ⊂ Rn theorthogonal complement of E (i.e., the subspace consistingof all vectors that are orthogonal to E).

Page 37: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Some Reminders from Linear Algebra

Let Rn be the n -dimensional real vector space (n > 1) with

inner product: 〈x, y〉 =n∑

j=1xjyj .

‖y‖ =√〈y, y〉 is the length of y ∈ Rn.

x and y are orthogonal ⇔ 〈x, y〉 = 0.

For a linear subspace E ⊂ Rn we denote by E⊥ ⊂ Rn theorthogonal complement of E (i.e., the subspace consistingof all vectors that are orthogonal to E).

Page 38: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Some Reminders from Linear Algebra

Let Rn be the n -dimensional real vector space (n > 1) with

inner product: 〈x, y〉 =n∑

j=1xjyj .

‖y‖ =√〈y, y〉 is the length of y ∈ Rn.

x and y are orthogonal ⇔ 〈x, y〉 = 0.

For a linear subspace E ⊂ Rn we denote by E⊥ ⊂ Rn theorthogonal complement of E (i.e., the subspace consistingof all vectors that are orthogonal to E).

Page 39: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Some Reminders from Linear Algebra

E and E⊥ :

Page 40: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Some Reminders from Linear Algebra

The transpose of matrix A is AT .

If b1, . . . , br ∈ Rn then [b1, . . . , br ] will denote n × r matrixwhich has b1, . . . , br ∈ Rn as columns.span(b1, . . . , br ) is the linear space, spanned on b1, . . . , br :

span(b1, . . . , br ) =

{j=r∑j=1

ajbj∣∣aj ∈ R

}.

Page 41: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Some Reminders from Linear Algebra

The transpose of matrix A is AT .

If b1, . . . , br ∈ Rn then [b1, . . . , br ] will denote n × r matrixwhich has b1, . . . , br ∈ Rn as columns.

span(b1, . . . , br ) is the linear space, spanned on b1, . . . , br :

span(b1, . . . , br ) =

{j=r∑j=1

ajbj∣∣aj ∈ R

}.

Page 42: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Some Reminders from Linear Algebra

The transpose of matrix A is AT .

If b1, . . . , br ∈ Rn then [b1, . . . , br ] will denote n × r matrixwhich has b1, . . . , br ∈ Rn as columns.span(b1, . . . , br ) is the linear space, spanned on b1, . . . , br :

span(b1, . . . , br ) =

{j=r∑j=1

ajbj∣∣aj ∈ R

}.

Page 43: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Gram-Schmidt orthogonalization

With b0 = x, b1, . . . , bn ∈ Rn we associate the orthogonalsystem b∗0, . . . , b∗n that are defined inductively:

b∗0 = x,

b∗ι̇ = bι̇ −ι̇−1∑j=0

⟨bι̇, b∗j

⟩⟨b∗j , b∗j

⟩b∗j , ι̇ = 1, . . . , n.

Note: b∗ι̇ is orthogonal to span(b∗0, . . . , b∗ι̇−1)=span(b0, . . . , bι̇−1).

Page 44: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Gram-Schmidt orthogonalization

With b0 = x, b1, . . . , bn ∈ Rn we associate the orthogonalsystem b∗0, . . . , b∗n that are defined inductively:

b∗0 = x,

b∗ι̇ = bι̇ −ι̇−1∑j=0

⟨bι̇, b∗j

⟩⟨b∗j , b∗j

⟩b∗j , ι̇ = 1, . . . , n.

Note: b∗ι̇ is orthogonal to span(b∗0, . . . , b∗ι̇−1)=span(b0, . . . , bι̇−1).

Page 45: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Gram-Schmidt orthogonalization

With b0 = x, b1, . . . , bn ∈ Rn we associate the orthogonalsystem b∗0, . . . , b∗n that are defined inductively:

b∗0 = x,

b∗ι̇ = bι̇ −ι̇−1∑j=0

⟨bι̇, b∗j

⟩⟨b∗j , b∗j

⟩b∗j , ι̇ = 1, . . . , n.

Note: b∗ι̇ is orthogonal to span(b∗0, . . . , b∗ι̇−1)=span(b0, . . . , bι̇−1).

Page 46: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Gram-Schmidt orthogonalization

With b0 = x, b1, . . . , bn ∈ Rn we associate the orthogonalsystem b∗0, . . . , b∗n that are defined inductively:

b∗0 = x,

b∗ι̇ = bι̇ −ι̇−1∑j=0

⟨bι̇, b∗j

⟩⟨b∗j , b∗j

⟩b∗j , ι̇ = 1, . . . , n.

Note: b∗ι̇ is orthogonal to span(b∗0, . . . , b∗ι̇−1)=span(b0, . . . , bι̇−1).

Page 47: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Lattices

DefinitionA lattice L ⊂ Rn is an additive closure of some linear

independent b1, . . . , br ∈ Rn, i.e. L =

{r∑

i=1mibi |mi ∈ Z

}.

Page 48: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Lattices

DefinitionA lattice L ⊂ Rn is an additive closure of some linear

independent b1, . . . , br ∈ Rn, i.e. L =

{r∑

i=1mibi |mi ∈ Z

}.

Page 49: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Lattices

Such b1, . . . , br are called the basis of L. Of course they are notdefined uniquely.

Page 50: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Lattices

Such b1, . . . , br are called the basis of L. Of course they are notdefined uniquely.

Page 51: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Lattices

An important example: the lattice Lx ⊂ Zn of all integerrelations for x together with 0 : Lx := {m ∈ Zn |〈x, m〉 = 0} .

Page 52: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Lattices

An important example: the lattice Lx ⊂ Zn of all integerrelations for x together with 0 : Lx := {m ∈ Zn |〈x, m〉 = 0} .

Page 53: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Bases

We will perform two types of elementary basis exchangeoperations on a current basis b1, . . . , bn of a given lattice:

Exchange steps: Interchange bι̇ and bι̇+1 for some ι̇.

Size-reduction steps: Replace bι̇ with bι̇ − pbj wherep ∈ Z for some 1 ≤ j < ι̇.

With every basis b1, . . . , bn there is the dual basis c1, . . . , cn:[c1, . . . , cn]

T = [b1, . . . , bn]−1 ⇔ [c1, . . . , cn]

T [b1, . . . , bn] = Id

⇔⟨bj , ck

⟩= δjk =

{0, j 6= k1, j = k

.

Note: b1, . . . , bn ∈ Zn andB = [b1, . . . , bn] unimodular (det B = ±1) ⇒ c1, . . . , cn ∈ Zn.

Page 54: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Bases

We will perform two types of elementary basis exchangeoperations on a current basis b1, . . . , bn of a given lattice:

Exchange steps: Interchange bι̇ and bι̇+1 for some ι̇.

Size-reduction steps: Replace bι̇ with bι̇ − pbj wherep ∈ Z for some 1 ≤ j < ι̇.

With every basis b1, . . . , bn there is the dual basis c1, . . . , cn:[c1, . . . , cn]

T = [b1, . . . , bn]−1 ⇔ [c1, . . . , cn]

T [b1, . . . , bn] = Id

⇔⟨bj , ck

⟩= δjk =

{0, j 6= k1, j = k

.

Note: b1, . . . , bn ∈ Zn andB = [b1, . . . , bn] unimodular (det B = ±1) ⇒ c1, . . . , cn ∈ Zn.

Page 55: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Bases

We will perform two types of elementary basis exchangeoperations on a current basis b1, . . . , bn of a given lattice:

Exchange steps: Interchange bι̇ and bι̇+1 for some ι̇.

Size-reduction steps: Replace bι̇ with bι̇ − pbj wherep ∈ Z for some 1 ≤ j < ι̇.

With every basis b1, . . . , bn there is the dual basis c1, . . . , cn:[c1, . . . , cn]

T = [b1, . . . , bn]−1 ⇔ [c1, . . . , cn]

T [b1, . . . , bn] = Id

⇔⟨bj , ck

⟩= δjk =

{0, j 6= k1, j = k

.

Note: b1, . . . , bn ∈ Zn andB = [b1, . . . , bn] unimodular (det B = ±1) ⇒ c1, . . . , cn ∈ Zn.

Page 56: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Bases

We will perform two types of elementary basis exchangeoperations on a current basis b1, . . . , bn of a given lattice:

Exchange steps: Interchange bι̇ and bι̇+1 for some ι̇.

Size-reduction steps: Replace bι̇ with bι̇ − pbj wherep ∈ Z for some 1 ≤ j < ι̇.

With every basis b1, . . . , bn there is the dual basis c1, . . . , cn:[c1, . . . , cn]

T = [b1, . . . , bn]−1 ⇔ [c1, . . . , cn]

T [b1, . . . , bn] = Id

⇔⟨bj , ck

⟩= δjk =

{0, j 6= k1, j = k

.

Note: b1, . . . , bn ∈ Zn andB = [b1, . . . , bn] unimodular (det B = ±1) ⇒ c1, . . . , cn ∈ Zn.

Page 57: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Bases

We will perform two types of elementary basis exchangeoperations on a current basis b1, . . . , bn of a given lattice:

Exchange steps: Interchange bι̇ and bι̇+1 for some ι̇.

Size-reduction steps: Replace bι̇ with bι̇ − pbj wherep ∈ Z for some 1 ≤ j < ι̇.

With every basis b1, . . . , bn there is the dual basis c1, . . . , cn:[c1, . . . , cn]

T = [b1, . . . , bn]−1 ⇔ [c1, . . . , cn]

T [b1, . . . , bn] = Id

⇔⟨bj , ck

⟩= δjk =

{0, j 6= k1, j = k

.

Note: b1, . . . , bn ∈ Zn andB = [b1, . . . , bn] unimodular (det B = ±1) ⇒ c1, . . . , cn ∈ Zn.

Page 58: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: Source; Model of Computation; Notation

Source: J. Hastad, B. Just, J. C. Lagarias, and C. P. Schnorr.Polynomial Time Algorithms for Finding Integer Relationsamong Real Numbers.SIAM J. Comput., Vol.18, 1989, pp.859-881.

Model of Computation:Computation with real numbers.Operations: addition, subtraction, multiplication, division,comparison, the nearest integer(dc) — at unit cost.

Notation:⟨bι̇, b∗j

⟩⟨b∗j , b∗j

⟩ =: µι̇j .

λ(x) := the length of the shortest integer relation for x.If there are no relations then λ(x) := ∞.

Page 59: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: Source; Model of Computation; Notation

Source: J. Hastad, B. Just, J. C. Lagarias, and C. P. Schnorr.Polynomial Time Algorithms for Finding Integer Relationsamong Real Numbers.SIAM J. Comput., Vol.18, 1989, pp.859-881.

Model of Computation:Computation with real numbers.Operations: addition, subtraction, multiplication, division,comparison, the nearest integer(dc) — at unit cost.

Notation:⟨bι̇, b∗j

⟩⟨b∗j , b∗j

⟩ =: µι̇j .

λ(x) := the length of the shortest integer relation for x.If there are no relations then λ(x) := ∞.

Page 60: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: Source; Model of Computation; Notation

Source: J. Hastad, B. Just, J. C. Lagarias, and C. P. Schnorr.Polynomial Time Algorithms for Finding Integer Relationsamong Real Numbers.SIAM J. Comput., Vol.18, 1989, pp.859-881.

Model of Computation:Computation with real numbers.Operations: addition, subtraction, multiplication, division,comparison, the nearest integer(dc) — at unit cost.

Notation:⟨bι̇, b∗j

⟩⟨b∗j , b∗j

⟩ =: µι̇j .

λ(x) := the length of the shortest integer relation for x.If there are no relations then λ(x) := ∞.

Page 61: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: Source; Model of Computation; Notation

Source: J. Hastad, B. Just, J. C. Lagarias, and C. P. Schnorr.Polynomial Time Algorithms for Finding Integer Relationsamong Real Numbers.SIAM J. Comput., Vol.18, 1989, pp.859-881.

Model of Computation:Computation with real numbers.Operations: addition, subtraction, multiplication, division,comparison, the nearest integer(dc) — at unit cost.

Notation:⟨bι̇, b∗j

⟩⟨b∗j , b∗j

⟩ =: µι̇j .

λ(x) := the length of the shortest integer relation for x.If there are no relations then λ(x) := ∞.

Page 62: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: the Algorithm

Input : x ∈ Rn, k ∈ N.

(1) Initiation: b0 := x; b1, . . . , bn := standard basis of Zn.Compute µι̇j and ‖b∗ι̇ ‖

2 = 〈b∗ι̇ , b∗ι̇ 〉 .(2) Termination test :If ‖b∗n‖ 6= 0 then an integer relation is found.Compute [c1, . . . , cn]

T = [b1, . . . , bn]−1 and output the integer

relation cn. Stop.If

∥∥b∗j∥∥ ≤ 1/2k , 1 ≤ j ≤ n then no small integer relation exist.

Output "λ(x) ≥ 2k " and stop.(3) Exchange step:Choose from 1 ≤ ι̇ ≤ n that ι̇ that maximizes 2ι̇ ‖b∗ι̇ ‖ .Size-reduce bι̇+1: bι̇+1 := bι̇+1 −

⌈µι̇+1,ι̇

⌋bι̇.

Update µι̇+1,j for j = 1, . . . , ι̇.Exchange bι̇ and bι̇+1.

Update ‖b∗ν‖2 , µνj , µjν for ν = ι̇, ι̇ + 1, 1 ≤ j ≤ n. Go to (2).

Page 63: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: the Algorithm

Input : x ∈ Rn, k ∈ N.(1) Initiation: b0 := x; b1, . . . , bn := standard basis of Zn.Compute µι̇j and ‖b∗ι̇ ‖

2 = 〈b∗ι̇ , b∗ι̇ 〉 .

(2) Termination test :If ‖b∗n‖ 6= 0 then an integer relation is found.Compute [c1, . . . , cn]

T = [b1, . . . , bn]−1 and output the integer

relation cn. Stop.If

∥∥b∗j∥∥ ≤ 1/2k , 1 ≤ j ≤ n then no small integer relation exist.

Output "λ(x) ≥ 2k " and stop.(3) Exchange step:Choose from 1 ≤ ι̇ ≤ n that ι̇ that maximizes 2ι̇ ‖b∗ι̇ ‖ .Size-reduce bι̇+1: bι̇+1 := bι̇+1 −

⌈µι̇+1,ι̇

⌋bι̇.

Update µι̇+1,j for j = 1, . . . , ι̇.Exchange bι̇ and bι̇+1.

Update ‖b∗ν‖2 , µνj , µjν for ν = ι̇, ι̇ + 1, 1 ≤ j ≤ n. Go to (2).

Page 64: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: the Algorithm

Input : x ∈ Rn, k ∈ N.(1) Initiation: b0 := x; b1, . . . , bn := standard basis of Zn.Compute µι̇j and ‖b∗ι̇ ‖

2 = 〈b∗ι̇ , b∗ι̇ 〉 .(2) Termination test :If ‖b∗n‖ 6= 0 then an integer relation is found.Compute [c1, . . . , cn]

T = [b1, . . . , bn]−1 and output the integer

relation cn. Stop.

If∥∥b∗j

∥∥ ≤ 1/2k , 1 ≤ j ≤ n then no small integer relation exist.Output "λ(x) ≥ 2k " and stop.(3) Exchange step:Choose from 1 ≤ ι̇ ≤ n that ι̇ that maximizes 2ι̇ ‖b∗ι̇ ‖ .Size-reduce bι̇+1: bι̇+1 := bι̇+1 −

⌈µι̇+1,ι̇

⌋bι̇.

Update µι̇+1,j for j = 1, . . . , ι̇.Exchange bι̇ and bι̇+1.

Update ‖b∗ν‖2 , µνj , µjν for ν = ι̇, ι̇ + 1, 1 ≤ j ≤ n. Go to (2).

Page 65: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: the Algorithm

Input : x ∈ Rn, k ∈ N.(1) Initiation: b0 := x; b1, . . . , bn := standard basis of Zn.Compute µι̇j and ‖b∗ι̇ ‖

2 = 〈b∗ι̇ , b∗ι̇ 〉 .(2) Termination test :If ‖b∗n‖ 6= 0 then an integer relation is found.Compute [c1, . . . , cn]

T = [b1, . . . , bn]−1 and output the integer

relation cn. Stop.If

∥∥b∗j∥∥ ≤ 1/2k , 1 ≤ j ≤ n then no small integer relation exist.

Output "λ(x) ≥ 2k " and stop.

(3) Exchange step:Choose from 1 ≤ ι̇ ≤ n that ι̇ that maximizes 2ι̇ ‖b∗ι̇ ‖ .Size-reduce bι̇+1: bι̇+1 := bι̇+1 −

⌈µι̇+1,ι̇

⌋bι̇.

Update µι̇+1,j for j = 1, . . . , ι̇.Exchange bι̇ and bι̇+1.

Update ‖b∗ν‖2 , µνj , µjν for ν = ι̇, ι̇ + 1, 1 ≤ j ≤ n. Go to (2).

Page 66: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: the Algorithm

Input : x ∈ Rn, k ∈ N.(1) Initiation: b0 := x; b1, . . . , bn := standard basis of Zn.Compute µι̇j and ‖b∗ι̇ ‖

2 = 〈b∗ι̇ , b∗ι̇ 〉 .(2) Termination test :If ‖b∗n‖ 6= 0 then an integer relation is found.Compute [c1, . . . , cn]

T = [b1, . . . , bn]−1 and output the integer

relation cn. Stop.If

∥∥b∗j∥∥ ≤ 1/2k , 1 ≤ j ≤ n then no small integer relation exist.

Output "λ(x) ≥ 2k " and stop.(3) Exchange step:Choose from 1 ≤ ι̇ ≤ n that ι̇ that maximizes 2ι̇ ‖b∗ι̇ ‖ .

Size-reduce bι̇+1: bι̇+1 := bι̇+1 −⌈µι̇+1,ι̇

⌋bι̇.

Update µι̇+1,j for j = 1, . . . , ι̇.Exchange bι̇ and bι̇+1.

Update ‖b∗ν‖2 , µνj , µjν for ν = ι̇, ι̇ + 1, 1 ≤ j ≤ n. Go to (2).

Page 67: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: the Algorithm

Input : x ∈ Rn, k ∈ N.(1) Initiation: b0 := x; b1, . . . , bn := standard basis of Zn.Compute µι̇j and ‖b∗ι̇ ‖

2 = 〈b∗ι̇ , b∗ι̇ 〉 .(2) Termination test :If ‖b∗n‖ 6= 0 then an integer relation is found.Compute [c1, . . . , cn]

T = [b1, . . . , bn]−1 and output the integer

relation cn. Stop.If

∥∥b∗j∥∥ ≤ 1/2k , 1 ≤ j ≤ n then no small integer relation exist.

Output "λ(x) ≥ 2k " and stop.(3) Exchange step:Choose from 1 ≤ ι̇ ≤ n that ι̇ that maximizes 2ι̇ ‖b∗ι̇ ‖ .Size-reduce bι̇+1: bι̇+1 := bι̇+1 −

⌈µι̇+1,ι̇

⌋bι̇.

Update µι̇+1,j for j = 1, . . . , ι̇.Exchange bι̇ and bι̇+1.

Update ‖b∗ν‖2 , µνj , µjν for ν = ι̇, ι̇ + 1, 1 ≤ j ≤ n. Go to (2).

Page 68: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: the Algorithm

Input : x ∈ Rn, k ∈ N.(1) Initiation: b0 := x; b1, . . . , bn := standard basis of Zn.Compute µι̇j and ‖b∗ι̇ ‖

2 = 〈b∗ι̇ , b∗ι̇ 〉 .(2) Termination test :If ‖b∗n‖ 6= 0 then an integer relation is found.Compute [c1, . . . , cn]

T = [b1, . . . , bn]−1 and output the integer

relation cn. Stop.If

∥∥b∗j∥∥ ≤ 1/2k , 1 ≤ j ≤ n then no small integer relation exist.

Output "λ(x) ≥ 2k " and stop.(3) Exchange step:Choose from 1 ≤ ι̇ ≤ n that ι̇ that maximizes 2ι̇ ‖b∗ι̇ ‖ .Size-reduce bι̇+1: bι̇+1 := bι̇+1 −

⌈µι̇+1,ι̇

⌋bι̇.

Update µι̇+1,j for j = 1, . . . , ι̇.

Exchange bι̇ and bι̇+1.

Update ‖b∗ν‖2 , µνj , µjν for ν = ι̇, ι̇ + 1, 1 ≤ j ≤ n. Go to (2).

Page 69: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: the Algorithm

Input : x ∈ Rn, k ∈ N.(1) Initiation: b0 := x; b1, . . . , bn := standard basis of Zn.Compute µι̇j and ‖b∗ι̇ ‖

2 = 〈b∗ι̇ , b∗ι̇ 〉 .(2) Termination test :If ‖b∗n‖ 6= 0 then an integer relation is found.Compute [c1, . . . , cn]

T = [b1, . . . , bn]−1 and output the integer

relation cn. Stop.If

∥∥b∗j∥∥ ≤ 1/2k , 1 ≤ j ≤ n then no small integer relation exist.

Output "λ(x) ≥ 2k " and stop.(3) Exchange step:Choose from 1 ≤ ι̇ ≤ n that ι̇ that maximizes 2ι̇ ‖b∗ι̇ ‖ .Size-reduce bι̇+1: bι̇+1 := bι̇+1 −

⌈µι̇+1,ι̇

⌋bι̇.

Update µι̇+1,j for j = 1, . . . , ι̇.Exchange bι̇ and bι̇+1.

Update ‖b∗ν‖2 , µνj , µjν for ν = ι̇, ι̇ + 1, 1 ≤ j ≤ n. Go to (2).

Page 70: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: the Algorithm

Input : x ∈ Rn, k ∈ N.(1) Initiation: b0 := x; b1, . . . , bn := standard basis of Zn.Compute µι̇j and ‖b∗ι̇ ‖

2 = 〈b∗ι̇ , b∗ι̇ 〉 .(2) Termination test :If ‖b∗n‖ 6= 0 then an integer relation is found.Compute [c1, . . . , cn]

T = [b1, . . . , bn]−1 and output the integer

relation cn. Stop.If

∥∥b∗j∥∥ ≤ 1/2k , 1 ≤ j ≤ n then no small integer relation exist.

Output "λ(x) ≥ 2k " and stop.(3) Exchange step:Choose from 1 ≤ ι̇ ≤ n that ι̇ that maximizes 2ι̇ ‖b∗ι̇ ‖ .Size-reduce bι̇+1: bι̇+1 := bι̇+1 −

⌈µι̇+1,ι̇

⌋bι̇.

Update µι̇+1,j for j = 1, . . . , ι̇.Exchange bι̇ and bι̇+1.

Update ‖b∗ν‖2 , µνj , µjν for ν = ι̇, ι̇ + 1, 1 ≤ j ≤ n. Go to (2).

Page 71: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: the Algorithm

Note: The matrix [c1, . . . , cn] can be computed incrementally:Initially [c1, . . . , cn] = Idn.

bι̇+1 := bι̇+1 −⌈µι̇+1,ι̇

⌋bι̇ ⇒ cι̇ := cι̇ +

⌈µι̇+1,ι̇

⌋cι̇+1.

bι̇ ↔ bι̇+1 ⇒ cι̇ ↔ cι̇+1.

Page 72: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: Correctedness and Polynomial Time

TheoremThe output cn is an integer relation for x.

For every basis b1, . . . , bn of Zn λ(x) ≥ 1max‖b∗j ‖

. So the

algorithm claims "λ(x) ≥ 2k " correctly.The output cn satisfies ‖cn‖2 ≤ 2n−2 min

{λ(x)2, 22k}

.

The algorithm halts after at most O(n3(k + n)) arithmeticsteps on real numbers.

Page 73: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: Correctedness and Polynomial Time

TheoremThe output cn is an integer relation for x.

For every basis b1, . . . , bn of Zn λ(x) ≥ 1max‖b∗j ‖

. So the

algorithm claims "λ(x) ≥ 2k " correctly.

The output cn satisfies ‖cn‖2 ≤ 2n−2 min{λ(x)2, 22k}

.

The algorithm halts after at most O(n3(k + n)) arithmeticsteps on real numbers.

Page 74: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: Correctedness and Polynomial Time

TheoremThe output cn is an integer relation for x.

For every basis b1, . . . , bn of Zn λ(x) ≥ 1max‖b∗j ‖

. So the

algorithm claims "λ(x) ≥ 2k " correctly.The output cn satisfies ‖cn‖2 ≤ 2n−2 min

{λ(x)2, 22k}

.

The algorithm halts after at most O(n3(k + n)) arithmeticsteps on real numbers.

Page 75: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: Correctedness and Polynomial Time

TheoremThe output cn is an integer relation for x.

For every basis b1, . . . , bn of Zn λ(x) ≥ 1max‖b∗j ‖

. So the

algorithm claims "λ(x) ≥ 2k " correctly.The output cn satisfies ‖cn‖2 ≤ 2n−2 min

{λ(x)2, 22k}

.

The algorithm halts after at most O(n3(k + n)) arithmeticsteps on real numbers.

Page 76: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: a Partial Proof

Proof.b∗n 6= 0 ⇒ ∃ι̇ s.t. b∗ι̇ = 0.

Then 0 = b∗ι̇ = bι̇ −ι̇−1∑j=0

⟨bι̇, b∗j

⟩⟨b∗j , b∗j

⟩b∗j .

Then ∃aj s.t.j=ι̇∑j=0

ajbj = 0.

b1, . . . , bι̇ are linearly independent ⇒ a0 6= 0

⇒ x = b0 =j=ι̇∑j=1

aj

a0bj .

Since⟨bj , ck

⟩= 0 ∀k > j we have 〈x, ck 〉 = 0 ∀k > ι̇, in

particular 〈x, cn〉 = 0.

Page 77: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: a Partial Proof

Proof.b∗n 6= 0 ⇒ ∃ι̇ s.t. b∗ι̇ = 0.

Then 0 = b∗ι̇ = bι̇ −ι̇−1∑j=0

⟨bι̇, b∗j

⟩⟨b∗j , b∗j

⟩b∗j .

Then ∃aj s.t.j=ι̇∑j=0

ajbj = 0.

b1, . . . , bι̇ are linearly independent ⇒ a0 6= 0

⇒ x = b0 =j=ι̇∑j=1

aj

a0bj .

Since⟨bj , ck

⟩= 0 ∀k > j we have 〈x, ck 〉 = 0 ∀k > ι̇, in

particular 〈x, cn〉 = 0.

Page 78: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: a Partial Proof

Proof.b∗n 6= 0 ⇒ ∃ι̇ s.t. b∗ι̇ = 0.

Then 0 = b∗ι̇ = bι̇ −ι̇−1∑j=0

⟨bι̇, b∗j

⟩⟨b∗j , b∗j

⟩b∗j .

Then ∃aj s.t.j=ι̇∑j=0

ajbj = 0.

b1, . . . , bι̇ are linearly independent ⇒ a0 6= 0

⇒ x = b0 =j=ι̇∑j=1

aj

a0bj .

Since⟨bj , ck

⟩= 0 ∀k > j we have 〈x, ck 〉 = 0 ∀k > ι̇, in

particular 〈x, cn〉 = 0.

Page 79: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: a Partial Proof

Proof.b∗n 6= 0 ⇒ ∃ι̇ s.t. b∗ι̇ = 0.

Then 0 = b∗ι̇ = bι̇ −ι̇−1∑j=0

⟨bι̇, b∗j

⟩⟨b∗j , b∗j

⟩b∗j .

Then ∃aj s.t.j=ι̇∑j=0

ajbj = 0.

b1, . . . , bι̇ are linearly independent ⇒ a0 6= 0

⇒ x = b0 =j=ι̇∑j=1

aj

a0bj .

Since⟨bj , ck

⟩= 0 ∀k > j we have 〈x, ck 〉 = 0 ∀k > ι̇, in

particular 〈x, cn〉 = 0.

Page 80: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: a Partial Proof

Proof.b∗n 6= 0 ⇒ ∃ι̇ s.t. b∗ι̇ = 0.

Then 0 = b∗ι̇ = bι̇ −ι̇−1∑j=0

⟨bι̇, b∗j

⟩⟨b∗j , b∗j

⟩b∗j .

Then ∃aj s.t.j=ι̇∑j=0

ajbj = 0.

b1, . . . , bι̇ are linearly independent ⇒ a0 6= 0

⇒ x = b0 =j=ι̇∑j=1

aj

a0bj .

Since⟨bj , ck

⟩= 0 ∀k > j we have 〈x, ck 〉 = 0 ∀k > ι̇, in

particular 〈x, cn〉 = 0.

Page 81: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: a Partial Proof

Proof.Let m be any integer relation for x.

Since m ∈ (xR)⊥ = span(b∗1, . . . , b∗n)there exists ι̇ s.t. 〈m, b∗ι̇ 〉 6= 0.For the smallest such ι̇ we have

〈m, b∗ι̇ 〉 =

⟨m, bι̇ −

ι̇−1∑j=0

µι̇jb∗j

⟩= 〈m, bι̇〉 −

ι̇−1∑j=0

µι̇j⟨m, b∗j

⟩=

= 〈m, bι̇〉 ∈ Z, and hence |〈m, b∗ι̇ 〉| ≥ 1.

But |〈m, b∗ι̇ 〉| ≤ ‖m‖ ‖b∗ι̇ ‖ .

So ‖m‖ ≥ 1‖b∗ι̇ ‖

.

Page 82: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: a Partial Proof

Proof.Let m be any integer relation for x.

Since m ∈ (xR)⊥ = span(b∗1, . . . , b∗n)

there exists ι̇ s.t. 〈m, b∗ι̇ 〉 6= 0.For the smallest such ι̇ we have

〈m, b∗ι̇ 〉 =

⟨m, bι̇ −

ι̇−1∑j=0

µι̇jb∗j

⟩= 〈m, bι̇〉 −

ι̇−1∑j=0

µι̇j⟨m, b∗j

⟩=

= 〈m, bι̇〉 ∈ Z, and hence |〈m, b∗ι̇ 〉| ≥ 1.

But |〈m, b∗ι̇ 〉| ≤ ‖m‖ ‖b∗ι̇ ‖ .

So ‖m‖ ≥ 1‖b∗ι̇ ‖

.

Page 83: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: a Partial Proof

Proof.Let m be any integer relation for x.

Since m ∈ (xR)⊥ = span(b∗1, . . . , b∗n)there exists ι̇ s.t. 〈m, b∗ι̇ 〉 6= 0.

For the smallest such ι̇ we have

〈m, b∗ι̇ 〉 =

⟨m, bι̇ −

ι̇−1∑j=0

µι̇jb∗j

⟩= 〈m, bι̇〉 −

ι̇−1∑j=0

µι̇j⟨m, b∗j

⟩=

= 〈m, bι̇〉 ∈ Z, and hence |〈m, b∗ι̇ 〉| ≥ 1.

But |〈m, b∗ι̇ 〉| ≤ ‖m‖ ‖b∗ι̇ ‖ .

So ‖m‖ ≥ 1‖b∗ι̇ ‖

.

Page 84: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: a Partial Proof

Proof.Let m be any integer relation for x.

Since m ∈ (xR)⊥ = span(b∗1, . . . , b∗n)there exists ι̇ s.t. 〈m, b∗ι̇ 〉 6= 0.For the smallest such ι̇ we have

〈m, b∗ι̇ 〉 =

⟨m, bι̇ −

ι̇−1∑j=0

µι̇jb∗j

⟩= 〈m, bι̇〉 −

ι̇−1∑j=0

µι̇j⟨m, b∗j

⟩=

= 〈m, bι̇〉 ∈ Z, and hence |〈m, b∗ι̇ 〉| ≥ 1.

But |〈m, b∗ι̇ 〉| ≤ ‖m‖ ‖b∗ι̇ ‖ .

So ‖m‖ ≥ 1‖b∗ι̇ ‖

.

Page 85: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: a Partial Proof

Proof.Let m be any integer relation for x.

Since m ∈ (xR)⊥ = span(b∗1, . . . , b∗n)there exists ι̇ s.t. 〈m, b∗ι̇ 〉 6= 0.For the smallest such ι̇ we have

〈m, b∗ι̇ 〉 =

⟨m, bι̇ −

ι̇−1∑j=0

µι̇jb∗j

⟩= 〈m, bι̇〉 −

ι̇−1∑j=0

µι̇j⟨m, b∗j

⟩=

= 〈m, bι̇〉 ∈ Z, and hence |〈m, b∗ι̇ 〉| ≥ 1.

But |〈m, b∗ι̇ 〉| ≤ ‖m‖ ‖b∗ι̇ ‖ .

So ‖m‖ ≥ 1‖b∗ι̇ ‖

.

Page 86: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: a Partial Proof

Proof.Let m be any integer relation for x.

Since m ∈ (xR)⊥ = span(b∗1, . . . , b∗n)there exists ι̇ s.t. 〈m, b∗ι̇ 〉 6= 0.For the smallest such ι̇ we have

〈m, b∗ι̇ 〉 =

⟨m, bι̇ −

ι̇−1∑j=0

µι̇jb∗j

⟩= 〈m, bι̇〉 −

ι̇−1∑j=0

µι̇j⟨m, b∗j

⟩=

= 〈m, bι̇〉 ∈ Z, and hence |〈m, b∗ι̇ 〉| ≥ 1.

But |〈m, b∗ι̇ 〉| ≤ ‖m‖ ‖b∗ι̇ ‖ .

So ‖m‖ ≥ 1‖b∗ι̇ ‖

.

Page 87: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

HJLS: a Partial Proof

Proof.Let m be any integer relation for x.

Since m ∈ (xR)⊥ = span(b∗1, . . . , b∗n)there exists ι̇ s.t. 〈m, b∗ι̇ 〉 6= 0.For the smallest such ι̇ we have

〈m, b∗ι̇ 〉 =

⟨m, bι̇ −

ι̇−1∑j=0

µι̇jb∗j

⟩= 〈m, bι̇〉 −

ι̇−1∑j=0

µι̇j⟨m, b∗j

⟩=

= 〈m, bι̇〉 ∈ Z, and hence |〈m, b∗ι̇ 〉| ≥ 1.

But |〈m, b∗ι̇ 〉| ≤ ‖m‖ ‖b∗ι̇ ‖ .

So ‖m‖ ≥ 1‖b∗ι̇ ‖

.

Page 88: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Outline

1 IntroductionStarting ExamplesInteger RelationsAlgorithms for Finding Integral Relations

2 LLL-based AlgorithmsLattices and Their BasesHJLS

3 PSLQ

4 Usage

5 Applications"BBP" Formula for PiBifurcation Points in Chaos Theory

6 Further Reading

Page 89: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

PSLQ: Source; Model of Computation

The name "PSLQ" comes from partial sums of squares and LQ(lower-diagonal—orthogonal) matrix decomposition.

Source:H. R. P. Ferguson, D. H. Bailey, S. Arno.Analysis of PSLQ, an Integer Finding Algorithm.Mathematics of Computation, Vol.68, 1999, pp.351-369.

Model of Computation:Computation with real numbers.Operations: addition, subtraction, multiplication, division,comparison, the nearest integer(dc) — at unit cost.

Page 90: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

PSLQ: Source; Model of Computation

The name "PSLQ" comes from partial sums of squares and LQ(lower-diagonal—orthogonal) matrix decomposition.

Source:H. R. P. Ferguson, D. H. Bailey, S. Arno.Analysis of PSLQ, an Integer Finding Algorithm.Mathematics of Computation, Vol.68, 1999, pp.351-369.

Model of Computation:Computation with real numbers.Operations: addition, subtraction, multiplication, division,comparison, the nearest integer(dc) — at unit cost.

Page 91: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

PSLQ: Source; Model of Computation

The name "PSLQ" comes from partial sums of squares and LQ(lower-diagonal—orthogonal) matrix decomposition.

Source:H. R. P. Ferguson, D. H. Bailey, S. Arno.Analysis of PSLQ, an Integer Finding Algorithm.Mathematics of Computation, Vol.68, 1999, pp.351-369.

Model of Computation:Computation with real numbers.Operations: addition, subtraction, multiplication, division,comparison, the nearest integer(dc) — at unit cost.

Page 92: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Definitions

x = (x1, . . . , xn), ‖x‖ = 1, xj 6= 0.

Definition

Let for 1 ≤ j ≤ n s2j :=

k=n∑k=j

x2k .

DefinitionLet Hx = (hi,j) be n × (n − 1) lower-trapezoidal matrix definedby:

hi,j :=

0 1 ≤ ι̇ < j ≤ n − 1sι̇+1/sι̇ 1 ≤ ι̇ = j ≤ n − 1−x2

j /(sjsj+1) 1 ≤ j < ι̇ ≤ n − 1.

Page 93: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Definitions

x = (x1, . . . , xn), ‖x‖ = 1, xj 6= 0.

Definition

Let for 1 ≤ j ≤ n s2j :=

k=n∑k=j

x2k .

DefinitionLet Hx = (hi,j) be n × (n − 1) lower-trapezoidal matrix definedby:

hi,j :=

0 1 ≤ ι̇ < j ≤ n − 1sι̇+1/sι̇ 1 ≤ ι̇ = j ≤ n − 1−x2

j /(sjsj+1) 1 ≤ j < ι̇ ≤ n − 1.

Page 94: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Definitions

x = (x1, . . . , xn), ‖x‖ = 1, xj 6= 0.

Definition

Let for 1 ≤ j ≤ n s2j :=

k=n∑k=j

x2k .

DefinitionLet Hx = (hi,j) be n × (n − 1) lower-trapezoidal matrix definedby:

hi,j :=

0 1 ≤ ι̇ < j ≤ n − 1sι̇+1/sι̇ 1 ≤ ι̇ = j ≤ n − 1−x2

j /(sjsj+1) 1 ≤ j < ι̇ ≤ n − 1.

Page 95: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

PSLQ: The Algorithm

Input: x ∈ Rn; γ ≥√

4/3.

(1)Initiation: s := (s1, . . . , sn); y := x/s1; H := Hx; B := Idn.Reduce H:for ι̇ := 2 to n

for j := ι̇− 1 to 1 step −1t :=

⌈hι̇j/hjj

⌋yj := yj + tyι̇

for k := 1 to jhι̇k := hι̇k − thjk

endforfor k := 1 to n

bkj := bkj + tbk ι̇

endforendfor

endfor

Page 96: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

PSLQ: The Algorithm

Input: x ∈ Rn; γ ≥√

4/3.(1)Initiation: s := (s1, . . . , sn); y := x/s1; H := Hx; B := Idn.

Reduce H:for ι̇ := 2 to n

for j := ι̇− 1 to 1 step −1t :=

⌈hι̇j/hjj

⌋yj := yj + tyι̇

for k := 1 to jhι̇k := hι̇k − thjk

endforfor k := 1 to n

bkj := bkj + tbk ι̇

endforendfor

endfor

Page 97: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

PSLQ: The Algorithm

Input: x ∈ Rn; γ ≥√

4/3.(1)Initiation: s := (s1, . . . , sn); y := x/s1; H := Hx; B := Idn.Reduce H:for ι̇ := 2 to n

for j := ι̇− 1 to 1 step −1t :=

⌈hι̇j/hjj

⌋yj := yj + tyι̇

for k := 1 to jhι̇k := hι̇k − thjk

endforfor k := 1 to n

bkj := bkj + tbk ι̇

endforendfor

endfor

Page 98: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

PSLQ: The Algorithm

(2)Exchange step:Choose r that maximizes γr |hrr | .

Exchange yr ↔ yr+1, corresponding rows of H andcorresponding columns of B.(3)Corner:δ :=

√h2

rr + h2r ,r+1; α := hrr/δ; β := hr ,r+1/δ.

if r ≤ n − 2 thenfor i := r to n

h0 := hir ; h1 := hi,r+1;hir := αh0 + βh1; hi,r+1 := −βh0 + αh1

endforendif(4)Reduce H.(5)Norm bound: Compute M := 1/ max

1≤j≤nhjj . Then λ(x) ≥ M.

(6)Termination: Goto (2) unless yj = 0 for some 1 ≤ j ≤ n orhι̇ι̇ = 0 for some 1 ≤ ι̇ ≤ n − 1.

Page 99: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

PSLQ: The Algorithm

(2)Exchange step:Choose r that maximizes γr |hrr | .Exchange yr ↔ yr+1, corresponding rows of H andcorresponding columns of B.

(3)Corner:δ :=

√h2

rr + h2r ,r+1; α := hrr/δ; β := hr ,r+1/δ.

if r ≤ n − 2 thenfor i := r to n

h0 := hir ; h1 := hi,r+1;hir := αh0 + βh1; hi,r+1 := −βh0 + αh1

endforendif(4)Reduce H.(5)Norm bound: Compute M := 1/ max

1≤j≤nhjj . Then λ(x) ≥ M.

(6)Termination: Goto (2) unless yj = 0 for some 1 ≤ j ≤ n orhι̇ι̇ = 0 for some 1 ≤ ι̇ ≤ n − 1.

Page 100: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

PSLQ: The Algorithm

(2)Exchange step:Choose r that maximizes γr |hrr | .Exchange yr ↔ yr+1, corresponding rows of H andcorresponding columns of B.(3)Corner:δ :=

√h2

rr + h2r ,r+1; α := hrr/δ; β := hr ,r+1/δ.

if r ≤ n − 2 thenfor i := r to n

h0 := hir ; h1 := hi,r+1;hir := αh0 + βh1; hi,r+1 := −βh0 + αh1

endforendif

(4)Reduce H.(5)Norm bound: Compute M := 1/ max

1≤j≤nhjj . Then λ(x) ≥ M.

(6)Termination: Goto (2) unless yj = 0 for some 1 ≤ j ≤ n orhι̇ι̇ = 0 for some 1 ≤ ι̇ ≤ n − 1.

Page 101: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

PSLQ: The Algorithm

(2)Exchange step:Choose r that maximizes γr |hrr | .Exchange yr ↔ yr+1, corresponding rows of H andcorresponding columns of B.(3)Corner:δ :=

√h2

rr + h2r ,r+1; α := hrr/δ; β := hr ,r+1/δ.

if r ≤ n − 2 thenfor i := r to n

h0 := hir ; h1 := hi,r+1;hir := αh0 + βh1; hi,r+1 := −βh0 + αh1

endforendif(4)Reduce H.

(5)Norm bound: Compute M := 1/ max1≤j≤n

hjj . Then λ(x) ≥ M.

(6)Termination: Goto (2) unless yj = 0 for some 1 ≤ j ≤ n orhι̇ι̇ = 0 for some 1 ≤ ι̇ ≤ n − 1.

Page 102: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

PSLQ: The Algorithm

(2)Exchange step:Choose r that maximizes γr |hrr | .Exchange yr ↔ yr+1, corresponding rows of H andcorresponding columns of B.(3)Corner:δ :=

√h2

rr + h2r ,r+1; α := hrr/δ; β := hr ,r+1/δ.

if r ≤ n − 2 thenfor i := r to n

h0 := hir ; h1 := hi,r+1;hir := αh0 + βh1; hi,r+1 := −βh0 + αh1

endforendif(4)Reduce H.(5)Norm bound: Compute M := 1/ max

1≤j≤nhjj . Then λ(x) ≥ M.

(6)Termination: Goto (2) unless yj = 0 for some 1 ≤ j ≤ n orhι̇ι̇ = 0 for some 1 ≤ ι̇ ≤ n − 1.

Page 103: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

PSLQ: The Algorithm

(2)Exchange step:Choose r that maximizes γr |hrr | .Exchange yr ↔ yr+1, corresponding rows of H andcorresponding columns of B.(3)Corner:δ :=

√h2

rr + h2r ,r+1; α := hrr/δ; β := hr ,r+1/δ.

if r ≤ n − 2 thenfor i := r to n

h0 := hir ; h1 := hi,r+1;hir := αh0 + βh1; hi,r+1 := −βh0 + αh1

endforendif(4)Reduce H.(5)Norm bound: Compute M := 1/ max

1≤j≤nhjj . Then λ(x) ≥ M.

(6)Termination: Goto (2) unless yj = 0 for some 1 ≤ j ≤ n orhι̇ι̇ = 0 for some 1 ≤ ι̇ ≤ n − 1.

Page 104: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

PSLQ: Correctedness and Polynomial Time

TheoremThe integer relation m for x appears as one of the columnsof B.

λ(x) ≥ 1/ max1≤j≤n

hjj .

‖m‖ ≤ γn−2λ(x).

The algorithm halts after at most O(n4 + n3 log λ(x))arithmetic steps on real numbers.

Page 105: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

PSLQ: Correctedness and Polynomial Time

TheoremThe integer relation m for x appears as one of the columnsof B.

λ(x) ≥ 1/ max1≤j≤n

hjj .

‖m‖ ≤ γn−2λ(x).

The algorithm halts after at most O(n4 + n3 log λ(x))arithmetic steps on real numbers.

Page 106: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

PSLQ: Correctedness and Polynomial Time

TheoremThe integer relation m for x appears as one of the columnsof B.

λ(x) ≥ 1/ max1≤j≤n

hjj .

‖m‖ ≤ γn−2λ(x).

The algorithm halts after at most O(n4 + n3 log λ(x))arithmetic steps on real numbers.

Page 107: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

PSLQ: Correctedness and Polynomial Time

TheoremThe integer relation m for x appears as one of the columnsof B.

λ(x) ≥ 1/ max1≤j≤n

hjj .

‖m‖ ≤ γn−2λ(x).

The algorithm halts after at most O(n4 + n3 log λ(x))arithmetic steps on real numbers.

Page 108: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Outline

1 IntroductionStarting ExamplesInteger RelationsAlgorithms for Finding Integral Relations

2 LLL-based AlgorithmsLattices and Their BasesHJLS

3 PSLQ

4 Usage

5 Applications"BBP" Formula for PiBifurcation Points in Chaos Theory

6 Further Reading

Page 109: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Usage

Note: Proving relations is a separate matter.

Precision:As a rule of thumb if x has n entries and D is the maximalnumber of digits in the relation we hope to find then we shouldwork with nD digits precision.

LLL or PSLQ?LLL-based algorithms are available in almost any computeralgebra system (Maple, Mathematica).PSLQ implementation are less directly available.

PSLQ is more stable, because it uses a stable matrix reductionprocedure. Unfortunately, HJLS is not stable.

Page 110: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Usage

Note: Proving relations is a separate matter.

Precision:As a rule of thumb if x has n entries and D is the maximalnumber of digits in the relation we hope to find then we shouldwork with nD digits precision.

LLL or PSLQ?LLL-based algorithms are available in almost any computeralgebra system (Maple, Mathematica).PSLQ implementation are less directly available.

PSLQ is more stable, because it uses a stable matrix reductionprocedure. Unfortunately, HJLS is not stable.

Page 111: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Usage

Note: Proving relations is a separate matter.

Precision:As a rule of thumb if x has n entries and D is the maximalnumber of digits in the relation we hope to find then we shouldwork with nD digits precision.

LLL or PSLQ?LLL-based algorithms are available in almost any computeralgebra system (Maple, Mathematica).PSLQ implementation are less directly available.

PSLQ is more stable, because it uses a stable matrix reductionprocedure. Unfortunately, HJLS is not stable.

Page 112: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Usage

Note: Proving relations is a separate matter.

Precision:As a rule of thumb if x has n entries and D is the maximalnumber of digits in the relation we hope to find then we shouldwork with nD digits precision.

LLL or PSLQ?LLL-based algorithms are available in almost any computeralgebra system (Maple, Mathematica).PSLQ implementation are less directly available.

PSLQ is more stable, because it uses a stable matrix reductionprocedure. Unfortunately, HJLS is not stable.

Page 113: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

An Example

Consider x = (11, 27, 31).

PSLQ with γ =√

2 for successive iterations N = 0, 1, 2, 3, 4yields the five matrices: 1 0 0

0 1 00 −1 1

,

1 0 03 8 1−3 −7 −1

,

−2 1 02 3 1−1 −3 −1

,

3 −2 01 2 1−2 −1 −1

,

−15−4

−89−5

−22−1

.

It found 2 relations:−11 + 5 · 27− 4 · 31 = −11 + 135− 124 = 0;−8 · 11 + 9 · 27− 5 · 31 = −88 + 243− 155 = 0.

Page 114: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

An Example

Consider x = (11, 27, 31).

PSLQ with γ =√

2 for successive iterations N = 0, 1, 2, 3, 4yields the five matrices: 1 0 0

0 1 00 −1 1

,

1 0 03 8 1−3 −7 −1

,

−2 1 02 3 1−1 −3 −1

,

3 −2 01 2 1−2 −1 −1

,

−15−4

−89−5

−22−1

.

It found 2 relations:−11 + 5 · 27− 4 · 31 = −11 + 135− 124 = 0;−8 · 11 + 9 · 27− 5 · 31 = −88 + 243− 155 = 0.

Page 115: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

An Example

Consider x = (11, 27, 31).

PSLQ with γ =√

2 for successive iterations N = 0, 1, 2, 3, 4yields the five matrices: 1 0 0

0 1 00 −1 1

,

1 0 03 8 1−3 −7 −1

,

−2 1 02 3 1−1 −3 −1

,

3 −2 01 2 1−2 −1 −1

,

−15−4

−89−5

−22−1

.

It found 2 relations:−11 + 5 · 27− 4 · 31 = −11 + 135− 124 = 0;−8 · 11 + 9 · 27− 5 · 31 = −88 + 243− 155 = 0.

Page 116: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

An Example

HJLS for successive iterations N = 0, 1, 2, 3, 4, 5, 6 yields theseven matrices: 1 0 0

0 1 00 0 1

,

1 0 00 0 10 1 −1

,

0 1 00 0 11 0 −1

, 1 −2 00 0 10 1 −1

,

1 0 −20 1 20 −1 −1

,

0 1 −21 3 2−1 −3 −1

, 0 −21 2−1 −1

−15−4

.

It found 1 relation.

Page 117: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

An Example

HJLS for successive iterations N = 0, 1, 2, 3, 4, 5, 6 yields theseven matrices: 1 0 0

0 1 00 0 1

,

1 0 00 0 10 1 −1

,

0 1 00 0 11 0 −1

, 1 −2 00 0 10 1 −1

,

1 0 −20 1 20 −1 −1

,

0 1 −21 3 2−1 −3 −1

, 0 −21 2−1 −1

−15−4

.

It found 1 relation.

Page 118: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Outline

1 IntroductionStarting ExamplesInteger RelationsAlgorithms for Finding Integral Relations

2 LLL-based AlgorithmsLattices and Their BasesHJLS

3 PSLQ

4 Usage

5 Applications"BBP" Formula for PiBifurcation Points in Chaos Theory

6 Further Reading

Page 119: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

"BBP" formula for π

Perhaps one of the best known applications of PSLQ is the1995 discovery, by means of PSLQ computation, of the "BBP"(Bailey, Borwein, Plouffe) formula for π:

π =∞∑

k=0

116k

(4

8k + 1− 2

8k + 4− 1

8k + 5− 1

8k + 6

).

This formula permits one to compute directly hexademicaldigits of π without computing previous ones.

The formula was found by applying PSLQ to (X1, . . . , Xn, π)where

Xj =∞∑

k=0

116k (8k + j)

.

Page 120: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

"BBP" formula for π

Perhaps one of the best known applications of PSLQ is the1995 discovery, by means of PSLQ computation, of the "BBP"(Bailey, Borwein, Plouffe) formula for π:

π =∞∑

k=0

116k

(4

8k + 1− 2

8k + 4− 1

8k + 5− 1

8k + 6

).

This formula permits one to compute directly hexademicaldigits of π without computing previous ones.

The formula was found by applying PSLQ to (X1, . . . , Xn, π)where

Xj =∞∑

k=0

116k (8k + j)

.

Page 121: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

"BBP" formula for π

Perhaps one of the best known applications of PSLQ is the1995 discovery, by means of PSLQ computation, of the "BBP"(Bailey, Borwein, Plouffe) formula for π:

π =∞∑

k=0

116k

(4

8k + 1− 2

8k + 4− 1

8k + 5− 1

8k + 6

).

This formula permits one to compute directly hexademicaldigits of π without computing previous ones.

The formula was found by applying PSLQ to (X1, . . . , Xn, π)where

Xj =∞∑

k=0

116k (8k + j)

.

Page 122: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

"BBP" formula for π

Perhaps one of the best known applications of PSLQ is the1995 discovery, by means of PSLQ computation, of the "BBP"(Bailey, Borwein, Plouffe) formula for π:

π =∞∑

k=0

116k

(4

8k + 1− 2

8k + 4− 1

8k + 5− 1

8k + 6

).

This formula permits one to compute directly hexademicaldigits of π without computing previous ones.

The formula was found by applying PSLQ to (X1, . . . , Xn, π)where

Xj =∞∑

k=0

116k (8k + j)

.

Page 123: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Bifurcation Points in Chaos Theory

The chaotic iteration xn+1 = rxn(1− xn) ("logistic iteration"):

Page 124: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Bifurcation Points in Chaos Theory

1 < r < B1 = 3 : one limit point.B1 < r < B2 = 1 +

√6 = 3.449489 . . . : two distinct limit points.

B2 < r < B3 : four distinct limit points.B3 < r < B4 : eight distinct limit points.And so on.

Using PSLQ with n = 13 we get that B3 satisfies:r12 − 12r11 + 48r10 − 40r9 − 193r8 + 392r7 + 44r6 + 8r5 −977r4 − 604r3 + 2108r2 + 4913 = 0.

Page 125: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Bifurcation Points in Chaos Theory

1 < r < B1 = 3 : one limit point.B1 < r < B2 = 1 +

√6 = 3.449489 . . . : two distinct limit points.

B2 < r < B3 : four distinct limit points.B3 < r < B4 : eight distinct limit points.And so on.

Using PSLQ with n = 13 we get that B3 satisfies:r12 − 12r11 + 48r10 − 40r9 − 193r8 + 392r7 + 44r6 + 8r5 −977r4 − 604r3 + 2108r2 + 4913 = 0.

Page 126: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Bifurcation Points in Chaos Theory

The much more difficult problem for finding B4 was studied in

D. H. Bailey and D. J. Broadhurst. Parallel integer relationdetection: techniques and applications. Mathematics ofComputation, Vol.70, 2000, pp.1719-1736.

It was conjectured that B4 might satisfy a 240-degreepolynomial, and, in addition, α = −B4(B4 − 2) might satisfy a120-degree polynomial.Then an advanced PSLQ implementation was employed, and arelation with coefficients descending from 25730 to 1 was found.

4 year later the result was confirmed in large symboliccomputation in

I. Kotsireas and K. Karamanos. Exact computation of thebifurcation point b4 of the logistic map and theBailey-Broadhurst conjectures. Internat. J. Bifurcation andChaos, Vol.14, 2004, pp.2417-2423.

Page 127: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Bifurcation Points in Chaos Theory

The much more difficult problem for finding B4 was studied in

D. H. Bailey and D. J. Broadhurst. Parallel integer relationdetection: techniques and applications. Mathematics ofComputation, Vol.70, 2000, pp.1719-1736.

It was conjectured that B4 might satisfy a 240-degreepolynomial, and, in addition, α = −B4(B4 − 2) might satisfy a120-degree polynomial.Then an advanced PSLQ implementation was employed, and arelation with coefficients descending from 25730 to 1 was found.

4 year later the result was confirmed in large symboliccomputation in

I. Kotsireas and K. Karamanos. Exact computation of thebifurcation point b4 of the logistic map and theBailey-Broadhurst conjectures. Internat. J. Bifurcation andChaos, Vol.14, 2004, pp.2417-2423.

Page 128: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Bifurcation Points in Chaos Theory

The much more difficult problem for finding B4 was studied in

D. H. Bailey and D. J. Broadhurst. Parallel integer relationdetection: techniques and applications. Mathematics ofComputation, Vol.70, 2000, pp.1719-1736.

It was conjectured that B4 might satisfy a 240-degreepolynomial, and, in addition, α = −B4(B4 − 2) might satisfy a120-degree polynomial.Then an advanced PSLQ implementation was employed, and arelation with coefficients descending from 25730 to 1 was found.

4 year later the result was confirmed in large symboliccomputation in

I. Kotsireas and K. Karamanos. Exact computation of thebifurcation point b4 of the logistic map and theBailey-Broadhurst conjectures. Internat. J. Bifurcation andChaos, Vol.14, 2004, pp.2417-2423.

Page 129: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Outline

1 IntroductionStarting ExamplesInteger RelationsAlgorithms for Finding Integral Relations

2 LLL-based AlgorithmsLattices and Their BasesHJLS

3 PSLQ

4 Usage

5 Applications"BBP" Formula for PiBifurcation Points in Chaos Theory

6 Further Reading

Page 130: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Outline

1 IntroductionStarting ExamplesInteger RelationsAlgorithms for Finding Integral Relations

2 LLL-based AlgorithmsLattices and Their BasesHJLS

3 PSLQ

4 Usage

5 Applications"BBP" Formula for PiBifurcation Points in Chaos Theory

6 Further Reading

Page 131: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Further Reading

A. K. Lenstra, H. W. Lenstra, Jr., and L. Lovász.Factoring Polynomials with Rational Coefficients.Math. Ann., Vol.261, 1982, pp.515-534.

J. Hastad, B. Just, J. C. Lagarias, and C. P. Schnorr.Polynomial Time Algorithms for Finding Integer Relationsamong Real Numbers.SIAM J. Comput., Vol.18, 1989, pp.859-881.

H. R. P. Ferguson, D. H. Bailey, S. Arno.Analysis of PSLQ, an Integer Finding Algorithm.Mathematics of Computation, Vol.68, 1999, pp.351-369.

D. H. Bailey, J. M. Borwein, N. J. Calkin, R. Girgensohn,D. R. Luke, and V. H. Moll. "Integer Relation Detection":§2.2 in Experimental Mathematics in Action.Natick, MA: A. K. Peters, pp. 29-31, 2006.

Page 132: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Further Reading

A. K. Lenstra, H. W. Lenstra, Jr., and L. Lovász.Factoring Polynomials with Rational Coefficients.Math. Ann., Vol.261, 1982, pp.515-534.

J. Hastad, B. Just, J. C. Lagarias, and C. P. Schnorr.Polynomial Time Algorithms for Finding Integer Relationsamong Real Numbers.SIAM J. Comput., Vol.18, 1989, pp.859-881.

H. R. P. Ferguson, D. H. Bailey, S. Arno.Analysis of PSLQ, an Integer Finding Algorithm.Mathematics of Computation, Vol.68, 1999, pp.351-369.

D. H. Bailey, J. M. Borwein, N. J. Calkin, R. Girgensohn,D. R. Luke, and V. H. Moll. "Integer Relation Detection":§2.2 in Experimental Mathematics in Action.Natick, MA: A. K. Peters, pp. 29-31, 2006.

Page 133: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Further Reading

A. K. Lenstra, H. W. Lenstra, Jr., and L. Lovász.Factoring Polynomials with Rational Coefficients.Math. Ann., Vol.261, 1982, pp.515-534.

J. Hastad, B. Just, J. C. Lagarias, and C. P. Schnorr.Polynomial Time Algorithms for Finding Integer Relationsamong Real Numbers.SIAM J. Comput., Vol.18, 1989, pp.859-881.

H. R. P. Ferguson, D. H. Bailey, S. Arno.Analysis of PSLQ, an Integer Finding Algorithm.Mathematics of Computation, Vol.68, 1999, pp.351-369.

D. H. Bailey, J. M. Borwein, N. J. Calkin, R. Girgensohn,D. R. Luke, and V. H. Moll. "Integer Relation Detection":§2.2 in Experimental Mathematics in Action.Natick, MA: A. K. Peters, pp. 29-31, 2006.

Page 134: Integer Relations among Real Numbers...Algorithms for Finding Integral Relations The problem of finding an integer relation for two numbers (x1,x2) can be solved by applying the Euclidian

Further Reading

A. K. Lenstra, H. W. Lenstra, Jr., and L. Lovász.Factoring Polynomials with Rational Coefficients.Math. Ann., Vol.261, 1982, pp.515-534.

J. Hastad, B. Just, J. C. Lagarias, and C. P. Schnorr.Polynomial Time Algorithms for Finding Integer Relationsamong Real Numbers.SIAM J. Comput., Vol.18, 1989, pp.859-881.

H. R. P. Ferguson, D. H. Bailey, S. Arno.Analysis of PSLQ, an Integer Finding Algorithm.Mathematics of Computation, Vol.68, 1999, pp.351-369.

D. H. Bailey, J. M. Borwein, N. J. Calkin, R. Girgensohn,D. R. Luke, and V. H. Moll. "Integer Relation Detection":§2.2 in Experimental Mathematics in Action.Natick, MA: A. K. Peters, pp. 29-31, 2006.