       Which algorithm(s) does FindIntegerNullVector[]

• To: mathgroup at smc.vnet.net
• Subject: [mg122414] Which algorithm(s) does FindIntegerNullVector[]
• From: Simon <simonjtyler at gmail.com>
• Date: Fri, 28 Oct 2011 05:32:49 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com

```I only just noticed that Mathematica 8 introduced the new function FindIntegerNullVector.
It is a integer relation function (http://mathworld.wolfram.com/IntegerRelation.html) but the documentation and a Trace[..., TraceInternal -> True] gives no hint to what class of algorithms it belongs to.

Mathematica has for a long time had a variant of the LLL lattice reduction algorithm which can be used to generate integer relations. I've got some simple code based off Paul Abbott's (http://forums.wolfram.com/mathgroup/archive/2005/Jan/msg00254.html) which seems to perform better than the new FindIntegerNullVector, i.e. it needs less precision to find the correct relation in the cases I'm interested in.

So my question is:
Is FindIntegerNullVector based on LatticeReduce or does it use some other (more efficient) algorithm such as PSQL?

----------------
For those that are interested, here's my version of Paul's code:

TranscendentalRecognize[num_Real, basis_List, ord_Integer] :=
Module[{vect, mat, lr, ans},
vect = Round[10^(ord - 1) Join[{num}, N[basis, ord]]];
mat = Append[IdentityMatrix[Length[vect]], vect];
lr = LatticeReduce[Transpose[mat]];
ans = First[lr[]]^-1 Most[Rest[lr[]]].basis;
Sign[N@ans] Sign[num] ans]
TranscendentalRecognize[num_Real, basis_List] :=
TranscendentalRecognize[num, basis, Precision[num] // IntegerPart]

```

• Prev by Date: Re: Coin Toss Sim
• Next by Date: Projecting 2d image on 3d object
• Previous by thread: DSolve bug for complicated forcing functions in a 2nd order ODE
• Next by thread: Projecting 2d image on 3d object