Construction of Structure Constant Algebras and Elements#
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 \(n^3\) ring elements, the second to identify \(A\) with the module \(M = R^n\) and give the products \(e_i * e_j\) 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 = R^n\), with standard basis \({e_1, e_2, \ldots, e_n}\), and with the structure constants \(a_{ij}^k\) 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 \([ a_{ij}^1, \ldots, a_{ij}^n ]\), or the element \((a_{ij}^1, \ldots, a_{ij}^n)\) of \(M\), giving the coefficients of the product \(e_i * e_j\).
- (ii)
A sequence of \(n^2\) sequences of length \(n\), or \(n^2\) elements of \(M\). Here the coefficients of \(e_i * e_j\) are given by position \((i - 1)*n + j\) of \(Q\).
- (iii)
A sequence of \(n^3\) elements of the ring \(R\). Here the sequence elements are the structure constants themselves, with the ordering \(a_{11}^1, a_{11}^2, \ldots, a_{11}^n, a_{12}^1, a_{12}^2, \ldots, a_{nn}^n\). So \(a_{ij}^k\) lies in position \((i - 1)*n^2 + (j - 1)*n + k\) of \(Q\).
The optional parameter
Repcan be used to select the internal representation of the structure constants. The possible values forRepare"Dense","Sparse"and"Partial", with the default being"Dense". In the dense format, the \(n^3\) structure constants are stored as \(n^2\) 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 \({e_1, e_2, \ldots, e_n}\) over \(R\). The sequence \(T\) contains quadruples \(< i, j, k, a_{ij}^k>\) giving the non-zero structure constants. All other structure constants are defined to be 0.
As above, the optional parameter
Repcan 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
Repcan 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 | r₁, r₂, ..., rₙ >: AlgGen, RngElt, RngElt, ..., RngElt -> AlgGenElt#
Given a structure constant algebra \(A\) of dimension \(n\) over a ring \(R\), and ring elements \(r_1, r_2, \ldots, r_n \in R\) construct the element \(r_1 * e_1 + r_2 * e_2 + \ldots + r_n * e_n\) of \(A\).
- A ! Q: AlgGen, SeqEnum[RngElt] -> AlgGenElt#
Given a structure constant algebra \(A\) of dimension \(n\) and a sequence \(Q = [r_1, r_2, \ldots, r_n]\) of elements of the base ring \(R\) of \(A\), construct the element \(r_1 * e_1 + r_2 * e_2 + \ldots + r_n * e_n\) 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
Repmay be used to specify the format of the result. IfRepis 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
Repis set to “Sparse”, the products are returned as a sequence \(Q\) containing quadruples \((i,j,k,a_{ijk})\) signifying that the product of the \(i\)-th and \(j\)-th basis elements is \(\sum_{k=1}^n a_{ijk} b_k\), where \(b_k\) is the \(k\)-th basis element and \(n =\) dim(\(A\)).