Construction of Structure Constant Algebras and Elements

Contents

Construction of a Structure Constant Algebra

There are three ways in Magma to specify the structure constants for a structure constant algebra A of dimension n. The first is to give n3 ring elements, the second to identify A with the module M = Rn and give the products ei * ej as elements of M and the third to specify only the non-zero structure constants.

Algebra< R, n | Q : parameters > : Rng, RngIntElt, SeqEnum -> AlgGen
Algebra< M | Q : parameters > : ModTupRng, SeqEnum -> AlgGen
    Rep: MonStgElt                      Default: "Dense"
This function creates the structure constant algebra A over the free module M = Rn, with standard basis (e1, e2, ..., en), and with the structure constants aijk being given by the sequence Q. The sequence Q can be of any of the following three forms. Note that in all cases the actual ordering of the structure constants is the same: it is only their division that varies.
(i)
A sequence of n sequences of n sequences of length n. The j-th element of the i-th sequence is the sequence [ aij1, ..., aijn ], or the element (aij1, ..., aijn) of M, giving the coefficients of the product ei * ej.
(ii)
A sequence of n2 sequences of length n, or n2 elements of M. Here the coefficients of ei * ej are given by position (i - 1) * n + j of Q.
(iii)
A sequence of n3 elements of the ring R. Here the sequence elements are the structure constants themselves, with the ordering a111, a112, ..., a11n, a121, a122, ..., annn. So aijk lies in position (i - 1) * n2 + (j - 1) * n + k of Q.

The optional parameter Rep can be used to select the internal representation of the structure constants. The possible values for Rep are "Dense", "Sparse" and "Partial", with the default being "Dense". In the dense format, the n3 structure constants are stored as n2 vectors of length n, similarly to (ii) above. This is the best representation if most of the structure constants are non-zero. The sparse format, intended for use when most structure constants are zero, stores the positions and values of the non-zero structure constants. The partial format stores the vectors, but records for efficiency the positions of the non-zero structure constants.

Algebra< R, n | T : parameters > : Rng, RngIntElt, SeqEnum -> AlgGen
    Rep: MonStgElt                      Default: "Sparse"
This function creates the structure constant algebra A with standard basis (e1, e2, ..., en) over R. The sequence T contains quadruples < i, j, k, aijk> giving the non-zero structure constants. All other structure constants are defined to be 0.

As above, the optional parameter Rep can be used to select the internal representation of the structure constants.

ChangeBasis(A, B) : AlgGen, [AlgGenElt] -> AlgGen
ChangeBasis(A, B) : AlgGen, [ModTupFldElt] -> AlgGen
ChangeBasis(A, B) : AlgGen, Mtrx -> AlgGen
    Rep: MonStgElt                      Default: "Dense"
Create a new structure constant algebra A', isomorphic to A, by recomputing the structure constants with respect to the basis B. The basis B can be specified as a set or sequence of elements of A, a set or sequence of vectors, or a matrix. The second returned value is the isomorphism from A to A'.

As above, the optional parameter Rep can be used to select the internal representation of the structure constants. Note that the default is dense representation, regardless of the representation used by A.

Construction of Elements of a Structure Constant Algebra

elt< A | r1, r2, ..., rn > : AlgGen, RngElt, RngElt, ..., RngElt -> AlgGenElt
Given a structure constant algebra A of dimension n over a ring R, and ring elements r1, r2, ..., rn ∈R construct the element r1 * e1 + r2 * e2 + ... + rn * en of A.
A ! Q : AlgGen, SeqEnum[RngElt] -> AlgGenElt
Given a structure constant algebra A of dimension n and a sequence Q = [r1, r2, ..., rn] of elements of the base ring R of A, construct the element r1 * e1 + r2 * e2 + ... + rn * en of A.
BasisProduct(A, i, j) : AlgGen, RngIntElt, RngIntElt -> AlgGenElt
Return the product of the i-th and j-th basis element of the algebra A.
BasisProducts(A) : AlgGen -> SeqEnum
    Rep: MonStgElt                      Default: "Dense"
Return the products of all basis elements of the algebra A.

The optional parameter Rep may be used to specify the format of the result. If Rep is set to "Dense", the products are returned as a sequence Q of n sequences of n elements of A, where n is the dimension of A. The element Q[i][j] is the product of the i-th and j-th basis elements.

If Rep is set to "Sparse", the products are returned as a sequence Q containing quadruples (i, j, k, aijk) signifying that the product of the i-th and j-th basis elements is ∑k=1n aijk bk, where bk is the k-th basis element and n = dim(A).

V2.28, 13 July 2023