Maths - clifford / Geometric Algebra - Discussion with Fred Lunnon

By: Nobody/Anonymous - nobody
m Geometric (Clifford) Algebra  
2005-11-09 21:13
 
In a previous posting elsewhere (sci.math.research?) in 2003,  
Martin Baker enquired about the possible application of GA  
methods to affine transformations and dynamics in 3-D  
Euclidean space, a topic which I happen to have begun to  
study at around the same time.  
 
There he made a remark which I think worth examining, to the  
effect that devoting 16 components to represent an isometry  
seemed an inefficient use of resources. This articulates an  
attitude I have encountered frequently among my own  
students, who are frequently unable to come to terms even  
with using 4 rather than 3 components to represent a point.  
 
I wonder why this mysterious parsimony is so widespread.  
It would not occur to most of these individuals to agonise  
over whether their vectors were represented as arrays or as  
doubly-linked lists (using 3 times the storage), yet the notion  
of expending extra components in the cause of simplifying  
drastically their algorithmic design seems to arouse in them  
a positively moral outrage.  
 
The fact is that many of the elementary difficulties expressed  
in postings here and elsewhere regarding 3-D geometry 
become trivial if attacked with a suitably powerful notation. Furthermore, in the event that speed or storage are  
significant concerns, it is usually possible to streamline  
the resulting GA algorithm by specialising multivectors back  
to vectors, matrices, etc.  
 
A typical example is the representation and composition  
of general helical (screw) isometries about arbitrary skew axes  
in space. Because they can (usually) manage to avoid having  
to tackle such situations head-on, programmers working in  
geometric computation universally wallow in a morass of  
partial solutions more appropriate to hand computation,  
attended by a predictable plague of bugs resulting from the  
attempt to interface them.  
 
Unfortunately, there does not at present appear to be a  
treatment of GA methods in a form which programmers  
(rather than mathematicians) might be expected to find  
digestible and applicable. But rest assured, I'm on the case ...  
 
Fred Lunnon <fred.lunnon "atsign" gmail.com>  


By: Martin Baker - martinbakerProject Admin
m RE: Geometric (Clifford) Algebra  
2005-11-10 02:32
Hi Fred, 
 
