MinkowskiReduction

MinkowskiReduction.DeviousMatMethod
DeviousMat(n)

Make a unimodular 3x3 matrix that requires a large number of steps to reduce (See email from Rod Feb 1 2020)

n dictates the size of the entries

source
MinkowskiReduction.FibonacciMatMethod
FibonacciMat(k)

Generate a 2x2 matrix of the form [f2 f3; f1 f2] where f1, f2, f3 are consecutive Fibonacci-like numbers

See also: RandUnimodMat(n), FibonacciMat(n), DeviousMat(n)

source
MinkowskiReduction.GaussReduceMethod
GaussReduce(U, V)

Reduce the basis vectors {U, V} to the shortest possible basis.

Examples

julia> GaussReduce([5 8], [8 13])
([-1.0 0.0], [0.0 -1.0])
source
MinkowskiReduction.RandUnimodMatMethod
RandUnimodMat(n)

Generate a random unimodular 2x2 matrix. n is a small integer (number of row and column operations).

See also: RandLowerTri(n), FibonacciMat(n), DeviousMat(n)

source
MinkowskiReduction.minkReduceFunction
minkReduce(U, V, W, debug=false)

Find the shortest equivalent basis of that lattice formed by {U, V, W}

julia> U = [1, 2, 3]; V = [-1, 2, 3]; W = [3, 0, 4]; minkReduce(U,V,W)
([-2.0, 0.0, 0.0], [0.0, -2.0, 1.0], [-1.0, 2.0, 3.0])
source
MinkowskiReduction.shortenW_in_UVWMethod
shortenW_in_UVW

Reduce vector W so that it is as close to the origin as possible.

Subtract multiples of U and V from W. W will remain in an affine plane, which is parallel to the U-V plane but which passes through the end of the W vector. (See Lecture notes in computer science, ISSN 0302-974, ANTS - VI : algorithmic number theory, 2004, vol. 3076, pp. 338-357 ISBN 3-540-22156-5)

source