MinkowskiReduction
MinkowskiReduction.DeviousMat
MinkowskiReduction.FibonacciMat
MinkowskiReduction.GaussReduce
MinkowskiReduction.RandLowerTri
MinkowskiReduction.RandUnimodMat
MinkowskiReduction.isMinkReduced
MinkowskiReduction.minkReduce
MinkowskiReduction.orthogonalityDefect
MinkowskiReduction.shortenW_in_UVW
MinkowskiReduction.DeviousMat
— MethodDeviousMat(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
MinkowskiReduction.FibonacciMat
— MethodFibonacciMat(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)
MinkowskiReduction.GaussReduce
— MethodGaussReduce(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])
MinkowskiReduction.RandLowerTri
— MethodRandLowerTri(n)
Generate a random 2x2 matrix of the form [1 0; 0 ±n].
See also: RandUnimodMat(n)
, FibonacciMat(n)
, DeviousMat(n)
MinkowskiReduction.RandUnimodMat
— MethodRandUnimodMat(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)
MinkowskiReduction.isMinkReduced
— MethodisMinkReduced(U,V,W)
Check if the basis {U
,V
,W
} is Minkoswki reduced.
MinkowskiReduction.minkReduce
— FunctionminkReduce(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])
MinkowskiReduction.orthogonalityDefect
— MethodorthogonalityDefect(a,b,c)
Compute the orthogonality defect of three basis vectors.
Examples
julia> orthogonalityDefect([1,1,0],[1,0,1],[0,1,1])
1.4142135623730954
MinkowskiReduction.shortenW_in_UVW
— MethodshortenW_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)