I apologise for my parsimony (well I looked it up and a simplified definition of parsimony is "a principle that states that the simplest explanation that explains the greatest number of observations is preferred to more complex explanations" which seems like a good principle to me so perhaps I don't apologise). However I like to think that I am quite prepared to overthrow established way of doing things if necessary. 
 
Anyway I'm in danger of becoming flippant which I don't mean to be, I share your belief that GA would be a very powerful an general way to represent affine transformations and therefore solid body dynamics in 3D, however although the mathematics is extremely powerful its general application seems just out of reach. I would welcome any thoughts you might have on the following issues: 
 
How to represent in programs - The GA libraries that I have seen seem to have generators that generate GA algebras in any arbitrary dimension with the scalar, vector, bivector, tri-vector... parts all held separately. If we are mainly interested in representing affine transformations in 3D then it seems simpler to me to hold every 3d multivector as 8 scalar numbers even if all parts are not used? 
 
Inverse of multivector ? - In general multivectors don't always have an inverse, but affine transformations always have inverses, therefore there must be a subset of 3d multivectors that can represent affine transformations and always have inverses, so what is it? In the same way that we define a subset of matricies: transpose(M) = inverse(M) or quaternions: conjugate(q) = inverse(q) to represent orthogonal transformations. 
 
How to represent inertia tensor in GA ? - If we want to relate motion of solid bodies to forces, or impulses in the case of solid body collisions we need to represent inertia tensor. Can we use multivectors to represent an inertia tensor? It seems to me that multivectors are better at representing spinors than tensors? Or do we have to mix multivectors with matrices? How shold we do this? 
 
I have put some pages about GA here: 
https://www.euclideanspace.com/maths/algebra/clifford/ 
 
I would welcome thoughts from anyone about how to take this forward. 
 
Thanks, 
 
Martin

By: Nobody/Anonymous - nobody
m RE: Geometric (Clifford) Algebra  
2005-11-10 18:04
 
Greetings, Martin --- delighted to make your acquaintence. Please consider any previously implied condescension on my part unreseservedly withdrawn. For now I shall attempt to deal with your very pertinent queries as briefly as possible: although there is much more that I have to say on this subject [and indeed may have to be restrained forcibly from so doing!]  
 
((0)) Multivector dimension: In referring to "affine" transformations, I presume that you actually have in mind "isometries", that is rigid transformations preserving distance; and also that you would prefer these not to always have one foot nailed to an arbitrary origin, as occurs for instance when employing quaternions or affine (3x3) matrices. Then for 3-D the most appropriate system is (I claim) what I call "Duplex Quaternions" (DCQ's), a representation by a grade 4 algebra which is not among any of those previously considered by Hestenes (nor, as far as I know, by anybody else). In principle therefore, the number of components is not 8 but 16. [Now then, everbody just relax!]  
 
((1)) Data representation and arithmetic: In practical applications at least half of these components must be zero; furthermore, the grades of nonzero components must either be entirely even or entirely odd. So the Clifford product may immediately be decomposed into just one of its even-even, odd-odd, even-odd sub-products, involving only 8 components. A more elaborate implementation might decompose these further into grade vectors of length 1,4,6,4,1, invoking only those required for those grades present in the operands and result: the requisite analysis might be performed dynamically by the arithmetic software, statically by the compiler, or ultimately perhaps by dedicated hardware.  
 
The crucial observation is that this tuning is completely independent of the problem-solving process by which a graphical algorithm is developed by the programmer, who employs only high-level "component-free" multivector arithmetic. When the dust has settled on the optimisation question, it appears that the overall difference in flat-out performance between matrix/vector and multivector methods is small: the big advantage is in the development of simple, powerful, branch-free algorithms.  
 
((2)) Inverses: a multivector X representing an isometry [if that is indeed what you intend] is not simply either even or odd: it satisfies the additional constraint that the product X X^+ of X with its reversion X^+ is a scalar, which is in fact the squared magnitude ||X||^2. Because of this happy circumstance [straightforward to prove, tho' not trivial], for X arising in practice the inverse is essentially simply X^+ [since multivectors are homogeneous, the scalar factor 1/||X||^2 is in principle irrelevant here]. If ||X|| = 0, the transformation is a projection onto infinity, for which no inverse exists.  
 
The problem of deciding whether a general multivector in such a Clifford algebra is invertible, and if so computing its inverse, is bound up with the algebraic structure of zero-divisors, and is rather complicated. For DCQ's, the general inverse is a polynomial cubic in X, with scalar coefficients --- but (fortunately!) the implementor never need to know about this. This matter is for some reason never mentioned in the literature: maybe people are too embarrassed to admit that they don't actually know how to divide by a general multivector!  
 
((3)) The inertia tensor: and now for the bad news. The happy outcome would have been that there existed some (class of) multivector X, such that Y -> X^{-1} Y X represented a rescaling of a unit point Y by arbitrary ratios along the 3 axes of an arbitrary orthogonal frame: unfortunately, this can be shown to be impossible, at any rate for DCQ's [and almost certainly for any Clifford algebra]. The situation is not desperate: it simply means that we must resort to employing a linear transformation, as we usually do. [In principle, these matrices are 16x16, but in practice they would shrink to 4x4 etc as above.]  
 
As you opine, the versor approach to transformations seems to be limited to isometries (essentially, spinors): in particular, neither does it cope very elegantly with perspective projection. However, it is still the case that --- for instance --- the impulse arising from a collision between two rigid bodies may be expressed far more elegantly in terms of multivector notation than in the conventional formulation.  
 
((4)) The metrical aspect: the necessity for measurement of angle, distance and content has to a large extent been ignored in previous treatments of GA, partly because of insufficient attention to the question of the precise representation mapping the geometry to the algebra. If this is chosen appropriately, any content of a simplex (segment, triangle, tetrahedron) or metrical relation between pairs of subspaces (points, lines, planes) can be elegantly expressed as (more or less) a ratio of two magnitudes of grade vectors from their Clifford product.  
 
In order to achieve this, DCQ formalism aims directly at representing isometries, rather than the (unfortunately) customary points: a vector represents (reflection in) the plane whose Cartesian equation coefficients are its components. The 4 anti-commuting generators are o,x,y,z with o^2 = 0, x^2 = y^2 = z^2 = 1; Clifford product represents composition of 
isometries, its highest-grade vector the intersection of subspaces.  
 
In detail, the mapping of a  
real with freedom 1 requires 1 component of grade 4;  
point 3 4 3;  
line 4 6 2;  
plane 3 4 1;  
scalar volume 1 1 0;  
proper isometry 6 8 0,2,4;  
improper isometry 6 8 1,3.  
Notice that the number of "redundant" components never exceeds 2.  
 
Do feel free to fire any further related questions, examples, criticisms or other observations you may have in my general direction --- I should welcome the opportunity to consider them, and I intend to inspect the pages you mention in due course.  
 
Yours, Fred Lunnon  
 


By: Nobody/Anonymous - nobody
m RE: Geometric (Clifford) Algebra  
2005-11-10 19:03
 
 
Correction: a combination of proportional spacing, non-functioning tab key, and nannying automatic editor has so far frustrated my attempts to typeset an intelligible table. One last try :---  
 
In detail, the mapping of a  
real with freedom 1 requires 1 component of grade 4;  
point ----------------- 3 ----------- 4 ----------------------------- 3;  
line ------------------- 4 ----------- 6 ----------------------------- 2;  
plane ---------------- 3 ----------- 4 ----------------------------- 1;  
scalar volume ---- 1 ------------1 ---------------------------- 0;  
proper isometry -- 6 ----------- 8 ------------------------- 0,2,4;  
improper isometry 6 ----------- 8 -------------------------- 1,3.  
Notice that the number of "redundant" components never exceeds 2.  
 
Fred Lunnon  


By: Martin Baker - martinbakerProject Admin
m RE: Geometric (Clifford) Algebra  
2005-11-11 10:57
Greetings Fred, 
 
Thank you very much for this. Please don't feel constrained to keep this short, I find this fascinating, and I welcome as much as you can tell me about this. 
 
I would like to improve the web site on this subject and incorporate this information this onto the web site, are you planning to publish this yourself? If not, would it be alright if I include this on euclideanspace.com, I don't want to claim credit for others work so I can credit your contribution as you would like. 
 
Yes, you are right, that I was misusing the term 'affine' what I really meant was the sort of transforms which can represent the movement of a solid body, a combination of rotation and translation. 
 
I looked up the definitions on MathWorld as follows: 
 
"An isometry of the plane is a linear transformation which preserves length. Isometries include rotation, translation, reflection, glides " 
 
"An affine transformation is any transformation that preserves collinearity (i.e., all points lying on a line initially still lie on a line after transformation) and ratios of distances (e.g., the midpoint of a line segment remains the midpoint after transformation). In this sense, affine indicates a special class of projective transformations that do not move any objects from the affine space R3 to the plane at infinity or conversely. An affine transformation is also called an affinity.  
Geometric contraction, expansion, dilation, reflection, rotation, shear, similarity transformations, spiral similarities, and translation are all affine transformations, as are their combinations. In general, an affine transformation is a composition of rotations, translations, dilations, and shears." 
 
Perhaps we need an even more restrictive term, which does not allow reflections? 
 
I guess the other terminology I need to get clear is 'grade'. Could we define this as the length of the vector part of multivector? So, in the case of grade = 4, if we multiply out all possible combinations using outer product ^ then we get: 
0 scalar length = 1 
1 vector length = 4 
2 bivector length = 6 
3 tri-vector length = 4 
4 quat-vector length = 1 
 
I need to take a lot longer to work through your message, so I may need to get back to you when I understand more. 
I guess I need to work out more about the grade 4 algebra when X X^+ = scalar and how exactly we would encode the translation and rotation in this system. 
I seem to remember somewhere in Hestenes that he said he said that this type of transform requires grade 4 or 5 but I could not find any further explanation so your message really helps. 
I also seem to remember in Hestenes that he describes the 8 values of grade 3 multivectors as being like 2 quaternions (one quaternion is scalar with bivector, other is tri-vector with vector). Is DCQ a superset of this? 
 
> and I intend to inspect the pages you mention in due course. 
 
Don't bother yet, I've had another look at the web pages and realised that I need to do a lot more work on them. I'm very keen to improve them and I would appreciate any help. 
 
Thanks again, 
 
Martin

By: Nobody/Anonymous - nobody
m RE: Geometric (Clifford) Algebra  
2005-11-11 14:35
 
> ... Is DCQ a superset of this?  
 
Let me define a 4-component Clifford algebra called "duplex numbers"  
X = a + b i + c o + d w,  
where i (iota) is the usual complex generator i^2 = -1,  
o (omicron) is the null DCQ generator o^2 = 0,  
and w (omega) = o i = - i o.  
Then a DCQ is a duplex number whose components are quaternions --- or less usefully,  
a quaternion whose components are duplexes. Omitting o and setting i = x y z, we have the algebra of Hestenes mentioned as a subset [the complex bi-quaternions, tho' I don't think he uses the term] of DCQ's.  
 
However, his representation of the geometry by the algebra is essentially the traditional one based on mapping points to vectors. As I remark elsewhere, in such a system it is difficult to represent translations, as well as to extract metrical information. [Trust me --- don't go there!]  
 
> Perhaps we need an even more restrictive term, which does not allow reflections?  
 
These are what I referred to earlier as "proper" isometries, represented by even DCQ multivectors; those reversing orientation are "improper". At this point it might reasonably be enquired why we should bother with improper isometries at all,  
since they do not occur in the course of continuous motion of a rigid body. The reasons are firstly, that subspaces are being impersonated by the isometries which fix them, so must include (reflection in) points and planes, which are improper; secondly, that it is necessary for metrical purposes that the x-,y-,z-axes occur symmetrically, which is impossible using only 3 generators [as in Clifford's original dual bi-quaternions] without sacrificing translation [as in complex bi-quaternions].  
 
> I guess the other terminology I need to get clear is 'grade'. Could we define this as the length of the vector part of multivector?"  
 
You didn't quite say what you meant here: the grade is the value of k in your k-vector, not its length. The term "k-vector" seems to have been Hestenes' plausible but rather unwise coinage generalising "bivector, trivector" etc: unfortunately, most people on seeing it would quite reasonably assume that k was the length rather than the grade, and/or finish up confusing the two. [I think you have made my point rather well for me here!]  
 
In my own material, "multivector" is shortened to "multor", "k-vector" to "grator" for graded vector [multor whose nonzero components all have the same number of generators]. The grade can be specified if required, as "2-grator" etc (and it doesn't have to be k!?). So, a 3-D line is represented in the DCQ system by a 2-grator (grade = 2) with 6 components (length = 6), being the coefficients of o x, o y, o z, z y, x z, z y respectively.  
 
> I would like to improve the web site on this subject and incorporate this information this onto the web site ...  
 
You are perfectly welcome to quote me verbatim; if however you attempt an independent presentation of the ideas I proposed here, please communicate the results for my approval prior to release. In this area a geometer is more often aware of trying to ram new concepts down reluctant throats, rather than any need to protect priority!  
 
> I guess I need to work out more about the grade 4 algebra when X X^+ = scalar and how exactly we would encode the translation and rotation in this system.  
 
I have prepared a somewhat skeletal (40 page) manual on DCQ's, targetted specifically at applications in computer graphics, vision and robotics, which I am prepared to release to hardened specialists with a view to improving its barely detectable user-friendliness. I am currently attempting to summon enthusiasm sufficient to incorporate the extensive observations of long-suffering earlier critics into a further expanded draft, which inevitably will continue to fall a long way short of suitability for general consumption. Perhaps when I have done so, you would care to inspect and comment upon it?  
 
Yours, Fred Lunnon  
 


By: Martin Baker - martinbakerProject Admin
m RE: Geometric (Clifford) Algebra  
2005-11-12 08:12
> You are perfectly welcome to quote me verbatim; if however you attempt an 
> independent presentation of the ideas I proposed here, please communicate 
> the results for my approval prior to release. In this area a geometer is more 
> often aware of trying to ram new concepts down reluctant throats, rather than 
> any need to protect priority! 
 
Yes I am happy to comply with this, I will put a copy of this thread on the website, in the short term I think I will concentrate on improving the euclideanspace.com web pages in their general explanation of the GA ideas. Although Hestenes and others have done a good job and I would not presume to try to improve on what they have done, I would like the pages to relate and cross-link to the vector and quaternion topics on the site so that people could start by reading about vectors and quaternions and then, if they are interested, they can see how GA can generalise certain concepts. 
 
In the medium term I would like the web site to demonstrate how GA can be used for solid body mechanics and I'm happy to work with you in the way you suggest on this. 
 
I'll look forward to reading your document. If nothing else I can display my ignorance by asking the silly questions that others may be afraid to, for example, when you define omicron by o^2 = 0 I thought the square root of zero would be zero even for multivectors? (or by 0 do you mean the multiplicative identity 1?) I find it quite interesting that the square root of positive numbers also seems to generate extra dimensions. 
 
> You didn't quite say what you meant here 
Thanks for the kind interpretation of my words! 
 
> (DCQ's), a representation by a grade 4 algebra 
Perhaps if I put it in different terms, just to make sure I have finally got it? This means that it can be generated by 4 basis vectors, e0, e1, e2 and e3 
k=0 (scalar) 
k=1 (e0, e1, e2 , e3) 
k=2 (e0^e1, e0^e2, e0^e3, e1^e2, e1^e3, e2^e3) 
k=3 (e0^e1^e2, e0^e1^e3, e0^e2^e3, e1^e2^e3) 
k=4 (e0^e1^e2^e3) 
 
By the way, If anyone else is reading this thread, I am curious to know what level of interest there is in this topic? 
 
Martin

By: Nobody/Anonymous - nobody
m RE: Geometric (Clifford) Algebra  
2005-11-12 12:19
 
Dear Martin,  
 
> This means that it can be generated by 4 basis vectors, e0, e1, e2 and e3 ...  
 
Correct. Just for the record, unlike many of my acquaintences, I consider dealing with "silly questions" a necessary part of the development process: at the very least, they often highlight shortcomings in presentation; and on occasion, they expose major flaws in mathematics. Sadly, it's usually only the experts who have sufficient confidence to ask them, which to some extent defeats the object ...  
 
> when you define omicron by o^2 = 0 I thought the square root of zero would be zero ...  
 
This is (yet another) unfamiliar feature of Clifford algebras that people, from Hestenes downwards and for a variety of reasons, find disconcerting. And once again, more careful investigation reveals that such attitudes have no relevance to applications.  
 
For example, any isometry which has period two --- reflection in a plane, half turn about a line, reflection in a point --- will be (represented by a DCQ which is) the square root of a scalar, which by rescaling the (homogeneous) multor can be made unity: so in this system +1 must possess a manifold infinity of square roots (and cube roots, etc) of various grades.  
 
It is less obvious that divisors of zero are also unavoidable; once this has been accepted, it is largely irrelevant whether one of them happens to be a generator. Hestenes' objection [which he does not trouble to articulaten in his writings] probably arises from his attempt to represent geometric duality via multiplication by the product of all the generators [e.g. X -> o x y z X], which easily fails to be bijective when some of these are null.  
 
However duality, in a form suitable for geometric computation [as Alan Middleditch has discussed at length, and I discovered painfully in the course of implementing a library], is in any case a much more delicate matter than what amounts merely to reversing the component order.  
 
In a similar way, the failure of commutativity for Clifford product is also unavoidable, because the result of composing two rotations (say) depends on the order in which they are taken. When manipulating such expressions, it is no small matter to discipline oneself sufficiently to avoid the assumption of theorems of scalar arithmetic which no longer hold for multors.  
 
> I'll look forward to reading your document.  
 
Your email address is on my circulation list. It is to be hoped that its presence there will encourage the muse to arise once more from her couch.  
 
Yours, Fred Lunnon  
 

metadata block
see also:
Correspondence about this page

Book Shop - Further reading.

Where I can, I have put links to Amazon for books that are relevant to the subject, click on the appropriate country flag to get more details of the book or to buy it from them.

flag flag flag flag flag flag Clifford Algebra to Geometric Calculus: A Unified Language for Mathematics and Physics (Fundamental Theories of Physics). This book is intended for mathematicians and physicists rather than programmers, it is very theoretical. It covers the algebra and calculus of multivectors of any dimension and is not specific to 3D modelling.

 

flag flag flag flag flag flag New Foundations for Classical Mechanics (Fundamental Theories of Physics). This is very good on the geometric interpretation of this algebra. It has lots of insights into the mechanics of solid bodies. I still cant work out if the position, velocity, etc. of solid bodies can be represented by a 3D multivector or if 4 or 5D multivectors are required to represent translation and rotation.

 

Other Math Books

Terminology and Notation

Specific to this page here:

 

This site may have errors. Don't use for critical systems.

Copyright (c) 1998-2023 Martin John Baker - All rights reserved - privacy policy.