OrthogonalEmbeddings( gram[, "positive"][, maxdim] ) F
computes all possible orthogonal embeddings of a lattice given by its Gram matrix gram, which must be a regular matrix. In other words, all solutions X of the problem
|
OrthogonalEmbeddings returns the solutions in an encoded form,
namely as a record with components
vectors
norms
solutions L S[i] ,
so the dimension of the i--th solution is the length of
S[i].
The optional argument "positive" will cause OrthogonalEmbeddings
to compute only vectors xi with nonnegative entries.
In the context of characters this is allowed (and useful)
if gram is the matrix of scalar products of ordinary characters.
When OrthogonalEmbeddings is called with the optional argument
maxdim (a positive integer),
only solutions up to dimension maxdim are computed;
this will accelerate the algorithm in some cases.
gap> b:= [ [ 3, -1, -1 ], [ -1, 3, -1 ], [ -1, -1, 3 ] ];;
gap> c:=OrthogonalEmbeddings( b );
rec(
vectors :=
[ [ -1, 1, 1 ], [ 1, -1, 1 ], [ -1, -1, 1 ], [ -1, 1, 0 ],
[ -1, 0, 1 ], [ 1, 0, 0 ], [ 0, -1, 1 ], [ 0, 1, 0 ],
[ 0, 0, 1 ] ],
norms := [ 1, 1, 1, 1/2, 1/2, 1/2, 1/2, 1/2, 1/2 ],
solutions := [ [ 1, 2, 3 ], [ 1, 6, 6, 7, 7 ], [ 2, 5, 5, 8, 8 ],
[ 3, 4, 4, 9, 9 ], [ 4, 5, 6, 7, 8, 9 ] ] )
gap> c.vectors{ c.solutions[1] };
[ [ -1, 1, 1 ], [ 1, -1, 1 ], [ -1, -1, 1 ] ]
gram may be the matrix of scalar products of some virtual characters.
From the characters and the embedding given by the matrix X,
Decreased (see Decreased) may be able to compute irreducibles,
see Reducing Virtual Characters.
ShortestVectors( G, m[, "positive"] ) F
Let G be a regular matrix of a symmetric bilinear form,
and m a nonnegative integer.
ShortestVectors computes the vectors x that satisfy
x ·G ·xtr £ m ,
and returns a record describing these vectors.
The result record has the components
vectors
norms "positive" is entered,
only those vectors x with nonnegative entries are computed.
gap> g:= [ [ 2, 1, 1 ], [ 1, 2, 1 ], [ 1, 1, 2 ] ];;
gap> ShortestVectors(g,4);
rec(
vectors := [ [ -1, 1, 1 ], [ 0, 0, 1 ], [ -1, 0, 1 ], [ 1, -1, 1 ],
[ 0, -1, 1 ], [ -1, -1, 1 ], [ 0, 1, 0 ], [ -1, 1, 0 ],
[ 1, 0, 0 ] ],
norms := [ 4, 2, 2, 4, 2, 4, 2, 2, 2 ] )
GAP 4 manual