# Lattices

- [Introduction](introduction.md)

- [Presentation of Lattices](creation.md)

- [Creation of Lattices](creation-2.md)

  - [Elementary Creation of Lattices](creation-2.md#elementary-creation-of-lattices)

    - [`Lattice(X, M): ModMatRngElt, AlgMatElt → Lat`](creation-2.md#function-lattice-modmatrngelt-algmatelt)

    - [`Lattice(n, Q, M): RngIntElt, [ RngElt ], AlgMatElt → Lat`](creation-2.md#function-lattice-rngintelt-rngelt-algmatelt)

    - [`Lattice(S, M): ModTupRng, AlgMatElt → Lat`](creation-2.md#function-lattice-modtuprng-algmatelt)

    - [`Lattice(X): ModMatRngElt → Lat`](creation-2.md#function-lattice-modmatrngelt)

    - [`Lattice(n, Q): RngIntElt, [ RngElt ] → Lat`](creation-2.md#function-lattice-rngintelt-rngelt)

    - [`Lattice(S): ModTupRng → Lat`](creation-2.md#function-lattice-modtuprng)

    - [`LatticeWithBasis(B, M): ModMatRngElt, AlgMatElt → Lat`](creation-2.md#function-latticewithbasis-modmatrngelt-algmatelt)

    - [`LatticeWithBasis(n, Q, M): RngIntElt, [ RngElt ], AlgMatElt → Lat`](creation-2.md#function-latticewithbasis-rngintelt-rngelt-algmatelt)

    - [`LatticeWithBasis(S, M): ModTupRng, AlgMatElt → Lat`](creation-2.md#function-latticewithbasis-modtuprng-algmatelt)

    - [`LatticeWithBasis(B): ModMatRngElt → Lat`](creation-2.md#function-latticewithbasis-modmatrngelt)

    - [`LatticeWithBasis(n, Q): RngIntElt, [ RngElt ] → Lat`](creation-2.md#function-latticewithbasis-rngintelt-rngelt)

    - [`LatticeWithBasis(S): ModTupRng → Lat`](creation-2.md#function-latticewithbasis-modtuprng)

    - [`LatticeWithGram(F): AlgMatElt → Lat`](creation-2.md#function-latticewithgram-algmatelt)

    - [`LatticeWithGram(n, Q): RngIntElt, [RngElt] → Lat`](creation-2.md#function-latticewithgram-rngintelt-rngelt)

    - [`StandardLattice(n): RngIntElt → Lat`](creation-2.md#function-standardlattice-rngintelt)

    - [`CoordinateLattice(L): Lat → Lat`](creation-2.md#function-coordinatelattice-lat)

    - [`Module(L): Lat → Lat`](creation-2.md#function-module-lat)

    - [`ZLattice(L): Lat → Lat`](creation-2.md#function-zlattice-lat)

    - [`ScaledLattice(L, n): Lat, RngIntElt → Lat`](creation-2.md#function-scaledlattice-lat-rngintelt)

    - [`ScaledLattice(L, n): Lat, FldRatElt → Lat`](creation-2.md#function-scaledlattice-lat-fldratelt)

    - [`TernaryQuadraticLattice(d): RngIntElt → Lat`](creation-2.md#function-ternaryquadraticlattice-rngintelt)

    - [`QuaternaryLatticeOfPrimeDiscriminant(p): RngIntElt → Lat`](creation-2.md#function-quaternarylatticeofprimediscriminant-rngintelt)

    - [`QuinaryLatticeOfPrimeDiscriminant(p): RngIntElt → Lat`](creation-2.md#function-quinarylatticeofprimediscriminant-rngintelt)

    - [`QuadraticLattice(n, d): RngIntElt, RngIntElt → Lat`](creation-2.md#function-quadraticlattice-rngintelt-rngintelt)

    - [`RandomLattice(n, M): RngIntElt, RngIntElt → Lat`](creation-2.md#function-randomlattice-rngintelt-rngintelt)

    - [`Example: Lattice Create`](creation-2.md#example-ex-d7d03e)

  - [Lattices from Linear Codes](creation-2.md#lattices-from-linear-codes)

    - [`Lattice(C, "A"): Code → Lat`](creation-2.md#function-lattice-code)

    - [`Lattice(C, "B"): Code → Lat`](creation-2.md#function-lattice-code-2)

    - [`Example: Code`](creation-2.md#example-ex-60a64b)

  - [Lattices from Algebraic Number Fields](creation-2.md#lattices-from-algebraic-number-fields)

    - [`MinkowskiLattice(O): RngOrd → Lat, Map`](creation-2.md#function-minkowskilattice-rngord)

    - [`Lattice(O): RngOrd → Lat, Map`](creation-2.md#function-lattice-rngord)

    - [`MinkowskiLattice(I): RngOrdIdl → Lat, Map`](creation-2.md#function-minkowskilattice-rngordidl)

    - [`Lattice(I): RngOrdIdl → Lat, Map`](creation-2.md#function-lattice-rngordidl)

    - [`MinkowskiSpace(K): FldNum → KModTup, Map`](creation-2.md#function-minkowskispace-fldnum)

    - [`Example: Order Lattice`](creation-2.md#example-ex-12a121)

  - [Special Lattices](creation-2.md#special-lattices)

    - [`Lattice(X, n): MonStgElt, RngIntElt → Lat`](creation-2.md#function-lattice-monstgelt-rngintelt)

- [Lattice Elements](element.md)

  - [Creation of Lattice Elements](element.md#creation-of-lattice-elements)

    - [`L . i: Lat, RngIntElt → LatElt`](element.md#operation-operation-lat-rngintelt-latelt)

    - [`L ! Q: Lat, [ RngElt ] → LatElt`](element.md#operation-op-lat-rngelt)

    - [`elt<L | Q>: Lat, [ RngElt ] → LatElt`](element.md#constructor-constructor-elt-lat-rngelt-latelt)

    - [`CoordinatesToElement(L, C): Lat, [ RngIntElt ] → LatElt`](element.md#function-coordinatestoelement-lat-rngintelt)

    - [`Coordelt(L, C): Lat, [ RngIntElt ] → LatElt`](element.md#function-coordelt-lat-rngintelt)

    - [`CoordinatesToElement(L, C): Lat, Mtrx → LatElt`](element.md#function-coordinatestoelement-lat-mtrx)

    - [`Coordelt(L, C): Lat, Mtrx → LatElt`](element.md#function-coordelt-lat-mtrx)

    - [`L ! 0: Lat, RngIntElt → LatElt`](element.md#operation-op-lat-rngintelt)

    - [`Zero(L): Lat → LatElt`](element.md#function-zero-lat)

  - [Operations on Lattice Elements](element.md#operations-on-lattice-elements)

    - [`- v: LatElt → LatElt`](element.md#operation-operation-latelt-latelt)

    - [`v + w: LatElt, LatElt → LatElt`](element.md#operation-op-plus-latelt-latelt)

    - [`v - w: LatElt, LatElt → LatElt`](element.md#operation-op-minus-latelt-latelt)

    - [`v * s: LatElt, RngIntElt → .`](element.md#operation-op-times-latelt-rngintelt)

    - [`s * v: RngIntElt, LatElt → .`](element.md#operation-op-times-rngintelt-latelt)

    - [`v / s: LatElt, RngIntElt → .`](element.md#operation-op-div-latelt-rngintelt)

    - [`v div d: LatElt, RngIntElt → LatElt`](element.md#operation-operation-div-latelt-rngintelt-latelt)

    - [`v +:= w: LatElt, LatElt`](element.md#operation-operation-latelt-latelt-2)

    - [`v -:= w: LatElt, LatElt`](element.md#operation-operation-latelt-latelt-3)

    - [`v *:= n: LatElt, RngIntElt`](element.md#operation-operation-latelt-rngintelt)

    - [`v * T: LatElt, AlgMatElt → LatElt`](element.md#operation-op-times-latelt-algmatelt)

    - [`v * T: LatElt, ModMatRngElt → LatElt`](element.md#operation-op-times-latelt-modmatrngelt)

    - [`v * T: LatElt, GrpMatElt → LatElt`](element.md#operation-op-times-latelt-grpmatelt)

    - [`InnerProduct(v, w): LatElt, LatElt → RngElt`](element.md#function-innerproduct-latelt-latelt)

    - [`(v, w)`](element.md#literal-literal-v-w)

    - [`Norm(v): LatElt → RngElt`](element.md#function-norm-latelt)

    - [`Length(v, K): LatElt, Fld → FldReElt`](element.md#function-length-latelt-fld)

    - [`Length(v): LatElt → FldReElt`](element.md#function-length-latelt)

    - [`Support(v): LatElt → SetEnum`](element.md#function-support-latelt)

  - [Predicates and Boolean Operations](element.md#predicates-and-boolean-operations)

    - [`v in L: LatElt, Lat → BoolElt`](element.md#operation-op-in-latelt-lat)

    - [`v eq w: LatElt, LatElt → BoolElt`](element.md#operation-op-eq-latelt-latelt)

    - [`v ne w: LatElt, LatElt → BoolElt`](element.md#operation-op-ne-latelt-latelt)

    - [`IsZero(v): LatElt → BoolElt`](element.md#function-iszero-latelt)

  - [Access Operations](element.md#access-operations)

    - [`ElementToSequence(v): LatElt → [ RngElt ]`](element.md#function-elementtosequence-latelt)

    - [`Eltseq(v): LatElt → [ RngElt ]`](element.md#function-eltseq-latelt)

    - [`Coordinates(v): LatElt → [ RngIntElt ]`](element.md#function-coordinates-latelt)

    - [`Coordinates(L, v): Lat, LatElt → [ RngIntElt ]`](element.md#function-coordinates-lat-latelt)

    - [`CoordinateVector(v): LatElt → LatElt`](element.md#function-coordinatevector-latelt)

    - [`CoordinateVector(L, v): Lat, LatElt → LatElt`](element.md#function-coordinatevector-lat-latelt)

    - [`Example: Lattice Functions`](element.md#example-ex-0121de)

- [Properties of Lattices](lattice-properties.md)

  - [Associated Structures](lattice-properties.md#associated-structures)

    - [`AmbientSpace(L): Lat → ModTupFld, Map`](lattice-properties.md#function-ambientspace-lat)

    - [`CoordinateSpace(L): Lat → ModTupFld, Map`](lattice-properties.md#function-coordinatespace-lat)

    - [`Category(L): Lat → Cat`](lattice-properties.md#function-category-lat)

    - [`Type(L): Lat → Cat`](lattice-properties.md#function-type-lat)

  - [Attributes of Lattices](lattice-properties.md#attributes-of-lattices)

    - [`Dimension(L): Lat → RngIntElt`](lattice-properties.md#function-dimension-lat)

    - [`Rank(L): Lat → RngIntElt`](lattice-properties.md#function-rank-lat)

    - [`Degree(L): Lat → RngIntElt`](lattice-properties.md#function-degree-lat)

    - [`Degree(v): LatElt → RngIntElt`](lattice-properties.md#function-degree-latelt)

    - [`Content(L): Lat → RngElt`](lattice-properties.md#function-content-lat)

    - [`Level(L): Lat → RngElt`](lattice-properties.md#function-level-lat)

    - [`Determinant(L): Lat → RngElt`](lattice-properties.md#function-determinant-lat)

    - [`Discriminant(L): Lat → RngInt`](lattice-properties.md#function-discriminant-lat)

    - [`Scale(L): Lat → RngIntFracIdl`](lattice-properties.md#function-scale-lat)

    - [`BadPrimes(L): Lat → Set`](lattice-properties.md#function-badprimes-lat)

    - [`GramMatrix(L): Lat → AlgMatElt`](lattice-properties.md#function-grammatrix-lat)

    - [`AuxiliaryForms(L): Lat → [ AlgMatElt ]`](lattice-properties.md#function-auxiliaryforms-lat)

    - [`GramMatrix(L, S): Lat, [ ModTupFldElt ] → AlgMatElt`](lattice-properties.md#function-grammatrix-lat-modtupfldelt)

    - [`GramMatrix(S): [ LatElt ] → AlgMatElt`](lattice-properties.md#function-grammatrix-latelt)

    - [`GramMatrix(X): ModMatRngElt → AlgMatElt`](lattice-properties.md#function-grammatrix-modmatrngelt)

    - [`InnerProductMatrix(L): Lat → AlgMatElt`](lattice-properties.md#function-innerproductmatrix-lat)

    - [`Basis(L): Lat → [ FldReElt ]`](lattice-properties.md#function-basis-lat)

    - [`Basis(L): Lat → [ FldRatElt ]`](lattice-properties.md#function-basis-lat-2)

    - [`Basis(L): Lat → [ RngIntElt ]`](lattice-properties.md#function-basis-lat-3)

    - [`PseudoBasis(L): Lat → [ RngIntElt ]`](lattice-properties.md#function-pseudobasis-lat)

    - [`BasisMatrix(L): Lat → ModMatRngElt`](lattice-properties.md#function-basismatrix-lat)

    - [`BasisDenominator(L): Lat → RngIntElt`](lattice-properties.md#function-basisdenominator-lat)

    - [`CoefficientIdeals(L): Lat → [ RngInt ]`](lattice-properties.md#function-coefficientideals-lat)

    - [`Involution(L): Lat → FldAut`](lattice-properties.md#function-involution-lat)

    - [`QuadraticForm(L): Lat → RngMPolElt`](lattice-properties.md#function-quadraticform-lat)

  - [Predicates and Booleans on Lattices](lattice-properties.md#predicates-and-booleans-on-lattices)

    - [`L eq M: Lat, Lat → BoolElt`](lattice-properties.md#operation-op-eq-lat-lat)

    - [`L ne M: Lat, Lat → BoolElt`](lattice-properties.md#operation-op-ne-lat-lat)

    - [`L subset M: Lat, Lat → BoolElt`](lattice-properties.md#operation-op-subset-lat-lat)

    - [`IsZero(L): Lat → BoolElt`](lattice-properties.md#function-iszero-lat)

    - [`IsFull(L): Lat → BoolElt`](lattice-properties.md#function-isfull-lat)

    - [`IsHermitian(L): Lat → BoolElt`](lattice-properties.md#function-ishermitian-lat)

    - [`IsQuadratic(L): Lat → BoolElt`](lattice-properties.md#function-isquadratic-lat)

    - [`IsExact(L): Lat → BoolElt`](lattice-properties.md#function-isexact-lat)

    - [`IsIntegral(L): Lat → BoolElt`](lattice-properties.md#function-isintegral-lat)

    - [`IsEven(L): Lat → BoolElt`](lattice-properties.md#function-iseven-lat)

  - [Base Ring and Base Change](lattice-properties.md#base-ring-and-base-change)

    - [`BaseRing(L): Lat → Rng`](lattice-properties.md#function-basering-lat)

    - [`CoefficientRing(L): Lat → Rng`](lattice-properties.md#function-coefficientring-lat)

    - [`CoordinateRing(L): Lat → RngInt`](lattice-properties.md#function-coordinatering-lat)

    - [`Order(L): Lat → RngInt`](lattice-properties.md#function-order-lat)

    - [`ChangeRing(L, S): Lat, Rng → Lat, Map`](lattice-properties.md#function-changering-lat-rng)

    - [`BaseChange(L, S): Lat, Rng → Lat, Map`](lattice-properties.md#function-basechange-lat-rng)

    - [`BaseExtend(L, S): Lat, Rng → Lat, Map`](lattice-properties.md#function-baseextend-lat-rng)

- [Construction of New Lattices](new-construction.md)

  - [Sub- and Superlattices and Quotients](new-construction.md#sub-and-superlattices-and-quotients)

    - [`sub<L | S>: Lat, List → Lat`](new-construction.md#constructor-constructor-sub-lat-list-lat)

    - [`ext< L | S >: Lat, List → Lat`](new-construction.md#constructor-constructor-ext-lat-list-lat)

    - [`T * L: AlgMatElt, Lat → Lat`](new-construction.md#operation-op-times-algmatelt-lat)

    - [`T * L: ModMatRng, Lat → Lat`](new-construction.md#operation-op-times-modmatrng-lat)

    - [`s * L: RngElt, Lat → Lat`](new-construction.md#operation-op-times-rngelt-lat)

    - [`L * s: Lat, RngElt → Lat`](new-construction.md#operation-op-times-lat-rngelt)

    - [`J * L: RngInt, Lat → Lat`](new-construction.md#operation-op-times-rngint-lat)

    - [`J * L: RngIntFracIdl, Lat → Lat`](new-construction.md#operation-op-times-rngintfracidl-lat)

    - [`L / s: Lat, RngElt → Lat`](new-construction.md#operation-op-div-lat-rngelt)

    - [`quo< L | S >: Lat, List → GrpAb, Map`](new-construction.md#constructor-constructor-quo-lat-list-grpab-map)

    - [`L / S: Lat, Lat → GrpAb, Map`](new-construction.md#operation-op-div-lat-lat)

    - [`ElementaryDivisors(A, B): Lat, Lat → [ RngIntFracIdl ]`](new-construction.md#function-elementarydivisors-lat-lat)

    - [`Discriminant(A, B): Lat, Lat → RngIntFracIdl`](new-construction.md#function-discriminant-lat-lat)

    - [`Index(L, S): Lat, Lat → RngInt`](new-construction.md#function-index-lat-lat)

    - [`Example: Sub Super Quo`](new-construction.md#example-ex-db15d9)

  - [Standard Constructions of New Lattices](new-construction.md#standard-constructions-of-new-lattices)

    - [`Dual(L): Lat → Lat`](new-construction.md#function-dual-lat)

    - [`PartialDual(L, n): Lat, RngIntElt → Lat`](new-construction.md#function-partialdual-lat-rngintelt)

    - [`DualBasisLattice(L): Lat → Lat`](new-construction.md#function-dualbasislattice-lat)

    - [`DualQuotient(L): Lat → GrpAb, Lat, Map`](new-construction.md#function-dualquotient-lat)

    - [`EvenSublattice(L): Lat → Lat, Map`](new-construction.md#function-evensublattice-lat)

    - [`Example: dual`](new-construction.md#example-ex-4c9c8e)

    - [`L + M: Lat, Lat → Lat`](new-construction.md#operation-op-plus-lat-lat)

    - [`L meet M: Lat, Lat → Lat`](new-construction.md#operation-op-meet-lat-lat)

    - [`DirectSum(L, M): Lat, Lat → Lat`](new-construction.md#function-directsum-lat-lat)

    - [`OrthogonalSum(L, M): Lat, Lat → Lat`](new-construction.md#function-orthogonalsum-lat-lat)

    - [`OrthogonalDecomposition(L): Lat → [Lat]`](new-construction.md#function-orthogonaldecomposition-lat)

    - [`OrthogonalDecomposition(L, F): Lat, [Mtrx] → [Lat]`](new-construction.md#function-orthogonaldecomposition-lat-mtrx)

    - [`OrthogonalDecomposition(F): [Mtrx] → [* Mtrx *], [* [Mtrx] *]`](new-construction.md#function-orthogonaldecomposition-mtrx)

    - [`TensorProduct(L, M): Lat, Lat → Lat`](new-construction.md#function-tensorproduct-lat-lat)

    - [`ExteriorSquare(L): Lat → Lat`](new-construction.md#function-exteriorsquare-lat)

    - [`SymmetricSquare(L): Lat → Lat`](new-construction.md#function-symmetricsquare-lat)

    - [`PureLattice(L): Lat → Lat`](new-construction.md#function-purelattice-lat)

    - [`IntegralBasisLattice(L): Lat → Lat, RngIntElt`](new-construction.md#function-integralbasislattice-lat)

- [Reduction of Matrices and Lattices](reduction.md)

  - [LLL Reduction](reduction.md#lll-reduction)

    - [`Example: LLL Usage`](reduction.md#example-ex-5c6218)

    - [`LLL(X): ModMatRngElt → ModMatRngElt, AlgMatElt, RngIntElt`](reduction.md#function-lat-lll)

    - [`LLL(X): AlgMatElt → AlgMatElt, AlgMatElt, RngIntElt`](reduction.md#function-lll-algmatelt)

    - [`BasisReduction(X): ModMatRngElt → ModMatRngElt, AlgMatElt, RngIntElt`](reduction.md#function-lat-basisreduction)

    - [`BasisReduction(X): AlgMatElt → AlgMatElt, AlgMatElt, RngIntElt`](reduction.md#function-basisreduction-algmatelt)

    - [`LLLGram(F): ModMatRngElt → ModMatRngElt, AlgMatElt, RngIntElt`](reduction.md#function-lllgram-modmatrngelt)

    - [`LLLGram(F): AlgMatElt → AlgMatElt, AlgMatElt, RngIntElt`](reduction.md#function-lllgram-algmatelt)

    - [`LLLBasisMatrix(L): Lat → ModMatElt, AlgMatElt`](reduction.md#function-lllbasismatrix-lat)

    - [`LLLGramMatrix(L): Lat → AlgMatElt, AlgMatElt`](reduction.md#function-lllgrammatrix-lat)

    - [`LLL(L): Lat → Lat, AlgMatElt`](reduction.md#function-lll-lat)

    - [`BasisReduction(L): Lat → Lat, AlgMatElt`](reduction.md#function-basisreduction-lat)

    - [`SetVerbose("LLL", v): MonStgElt, RngIntElt`](reduction.md#function-setverbose-monstgelt-rngintelt)

    - [`Example: LLLXGCD`](reduction.md#example-ex-471339)

  - [Pair Reduction](reduction.md#pair-reduction)

    - [`PairReduce(X): ModMatRngElt → ModMatRngElt, AlgMatElt`](reduction.md#function-pairreduce-modmatrngelt)

    - [`PairReduce(X): AlgMatElt → AlgMatElt, AlgMatElt`](reduction.md#function-pairreduce-algmatelt)

    - [`PairReduceGram(F): ModMatRngElt → ModMatRngElt, AlgMatElt, RngIntElt`](reduction.md#function-pairreducegram-modmatrngelt)

    - [`PairReduceGram(F): AlgMatElt → AlgMatElt, AlgMatElt, RngIntElt`](reduction.md#function-pairreducegram-algmatelt)

    - [`PairReduce(L): Lat → Lat, AlgMatElt`](reduction.md#function-pairreduce-lat)

  - [Seysen Reduction](reduction.md#seysen-reduction)

    - [`Seysen(X): ModMatRngElt → ModMatRngElt, AlgMatElt`](reduction.md#function-seysen-modmatrngelt)

    - [`Seysen(X): AlgMatElt → AlgMatElt, AlgMatElt`](reduction.md#function-seysen-algmatelt)

    - [`SeysenGram(F): ModMatRngElt → ModMatRngElt, AlgMatElt, RngIntElt`](reduction.md#function-seysengram-modmatrngelt)

    - [`SeysenGram(F): AlgMatElt → AlgMatElt, AlgMatElt, RngIntElt`](reduction.md#function-seysengram-algmatelt)

    - [`Seysen(L): Lat → Lat, AlgMatElt`](reduction.md#function-seysen-lat)

    - [`Example: Seysen`](reduction.md#example-ex-1751af)

  - [HKZ Reduction](reduction.md#hkz-reduction)

    - [`HKZ(X): ModMatRngElt → ModMatRngElt, AlgMatElt`](reduction.md#function-lat-hkz)

    - [`HKZGram(F): ModMatRngElt → ModMatRngElt, AlgMatElt`](reduction.md#function-hkzgram-modmatrngelt)

    - [`HKZ(L): Lat → Lat, AlgMatElt`](reduction.md#function-hkz-lat)

    - [`SetVerbose("HKZ", v): MonStgElt, RngIntElt`](reduction.md#function-setverbose-monstgelt-rngintelt-2)

    - [`GaussReduce(X): ModMatRngElt → ModMatRngElt, AlgMatElt`](reduction.md#function-lat-gaussreduce)

    - [`GaussReduceGram(F): ModMatRngElt → ModMatRngElt, AlgMatElt`](reduction.md#function-gaussreducegram-modmatrngelt)

    - [`GaussReduce(L): Lat → Lat, AlgMatElt`](reduction.md#function-gaussreduce-lat)

    - [`Example: HKZ`](reduction.md#example-ex-421d95)

  - [BKZ Reduction](reduction.md#bkz-reduction)

    - [`BKZ(M, n): Mtrx, RngIntElt → Mtrx, AlgMatElt, RngIntElt`](reduction.md#function-bkz-mtrx-rngintelt)

    - [`BKZ(L, n): Lat, RngIntElt → Lat, AlgMatElt`](reduction.md#function-bkz-lat-rngintelt)

    - [`Example: Bkz Example`](reduction.md#example-ex-13f155)

  - [Minkowski Reduction](reduction.md#minkowski-reduction)

    - [`MinkowskiReduction(L): Lat → Lat, AlgMatElt`](reduction.md#function-minkowskireduction-lat)

    - [`MinkowskiGramReduction(M): Mtrx → Mtrx, Mtrx`](reduction.md#function-minkowskigramreduction-mtrx)

  - [Greedy Reduction](reduction.md#greedy-reduction)

    - [`GreedyReduction(L): Lat → Lat, AlgMatElt`](reduction.md#function-greedyreduction-lat)

    - [`GreedyOrbit(M): AlgMatElt → Set[AlgMatElt]`](reduction.md#function-greedyorbit-algmatelt)

  - [Recovering a Short Basis from Short Lattice Vectors](reduction.md#recovering-a-short-basis-from-short-lattice-vectors)

    - [`ReconstructLatticeBasis(S, B): ModMatRngElt, ModMatRngElt → ModMatRngEltLat`](reduction.md#function-reconstructlatticebasis-modmatrngelt-modmatrngelt)

- [Minima and Element Enumeration](enumeration.md)

  - [Minimum, Density and Kissing Number](enumeration.md#minimum-density-and-kissing-number)

    - [`Minimum(L): Lat → RngElt`](enumeration.md#function-minimum-lat)

    - [`Min(L): Lat → RngElt`](enumeration.md#function-min-lat)

    - [`PackingRadius(L): Lat → FldReElt`](enumeration.md#function-packingradius-lat)

    - [`HermiteConstant(n): RngIntElt → RngElt`](enumeration.md#function-hermiteconstant-rngintelt)

    - [`HermiteNumber(L): Lat → FldReElt`](enumeration.md#function-hermitenumber-lat)

    - [`CentreDensity(L): Lat → FldReElt`](enumeration.md#function-centredensity-lat)

    - [`CenterDensity(L): Lat → FldReElt`](enumeration.md#function-centerdensity-lat)

    - [`CentreDensity(L, K): Lat, Fld → FldElt`](enumeration.md#function-centredensity-lat-fld)

    - [`CenterDensity(L, K): Lat, Fld → FldElt`](enumeration.md#function-centerdensity-lat-fld)

    - [`Density(L): Lat → FldReElt`](enumeration.md#function-density-lat)

    - [`Density(L, K): Lat, Fld → FldReElt`](enumeration.md#function-density-lat-fld)

    - [`KissingNumber(L): Lat → RngElt`](enumeration.md#function-kissingnumber-lat)

    - [`Example: Leech`](enumeration.md#example-ex-0f67ef)

  - [Shortest and Closest Vectors](enumeration.md#shortest-and-closest-vectors)

    - [`ShortestVectors(L): Lat → [ LatElt ]`](enumeration.md#function-shortestvectors-lat)

    - [`ShortestVectorsMatrix(L): Lat → ModMatRngElt`](enumeration.md#function-shortestvectorsmatrix-lat)

    - [`ShortestVector(L): Lat → LatElt`](enumeration.md#function-shortestvector-lat)

    - [`ClosestVectors(L, w): Lat, ModTupRngElt → [ LatElt ], RngElt`](enumeration.md#function-closestvectors-lat-modtuprngelt)

    - [`ClosestVectors(L, w): Lat, LatElt → [ LatElt ], RngElt`](enumeration.md#function-closestvectors-lat-latelt)

    - [`ClosestVectorsMatrix(L, w): Lat, ModTupRngElt → ModMatRngElt, RngElt`](enumeration.md#function-closestvectorsmatrix-lat-modtuprngelt)

    - [`ClosestVectorsMatrix(L, w): Lat, LatElt → ModMatRngElt, RngElt`](enumeration.md#function-closestvectorsmatrix-lat-latelt)

    - [`ClosestVector(L, w): Lat, ModTupRngElt → LatElt`](enumeration.md#function-closestvector-lat-modtuprngelt)

    - [`ClosestVector(L, w): Lat, LatElt → LatElt`](enumeration.md#function-closestvector-lat-latelt)

    - [`Example: Closest`](enumeration.md#example-ex-43a78a)

  - [Short and Close Vectors](enumeration.md#short-and-close-vectors)

    - [`ShortVectors(L, u): Lat, RngElt → [ <LatElt, RngElt> ]`](enumeration.md#function-shortvectors-lat-rngelt)

    - [`ShortVectors(L, l, u): Lat, RngElt, RngElt → [ <LatElt, RngElt> ]`](enumeration.md#function-shortvectors-lat-rngelt-rngelt)

    - [`ShortVectorsMatrix(L, u): Lat, RngElt → ModMatRngElt`](enumeration.md#function-shortvectorsmatrix-lat-rngelt)

    - [`ShortVectorsMatrix(L, l, u): Lat, RngElt, RngElt → ModMatRngElt`](enumeration.md#function-shortvectorsmatrix-lat-rngelt-rngelt)

    - [`ShortVector(L, u): Lat, RngElt → LatElt`](enumeration.md#function-shortvector-lat-rngelt)

    - [`ShortVector(L, l, u): Lat, RngElt, RngElt → LatElt`](enumeration.md#function-shortvector-lat-rngelt-rngelt)

    - [`CloseVectors(L, w, u): Lat, ModTupRngElt, RngElt → [ <LatElt, RngElt> ]`](enumeration.md#function-closevectors-lat-modtuprngelt-rngelt)

    - [`CloseVectors(L, w, l, u): Lat, ModTupRngElt, RngElt, RngElt → [ <LatElt, RngElt> ]`](enumeration.md#function-closevectors-lat-modtuprngelt-rngelt-rngelt)

    - [`CloseVectors(L, w, u): Lat, LatElt, RngElt → [ <LatElt, RngElt> ]`](enumeration.md#function-closevectors-lat-latelt-rngelt)

    - [`CloseVectors(L, w, l, u): Lat, LatElt, RngElt, RngElt → [ <LatElt, RngElt> ]`](enumeration.md#function-closevectors-lat-latelt-rngelt-rngelt)

    - [`CloseVectorsMatrix(L, w, u): Lat, ModTupRngElt, RngElt → ModMatRngElt`](enumeration.md#function-closevectorsmatrix-lat-modtuprngelt-rngelt)

    - [`CloseVectorsMatrix(L, w, l, u): Lat, ModTupRngElt, RngElt, RngElt → ModMatRngElt`](enumeration.md#function-closevectorsmatrix-lat-modtuprngelt-rngelt-rngelt)

    - [`CloseVectorsMatrix(L, w, u): Lat, LatElt, RngElt → ModMatRngElt`](enumeration.md#function-closevectorsmatrix-lat-latelt-rngelt)

    - [`CloseVectorsMatrix(L, l, u): Lat, LatElt, RngElt, RngElt → ModMatRngElt`](enumeration.md#function-closevectorsmatrix-lat-latelt-rngelt-rngelt)

    - [`CloseVector(L, w, u): Lat, ModTupRngElt, RngElt → LatElt`](enumeration.md#function-closevector-lat-modtuprngelt-rngelt)

    - [`CloseVector(L, w, l, u): Lat, ModTupRngElt, RngElt, RngElt → LatElt`](enumeration.md#function-closevector-lat-modtuprngelt-rngelt-rngelt)

    - [`CloseVector(L, w, u): Lat, LatElt, RngElt → LatElt`](enumeration.md#function-closevector-lat-latelt-rngelt)

    - [`CloseVector(L, w, l, u): Lat, LatElt, RngElt, RngElt → LatElt`](enumeration.md#function-closevector-lat-latelt-rngelt-rngelt)

    - [`Example: Knapsack`](enumeration.md#example-ex-76fabb)

    - [`Example: Singular Elements`](enumeration.md#example-ex-92d5fa)

  - [Short and Close Vector Processes](enumeration.md#short-and-close-vector-processes)

    - [`ShortVectorsProcess(L, u): Lat, RngElt → LatEnumProc`](enumeration.md#function-shortvectorsprocess-lat-rngelt)

    - [`ShortVectorsProcess(L, l, u): Lat, RngElt, RngElt → LatEnumProc`](enumeration.md#function-shortvectorsprocess-lat-rngelt-rngelt)

    - [`CloseVectorsProcess(L, w, u): Lat, ModTupRngElt, RngElt → LatEnumProc`](enumeration.md#function-closevectorsprocess-lat-modtuprngelt-rngelt)

    - [`CloseVectorsProcess(L, w, l, u): Lat, ModTupRngElt, RngElt, RngElt → LatEnumProc`](enumeration.md#function-closevectorsprocess-lat-modtuprngelt-rngelt-rngelt)

    - [`CloseVectorsProcess(L, w, u): Lat, LatElt, RngElt → LatEnumProc`](enumeration.md#function-closevectorsprocess-lat-latelt-rngelt)

    - [`CloseVectorsProcess(L, w, l, u): Lat, LatElt, RngElt, RngElt → LatEnumProc`](enumeration.md#function-closevectorsprocess-lat-latelt-rngelt-rngelt)

    - [`NextVector(P): LatEnumProc → LatElt, RngElt`](enumeration.md#function-nextvector-latenumproc)

    - [`IsEmpty(P): LatEnumProc → BoolElt`](enumeration.md#function-isempty-latenumproc)

  - [Successive Minima and Theta Series](enumeration.md#successive-minima-and-theta-series)

    - [`SuccessiveMinima(L): Lat → [ RngElt ], [ LatElt ]`](enumeration.md#function-successiveminima-lat)

    - [`SuccessiveMinima(L, k): Lat, RngIntElt → [ RngElt ], [ LatElt ]`](enumeration.md#function-successiveminima-lat-rngintelt)

    - [`Example: Succ Min`](enumeration.md#example-ex-c16c45)

    - [`ThetaSeries(L, n): Lat, RngIntElt → RngSerElt`](enumeration.md#function-thetaseries-lat-rngintelt)

    - [`Example: Theta Series`](enumeration.md#example-ex-e2016c)

    - [`ThetaSeriesIntegral(L, n): Lat, RngIntElt → RngSerElt`](enumeration.md#function-thetaseriesintegral-lat-rngintelt)

  - [Lattice Enumeration Utilities](enumeration.md#lattice-enumeration-utilities)

    - [`SetVerbose("Enum", v): MonStgElt, RngIntElt`](enumeration.md#function-setverbose-monstgelt-rngintelt-3)

    - [`EnumerationCost(L): Lat → FldReElt`](enumeration.md#function-enumerationcost-lat)

    - [`EnumerationCost(L, u): Lat, FldReElt → FldReElt`](enumeration.md#function-enumerationcost-lat-fldreelt)

    - [`EnumerationCostArray(L): Lat → ModTupFldElt`](enumeration.md#function-enumerationcostarray-lat)

    - [`EnumerationCostArray(L, u): Lat, FldReElt → ModTupFldElt`](enumeration.md#function-enumerationcostarray-lat-fldreelt)

    - [`Example: Enumeration Cost`](enumeration.md#example-ex-2bc3fa)

    - [`Example: Parallel Enumeration`](enumeration.md#example-ex-d59c02)

- [Theta Series as Modular Forms](theta_modfrm.md)

  - [`ThetaSeriesModularFormSpace(L): Lat → ModFrm`](theta_modfrm.md#function-thetaseriesmodularformspace-lat)

  - [`ThetaSeriesModularForm(L): Lat → ModFrmElt`](theta_modfrm.md#function-thetaseriesmodularform-lat)

- [Voronoi Cells, Holes and Covering Radius](voronoi.md)

  - [`VoronoiCell(L): Lat → [ ModTupFldElt ], { SetEnum }, [ ModTupFldElt ]`](voronoi.md#function-voronoicell-lat)

  - [`VoronoiGraph(L): Lat → GrphUnd`](voronoi.md#function-voronoigraph-lat)

  - [`Holes(L): Lat → [ ModTupFldElt ]`](voronoi.md#function-holes-lat)

  - [`DeepHoles(L): Lat → [ ModTupFldElt ]`](voronoi.md#function-deepholes-lat)

  - [`CoveringRadius(L): Lat → FldRatElt`](voronoi.md#function-coveringradius-lat)

  - [`VoronoiRelevantVectors(L): Lat → [ ModTupFldElt ]`](voronoi.md#function-voronoirelevantvectors-lat)

  - [`Example: Voronoi`](voronoi.md#example-ex-c4cf07)

- [Orthogonalization](ortho.md)

  - [`Orthogonalize(M): MtrxSpcElt → MtrxSpcElt, AlgMatElt, RngIntElt`](ortho.md#function-orthogonalize-mtrxspcelt)

  - [`Orthogonalization(F): MtrxSpcElt → MtrxSpcElt, AlgMatElt, RngIntElt`](ortho.md#function-orthogonalization-mtrxspcelt)

  - [`OrthogonalizeGram(F): MtrxSpcElt → MtrxSpcElt, AlgMatElt, RngIntElt`](ortho.md#function-orthogonalizegram-mtrxspcelt)

  - [`OrthogonalizeGram(F, a): MtrxSpcElt, FldAut → MtrxSpcElt, AlgMatElt, RngIntElt`](ortho.md#function-orthogonalizegram-mtrxspcelt-fldaut)

  - [`Orthogonalize(L): Lat → Lat, AlgMatElt`](ortho.md#function-orthogonalize-lat)

  - [`Orthonormalize(M, K): MtrxSpcElt, Fld → AlgMatElt`](ortho.md#function-orthonormalize-mtrxspcelt-fld)

  - [`Cholesky(M, K): MtrxSpcElt, Fld → AlgMatElt`](ortho.md#function-cholesky-mtrxspcelt-fld)

  - [`Orthonormalize(M): MtrxSpcElt → AlgMatElt`](ortho.md#function-orthonormalize-mtrxspcelt)

  - [`Cholesky(M): MtrxSpcElt → AlgMatElt`](ortho.md#function-cholesky-mtrxspcelt)

  - [`Orthonormalize(L, K): Lat, FldRe → AlgMatElt`](ortho.md#function-orthonormalize-lat-fldre)

  - [`Cholesky(L, K): Lat, FldRe → AlgMatElt`](ortho.md#function-cholesky-lat-fldre)

  - [`Orthonormalize(L): Lat → AlgMatElt`](ortho.md#function-orthonormalize-lat)

  - [`Cholesky(L): Lat → AlgMatElt`](ortho.md#function-cholesky-lat)

  - [`Example: Orthogonalize`](ortho.md#example-ex-452db1)

- [Testing Matrices for Definiteness](definite.md)

  - [`IsPositiveDefinite(F): Mtrx → BoolElt`](definite.md#function-lat-ispositivedefinite)

  - [`IsPositiveSemiDefinite(F): Mtrx → BoolElt`](definite.md#function-ispositivesemidefinite-mtrx)

  - [`IsNegativeDefinite(F): Mtrx → BoolElt`](definite.md#function-isnegativedefinite-mtrx)

  - [`IsNegativeSemiDefinite(F): Mtrx → BoolElt`](definite.md#function-isnegativesemidefinite-mtrx)

  - [`Signature(F): Mtrx → RngIntElt, RngIntElt, RngIntElt`](definite.md#function-signature-mtrx)

  - [`NumericalSignature(M): Mtrx → RngIntElt, RngIntElt`](definite.md#function-numericalsignature-mtrx)

- [Genera and Spinor Genera](genus.md)

  - [Genus Constructions](genus.md#genus-constructions)

    - [`Genus(L): Lat → SymGen`](genus.md#function-genus-lat)

    - [`Genus(G): SymGen → SymGen`](genus.md#function-genus-symgen)

    - [`Genera(r, s, d): RngIntElt, RngIntElt, RngIntElt → [ SymGen ]`](genus.md#function-genera-rngintelt-rngintelt-rngintelt)

    - [`SpinorGenus(L): Lat → SymGen`](genus.md#function-spinorgenus-lat)

    - [`SpinorGenera(G): SymGen → [ SymGen ]`](genus.md#function-spinorgenera-symgen)

    - [`Genus(r, s, d, S): RngIntElt, RngIntElt, RngIntElt, [ SymGenLoc ] → SymGen`](genus.md#function-genus-rngintelt-rngintelt-rngintelt-symgenloc)

  - [Local Genus Constructions](genus.md#local-genus-constructions)

    - [`LocalGenus(L, p): Lat, RngIntElt → SymGenLoc`](genus.md#function-localgenus-lat-rngintelt)

    - [`LocalGenus(A, p): AlgMatElt[RngInt], RngIntElt → SymGenLoc`](genus.md#function-localgenus-algmatelt-rngint-rngintelt)

    - [`CanonicalLocalGenus(G): SymGenLoc → SymGenLoc`](genus.md#function-canonicallocalgenus-symgenloc)

    - [`LocalGenus(p, v, r, d): RngIntElt, [ RngIntElt ], [ RngIntElt ], [ RngElt ] → SymGenLoc`](genus.md#function-localgenus-rngintelt-rngintelt-rngintelt-rngelt)

    - [`LocalGenera(n, d, p): RngIntElt, RngIntElt, RngIntElt → [ SymGenLoc ]`](genus.md#function-localgenera-rngintelt-rngintelt-rngintelt)

    - [`pAdicDiagonalization(L, p): Lat, RngIntElt → Lat`](genus.md#function-padicdiagonalization-lat-rngintelt)

    - [`JordanDecomposition(L, p): Lat, RngIntElt → List, List, SeqEnum`](genus.md#function-jordandecomposition-lat-rngintelt)

    - [`JordanDecomposition(L, P): Lat, RngInt → List, List, SeqEnum`](genus.md#function-jordandecomposition-lat-rngint)

    - [`pAdicJordanDecomposition(L, p): Lat, RngIntElt → AlgMatElt, AlgMatElt`](genus.md#function-padicjordandecomposition-lat-rngintelt)

    - [`LocalModification(L, G, p): Lat, AlgMatElt[RngInt], RngIntElt → Lat`](genus.md#function-localmodification-lat-algmatelt-rngint-rngintelt)

  - [Invariants of Genera and Spinor Genera](genus.md#invariants-of-genera-and-spinor-genera)

    - [`Primes(G): SymGen → [ RngIntElt ]`](genus.md#function-primes-symgen)

    - [`Dimension(G): SymGen → RngIntElt`](genus.md#function-dimension-symgen)

    - [`Rank(G): SymGen → RngIntElt`](genus.md#function-rank-symgen)

    - [`Signature(G): SymGen → RngIntElt, RngIntElt`](genus.md#function-signature-symgen)

    - [`Representative(G): SymGen → Lat`](genus.md#function-representative-symgen)

    - [`RationalRepresentative(G): SymGen → AlgMatElt[FldRat]`](genus.md#function-rationalrepresentative-symgen)

    - [`IsEven(G): SymGen → BoolElt`](genus.md#function-iseven-symgen)

    - [`IsSpinorGenus(G): SymGen → BoolElt`](genus.md#function-isspinorgenus-symgen)

    - [`IsGenus(G): SymGen → BoolElt`](genus.md#function-isgenus-symgen)

    - [`Determinant(G): SymGen → Lat`](genus.md#function-determinant-symgen)

    - [`LocalGenera(G): SymGen → Lat`](genus.md#function-localgenera-symgen)

    - [`ConwaySymbol(G): SymGen → MonStgElt`](genus.md#function-conwaysymbol-symgen)

    - [`G1 eq G2: SymGen, SymGen → BoolElt`](genus.md#operation-op-eq-symgen-symgen)

    - [`# G: SymGen → RngIntElt`](genus.md#operation-operation-symgen-rngintelt)

    - [`SpinorCharacters(G): SymGen → [ GrpDrchElt ]`](genus.md#function-spinorcharacters-symgen)

    - [`SpinorGenerators(G): SymGen → [ RngIntElt ]`](genus.md#function-spinorgenerators-symgen)

    - [`AutomorphousClasses(L, p): Lat, RngIntElt → { RngIntElt }`](genus.md#function-automorphousclasses-lat-rngintelt)

    - [`AutomorphousClasses(G, p): SymGen, RngIntElt → { RngIntElt }`](genus.md#function-automorphousclasses-symgen-rngintelt)

    - [`IsSpinorNorm(G, p): SymGen, RngIntElt → { RngIntElt }`](genus.md#function-isspinornorm-symgen-rngintelt)

  - [Invariants of $p$-adic Genera](genus.md#invariants-of-p-adic-genera)

    - [`Prime(G): SymGenLoc → RngIntElt`](genus.md#function-prime-symgenloc)

    - [`Representative(G): SymGenLoc → Lat`](genus.md#function-representative-symgenloc)

    - [`Determinant(G): SymGenLoc → RngIntElt`](genus.md#function-determinant-symgenloc)

    - [`Dimension(G): SymGenLoc → RngIntElt`](genus.md#function-dimension-symgenloc)

    - [`Rank(G): SymGenLoc → RngIntElt`](genus.md#function-rank-symgenloc)

    - [`Oddity(G): SymGenLoc → RngIntResElt`](genus.md#function-oddity-symgenloc)

    - [`Excess(G): SymGenLoc → RngIntResElt`](genus.md#function-excess-symgenloc)

    - [`Compartments(G): SymGenLoc → [ [ RngIntElt ] ]`](genus.md#function-compartments-symgenloc)

    - [`Trains(G): SymGenLoc → [ [ RngIntElt ] ]`](genus.md#function-trains-symgenloc)

    - [`ConwaySymbol(G): SymGenLoc → MonStgElt`](genus.md#function-conwaysymbol-symgenloc)

    - [`IsEven(G): SymGenLoc → BoolElt`](genus.md#function-iseven-symgenloc)

    - [`GramMatrix(G): SymGenLoc → AlgMatElt[RngInt]`](genus.md#function-grammatrix-symgenloc)

    - [`G1 eq G2: SymGenLoc, SymGenLoc → BoolElt`](genus.md#operation-op-eq-symgenloc-symgenloc)

    - [`# G: SymGenLoc → RngIntElt`](genus.md#operation-operation-symgenloc-rngintelt)

  - [Neighbour Relations and Graphs](genus.md#neighbour-relations-and-graphs)

    - [`Neighbour(L, v, p): Lat, LatElt, RngIntElt → Lat`](genus.md#function-neighbour-lat-latelt-rngintelt)

    - [`Neighbor(L, v, p): Lat, LatElt, RngIntElt → Lat`](genus.md#function-neighbor-lat-latelt-rngintelt)

    - [`Neighbours(L, p): Lat, RngIntElt → Lat`](genus.md#function-neighbours-lat-rngintelt)

    - [`Neighbors(L, p): Lat, RngIntElt → Lat`](genus.md#function-neighbors-lat-rngintelt)

    - [`NeighbourClosure(L, p): Lat, RngIntElt → Lat`](genus.md#function-neighbourclosure-lat-rngintelt)

    - [`NeighborClosure(L, p): Lat, RngIntElt → Lat`](genus.md#function-neighborclosure-lat-rngintelt)

    - [`GenusRepresentatives(L): Lat → [ Lat ], Assoc`](genus.md#function-genusrepresentatives-lat)

    - [`SpinorRepresentatives(L): Lat → [ Lat ], Assoc`](genus.md#function-spinorrepresentatives-lat)

    - [`Representatives(G): SymGen → [ Lat ], Assoc`](genus.md#function-representatives-symgen)

    - [`Representatives(G): SymGen → [ LatNF ], Assoc`](genus.md#function-representatives-symgen-2)

    - [`PositiveDefiniteQuadraticLattices(n, d): RngIntElt, RngIntElt → [ [ Lat ] ]`](genus.md#function-positivedefinitequadraticlattices-rngintelt-rngintelt)

    - [`TernaryQuadraticLattices(d): RngIntElt → [ [ Lat ] ]`](genus.md#function-ternaryquadraticlattices-rngintelt)

    - [`QuaternaryQuadraticLattices(d): RngIntElt → [ [ Lat ] ]`](genus.md#function-quaternaryquadraticlattices-rngintelt)

    - [`QuinaryQuadraticLattices(d): RngIntElt → [ [ Lat ] ]`](genus.md#function-quinaryquadraticlattices-rngintelt)

    - [`AdjacencyMatrix(G, p): SymGen, RngIntElt → AlgMatElt`](genus.md#function-adjacencymatrix-symgen-rngintelt)

    - [`Example: Neighbour`](genus.md#example-ex-4d42d6)

    - [`Example: Genus`](genus.md#example-ex-20b1ce)

- [Attributes of Lattices](attributes.md)

  - [`L`Minimum: Lat → RngElt`](attributes.md#attribute-attribute-l-minimum-lat-rngelt)

  - [`L`MinimumBound: Lat → RngElt`](attributes.md#attribute-attribute-l-minimumbound-lat-rngelt)

- [Database of Lattices](latdb.md)

  - [Creating the Database](latdb.md#creating-the-database)

    - [`LatticeDatabase() → DB`](latdb.md#function-latticedatabase)

  - [Database Information](latdb.md#database-information)

    - [`# D: DB → RngIntElt`](latdb.md#operation-operation-db-rngintelt)

    - [`NumberOfLattices(D): DB → RngIntElt`](latdb.md#function-numberoflattices-db)

    - [`LargestDimension(D): DB → RngIntElt`](latdb.md#function-largestdimension-db)

    - [`NumberOfLattices(D, d): DB, RngIntElt → RngIntElt`](latdb.md#function-numberoflattices-db-rngintelt)

    - [`NumberOfLattices(D, N): DB, MonStgElt → RngIntElt`](latdb.md#function-numberoflattices-db-monstgelt)

    - [`LatticeName(D, i): DB, RngIntElt → MonStgElt, RngIntElt`](latdb.md#function-latticename-db-rngintelt)

    - [`LatticeName(D, d, i): DB, RngIntElt, RngIntElt → RecMonStgElt, RngIntElt`](latdb.md#function-latticename-db-rngintelt-rngintelt)

    - [`LatticeName(D, N): DB, MonStgElt → RecMonStgElt, RngIntElt`](latdb.md#function-latticename-db-monstgelt)

    - [`LatticeName(D, N, i): DB, MonStgElt, RngIntElt → RecMonStgElt, RngIntElt`](latdb.md#function-latticename-db-monstgelt-rngintelt)

    - [`Example: Latdb Names`](latdb.md#example-ex-8a7900)

  - [Accessing the Database](latdb.md#accessing-the-database)

    - [`Lattice(D, i: parameters): DB, RngIntElt → Lattice`](latdb.md#function-lattice-db-rngintelt)

    - [`Lattice(D, d, i: parameters): DB, RngIntElt, RngIntElt → Lattice`](latdb.md#function-lattice-db-rngintelt-rngintelt)

    - [`Lattice(D, N: parameters): DB, MonStgElt → Lattice`](latdb.md#function-lattice-db-monstgelt)

    - [`Lattice(D, N, i: parameters): DB, MonStgElt, RngIntElt → Lattice`](latdb.md#function-lattice-db-monstgelt-rngintelt)

    - [`LatticeData(D, i): DB, RngIntElt → Rec`](latdb.md#function-latticedata-db-rngintelt)

    - [`LatticeData(D, d, i): DB, RngIntElt, RngIntElt → Rec`](latdb.md#function-latticedata-db-rngintelt-rngintelt)

    - [`LatticeData(D, N): DB, MonStgElt → Rec`](latdb.md#function-latticedata-db-monstgelt)

    - [`LatticeData(D, N, i): DB, MonStgElt, RngIntElt → Rec`](latdb.md#function-latticedata-db-monstgelt-rngintelt)

    - [`Example: latdb`](latdb.md#example-ex-7db624)

  - [Hermitian Lattices](latdb.md#hermitian-lattices)

    - [`HermitianTranspose(M): Mtrx → Mtrx`](latdb.md#function-hermitiantranspose-mtrx)

    - [`QuaternionicTranspose(M): Mtrx → Mtrx`](latdb.md#function-quaternionictranspose-mtrx)

    - [`ExpandBasis(M): Mtrx → Mtrx`](latdb.md#function-expandbasis-mtrx)

    - [`QuaternionicBasis(M): Mtrx → Mtrx`](latdb.md#function-quaternionicbasis-mtrx)

    - [`HermitianAutomorphismGroup(M): Mtrx → GrpMat`](latdb.md#function-hermitianautomorphismgroup-mtrx)

    - [`QuaternionicAutomorphismGroup(M): Mtrx → GrpMat`](latdb.md#function-quaternionicautomorphismgroup-mtrx)

    - [`InvariantForms(G): GrpMat → SeqEnum`](latdb.md#function-invariantforms-grpmat)

    - [`QuaternionicGModule(M, I, J): ModGrp, AlgMatElt, AlgMatElt → ModGrp`](latdb.md#function-quaternionicgmodule-modgrp-algmatelt-algmatelt)

    - [`MooreDeterminant(M): Mtrx → Mtrx`](latdb.md#function-mooredeterminant-mtrx)

    - [`Example: Coxeter Todd`](latdb.md#example-ex-a41728)

    - [`Example: Quaternionic Auto Group`](latdb.md#example-ex-723012)
