axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] Re: Clifford Algebra Requirements


From: Martin Baker
Subject: [Axiom-developer] Re: Clifford Algebra Requirements
Date: Tue, 3 Nov 2009 17:27:24 +0000
User-agent: KMail/1.11.0 (Linux/2.6.27.37-0.1-default; KDE/4.2.2; x86_64; ; )

Thank you very much to the very helpful replies to my earlier messages, they 
give me a much clearer idea of the issues and complexities involved. I have 
been re-reading your messages to try to understand how to generate the 
multiplication rules from the quadratic form (as well as trying to understand 
Axiom in general). I'm afraid that the Rota Stein Hopf algebra method and the 
Chevalley recursive definition go over my head, at the moment, so I am unsure 
how to proceed.

The only approach I could think of is to further impinge on your patience by 
writing down what I think I understand and then hoping that you will give me 
some hints about how I can take it forward and understand it better.

Flavours of algebra being discussed
-----------------------------------
We are discussing algebras under the banner of Clifford algebra but there are 
different flavours of this:

* Grassman Algebra - vectors square to zero (exterior product '^').

* Clifford Algebra with Clifford bases - vector bases square to scalar value, 
usually +1 or -1 (equivalent to Grassman bases where quadratic form from 
diagonal matrix).

* Clifford Algebra with Grassman bases - vectors square to scalar value, bases 
can be rotated, specified by quadratic form (tensor product V (x) V^*).

* Geometric Algebra - Hestenes terminology (widely used) for Clifford Algebra 
(over reals) used in geometric context. 

In all cases pure vectors and pure bivectors anticommute.
Since the Grassman algebra underpins the other Algebras, as the exterior 
product, it makes the terminology very messy. It is hard to see a naming 
convention that won't be confusing. Most books on the subject use 'Geometric 
Algebra' and 'Clifford Algebra' is the second most popular. The book by John 
Browne, mentioned by Bill Page seems to put everything under the category of 
Grassman Algebra?

The John Browne book also seems to have a different terminology. It seems to 
use 'reciprocal bases' to do things in a tensor like way. It seems to derive 
all product types from the exterior and interior (defined as the dual of 
exterior) products.
It seems to have a 'metric palette' which is a square matrix for each grade. 
For instance the metric palette for 2D vectors is:
grade 0: [1]
grade 1: [[g(1,1),g(1,2)],[g(1,2),g(2,2)]]
grade 2: [ -g(1,2)^2 + g(1,1)g(2,2)]

Current Implementation
----------------------
The current implementation in Axiom implements Clifford Algebra with Clifford 
bases, however the constructor uses a quadratic form so implementation could 
be upgraded to Grassman bases without changing the external interface 
(although I guess it would slow it down a lot). Although a better solution is 
to create GrassmanSuperHopfAlegbra from graedFreeModule(Ring,Basis) or 
GrassmannSuperHopfAlgebraWithBasis which is what Bertfried is working on.

Getting back to the current implementation, taking an example based on 2D 
vectors and creating quadratic form from:

a 0
0 c

The multiplication table could be generated from these rules:

<e1, e2 | e1*e1=a, e2*e2=c, e1*e2= -e2*e1>

(and e1*e2 = e1^e2)

The current implementation generates table terms every time they are used when 
* operation is called (the table is not generated when a Clifford type is 
defined or instantiated: performance issue).

The way that this is calculated in the code is not really documented but as 
far as I can work out these rules are implemented by representing bases as non 
negative integers (NNI) representing a binary value where a bit position is an 
individual vector base, for example e1^e2 would be 00000011. These represent 
words, the words for each operand are effectively concatenated and the rules 
are applied to reduce to a valid base. This is done to determine the scalar 
(sign) as the basis type could have been found from the exclusive-or of the 
binary values. This is all done using specific code in the addMonomProd 
procedure rather than using any rule mechanism built into Axiom.

Change required
---------------
Grassman bases are required for many important applications such as modelling 
conformal space.

So how can we generate the multiplication table from any quadratic form?

a b
b c

Originally I thought this would have to be done by rotating the bases to make 
this diagonal, then apply method above, then rotate back by the same amount. 
However Bertfried has pointed out that this is not necessary and the table can 
be generated directly. I am trying to work out do this and Bertfried hinted 
that this can be worked out from the square of the vector.
So since the vector squares to a scalar:

a*e1**2 + b*e1*e2 + b*e2*e1 + c*e2**2 = scalar

so if we take an example:

0 1
1 0

we get

e1*e2 + e2*e1 = scalar

I can't work out to get any further, I think the rules would be something like 
this (but I can't work out how to get there):

<e1, e2 | e1*e1=0, e2*e2=0, e1*e2= -1+e1^e2, e2*e1= -1-e1^e2>

(so e1*e2 is not e1^e2)

I can't even work out an extremely simple case, more powerful mathematics is 
required, so I need an introduction to the Rota Stein Hopf algebra method and 
the Chevalley recursive definition.

Any help appreciated.

Martin




reply via email to

[Prev in Thread] Current Thread [Next in Thread]