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.
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.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.
- (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.
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.
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.
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.
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.
Return the product of the i-th and j-th basis element of the algebra A.
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).