Function: Cliff5[matKrepr] - find a matrix representation of Cl(Q) over a field K in a minimal ideal S

Calling Sequence:
matKrepr();
matKrepr(p);
matKrepr(p,s);
matKrepr([p,q]);
matKrepr([p,q],s);

Parameters:

p - (optional) Clifford polynomial whose matrix representation over a field K is to be found

s - (optional) symbol 'left' or 'right' (or left, right)

[p,q] - (optional) signature of some form Q

Description:

Procedure 'matKrepr' uses matrices of basis 1-vectors computed for a left (or right) spinor representation of Cl(Q) to find a matrix representing any Clifford polynomial p from Cl(Q). It can also display matrices of 1-vectors for a specified signature which are stored in the six data files described below.

The matrix representation of p is given in a left minimal ideal of Cl(Q) if no optional symbol is entered or if 'left' is entered. If the symbol 'right' is entered, the representation of p is in a right minimal ideal.

The minimal ideals, in which these matrices are found, have been generated by the primitive idempotents stored by the procedure 'clidata' under clidata([p,q])[4] for the given signature (p,q). See clidata for more help.

The procedure checks if the bilinear form B has been defined as a diagonal matrix. Then, it loads automatically an appropriate file depending on the signature of B. If B has not been defined, an error message is returned.

When used without an argument, the procedure displays matrices of the basis 1-vectors for the current B (provided it has been defined) in a left minimal ideal generated by the idempotent stored under clidata()[4].

User may view matrices of 1-vectors which are stored in the data files by entering a desired signature [p,q] as the first argument. If no second argument is entered, or if 'left' is entered as the second argument, matrices representing 1-vectors in a minimal left ideal will be displayed. If the second argument is 'right', matrices representing 1-vectors in a minimal right ideal will be displayed.

Depending on the signature (p,q) of the quadratic form Q, the matrices of 1-vectors, which have been computed with the procedure 'spinorKrepr' (see spinorKrepr for more help) for most signatures in both left and right minimal ideals, are:

real if (p - q) mod 8 is 0, 1, 2;

complex if (p - q) mod 8 is 3 or 7;

quaternionic if (p - q) mod 8 is 4, 5, or 6.

The matrices of 1-vectors in dimensions from 2 to 8 are stored in tables which have been saved as Maple .m files named as follows:

for minimal left ideals:

real matrices are stored in a table 'matrealL' which has been saved in a file 'matrealL.m',

complex matrices are stored in a table 'matcompL' which has been saved in a file 'matcompL.m',

quaternionic matrices are stored in a table 'matquatL' which has been saved in a file 'matquatL.m'.

for minimal right ideals:

real matrices are stored in a table 'matrealR' which has been saved in a file 'matrealR.m',

complex matrices are stored in a table 'matcompR' which has been saved in a file 'matcompR.m',

quaternionic matrices are stored in a table 'matquatR' which has been saved in a file 'matquatR.m'.

Note that it is not necessary to load any of these files manually since 'matKrepr' can do it automatically. One reason why one would load manually any of these files would be to see its indices and/or matrices of 1-vectors.

For more information on Maple tables and the read command try read , table , indices , entries .

Matrices representing Clifford polynomials in minimal ideals are generally computed with 'matKrepr' much faster than with 'spinorKrepr' because the former uses already stored matrices of 1-vectors and the procedure 'rmulm' (see rmulm for more help) to compute matrices representing other basis monomials and polynomials. Note however that when standard bases are entered into 'spinorKrepr', it invokes 'matKrepr' for speedy computation.

This procedure is linear. It checks the signature of the currently defined bilinear form B and retrieves matrices for that signature from one of the files. Then, it computes with 'rmulm' the matrix that represents the polynomial p.

Comments:

In the examples below it has been assumed that the data files 'matrealL.m', 'matrealR.m', 'matcompL.m', 'matcompR.m', 'matquatL.m', and 'matquatR.m' have been installed in the Clifford library given in libname[1].

Set global variable _prolevel to true to speed up computations. You can find more about _prolevel in Cliff5[init] .

Examples:

> restart:with(Cliff5):eval(makealiases(6)):
_default_Clifford_product;
use(cmulNUM);
_default_Clifford_product;

[Maple Math]

[Maple Math]

[Maple Math]

Example 1: Let's see the indices of 'matrealL' and signatures for which real matrices have been computed in S=Cl(Q)f:

> readlib(matrealL):

> indices(matrealL); #display indices of 'matrealL'

[Maple Math]
[Maple Math]

Show Dirac gamma matrices representing basis 1-vectors in the signature (3,1):

> matrealL[[3,1]];

[Maple Math]

Show matrices repesenting basis 1-vectors in the signature (2,0):

> matrealL[[2,0]];

[Maple Math]

>

Example 2: Let's see the indices of 'matcompL' and signatures for which complex matrices have been computed in S=Cl(Q)f.

> readlib(matcompL):

> indices(matcompL); #display indices of 'matcompL'

[Maple Math]

Show Pauli matrices representing basis 1-vectors in the signature (3,0) over the field K spanned by [Id,e2we3]:

