Mathieu Dutour Sikirić

Computations on this page run locally in your browser. Results are exact. Entries can be integers (3, -2) or rationals in p/q form (1/2, -7/3). The file-upload format is:

nRows nCols
A11 A12 ... A1N
A21 A22 ... A2N
.
.
AM1 AM2 ... AMN

Click a tool to expand it:

Copositivity test

A real symmetric matrix A is copositive if vTA v ≥ 0 for every vector v with non-negative entries. When A is not copositive the tool returns a witness vector v ≥ 0 with vTA v < 0.

Copositive factorization test

A real symmetric matrix A admits a copositive factorization if it can be written as

A = α₁ v₁ v₁ᵀ + α₂ v₂ v₂ᵀ + ... + αₘ vₘ vₘᵀ

with vi ∈ ℤ≥0n and αi ∈ ℚ≥0. (Matrices with such a factorization are also called completely positive.) On success the tool returns the family (αi, vi). On failure it returns a copositive certificate matrix C with ⟨C, A⟩ < 0, which proves no such factorization exists.

Shortest-vector realizability

Given an integer matrix whose rows are vectors in ℤn, decide whether there exists a positive-definite quadratic form for which this set is exactly the family of (orbits of) shortest vectors. On success the tool returns one such Gram matrix G.

The underlying routine is SHORT_TestRealizabilityShortestFamily; in practice the input must be square (a basis of n vectors in n-dim) — non-square inputs may not be accepted by the kernel.

Shortest-vector automorphism group

Given an integer matrix whose rows are vectors in ℤn, compute the subgroup of GL(n, ℤ) that stabilises the configuration (as a set, up to sign). The tool returns a list of integer-matrix generators of that group.

Same shape constraint as the realizability tool — square inputs work, arbitrary rectangular inputs are not guaranteed to.

Gram-matrix canonicalization

Given a positive-definite rational symmetric matrix G (a Gram matrix), compute an integer basis change B ∈ GL(n, ℤ) so that B · G · BT is a canonical representative of G's GL(n, ℤ)-orbit. Two Gram matrices have the same canonical form iff they are integrally equivalent.