[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Axiom-developer] Re: Clifford Algebra Requirements,
Martin Baker <=