> matcompL[[3,0]];

[Maple Math]

Show gamma matrices representing basis 1-vectors in the signature (2,3) over the field K spanned by [Id,e3]:

> matcompL[[2,3]];

[Maple Math]

>

Example 3: Let's see the indices of 'matquatL' and signatures for which quaternionic matrices have been computed in S=Cl(Q)f.

> readlib(matquatL):

> indices(matquatL); #display indices of 'matquatL'

[Maple Math]
[Maple Math]

Show matrices representing basis 1-vectors in the signature (1,3) over the field K spanned by [Id,e2,e3,e2we3]:

> matquatL[[1,3]];

[Maple Math]

Show matrices representing basis 1-vectors in the signature (5,1) over the field K spanned by [Id,e2we3,e2we4,e3we4]:

> matquatL[[5,1]];

[Maple Math]
[Maple Math]

>

Example 4: To see matrices of 1-vectors for the currently defined B in a left minimal ideal, enter:

> restart:with(Cliff5):
B:=linalg[diag](1,1,1,1): #defining B of signature (4,0)

> matKrepr(); #these matrices are

[Maple Math]

> matKrepr(e1,'right'); #to see the matrix of e1 in a right ideal

[Maple Math]

> matKrepr(e2,'right'); #to see the matrix of e2 in a right ideal

[Maple Math]

> matKrepr(e3,'right'); #to see the matrix of e3 in a right ideal

[Maple Math]

> matKrepr(e4,'right'); #to see the matrix of e4 in a right ideal

[Maple Math]

> ucoeffs:=[u.(0..(2^(linalg[coldim](B))-1))]:

> u:=add(ucoeffs[k]*cbasis(linalg[coldim](B))[k],k=1..nops(ucoeffs)):

> matKrepr(u,'left');

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

> map(clicollect,%);

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

>

Example 5: Let's find a matrix representing some Clifford polynomial in the Clifford algebra Cl(1,3) isomorphic to H(2):

> B:=linalg[diag](1,-1,-1,-1): #defining B of signature (1,3)

> p:=a+2*e1-e3+e2we3+e4we1;

[Maple Math]

> matKrepr(p); #finding the matrix of p in a left minimal ideal

[Maple Math]

> matKrepr(p,'left'); #finding the matrix of p in a left minimal ideal

[Maple Math]

> matKrepr(p,'right'); #finding the matrix of p in a right minimal ideal

[Maple Math]

>

Example 6: Let's find a matrix representing some Clifford polynomial in the Clifford algebra Cl(2,3) isomorphic to C(4):

> B:=linalg[diag](1,1,-1,-1,-1): #defining B of signature (2,3)

> p:=2*e1we2-e2we3we4+1;

[Maple Math]

> matKrepr(p,'right'); #in a right minimal ideal

[Maple Math]

> matKrepr(p,'left'); #in a left minimal ideal

[Maple Math]

>

Example 7: One can also see matrices representing basis 1-vectors in a left or right minimal ideal S in the Clifford algebra Cl(Q) where the quadratic form has a specific signature (p,q). Just enter the signature in a form of a list as the first argument, and 'left' or 'right' as the second argument. If no matrices have been computed for that signature, an error message is returned:

> matKrepr([1,3]); #matrices of 1-vectors of Cl(1,3)

[Maple Math]

> matKrepr([1,3],'left');#matrices of 1-vectors of Cl(1,3) in a left ideal

[Maple Math]

> matKrepr([1,3],'right');#matrices of 1-vectors of Cl(1,3) in a right ideal

[Maple Math]

>

Example 8: Semisimple Clifford algebras.

> restart:with(Cliff5):

> all_sigs(1..9,'quat','semisimple');

[Maple Math]

> p:=1:q:=4:

> clidata([p,q]);

[Maple Math]

> B:=linalg[diag](1$p,-1$q);

[Maple Math]

> matKrepr();

[Maple Math]
[Maple Math]

> clibasis:=cbasis(3);

[Maple Math]

> for g in clibasis do M[g]:=matKrepr(g) od;

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> matKrepr(1+2*e2-2*e2we3);

[Maple Math]

> ucoeffs:=[u.(0..(2^(linalg[coldim](B))-1))]:

> u:=add(ucoeffs[k]*cbasis(linalg[coldim](B))[k],k=1..nops(ucoeffs)):

> evalm(B);

[Maple Math]

> matKrepr(u,'left');

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

>

Comments:

The above examples may be redone for right minimal ideals if option 'right' is used as in Example 6.

See Also: Cliff5[adfmatrix] , Cliff5[mdfmatrix] , Cliff5[spinorKrepr] , Cliff5[rmulm] , Cliff5[spinorKbasis] , Cliff5[Kfield] , Cliff5[Bsignature] , Cliff5[`type/primitiveidemp`] , Cliff5[`type/clipolynom`] ,

(c) Copyright October 8, 1995, by Rafal Ablamowicz & Bertfried Fauser, all rights reserved.
Last modified: December 26, 2001, RA/BF.