Function: GTP[gradedprod] - compute a graded product of elements of the type 'tensorprod', 'gradedmonom', or 'gradedpolynom'
Calling Sequence:
gradedprod(p1,p2);
gradedprod(p1,p2,B1,B2,...,Br);
Parameters:
p1, p2 - graded polynomials of type GTP[`type/gradedpolynom`] of rank r
B1,B2,...,Br - (optional) sequence of r diagonal forms Bi, 1<=i<=r, where r is the tensor rank of p1 and p2
Description:
Procedure 'gradedprod' is an extension of GTP[prod] and computes a product of two graded polynomials in the graded tensor product Cl(B1) &t Cl(B2) &t ... &t Cl(Br) of r Clifford algebras Cl(B1), Cl(B2), ... , Cl(Br). In particular, it can handle also monomials.
When the optional sequence is used, Clifford products are computed component-wise on homogeneous elements in Cl(B1), Cl(B2), ... , Cl(Br) with a help of the procedure GTP[cmulB] . However, the Z2-gradation is taken into consideration in order to assure, for example, that elements of the type e1 &t 1 and 1 &t e1 belonging to Cl(B1) &t Cl(B2) anticommute.
For more information how multiplication is defined on homogeneous elements in the graded tensor product Cl(B1) &t Cl(B2) of two Clifford algebras Cl(B1) and Cl(B2) see GTP[gprod] . This definition is extended to tensors of higher ranks and then to non-homogeneous tensors by linearity.
When the optional sequence is not used, the default bilinear form B is applied. Thus, in this case, the r products will be computed in r different copies of Cl(B).
The ranks of p1 and p2 must be the same. They can be found with GTP[tensorrank] .
Examples:
> restart:with(Cliff5):with(GTP):eval(makealiases(5)):_prolevel:=true:
Warning, new definition for init
Example 1:
> B:=linalg[diag](1,-1,-1,-1):
>
type(e1 &t e2,tensorprod),
type(2*(e1 &t e3),gradedmonom),
type(2*&t(e1,e2,e3),gradedmonom);
type((e1 &t e2) + b*(e1 &t e2) +e2 &t e3,gradedpolynom);
> gradedprod(e1 &t e2 &t e2,e1 &t e2 &t e2);tensorrank(%);
> gradedprod((e1 + e2) &t e2 &t Id,e1 &t e2 &t Id);tensorrank(%);
>
p:=a*(Id &t Id &t e2)-3*(e1we2 &t e2 &t e2we1 )+b*4*(Id &t e2 &t e1)-
Id &t e1we2 &t e1we2;
> type(p,gradedpolynom);tensorrank(p);
> r1:=gradedprod(-a*p,2*p);
> tensorrank(r1);
The results from 'gradedprod' may be collected using GTP[gcollect] :
> gcollect(r1);
Example 2: In Example 1, r1 is an element of C(B) &t Cl(B) &t Cl(B) which is Z2-isomorphic with Cl(3B) where 3B is a quadratic form of signature (3,9). Now use different quadratic forms in each component. For example, consider p defined above as an element of the algebra Cl(B) &t Cl(B1) &t Cl(B2) where B1 and B2 are defined below.
> B1:=linalg[diag](-1,1,-1,1):B2:=linalg[diag](1,1,-1,1):
Now, we compute the graded product of p with p. Notice, that the result r2 is dfifferent than r1:
> r2:=gradedprod(p,p,B,B1,B2);
> gcollect(r2);
Example 3: Some more computations.
> p:=gradedprod(e1 &t e2,e2 &t e1we2-2*Pi*cos(alpha)*e1we2 &t Id -(a+b)/(a-b)*e2we1 &t e1);
> gcollect(p);
>
p1:=&t(-Pi*cos(alpha)*e1,e2-e2we1,Id,2*e1);
p2:=&t(Id,e1-3*(a-b)/(a+c)*e1we2,e2we1,1);
> tensorrank(p1),tensorrank(p2);
> r3:=gradedprod(p1,p2,B2,B1,B,B2);
> gcollect(r3);
Thus, element r3 belongs to an algebra Z2-isomorphic with Cl(B2,B1,B,B2), that is, Cl(B3) where B3 is a quadratic form of signature (9,7).
>
S ee Also: GTP[`type/gradedmonom`] , GTP[gbasis] , GTP[`type/gradedodd`] , GTP[grade] , GTP[`&t`] , Cliff5[`type/tensorprod`] , GTP[`type/tensorrank`] , GTP[`type/gradedeven`]