# Integer relation algorithm

An integer relation between a set of real numbers x$_1$, x$_2$, ..., x$_n$ is a set of integers a$_1$, a$_2$, ..., a$_n$, not all 0, such that
    $a_{1}x_{1}+a_{2}x_{2}+\cdots +a_{n}x_{n}=0.\,$
An integer relation algorithm is an algorithm for finding integer relations. Specifically, given a set of real numbers known to a given precision, an integer relation algorithm will either find an integer relation between them, or will determine that no integer relation exists with coefficients whose magnitudes are less than a certain upper bound.

## History

For the case n = 2, an extension of the Euclidean algorithm can find any integer relation that exists between any two real numbers x$_1$ and x$_2$. The algorithm generates successive terms of the continued fraction expansion of x$_1$/x$_2$; if there is an integer relation between the numbers, then their ratio is rational and the algorithm eventually terminates.
* The Ferguson–Forcade algorithm was published in 1979 by Helaman Ferguson and R.W. Forcade. Although the paper treats general n, it is not clear if the paper fully solves the problem because it lacks the detailed steps, proofs, and a precision bound that are crucial for a reliable implementation.
* The first algorithm with complete proofs was the LLL algorithm, developed by Arjen Lenstra, Hendrik Lenstra and László Lovász in 1982.
* The HJLS algorithm, developed by Johan Håstad, Bettina Just, Jeffrey Lagarias, and Claus-Peter Schnorr in 1986.
* The PSOS algorithm, developed by Ferguson in 1988.
* The PSLQ algorithm, developed by Ferguson and Bailey in 1992 and substantially simplified by Ferguson, Bailey, and Arno in 1999. In 2000 the PSLQ algorithm was selected as one of the "Top Ten Algorithms of the Century" by Jack Dongarra and Francis Sullivan even though it is considered essentially equivalent to HJLS.
* The LLL algorithm has been improved by numerous authors. Modern LLL implementations can solve integer relation problems with n above 500.

## Applications

Integer relation algorithms have numerous applications. The first application is to determine whether a given real number x is likely to be algebraic, by searching for an integer relation between a set of powers of x {1, x, x$^2$, ..., x$^n$}. The second application is to search for an integer relation between a real number x and a set of mathematical constants such as e, π and ln(2), which will lead to an expression for x as a linear combination of these constants.
A typical approach in experimental mathematics is to use numerical methods and arbitrary precision arithmetic to find an approximate value for an infinite series, infinite product or an integral to a high degree of precision (usually at least 100 significant figures), and then use an integer relation algorithm to search for an integer relation between this value and a set of mathematical constants. If an integer relation is found, this suggests a possible closed-form expression for the original series, product or integral. This conjecture can then be validated by formal algebraic methods. The higher the precision to which the inputs to the algorithm are known, the greater the level of confidence that any integer relation that is found is not just a numerical artifact.
A notable success of this approach was the use of the PSLQ algorithm to find the integer relation that led to the Bailey–Borwein–Plouffe formula for the value of π. PSLQ has also helped find new identities involving multiple zeta functions and their appearance in quantum field theory; and in identifying bifurcation points of the logistic map. For example, where B$_4$ is the logistic map's fourth bifurcation point, the constant α = −B$_4$(B$_4$ − 2) is a root of a 120th-degree polynomial whose largest coefficient is 257$^{30}$. Integer relation algorithms are combined with tables of high precision mathematical constants and heuristic search methods in applications such as the Inverse Symbolic Calculator or Plouffe's Inverter.
Integer relation finding can be used to factor polynomials of high degree.