LLLReduction

lll.spad line 1 [edit on github]

This package implements LLL reduction. Before use user must set appropriate floating point precision.Too low precision may cause nontermination.Higher precisions require more compute time.

LLL : Matrix(Integer) -> Matrix(Integer)

LLL(m) computes LLL reduction of m LLL(m) is the same as extendedLLL!(copy m, ncols m).

extendedLLL : Matrix(Integer) -> Record(lll : Matrix(Integer), trf : Matrix(Integer))

extendedLLL(m) returns the LLL reductions of m together with the transformation matrix, i.e. if [l, t] is returned then it holds l = t*m.

extendedLLL! : (Matrix(Integer), NonNegativeInteger) -> Matrix(Integer)

extendedLLL!(m, n) with 1 <= n <= ncols(m) performs the LLL reduction of m where only the first n columns are considered significant. All matrix transformations, however, will be executed on the full matrix. m is destructively modified and will be lost after this call.

find_relation : (List(Float), NonNegativeInteger) -> List(Integer)

find_relation(lf, k) finds short integer relation between elements of lf rounded to k decimal places.