Function: Cliff5[wedge] - wedge (exterior) product in a Grassmann algebra Ext(V) or in a Clifford algebra Cl(V,B)

Calling Sequence:

wedge(p1,p2,...pn);

p1 &w p2 &w ... &w pn;

Parameters:

p1, p2, ..., pn - expressions of the type 'cliscalar' or 'clipolynom'

Description:

Procedure 'wedge' defines an exterior (wedge) product of any number of Clifford polynomials p1, p2, ..., pn. See `type/cliscalar` and `type/clipolynom` for more information on these basic types. There is a supplementary procedure Cli5plus[dwedge] that computes dotted wedge product. Conversion from the undotted wedge product to the dotted wedge product is done by `convert/wedge_to_dwedge` .

When only one argument is entered, the procedure returns it unevaluated.

The infix form of this associative multiplication is &w . Thus, wedge(p1, p2, p3) = p1 &w p2 &w p3, etc.

Via the procedure 'rmulm', wedge multiplication may be applied to matrices with entries in a Clifford algebra or in an exterior algebra. See rmulm for more help on multiplication of Clifford matrices of type 'climatrix' (see `type/climatrix` for more help too).

In the case when input contains an index larger than the currently set dimension of V, an error message is returned. The dimension of V can be set by the user in two ways:
(1) By changing the default value of a global variable dim_V which is set to 9 upon initialization of the package. To change the value of dim_V, just assign to it a positive integer between 1 and 9 (inclusive).
(2) By defining a bilinear form B as a matrix of size dim by dim, then the value of dim_V is then set to dim by the procedure.

If the value of dim_V is not a positive integer between 1 and 9 inclusive, an error message will be returned upon the first use of 'wedge'.

When this procedure is invoked, it checks whether the bilinear form has been assigned. If yes, it then checks whether the size of B is different than the current value of dim_V. If not, computation proceeds. If yes, the size of B returned by linalg[coldim] is assigned to dim_V. If it amounts to assigning a smaller value to dim_V, a warning message is issued.

Reducing value of dim_V may result in some terms in the output being truncated.

Warning message may be suppressed by assigning 'false' to a global variable _warnings_flag. The latter is set to its default value of 'true' by the initialization file.

To dipslay values of all environmental variables used in 'CLIFFORD, use procedure CLIFFORD_ENV .

Examples:

> restart:with(Cliff5):
dim_V; #default value of 9 set in the initialization procedure Cliff5[init]
_warnings_flag; #default value of 'false' set in the initialization file
assigned(B);

[Maple Math]

[Maple Math]

[Maple Math]

Example 1 : Some simple computations. Notice that output is automatically reordered using procedure reorder .

> wedge(1+e3we2-3*ejweiwe3,2*Id+e1we2we3+3*ejweiwe3);

[Maple Math]

> wedge(1+e3we2,-3*ejweiwe3,2*Id+e1we2we3+3*ejwekwe4);

[Maple Math]

> wedge(2*Id+alpha1,5*Id-alpha2);

[Maple Math]

>

Example 2 : Using infix form of 'wedge':

> (1+e3we2-3*ejweiwe3) &w (2*Id+e1we2we3+3*ejweiwe3);

[Maple Math]

> (1+e3we2) &w (-3*ejweiwe3) &w (2*Id+e1we2we3+3*ejwekwe4);

[Maple Math]

>

Example 3 : Let's test some error messages.

> dim_V:=2:

> wedge(3*Pi*e2we1we3,e4);

Error, (in wedge) argument(s) contain(s) index larger then current value of dim_V which is now, 2, To complete computation, increase value of dim_V or assign square matrix of size at least, 4, by, 4, to bilinear form B

This message is no longer displayed and computation can proceed by setting a larger value to dim_V or its alias 'dim':

> dim_V:=4:

> wedge(3*Pi*e2we1we3,e4);

[Maple Math]

If too large value has been assigned to dim_V or its alias 'dim', 'wedge' returns an error message:

> dim_V:=10:

> wedge(3*Pi*e2we1we3,e5);

Error, (in wedge) value of dim_V must be a positive integer between 1 and 9, inclusive, but current value of dim_V is, 10

One can change the value of dim_V by assigning a positive integer n, 1<= n <= 9, to its alias 'dim', or by defining a bilinear form B. Notice that when the value of dim_V is reduced, a warning message is printed.

> B:=matrix(5,5,[]):

> wedge(3*Pi*e2we1we3);

Warning, since B has been (re-)assigned, value of dim_V has been reduced by 'wedge' to 5       

[Maple Math]

However, when the value of dim_V is increased or not changed, no warning message is printed:

> B:=matrix(5,5,[]):

> wedge(3*Pi*e2we1we3,e5);

[Maple Math]

> B:=matrix(6,6,[]):

> wedge(3*Pi*e2we1we3,e5);

[Maple Math]

Printing of the warning message can be suppressed by assigning 'false' to the global variable _warnings_flag:

> _warnings_flag:=false;
dim_V;

[Maple Math]

[Maple Math]

> B:=matrix(4,4,[]):

> wedge(3*Pi*e2we1we3,e4);

[Maple Math]

> dim_V;

[Maple Math]

>

Example 4 : One can also apply 'wedge' product to matrices with entries in a Clifford algebra. Then, one uses the infix form of such product, namely Cliff5[`&m`] or the long form 'rmulm'. In order to assign 'by hand' value to dim_V, we need to unassign B first. This way, we can proceed with computations in the Grassmann algebra Ext(V), where dim(V) = dim_V.

> B:='B':
dim_V:=9;
M:=matrix(2,2,[2*e1we2,e3,3+e4,e5]);

[Maple Math]

[Maple Math]

> M &wm M;

[Maple Math]

> rmulm(M,M,wedge);

[Maple Math]

>

>

See Also: Cliff5[`type/climatrix`] , Cliff5[rmulm] , Cliff5[`type/clipolynom`] , Cli5plus[dwedge]

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