25.4 Orthogonal Embeddings

  • 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

    Xtr ·X = gram
    are calculated (see Ple90). Usually there are many solutions X but all their rows are chosen from a small set of vectors, so OrthogonalEmbeddings returns the solutions in an encoded form, namely as a record with components

    vectors
    the list L = [ x1, x2, ¼, xn ] of vectors that may be rows of a solution; these are exactly those vectors that fulfill the condition xi ·gram -1 ·xitr £ 1 (see ShortestVectors), and we have gram = åni = 1 xitr ·xi,

    norms
    the list of values xi ·gram -1 ·xitr, and

    solutions
    a list S of lists; the i--th solution matrix is 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
    list of the nonzero vectors x, but only one of each pair (x,-x),

    norms
    list of norms of the vectors according to the Gram matrix G.
    If the optional argument "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 ] )
    

    [Top] [Previous] [Up] [Index]

    GAP 4 manual
    February 2000