The Case Against Geometric Algebra - https://news.ycombinator.com/item?id=39576214 - March 2024 (15 comments)
I guess the people pushing this are a little pushy, but this reminds me of the whole pie fight over the Rust community. OK, so they're pushy. Nothing to do with the merits or demerits of the language (or of C for that matter).
If you're a baby duck about linear algebra and geometry, there's no need to care about different formalisms. Do whatever works. But it's interesting to see how all of this stuff comes together at different levels, whether it's the geometric product, differential forms, or just linear algebra.
TFA denigrates papers and websites that are "non-theoretical" or "trivial". As a user of the formalisms, these kinds of materials are exactly what I need. I don't care about proofs or theoretically problematic corner cases that "real mathematics" seems to be almost exclusively interested in.
I did hit a wall quite soon with GA, and got a feel that it may indeed be overhyped, but at least the scene seems to be interested about applied use.
There seems to be similar debate about nonstandard calculus. For my modest use it has provided some tools that can give me results that I don't know how to get with epsilon-delta etc. I don't really care if I don't "really understand" it because the underlying proofs need some heavy machinery. I don't understand those for standard calculus either, and in applied use you either manipulate infinitesimals without any proper algebra, or just hope what you need is in some table.
I can't comment on deeper theoretical or philosophical questions about these, and I don't really care about them. But to me maths communication often seems analogous to making people learn turing machines and lambda calculus before they are allowed to program in Javascript.
I don't think the author necessarily disagrees with me much, but this is maybe a kinda mini rant from a perspective of someone who is just an "end user" of mathematics.
I had the bad fortune of reviewing some GA research articles once upon a time. It was almost embarrassing. Everything of substance had been published in a conceptually cleaner bivector language previously. The only "contribution" was writing everything in terms of weirder, more convoluted concepts that contributed neither technical clarity nor conceptual parsimony.,
> Most of the time we think of complex numbers as vectors in R2 or as rotation+scaling operators, but rarely do we actually we want them in both roles at the same time.
I can give one counterexample.
I was asked to comment on a piece of code that did 2D geometry in Python. There was one piece that was a tangle of trigonometry to find the angular bisector of an angle subtended at the origin by two points.
Using the fact that points can be represented by complex numbers and that rotation is just multiplication one can make that function into a one liner.
√(z1 * z2)
The geometric mean of the two points as represented by complex numbers gives you the bisector. Python has native support for complex numbers so all the computation is handled by the runtime.> GA had gotten a bad reputation because of its tendency to attract bad mathematicians and full-on crackpots. Hestenes honestly sounds like one a lot of the time, and I’m not really sure whether he is or isn’t. It makes sense, really.
> GA ended up appealing to a lot of fringes: people who only had undergraduate degrees, people who had dropped out of PhDs, people with PhDs from unrigorous programs, people who had been good at math but were perhaps going a bit senile, random passerbies from engineering or computer programming, run-of-the-mill circle-squarers, people who had a bone to pick with establishment mathematics and felt like all dissenting views were being unfairly suppressed
> It didn’t help that a lot of the texts by the actually-competent GA people, like the Cambridge group, tended to say things that sounded and still sound kind of crackpotty as well.
After reading the article, the main "case against geometric algebra" I could find in there was that the author does not like the people using/doing research in geometric algebra, such as the ostensibly failed academics from a Cambridge research group [1] which the article links to.
I was expecting in the "An Actual Case Against GA" section that the author would demonstrate something like "Geometric Product actually does not work if you apply it to xyz domain". Rather, the section just ended up being mostly about the type of bikeshedding you see about naming of variables in programming.
There is I guess merit to the core "there is no good general interpretation or usage for the geometric product or mixed-grade multivectors" thesis of the article but calling other academics crackpots really subtracts from that message.
Because the product of all Galois conjugates is a norm and the determinant of the linear operator defined by general field multiplication of a primitive element when viewing the field extension as a vector space of the extension field over the base field.
Although the geometric interpretation of norms in Galois theory really only works for the complex numbers because only the complex numbers are a field. Quaternions are not a field.
This is not an issue when working with non-mixed-grade multivectors, for which dimensional analysis works just fine in the ordinary way. As the linked article notes, exterior algebra/the wedge product is great. Thinking about exterior powers of vector spaces is great. It's the further move of forcing everything into a Procrustean bed of Clifford algebra that is misguided for almost any application other than some spinor stuff.
The hard problems in math are almost always still hard no matter the notation you choose to use. Sometimes notation makes transmitting ideas a bit easier, but usually faffing around with notation is a sign you aren't able to solve the real problems.
However, from the perspective of Yang-Mills theory, that's rather questionable as you're stitching together the Bianchi identity and the Yang-Mills equation for no particular reason.
i used to use differential form for gauge theories, einstein-cartan gravitation and ramond-ramond fields.
also, in a paper, we used O(D,D) clifford algebras/spinors to represent differential forms, which worked quite well in our very specific case (appendix A)
https://arxiv.org/pdf/1304.1472
ps: i had colleagues that worked on GA for ML in robotics but wasn't really impressed by what it accomplished
From a programmer's perspective, it seems like they're saying it's a flawed abstraction, while the GA stance is different. I'd like to hear the other side of the argument too. I'm sure HN will get a long GA comment thread, so from their standpoint, what would it feel like? I agree that merging objects and operators is problematic, but I'm curious what the GA camp would say
While it's neat to write them all as one equation, I disagree that it's an enlightening perspective to learn. While it seems like writing Maxwell's equations in one equation instead of two is a step forward with even more symmetry, what is actually going on is that you are obscuring the most important part of Maxwell's equations: the gauge structure. Without this, it actually becomes much more hidden just how geometric electromagnetism is.
When you write Maxwell's equations as the pair `dF = 0`, `d*F = J`, the first of those two equations is exactly what tells you that this is a gauge theory, and thus may write `F = dA` where `A` is a vector potential. This vector potential then becomes the connection which defines a covariant derivative in a fibre bundle, and one then sees that charged particles follow geodesics now in spacetime, but in an enclosing fibre bundle. This is foundationally important to modern physics, and IMO obscured by writing Maxwell's equations as `∇F = J`
____
n.b. I'm not a particularly big fan of differential forms either, I think it leaves a lot to be desired, and it's super awkward to constantly have to pull out Hodge Duals every time you want to do something that involves the metric, but I'm also unconvinced that geometric algebra is the answer here.
Projective Geometric Algebra: Illuminated (2024) (Not mentioned directly in the article [1]; including a quote from link [2].)
Algebraic Calculus (2016)
Divine Proportions: Rational Trigonometry to Universal Geometry (2005)
[1] https://terathon.com/blog/poor-foundations-ga.html
[2] "If you want solid foundations, this book is for you."
The author has completely failed to understand the meaning and the purpose of geometric algebras, though to be fair this is not entirely the author's fault, because there are a lot of bad presentations of the geometric algebra theory, many of which contain actual mathematical mistakes, as listed in an article by Eric Lengyel that is linked in the parent article.
The main correct criticism of the parent article is that the geometric product is an operation that is seldom useful in practice.
In practice, the important operations are the generalizations of the inner product and of the outer product. The inner product and the outer product have been defined by Hermann Grassmann in the 19th century and the publications of Grassmann together with the theory of quaternions by Hamilton have been the sources on which William Kingdon Clifford has created the theory of geometric algebras.
Unfortunately, today a lot of people use incorrectly the term "outer product", using it to name the product defined by Johann Georg Zehfuss, which is also called "tensor product". "Tensor product" is also not a really appropriate term, but at least it is not as ambiguous as "outer product" has become, so it should always be preferred for the Zehfuss product. For the outer product in the Grassmann sense, a non-ambiguous term is "wedge product" though it is rather meaningless.
While the geometric product does not have a practical importance, it has a great theoretical importance, because with it the geometric algebras can be defined with a small set of simple and natural axioms. Then the operations that are important in practice, i.e. the generalized inner and outer (wedge) products can be defined based on the geometric product.
The author is right that some geometric algebra proponents have tried to shoehorn the use of the geometric product in some applications for which it is not the right tool, but that has nothing to do with the theory of geometric algebras.
The theory of geometric algebras has a modest practical importance, but it has an immense theoretical importance, because it unifies many mathematical concepts that previously seemed to be unrelated and it illuminates the relationships between them and also the distinctions between things that were previously confused, even by the best mathematicians and physicists, for more than a century.
There is a high probability that the progress of physics has been delayed by many decades by the fact that both William Clifford and James Clerk Maxwell have died prematurely and almost simultaneously, before they could make order, based on the theory of geometric algebras, in the mess that was at that time the theory of vectors, complex numbers and quaternions. After their death, the theory of geometric algebras has been forgotten and a lot of mistaken theories of vectors have been created, by Josiah Willard Gibbs, Oliver Heaviside and others (because they did not understand the relationships between various physical quantities, like polar vectors, axial vectors, quaternions, complex numbers, pseudoscalars).
When I have first encountered the theory of geometric algebras, that was one of the most beautiful moments in my experience of learning mathematics, it was like turning the light on in a dark room full of previously hidden things. The only similar moments, have been when learning for the first time projective geometry, the theory of spatial symmetry groups and certain parts of topology, which are also theories that have unified a great number of seemingly unrelated concepts.
Like I have said, geometric algebras have very little importance for writing algorithms or the like, where the classic linear algebra with matrices is what matters most, but anyone who does not understand geometric algebras does not really understand physics and this lack of understanding will prevent the correct solution of many problems.
Comparison of vector algebra and geometric algebra - https://en.wikipedia.org/wiki/Comparison_of_vector_algebra_a...
But mostly the broad strokes points about the community are exactly the kind of hostility that makes geometric algebra communities so refreshing for curious young people. Geometric algebra is a welcoming pedagogy and community as much as it is a mathematical framework. If only mathematics as a whole was more welcoming.
I started out on with shaky linear algebra despite years of undergraduate education, but plenty of curiosity and intuition. The geometric algebra community schooled me and me prepared me for all kinds of "real math".
Yes the attitude that geometric algebra is the best language for everything is misguided and welcomes a lot of confusion, but most serious geometric algebra people I've met don't actually think that or say that. They're just off doing cool stuff.
I don't know about the rest of the article—I'm not a mathematician—but I certainly enjoying using GA a lot more compared to linear algebra, I find it way more intuitive and being able to visualize intermediate products on my rig is like a super power.
But if you think about it the other way around, since all programs are ultimately about data transformation, you could argue that UIs should essentially be drawn in SQL, but that would sound strange. That's because the tools we use have moved away from that mental model. (Though React's FRP premise does lean in that direction.)
And when I think about why languages split apart, it seems to me that it's because the word 'programming' covers so many different things at once. Languages end up diverging because they serve different purposes. In fact, as a programmer, I see programming languages as a collection of tools that essentially decide what to give up. C gives you safety and low-level hardware access through its ABI. Python gives you expressiveness. They exist because their target goals are fundamentally different.
In that sense, though I'm not an expert in this field, from my limited perspective this debate feels like it's just the noise that arises when Algebra tries to encompass too much and inevitably splits apart. I imagine these kinds of cases will only increase in the future. As things become more specialized, there will be more situations where existing frameworks don't fit, and new systems will be needed. Is there a term for this phenomenon? At that point, we might say we need to change the old system to fit the new one.
Personally, I wonder if there isn't a general purpose language at the bottom that models the entire world, with other languages layered on top of it.
Those paragraphs are in the background section, clearly labeled as "this is what other people think", and are followed with a high effort explanation of (presumably) the substance of the theory and why the author considers some of their ideas to be good and others to just increase the confusion.
The technical arguments are less like variable naming discussions and more like arguments against teaching logic circuit design with only nand (without naming the and/or/not operators) or using untyped lamba calculus (with Church numerals, e.g. `3 := λf.λx.f (f (f x))`) to do calculations on numbers.
At the least, the five bolded statements summarizing 5 of the 7 highly technical arguments should count as substantial claims.
Of course, having learned of the subject only from the author, it's hard to know whether it's a good representation of GA or a strawman, but the theory that he teaches as GA indeed seems quite flawed as a tool for thought.
especially the part about duals -- made me feel like I was going crazy when I was trying to figure out degenerate metrics: every source deals with it in a slightly different (often sloppy) way; you're sure it all must be possible to resolve and get something beautiful and consistent, but not while you're trying to apply it to a specific problem you need to solve
i'd add it's quite nice in string theories for RR fields and coupling to D-branes, where writing 10 anti-symmetrized indices quickly gets annoying.. and topological field theories..
Despite trying many times to make greater use of it, I've found that it often just makes a lot of actual physics work less clear, and with very little practical benefit.
There's times where it affords quite pretty notation, but often you have to actually unpeel all that notation before you actually do something with it. And what's the point of nice notation if none of your colleagues can even read it? The only time I ever really found that GA was actually a benefit to me was performing rotations.
And my comment ended up being pretty long, so I will TL;DR it:
1. The social critique doesn’t match my experience and seems under-supported?
2. The technical critique is interesting, looks like a mix of good points, and some that need more work put into it. I think GA is legitimately cool in my opinion, but if there are better abstractions, we should find/define them and use them.
Longer version:
I hear people bring up the conspiracy/crackpot side of GA a lot, but I learned about Geometric Algebra a few years ago and am currently learning it alongside standard linear algebra.
I think GA is pretty cool. The author seems to have some decent points about its limitations and some ontological smells (like, maybe there is a cleaner representation hiding somewhere). But a lot of the criticism is aimed at the social side of the movement, and maybe I am just blind to it, but I have not really run into that much.
The author says things like:
Basically, GA is considered a kooky, crackpotty sideshow. And because it is so dubious and un-self-aware, the movement ends up alienating most people, except for a particular type of… zealous individual… who write about it with a sort of pseudoreligious zeal, and are prone to conspiracy, as if the only reason GA is not mainstream is that they are being oppressed by close-minded traditionalism.
and: In practice GA always refers to the particular platform and social movement which descends from the work of David Hestenes from the 1960s. It specifically does not refer to the underlying material of Clifford Algebras
Maybe this is true in some parts of the internet or in some older discourse, but from the material I have read, people seem pretty explicit about the roots of Geometric Algebra.Trying to build a unifying framework seems pretty normal to me. Lots of math is trying to expose common structure across different domains. Category theory, abstract algebra, topology, and, to a much bigger extent, the Langlands program all have that flavor. Obviously some unifications are more successful than others, but “this gives a unified language for a bunch of things” does not seem like a red flag by itself.
Some of the actual technical criticisms of GA are interesting, e.g. the proliferation of operations, but at this point I'm more interested in a formal accounting of the complexity of both theories rather than opinions or vibes. It would be nice to have description-length / complexity-accounting comparison of the formalisms.
Disclaimer: I have not read Hestenes’s original work, so maybe I am missing some of the historical baggage. But the modern resources I have seen seem mostly grounded in their claims.
I'm also learning both GA and linear algebra at the same time, GA has definitely helped me understand the linear algebra more deeply. In my opinion, alternative representations like GA gives your brain more structure to grab onto, even if they aren't perfect.
Also... math pedagogy does have a lot of inertia that hurts students. Doesn't Lockhart's Lament famously resonate with anyone who fell in love with math?
[PDF Warning] https://worrydream.com/refs/Lockhart_2002_-_A_Mathematician%...
> It was already widely understood that projective geometry allowed one to represent rotations and translations in R^3 with a single linear operator on R^4.
I think it's projection operators (in linear algebra) that allow one to do that, not projective geometry [1]. The latter, AIUI, studies projective spaces and projective transformations on them (which differ from vector spaces and their transformations by including "points at infinity"), contains no concepts of length or angle (and therefore no equivalent of translations and rotations) and is in some sense "geometry with only the straightedge, no compass".
Curious if I'm just missing something there, though. I'm no expert on any of this.
> As I see it, GA is not so much a subject as an ideological position, consisting of basically two ideological claims about the world:
> Claim 1: That the concepts of EA (so, wedge products, multivectors, duality, contraction) are incredibly powerful and ought to be used everywhere, starting at a much lower level of math pedagogy—basically rewriting classical linear algebra and vector calculus.
I support this claim, so I suppose I’m a proponent of geometric algebra.
I think it’s more or less been carried out for vector calculus by Spivak’s “classical” Calculus on Manifolds, which is somewhat widely taught.
> Claim 2: That the Geometric Product (henceforth: GP) should be added to that list as the most fundamental operation, where by “fundamental” I mean that other operations should be constructed in terms of it, and theorems should be stated using it.
Like the author, I also believe this claim is nonsense.
“Rewriting classical linear algebra” is a honored pastime but it’s very difficult to make any headway doing it—the classical texts are classical for a reason, we more or less know how to teach them as an “80% solution” and it’s unclear that the investment in a new pedagogy would get us to an “81% solution.”
Especially with today’s undergrads. If you’re not churning arithmetic, they’re not into it.
What makes you say that?
> Most of the time we think of complex numbers as vectors in R2 or as rotation+scaling operators, but rarely do we actually we want them in both roles at the same time. So it is not very natural to equate the two objects, as opposed to finding a correspondence between them.
> So GA ends up being very stuck because it equates “vectorial objects” and “operators that act on vectorial objects”. It would be better to express all the geometric objects you care about in their most natural forms, and then find isomorphisms between them when it’s necessary to do so. Otherwise all the meanings get blurred together and it’s very confusing. So that’s another problem with geometric algebra: eliding the distinction between vectors and operators is undesirable, confusing, and disingenuous.
The exact same thing is happening here, only multiplicatively, where z1^(1/2) * z2^(1/2) is a combination with two weights of 1/2 (thus, summing to 1). It is geometrically meaningful to treat 2d vectors (displacements in a plane) as complex numbers, raise them to exponents summing to 1, and then multiply these together to get another vector in the same plane. But it is not generally geometrically meaningful to just multiply one vector by another vector to get a third vector in the same space (because this would require distinguishing some particular direction and magnitude as "1").
As opposed to the weird GA form it actually makes the physically most meaningful symmetry (Lorentz transformations) explicit. That's why it's actually used in Physics.
Anti symmetric space time tensors are the absolute standard. Further formulations that reveal other aspects, dualities, symmetries are much more niche and specialized subjects and not how the subject should be taught when first encountering it.
https://en.wikipedia.org/wiki/Covariant_formulation_of_class...
That is a rather strange take for a software engineer.
When implementing something I do need to know what the corner cases are, whether the runtime can enter such a state. I need to think how to put in checks so that they cannot be reached, or alternatively, how to recover gracefully. That's my job after all, why would anyone pay me if I didn't.
Perhaps a topical example is a gimbal lock. I need to be aware that it can happen and I need to know how to prevent it.
can you give an example of what's impossible/hard to do?
The start of the article makes a specific technical claims:
> Hestenes’ Geometric Product is not a very good operation and we should not be rewriting all of geometry in terms of it
Later he explains why:
> there is no good general interpretation or usage for the geometric product or mixed-grade multivectors
Mathematics is a social activity. The research cultures of different branches matter.
Certain kinds of perfect correctness are like pure and shining crystallised bits of refined knowledge created by the greatest wizards. "Parse, don't validate" or "Make invalid states unrepresentable." ought to be familiar to the better programmers here, the ones with decades of experience built on iterative, collaborative foundations with real consequences for error.
Theoretical physics doesn't have those same consequences, because there is no real punishment for their equivalent of "spaghetti code". Perversely, there's cachet to be gained for gaining understanding of its unnecessarily esoteric knowledge, much like how biologists and lawyers spend half a decade or more studying... Latin.[2]
Introducing Geometric Algebra to physics is like that wizard coder who sweeps away reams of spaghetti code and replaces it all with a call to a single standard library function. It's that "cheff's kiss" of cleanup. Meanwhile the juniors are screaming about how the senior "deleted all their hard work!"
Meanwhile, I never understood where Pauli and Dirac matrices came from! It's like they were pulled from fat air.
You've seen this in code, I bet. Some junior worked really hard on solving a problem and wrote a solid screen-filling wall of "a && b || c || !d && e && (f || g)..." continuing up to "ba, bc, bd", etc.. as they ran out single letters until they're well into the alphabet in double-character symbols.[3]
That's what those matrices are. Someone's hacky attempt at "making things work".
The problem is that we gave those people Nobel prizes and told everyone they're geniuses.
They are, but they were like that brilliant junior. Brilliant.. but junior.
Geometric Algebra sweeps all of that into one beautiful, consistent, crystal clear abstraction that is widely applicable. The magic matrix constants vanish. Bugs in 100-year-old textbook formulas suddenly come to light. Dozens of formulas, one set for each of the 1D, 2D, 3D, and 4D cases collapse into a single formula valid for any number of dimensions.
It's like watching someone struggle with "catching every possible instance of JavaScript injection".
No son, no. Just no. Stop enumerating badness. Stop. Just stop. Escape everything at the boundary instead, enforced by the type system. You'll thank me later.
I know it might be obvious to you, and you always use properly parameterised SQL queries or whatever. This is not the norm everywhere! I still get arguments, long drawn out arguments from people convinced that this is unnecessary and just one more search & replace is all they need to be safe from the bad hackers.
Physicists (and mathematicians) are still making that argument against GA.
"It's isomorphic!"
"That isn't the point!"
[1] You can't convince someone to climb Everest if they struggled to hike up to the top of one of its foothills.
[2] Let me be crystal clear: They're spending their precious time on this Earth learning a dead language instead of learning about the law or bugs. No amount of arguments will sway me. The bugs don't care what you call them. Criminals are guilty or innocent whether or not you speak funny in court. You've just made a simple thing harder for no good reason, that is all. Please stop.
[3] Yes, I've seen this. Twice, from two different people whom have never met. Aliens are amongst us.
There are two reasons for this:
(1) Popular materials are usually popular for a reason: they reflect an approximate consensus, across a significant fraction of the mathematical community, that their approaches are more-or-less the best.
(2) If you learn the same way everyone else does, you'll have an easier time talking to others and finding materials on the internet.
I know some very innovative books which I highly recommend, for example Visual Group Theory by Nathan Carter:
https://bookstore.ams.org/clrm-32/
But the innovation is pedagogical, in what Carter chooses to emphasize and how he presents everything. At the book's core, Carter agrees with everyone else about what the foundations of group theory are and should be.
Even Sheldon Axler's Linear Algebra Done Right (another excellent book), with its hilariously provocative title, only differs in its choice of emphasis and order of presentation. His choices are quite compatible with everyone else's.
I don't know, I recently tried to work out how the metric on vectors/1-forms induces a metric on higher-degree forms, and if the geometric product magically gives this for free I'd say it's a win (same for the Hodge star).
Maybe that's why I've found it so useful when doing rigging for animation—that's the entire job!
That reminds me, I’ve been meaning to rewrite parts of Hormander’s epic with tools from GMT but never found the time.
However, translation is an affine transformation, which is a particular case of a projective transformation [0]. It turns out that we can represent 3D affine (and general projective) transformations using a 4x4 matrix -- that is, as linear transformations in one dimension up, in a similar sense as how we can represent complex numbers as particular 2x2 matrices [1]. So yes, projective geometry is the right theoretical lens, even if we're usually able to forget about it (somewhat) when we use matrix representations.
[0]: https://en.wikipedia.org/wiki/Affine_transformation#Represen...
[1]: https://en.wikipedia.org/wiki/Complex_number#Matrix_represen...
The homogeneous coordinate system used to represent affine transforms in R^n using linear transforms in R^(n+1) is exactly the same as what is used to represent projective transforms in the projective space P(R^n). This is famously exploited in 3D graphics where 4x4 matrices can represent linear and affine transforms and perspective projections (modulo the final w-division normalization step).
Affine transforms are a special case of projective transforms where the last row (or column depending on convention) vector is (0, ..., 0, 1).
The benefit is that multiplication and distributive property is a beauty in the '+' notation, no special rules need to be memorized for multiplying 2d vectors, i*i = -1 takes care of it.
On the other hand I never understood what the benefit, of writing the tuple of wedge and dot products in '+'notation, is.
Perhaps I am not being fair, that it is the same idea and I have not used it as much as I have used complex numbers.
In physics, values have units too. Analogously, you could say - why incorporate units into the algebra in physics (as is often done)? Why not just add scalars etc. and not bother carrying around the units everywhere?
Well, because doing anything else is mostly nonsensical - it does not make sense to add meters and seconds together. Using unit algebra is the most basic sanity check as to whether your formula makes any sense.
Sometimes it makes sense to convert/cast between representations, but that should be explicit - distinguishing eg. objects and operations is more readable and more safe, and only comes with a bit of notational overhead. Nothing is free, but I think the benefits far outweigh the downsides.
"Standards" are things to be overcome when they've outlived their prime.
Disparaging new ideas as "niche" and "specialised" when their explicit aspiration is to be better foundations is motivated reasoning.
Because of that, it just becomes so tempting to try and phrase everything you can in terms of this geometric product. I'm very sympathetic to the temptation, and I even think the geometric product has some great uses (it shows up a lot in some physics I do), and using it makes writing rotations a treat, but I think it's still vastly overemphasized by GA people.
I still don't really know what my favoured notation for differential geometry is, I find myself switching around so much.
I agree about the importance of alternative representations, but, people should be somewhat careful about which ones they're espousing. Sometimes people get quite enthusiastic about wedge products and then think what they're excited about is geometric algebra. Personally I would like to see wedge products taught alongside vector algebra and calculus. But I don't see a useful place to include the geometric product, except as more better way of stating things about actual Clifford algebras (quaternions and gamma matrices). I do suspect that there is a 'better' version of GA that is important than that, but I haven't seen it described.
E.g. whether or not Navier-Stokes can form singularities doesn't really change how you analyze fluid dynamics in engineering. This doesn't mean it is not a mathematically important question worth extensive study, but it's not relevant for practitioners.
On complex multiplications though, I disagree. It's a great way to do Euclidean manipulations on the 2d plane. Rotations, translations and reflections (via conjugates) are simple. You rarely need calls to trigonometric functions.
If you have runtime support, it's sorta criminal not to use complex multiplication when applicable.
BTW there is another, equivalent, way of deriving the solution which to me seems more intuitive (and not limited to sum of powers to 1):
The angular travel from z1 to z2 is
z2 / z1.
I want to travel half of that, so √(z2/z1).
This half travel I apply to z1 like so √(z2/z1) * z1
done.If the need was to continue to travel angularly (rotate) beyond z2, say double the subtended angle, that's easy too. No need for the constraint the sum of powers be 1.
> [2] Let me be crystal clear: They're spending their precious time on this Earth learning a dead language instead of learning about the law or bugs. No amount of arguments will sway me. The bugs don't care what you call them. Criminals are guilty or innocent whether or not you speak funny in court. You've just made a simple thing harder for no good reason, that is all. Please stop.
The absurdity of this claim is enough to call into question everything else in your post.
I mean, come on, lawyers and biologists don't really spend half a decade studying Latin. You can tell because smart people that spend a year or two studying Latin are conversationally fluent in it, and lawyers aren't.
They spend a month or two memorizing some latin words that could have been in English, and then (for biologists, lawyers just stop there) years memorizing lots of names of things that they'd have to memorize no matter what language they were in, and it's not really any slower in Latin than it would be in English once you spent that O(1) effort to get used to it.
Like us (systems) programmers don't spend decades studying the C language, we spend a year or two getting comfortable in C and then the rest of our careers learning all sorts of interesting ideas like generational GC that come phrased in pseudo-C but might as well have been phrased in English pseudocode with a similar cognitive load to grokking them.
That wonderful popcnt() algorithm that uses 0x33333333 and 0x55555555 constants would be just as hard to decipher if it was written in plain English.
I can't really say if the problem was with me or GA. Probably more like GA didn't end up providing tools for my level of math skills to solve the problem. But neither did the the traditional branches.
Thanks!
* Physical sciences also have a lot of diversity, but at least you can go to their labs and see their equipment, reagents, data, etc cetera.
If I were in the GA Marketing Committee I'd publish a paper with suitably hand-picked worked examples where the vector approach is long and tedious, and GA version is short and sweet.
AFAIK nobody is proposing to replace all of geometry with GA, only 3+1 spacetime.
Without it, I think it'd be of significantly less mathematical interest because it'd lose almost all of its geometric properties.
Yep, me too. Maybe someday the HoTT folks will get around to formalizing it and standardizing the notation. /j
Maybe I'm just not on the math departments enough.
For a moment I had got distracted by the exponential between Lie group and algebra.
https://enkimute.github.io/ganja.js/examples/coffeeshop.html
A major problem is that its a very general theory. Most calculations turn into very large but very sparse matrix multiplications. To make them work fast requires code generation and an optimization pass.
These types of optimization problems show up all over graphics programming though:
* Representing rotations with matrices takes more space than quaternions.
* Sacrificing a dimension to projective geometry actually makes representing things like projections (duh) but also translations more efficient.
You need an optimizing compiler that would take the high level description (in GA) and compile it to add subtract multiply divide of reals (the assembly language). I don't think we have that yet.
Till we have such a compiler it will be tempting to drop down to assembly. Assembly being a metaphor.
Same with programming languages. Some people are like RUST RUST RUST and some are like C C C! I'm like, you guys only use one language?
The only thing that needed care was which sign of the sqrt bisects the internal angle as opposed to the external angle.
In general I prefer not to deal with angles when dealing with 2D rotation. Get inputs in angles if need be and from then onwards use the (cos,sin) tuple or, equivalently, use complex numbers. One can get rid of calls to trascendentals as long as you are happy to call sqrt.
In other words angle is a tuple.
The same calculation works in R^n, incidentally, using the geometric product. This is pretty much the ideal usecase for it, for constructing operators between vectors.
https://news.ycombinator.com/item?id=48619191
You probably know this, but this is one way to generalize beyond 2D
Every once in a while the internet gets talking about Geometric Algebra (henceforth GA) and how it’s a new theory of math that fixes everything that’s wrong with linear algebra and multivariable calculus. When I come across this stance I am compelled to respond with something like: “wait wait, it’s not true! GA is clearly onto something but there’s also a lot wrong with it. What you probably want is just the concepts of multivectors and the wedge product!” Which is not very effective, because it takes a long time to convince anyone why, and it’s also not very productive, because this just keeps happening over and over without anything changing.
Many people agree with me on this, but they deal with it by mostly ignoring GA instead of complaining about it. But I actually like what GA is trying to do and I want it to succeed. So today I’m going to actually make those points in a longer article that I can link to instead.
Specifically what I have a problem with is that the subject is pretty clearly flawed and needs serious work, and especially that the culture around it does not seem to realize this or be interested in addressing those flaws. In particular: Hestenes’ Geometric Product is not a very good operation and we should not be rewriting all of geometry in terms of it. For some reason GA is obsessed with the geometric product, and it’s causing all sorts of problems. They act like this is clearly the way that geometry should be done and everyone else can’t just see it yet, and they have this weird religious zeal about it that is problematic and offputting. It’s also just ineffective: treating certain models as if they are somehow canonical and obvious is wrong, mathematically and socially, and it puts people off right from the start. There probably is a place for the geometric product in a grand theory of geometry, but it’s not front-and-center like GA has it today, and as a result the theory is a lot less compelling than it could be.
If something like GA is to succeed, it will need to be improved. It will need to fix the problems with establishment mathematics better than it does now, in a way that everyone can get behind. Today it helps sometimes but often misses the mark, and people who can see that are alienated by the lack of self-awareness about this. As a result GA’s relationship to mainstream mathematics is tenuous.
Basically, GA is considered a kooky, crackpotty sideshow. And because it is so dubious and un-self-aware, the movement ends up alienating most people, except for a particular type of… zealous individual… who write about it with a sort of pseudoreligious zeal, and are prone to conspiracy, as if the only reason GA is not mainstream is that they are being oppressed by close-minded traditionalism. If that’s what you think, let me be the first to inform you: no, that’s not it. GA is interesting, but it’s just not very compelling at the moment.
GA continues to find more enthusiasts every year, because it really does address some actual problems. And it will take those new people a while to realize what’s going on—that the thing they’ve discovered is not as solid and revolutionary as they think it is. In the meantime they will go on selling other people on GA, creating the next years’ converts and repeating the cycle.
My opinion is that this dynamic is causing GA to be stuck in a sort of perpetual mediocrity, where everyone’s defending the surface-level philosophy because they think they’re part of a revolution, but nobody’s bothering to criticize or improve the underlying structural problems. My purpose in writing this is to push it to improve and address those problems. They’re very fixable, but first you have to notice that something is wrong.
The rest of this article substantiates my stance. It is very long, because I decided to include every argument I could think of. But I want to emphasize that, although this is my own long and opinionated rant with lots of individual parts that nobody else is really saying, I am far from the only person who believes the big picture (quite a few have emailed me to agree on this). The state of things is that lots of credible people just roll their eyes at GA and then move on and ignore it. But I actually do believe in GA’s philosophical project: math should be changing in this direction. So I would like to see that change, and to do that we need to establish what’s wrong with it now.
Big disclaimer: I’m not a professional mathematician, and this is not going to be the case that a serious mathematician would make, which would probably be something like “GA doesn’t prove anything new so who cares?” (Fine, but the goals of research mathematics are rather unrelated to the goals of people who use mathematics for practical purposes.) Also, since I do more-or-less subscribe to the underlying program of GA, I am at least slightly on the crank side of the fence as well. Take me seriously at your own risk.
First I am going to describe my understanding of what GA is, how it got to be that way, and where it lives in relation to the rest of math and physics. This will be useful in order to pinpoint exactly what we’re disagreeing about here. As far as I know the whole story isn’t really documented anywhere else, so I’m just going off what I’ve picked up over the years. But I am no historian and don’t really know how to check it against reality; I’d be happy to be corrected on anything in here.
Geometric Algebra is both a social movement and a branch of mathematics.
As a social movement, it’s a group of people who believe that (a) mathematics research and pedagogy ought to be reformulated to be more useful, especially to its users who are not research mathematicians, and (b) this reformulation ought to be done in terms of a particular set of new primitives, which is the branch of mathematics side. The argument for doing this is that it would make a lot of math simpler, easier to understand, and easier to use for practical purposes.
As a branch of mathematics, it is a recasting of a subject called Clifford Algebra (henceforth CA), which is a somewhat-obscure descendent of another subject called Exterior Algebra (henceforth EA).
Because it’s important to understand which parts are GA and which parts aren’t, here is how the various algebras relate to each other:
Exterior Algebra is built on the ‘exterior product’, denoted \(\b{a} \^ \b{b}\), commonly called the ‘wedge product’ because it looks like a wedge. It incorporates the concept of ‘multivectors’ in a vector space, such as bivectors that form a vector space of oriented areas, or trivectors which form a vector space of oriented volumes. It also includes some other natural operations that you need to do math with those: the Hodge star \(\star\) and an interior product, which generalizes the dot product to multivectors.
EA comes up naturally in abstract algebra, and in various downstream fields, such as algebraic topology. It also seems to exist in combinatorics literature with a somewhat different set of notations. More generally, EA provides the only actually good way of looking at a lot of the concepts in linear algebra, such as determinants, matrix minors, and cross products, a perspective which seems to be gradually infiltrating the literature that touches those subjects but mostly has not made its way into the undergraduate curriculum yet. If an undergraduate linear algebra class is chapter one of the larger subject of linear algebra, then EA is chapter two. It’s already well-known to mathematicians and physicist, and my impression is that it is gradually becoming ubiquitous at the graduate level but is mostly not taught to undergraduates.
Most physicists and some mathematicians will first learn about EA from its ubiquitous use in the field of Differential Geometry or its application in General Relativity, where it shows up as the “exterior calculus of differential forms”, which are used to do differential geometry in a coordinate-free way. (For some reason physics has mostly treated EA as just a thing you do with differential forms, instead of a general theory of vector algebra. This is unfortunate.)
Clifford Algebra is like a more advanced version of EA. It is much less widely-known, but it is well-established in certain subfields of math and physics, and a lot of physicists in particular use it without knowing what it’s called when studying spin in quantum mechanics.
Clifford Algebra is, roughly, an extension of EA which generalizes the complex and quaternion number systems. A Clifford Algebra is formed by taking vectors in space and allowing them to be multiplied: \(\b{x} \b{x}\), \(\b{x} \b{y}\), etc. Then there are some simple rules of algebra: two copies of the same vector can be cancelled out, so \(\b{xx} = 1\), and two copies of different vectors can be exchanged with a minus sign: \(\b{xy} = - \b{yx}\). As a result you get an associative algebra where most elements are invertible, so you can talk about the multiplicative inverse of a vector \(\b{a}^{-1} = \frac{\b{a}}{\| \b{a} \|^2}\). This allowing you to take a bunch of objects, expressed as sums of multivectors, and basically do polynomial algebra on them.
There are also more general versions of Clifford Algebras which allow the product of a vector by itself to take different values, such as \(\b{xx} = 0\) or \(\b{xx} = -1\), and you end up with a construction called \(Cl_{p, q}\) or \(Cl_{p, q, r}\) where \(p\) is the number of elements that square to \(+1\), \(q\) is the number that square to \(-1\), and \(r\) is the number that square to \(0\), which are useful in various contexts.
Quantum mechanics uses the Clifford Algebra of Pauli matrices, which are roughly the bivectors in \(Cl_{3,0}\), and the gamma matrices, which are vectors in \(Cl_{3, 1}\). But at least at the undergraduate level it’s rare that physics actually refers to them by name (my quantum course did not even mention that the Pauli matrices were quaternions). More generally a lot of the literature on spinors and representation theory heavily involves Clifford Algebras in a way that I don’t understand yet.
Geometric Algebra then attempts to take the ideas of Clifford Algebra and Exterior Algebra and spread them much more broadly, rephrasing other aspects of math in terms of those new concepts and operations. Exactly which ideas and operations those are depends on the author, but everyone who uses the phrase “Geometric Algebra” pretty much agrees that operations from CA and EA are useful and ought to be more widely used. By and large “GA” texts are lower-level than Clifford Algebra texts, and often discuss ways of performing useful geometric operations like rotations and reflections, things which often come up in computer graphcs and physical simulations, in terms of multivectors and the Clifford product.
Probably both GA/CA and EA could be considered as members of the larger subject of “multilinear algebra” which would include tensor analysis and all of linear algebra as well. There’s an argument to be made that they are really just “the rest of linear algebra”, the big part of it that isn’t included in introductory texts and hasn’t entered the mainstream yet. Perhaps by the next century they will be fully folded into the standard curriculum.
I mention all this to make the point that GA does not have any special claim to the wedge product or even the Clifford/geometric product per se. GA’s main difference is that it attempts to go back to lower-level math—vector algebra, calculus, basic physics like mechanics and electromagnetism—and rephrase them in terms of the Clifford/Geometric product, plus the other concepts of EA. Otherwise it is mostly the same material.
Now for the social side. Although in theory GA and CA describe mostly the same mathematical material, in practice GA always refers to the particular platform and social movement which descends from the work of David Hestenes from the 1960s. It specifically does not refer to the underlying material of Clifford Algebras, which predate Hestenes and are also found in several other subfields of math and physics, but rather how they are used, conceptualized, and taught by Hestenes and others in his school of thought. Sometimes GA people will defend GA by saying “it’s just Clifford Algebra which is really important in math, how can you have a problem with it?”, and that misses the point. GA is not the material itself; it’s the material plus the ideology and framework that is draped over the material. It’s a social movement which happens to really like Clifford Algebras.
This is a point that some people really disagree with, but, look, I swear that it’s true. Although Clifford himself called the operation the “geometric product”, Hestenes explicitly wrote in 2016: “Do not confuse Geometric Algebra (GA) with Clifford Algebra (CA)!” And you can very clearly tell, given any text about the geometric product, whether it is spiritually descended from GA or CA. They are for the most part written in totally different styles, at totally different levels, and concerned with totally different things.
That said, this is all shifting over time, especially as the GA movement and the Clifford Algebra research world do more cross-pollination, and as more people learn about GA without interacting with the movement itself, especially in computer graphics and robotics. For a lot of people GA is the only setting in which they have ever heard of any of this stuff.
GA is mostly less well-known in mathematics and physics than EA. Yet has a strangely large number of people advocated for it, particularly online in communities, articles, videos, and conference talks. Why? Well, here’s a basic history that sort-of explains why it was unknown in the first place, and why it is increasingly not.
GA was more-or-less invented in the late 1950s by David Hestenes, who made it his project to popularize it for the next fifty years. The underlying ideas date back to Clifford around 1878, who himself was extending Grassmann’s “Extensive Algebra” from the 1840s, and, I’m told, coined the “geometric product” terminology. Then, in 1959, Hestenes, who was unsure what original research to do in graduate school, randomly came across in the UCLA library some recently-published lecture notes of Marcel Riesz on the subject of Clifford Algebras. He immediately realized their similarity to the gamma matries of quantum mechanics, decided that this was the right way to reformulate all of vector algebra, and began working on it as his research project.1 Ultimately half of his thesis was about the subject, and most of the content was later published as a book in 1966 entitled Space-Time Algebra which gradually popularized his ideas quite a bit. Hestenes’ plan was to transform Clifford Algebra, otherwise a fairly niche part of mathematics, into the main language in which all of physics was expressed: that everything should be reformulated in terms of (mixed-grade) multivectors, wedge products, and especially the geometric product. In my opinion this stance is what changes the mathematical subject of “Clifford Algebra” into the ideological platform of “Geometric Algebra”.2
Over the next few decades Hestenes slowly popularized his ideas and published more papers on the stuff, but it seems like things didn’t really start picking up until the 1980s: particularly, with a 1985 conference at the University of Kent in 1985, started by Roy Chisholm in 1985, as well as with various publications of Pertti Lounesto.3 Then momentum picked up when a group out of Cambridge (here’s their website) got interested around 1988, in particular Anthony Lasenby, Joan Lasenby, Steve Gull, and Chris Doran, whose names will be familiar to anyone who has studied GA. The Cambridge group began putting out papers in the 90s with names like “Imaginary Numbers are not Real” and “A unified mathematical language for physics and engineering in the 21st century” which began to appeal a lot to people who had, for instance, lingering reservations about the use of complex numbers in physics, or about the philosphical interpretations of Pauli matrices and spinors.
Since then Hestenes and the Cambridge group seem to have published papers which reformulate every part of physics in terms of GA. They were refreshing when compared to mainstream physics, which seemed dogmatic and bizarrely willing to accept things that should have still been up for debate. (Of course this is how fringe ideas always view mainstream ideas.) So the appeal, and the reason that keeps catching more people’s interest, is that they were at least trying to solve things that are legitimately bothersome (to a certain type of person) instead of ignoring them.
By the time I was learning about differential forms in college around ~2010, knowledge of GA was ambiently floating around online, and a bunch of fairly accessible books had been published (I’m thinking of Doran/Lasenby’s Geometric Algebra for Physicists in 2003, Fontijne/Mann/Dorst’s Geometric Algebra for Computer Science in 2007, and Macdonald’s Linear and Geometric Algebra in 2010). The ideas of GA tended to show up if you went googling for intuitive explanations about forms, spinors, quaternions, or gamma matrices, which is what I was doing after finding the algebra of general relativity and quantum mechanics very opaque and frustrating.
Many of the people who latch onto GA are, like me, very (and perhaps over-)concerned with the soundness of the philosophical underpinnings of physics. Meanwhile everybody else goes on not worrying about any of that because the theories do, at least, give the right answers. In particular it’s very hard to be happy with the way that complex numbers are used in quantum mechanics4. We also tend to be displeased with the arbitrariness of the Pauli and Gamma matrices, and all of the index-juggling manipulations of general relativity, and the use of commutators in quantum mechanics and analytic mechanics, and other operations which are hard to interpret geometrically. Most frustrating, though, is the fact that most of the physics literature seems to not regard these things as problems, and that you are just supposed to learn and use them (“shut up and calculate”) and so you don’t find a lot of sympathy when you want them to make more sense.
Although the GA folks were clearly onto something, the response has not been all that enthusiastic. Why? Well, I think it’s because in practice their reformulations are not all that useful for actually doing or understanding physics. My opinion, but seriously, go read them. It turns out that writing everything in terms of the geometric product does not make it easier to understand. The valuable parts, I think, were the parts that were using the wedge product more liberally than physics had before; the usage of the geometric/Clifford product was always quite a bit more suspect. As a result a lot of physicists are probably aware of geometric algebra but not a lot of people are publishing papers in that language, and very few people would consider teaching undergraduate classes using it. It’s really only used right now in the cases where it has to be used, which is in the algebra of spinors and bispinors.
Okay, that’s the physics angle. But there is another part of the story in more applied fields: computer graphics and robotics.
Around the same time time period (1990s-2010s), a lot of new people were learning code that had to handle rigid motion in space, and invariably they tended to encounter quaternions. Quaternions were introduced to computer graphics by Ken Shoemake in 1985 (link). The field moves fast, and by the 90s it waas widely-understood among experts that quaternions were the fundamentally better way of modeling rotations in 3d space, compared to e.g. Euler Angles, because they treated every axis of rotation equally and allow for smooth interpolation between any two points (and also they avoid “gimbal lock”, as nobody ever neglects to mention). In hindsight, it turns out that when you want to model an topologically-nontrivial algebra like \(SO(3)\), it is very important to use an actual algebraic model of it like the quaternions, instead of a poor approximation like Euler Angles. But quaternions are a pedagogical nightmare—just go look how many Youtube videos there are to explain them! So when the GA people came along and started talking about bivectors and rotations in a way that actually made some geometric sense, a lot of people were interested.
There are also many more difficult computations in these fields which are more complex than simple rotations. Rigid motions of objects, for instance, involve moving a lot of lines, planes, tangent vectors, etc around in space, plus interpolating between their positions smoothly, plus doing all kinds of intersection tests, sidedness tests, for e.g. culling objects which are occluded or offscreen, plus all of this has to be projectively transformed according to the position of a camera or sensor. Quite a bit of literature on GA has come out of translating these operations into GA terms, and there are a number of vocal proponents of doing it this way. A good chunk of the GA literature you come across is in papers and conference proceedings about computer graphics and robots.
These applications tend to focus on particular choices of Clifford algebras which are suited to different types of geometric problems. It was already widely understood that projective geometry allowed one to represent rotations and translations in \(\bb{R}^3\) with a single linear operator on \(\bb{R}^4\). Geometric algebra extends this by starting from \(\bb{R}^3\) and adding some number of additional basis vectors that allow modeling various kinds of objects with Clifford-Algebraic operations. These theories attempts to replace the existing quaternion-like formulations of rigid geometric, such as screw theory or dual quaternions, with GA versions such as “projective geometric algebra”, “conformal projective geometric algebra”, or “plane-based geometric algebra”.
I believe the first of these was Projective Geometric Algebra (PGA), which was introduced in a 1999 paper by Jonathan Selig in a robotics journal. (I’m not sure which ideas are attributable to him, though: he cites Ian Porteous’s 1969 book Topological Geometry which has a bunch of Clifford-Algebra-based geometric algorithms, although in general it’s written in the much more technical “Clifford Algebra” style instead of the “Geometric Algebra” style. It also mentions that Clifford himself studied biquaternions to implement rigid body motions.) Selig’s PGA uses \(Cl_{0,3,1}\), but it seems like later authors use \(Cl_{3,0,1}\) instead. “Conformal Projective Geometric Algebra” follows shortly after and uses \(Cl_{4,1,0}\) to model the objects but now also includes circles and rotations as multivectorial objects with the help of an additional basis vector. I don’t know a lot about these, except that the texts on them are strangely difficult to read because they use very unorthodox representations for basic objects like planes and points. For instance in CGA a point \(\b{x}\) is modeled as \(\b{x} + \frac{1}{2} \b{x}^2 (e_{-} + e_{+})\) where the \(\b{e}_{\pm}\)s are two additional basis vectors to make the algebra work out. Seems weird to me but some people seem to get very excited about it.
As for pure math—it seems like research mathematics readily talks about and uses Clifford Algebra, but is uninterested in or specifically avoids the terms and concepts that are specific to Hestenes’ “Geometric Algebra”.
I can speculate as to why: even by the 90s/00s, GA had gotten a bad reputation because of its tendency to attract bad mathematicians and full-on crackpots. Hestenes honestly sounds like one a lot of the time, and I’m not really sure whether he is or isn’t. It makes sense, really. There are a lot of people who found it appealing for the reason I did: because the existing models of vector algebra and quaternion rotation were deeply unsatisfying. But it turns out that those reasons disproportionately attract people who are not actually capable of rigorous mathematics, or are slightly prone to conspiratorial thinking, or are otherwise slightly deranged.
I guess there are more people who can tell when math is weird or unsatisfying or bad… than can do good math themselves. So GA ended up appealing to a lot of fringes: people who only had undergraduate degrees, people who had dropped out of PhDs, people with PhDs from unrigorous programs, people who had been good at math but were perhaps going a bit senile, random passerbies from engineering or computer programming, run-of-the-mill circle-squarers, people who had a bone to pick with establishment mathematics and felt like all dissenting views were being unfairly suppressed… And these were the people who started publishing a lot of stuff about GA, often dressed up to look like more serious research than it was. Indeed, if you look around for papers that explicitly talk GA, they are very disproportionately (a) non-theoretical, (b) poorly-written, (c) trivial, i.e. restating widely-known results as if they’re novel, (d) only citing other GA papers, and of course (e) just plain crackpotty.5
It didn’t help that a lot of the texts by the actually-competent GA people, like the Cambridge group, tended to say things that sounded and still sound kind of crackpotty as well. LIke they would constantly talk about how their new theory is going to fix everything, which is exactly what the crackpots also say. Or they would just write with totally-unnecessary ostentatiousness, such as (quoting here) “We have now reached the part which is liable to cause the greatest intellectual shock”. Or acting like results in GA are new and novel when they’re clearly just using wedge products the same way that physicists and differential geometers had regularly done for decades. Or acting aggrieved that the rest of mathematics is ignoring them. Or, worst of all, claiming that all the new GA equations are simpler than the old ones, while referring to equations which were clearly not simpler than the old ones.
So I suspect that what has happened is that competent mathematicians who have heard of GA still ted to distance themselves from the term due to its dubious reputation in a sort of adverse selection. Which of course leaves GA with an even higher ratio of cranks, because most of the non-cranks leave! In fact I suspect that mathematicians sometimes publish papers about “Clifford Algebra” when they want to talk about the exact same material as GA, not even the super-theoretical version, but the same stuff, just without the negative associations. So some of the serious GA-adjacent research on ArXiv is just under the name Clifford Algebra instead.
To be clear, I think GA’s dubious reputation among mathematicians is well-deserved. But that doesn’t mean GA isn’t also onto something. It just means that there’s a lot of low-quality stuff under the same label, which has made that label questionable, and if you want to sift through it you have to be ready to filter for quality yourself.
Incidentally, as a result of its popular appeal and fringe status, there are a lot of online discussions dedicated to GA. Off the top of my head there’s a website called Bivector.net which has a forums full of discussions and a Discord that (as of this moment) has 200+ people online, which I guess feels like a lot for a community about a fringe mathematical theory. Plus a few other forums. Plus people show up talking about GA in the comment sections on every other math-related forum if anyone asks any questions about quaternions or bivectors. Plus there are the countless Youtube videos, conference talks, expository PDFs, standalone websites, etc. And then there are whole offshoots of GA, like Conformal Geometric Algebra and Plane-Based Geometric Algebra, that have their own enthusiasts and sometimes their own websites as well. Etc.
This is not really a bad thing either. If anything what it shows is how many people are passionate to see math reformulated in a way that makes more sense—so many that they’ll convene and talk about it on every one of the bizarrely-inadequate social networks we have in 2024. And that’s part of what is motivating me to write this article (which is getting very long now…). GA has got something of the right idea, and people recognize that and latch onto it, even if the details aren’t right. Research math knows a lot about geometry, but although most of the knowledge required to do all the things people actually want to do with geometry is out there somewhere, it’s not accessible or intuitive and the details are only really available to specialists.6 At some level GA is trying to “democratize” geometry.
So GA is probably onto something. Probably geometry deserves more a more intuitive and accessible foundation, and multivectors and the like are probably a big part of it. The problem is that… GA isn’t quite it.
As I wrote above: Exterior Algebra is clearly valuable and widely used already in graduate-level math and physics. Clifford Algebra is clearly widely used in theoretical mathematics and anything that has to do with spin. Geometric Algebra ought to be evaluated on what it adds on top of those.
So what does GA specifically say?
As I see it, GA is not so much a subject as an ideological position, consisting of basically two ideological claims about the world:
Claim (1), I believe, is completely correct, and is responsible for much of the reason GA has gotten so popular. Exterior algebra and the general idea of doing geometry with multivectors is incredibly powerful and intuitive and it ought to be widely used and taught to everybody, and we should all be reading and writing new textbooks that incorporate it. It’s so obviously true that I’m not even going to talk about it after this paragraph. Of course \(n\)-vectors make more sense than determinants. Of course differential forms make more sense than nested integrals and mysterious Jacobians. Of course wedge products make more sense than cross products. Of course bivectors make more sense than \(\bb{C}\). Of course we should use multivectors instead of “pseudovectors” and “pseudoscalars”. Why are we even talking about it? Just go rewrite all the books, the theory is pretty much there.
Claim (2), I believe, is nonsense.
And with that, it’s time to talk about the geometric product.
The geometric product of two vectors gives a mixed-grade object consisting of a scalar part (their dot product) and a bivector part (their wedge product). GA likes to write this product as juxtaposition:
\[\b{a} \b{b} = \b{a} \cdot \b{b} + \b{a} \^ \b{b}\]
(The general geometric product between two mixed-grade multivectors follows by writing them all out as sums of products of vectors like the above, then cancelling everything out according to \(\b{xx} = 1\) and \(\b{xy} = -\b{yx}\) for all choices of \(\b{x} \neq \b{y}\).)
Right away we’re confronted by the first problem. What does it even mean to have a “mixed-grade” multivector? The product of two vectors has a scalar part and a bivector part. Why?
I assume that the actual reason it happened, historically, is that it’s roughly what complex numbers and quaternions do already. Complex multiplication seems to involve two objects with different types:
\[\begin{aligned} (a + bi) (c + di) = (ac - bd) + (ad + bc)i \end{aligned}\]
And quaternion multiplication of e.g. two vectors seems to produce objects of mixed grades:
\[\begin{aligned} (a_1 \b{i} + a_2 \b{j} + a_3 \b{k}) (b_1 \b{i} + b_2 \b{j} + b_3 \b{k}) &= a_1 b_1 \b{i}^2 + a_2 b_2 \b{j}^2 + a_3 b_3 \b{k}^2 \\ &+ (a_1 b_2 - a_2 b_1) \b{ij} + (a_2 b_3 - a_3 b_2) \b{jk} + (a_3 b_1 - a_1 b_3) \b{ki} \\ &= - \b{a} \cdot \b{b} + \b{a} \times \b{b} \end{aligned}\]
Where the first part is a scalar (don’t mind the minus sign, that’s quaternions being weird7) and the second part is a vector written in the basis \((\b{i}, \b{j}, \b{k}) = (\b{jk}, \b{ki}, \b{ij})\).
Still, you have to explain what your geometric algebra is doing with mixed-grade objects. Do they… mean something? What is the scalar part? What would it mean to have a sum of a scalar, vector, bivector, and pseudoscalar? Or are they just formal linear combinations of things with no meaning? What is going on?
Not only that, you need the mixed-grade objects to actually be better than they were before you wrote them that way. For instance you can write the electromagnetic field as \(\b{F} = \b{E} + \b{I} \b{B} \in Cl_{3,0}\), and then Maxwell’s equations as \(\del \b{F} = \del \cdot \b{F} + \del \^ \b{F} = J\). But should you? Probably not. \(\b{E}\) is better understood as being a \(\b{x} \^ \b{t}\) bivector while \(\b{B}\) is an \(\b{x} \^ \b{y}\) bivector, both \(\in \^^2 \bb{R}^{3,1}\) Minkowski space, so they’re both bivectors in the same space. The mixed-grade interpretation only makes sense if you really want to stay in \(\bb{R}^3\) for some reason. There are other examples of rewriting things as mixed-grade objects, but, as far as I can tell, none of them seem… good? Writing equations in terms of mixed-grade multivectors in general doesn’t tell you anything useful. You can’t “think in them”. Or at least, I can’t. Here are some other people struggling to find a general interpretation of the GP as well.
The actual reason why GA so often uses mixed-grade objects and multiplies them together is that it is often using multivectors to represent various sorts of operators, rather than as geometric primitives like units of direction or area. For example they will use a unit vector to represent a reflection operator, or a scalar + bivector to represent a rotation operator. In this scheme, the product of two multivectors is generically interpreted as the composition of these operators.
This approach allows one to model a limited number of operations as elements of a single algebra. For the regular \(Cl_{n, 0, 0}\) Clifford Algebra, the basis vectors are interpreted as reflections and then their bivectors give rotations (more on this in a sec). But as far as I know there is not a great interpretation of the trivectors and higher. As an example, one might interpret the trivector \(\b{xyz} \in \^^3\bb{R}^3\), which maps \(\b{x}\) to \(\b{yz}\), as giving the complementary subspace to a vector. But what would it mean in \(\^^3 \bb{R}^4\)? Its action on, say, \(\b{x} + \b{w}\) returns \(\b{yz} + \b{xyzw}\). As a unit of volume \(\b{xyz}\) is perfectly reasonable, but as an operator it doesn’t make much sense.
The larger issue is that, even if the reason GA sometimes works is that it is implementing certain operators, very few users of GA understand that this is what is happening. As a result all the texts I have seen conflate the two concepts: they’ll use mixed-grade multivector operators but then also use mixed-grade multivectors for simple geometric primitives. Often they’ll prioritize the GP even when it makes no sense, such as creating the area of two vectors \(\b{a}\) and \(\b{b}\) by multiplying them with the GP and then extracting the grade-2 part, via \(\b{a} \^ \b{b} = (\b{ab} - \b{ba})/2\). This makes no sense! Even if vectors can be used as operators, they are still used for the basic primitives of e.g. displacements between points and areas of triangles. There is no reason to define the primitive operations in terms of operators, and there’s no additional insight gained from doing it. Instead it leaves you wondering: what in the world is the meaning of \(\b{ab}\) on two displacements? And since there’s no satisfactory answer to that, you’re left completely confused.
So that’s a problem: there is no good general interpretation or usage for the geometric product or mixed-grade multivectors. There are usages and interpretations in special cases, but the generic operation is not meaningful. Yet it is used everywhere as the fundamental object of the theory. It is very awkward that the basic geometric operation in the geometric algebra that people espouse because they’re trying to make everything geometrically intuitive… is not very geometrically meaningful on its own.
Rotations and reflections are the simplest examples of how the geometric product implements operations on vectors.
A basic rotation in a plane is implemented by exponentiating a bivector
\[e^{\theta (\b{xy})} = \cos \theta + (\b{xy}) \sin \theta\]
Which operators on vectors via
\[e^{\theta (\b{xy})}(a \b{x} + b \b{y}) = (a \b{x} + b \b{y}) \cos \theta + (b \b{x} - a\b{y}) \sin \theta\]
But this doesn’t work for vectors which don’t lie in the \(\b{xy}\) plane, because \(e^{\theta (\b{xy})} \b{z} = (\b{z}) \cos \theta + (\b{xyz}) \sin \theta\). Instead one has to use the Rodrigues formula for rotations in \(>2\) dimensions. GA accomplishes this the same way quaternions did, which is by which sandwiching a vector between two half-angle rotations instead, which GA calls “rotors”:
\[\b{v} \mapsto e^{\theta \b{B}/2} \b{v} e^{-\theta \b{B}/2}\]
Somewhat miraculously, this works correctly on \(\b{z}\):
\[\begin{aligned} R_{xy} (\b{z}) &= e^{\theta \b{B}/2} \b{z} e^{-\theta \b{B}/2} \\ &= [\b{z} \cos (\theta/2) + (\b{xyz}) \sin(\theta/2)] [\cos (-\theta/2) + \b{xy} \sin (-\theta/2)] \\ &= \b{z} [ \cos^2 (\theta/2) + \sin^2(\theta/2) ] + \b{xyz} [\sin (\theta/2) \cos (\theta/2) - \cos (\theta/2) \sin (\theta/2) ]\\ &= \b{z} \end{aligned}\]
We can split the action on a general vector \(\b{v}\) into a part which is parallel to the plane of rotation and a part of which is orthogonal to it: \(\b{v} = \b{v}_{\parallel} + \b{v}_{\perp}\). Then the rotation works by temporarily turning \(\b{v}_{\perp}\) into a trivector with one multiplication and then back into a vector with the second. Strange.
A reflection is similarly performed by sandwiching a vector, but between two other vectors instead of two exponentials. To reflect a vector \(\b{v}\) along a unit vector \(\b{n}\), we split \(\b{v} = \b{v}_{\perp n} + \b{v}_{\parallel n}\) and then the goal is to reflect only the part along \(\b{n}\): \(\b{v} \mapsto \b{v}_{\perp n} - \b{v}_{\parallel n}\). This is implemented by \(-\b{n} \b{v} \b{n}\), because
\[\begin{aligned} -\b{n} \b{v} \b{n} &= - (\b{n} \b{v}_{\perp n} + \b{n} \b{v}_{\parallel n}) \b{n} \\ &= - (-\b{v}_{\perp n} \b{n} + \b{v}_{\parallel n} \b{n}) \b{n} \\ &= \b{v}_{\perp n} - \b{v}_{\parallel n} \end{aligned}\]
Where we use the fact that the geometric products of parallel vectors commute, which orthogonal vectors anticommute.
In each case we are using multivectors, and constructing intermediate mixed-grade multivectors, in order to transform a vector in some way. Various other geometric algebras augment the usual \(\bb{R}^n\) basis with additional basis elements which allow one to represent and compose more operations such as translations, Lorentz transformations, or screw-motions.
It’s worth comparing this to how its done in a different model. The normal non-GA way to model a rotation is with the exponential map of a generator \(R_{xy}\):
\[\begin{aligned} e^{\theta R_{xy}} (\b{x}) &= (I \cos \theta + R_{xy} \sin \theta) \b{x} \\ &= I_{xy}(\b{x}) \cos \theta + R_{xy}(\b{x}) \sin \theta + I_{\perp xy}(\b{x})\\ &= \b{x} \cos \theta + \b{y} \sin \theta \\ \end{aligned}\]
Where \(I_{xy}\) is the identity operator on \((xy)\) and \(I_{\perp xy}\) is the identity on the rest of the space (responsible for keeping the \(z\)-component fixed, say). Note that the sign change compared to GA is just a choice of convention. \(R_{xy}\) may be written as a matrix:
\[\begin{pmatrix} 0 & 1 & 0 \\ -1 & 0 & 0 \\ 0 & 0 & 0\end{pmatrix}\]
but it’s better to leave it as a symbol; the matrix is just a representation of it in a particular basis.
The operator version of a rotation produces an object whose two components have the same type: both \(I\) and \(R_{xy}\) are linear maps \(\bb{R}^n \ra \bb{R}^n\). The GA version instead says that a rotation has a scalar term and a bivector term, which both happen to give a vector when multiplying a vector. I dunno. Personally the operator version feels much more reasonable to me. Without a clear geometric interpretation for what the geometric product is doing, why would you want a version that uses it like that? And it’s very strange how the GP version temporarily creates a trivector to perform a rotation.
More to the point, these objects have the same algebra. If you write out your rotations as operators or geometric-products of mixed-grade multivectors, they do the same thing. The choice of representation is there for its utility, not for its underlying mathematical truth, and pretending like it is mathematical truth is disingenuous and offputting.
Also, I happen to find the operator version a lot more appealing. Sure, it is interesting that GA’s version works, but since the intermediate objects aren’t interpretable as actual geometric primitives (like: a sum of a scalar and a bivector is not a thing in the world of “vectorial directions, areas, and volumes”—only in the world of “operators”), it is unsatisfying. Operators are a slightly different thing than multivectors, and the distinction is important. They have different “types”. Conceptually, vectors are not rotations or reflections or translations on their own; multivectors are not rotations on their own. But they can be put in correspondence with rotations or reflections or translations, yes, for instance we use unit bivectors for the purposes of defining the planes that rotations happen in. But I think it is a mistake to identify them with rotations and other operators, and everything else goes awry as a result.
This also happens in \(\bb{C}\) as well, by the way. We learn to regard \(a + bi\) as an operation on other complex numbers \(r e^{i \theta}\), which rotates and scales them, but really that is actually… pretty weird? Most of the time we think of complex numbers as vectors in \(\bb{R}^2\) or as rotation+scaling operators, but rarely do we actually we want them in both roles at the same time. So it is not very natural to equate the two objects, as opposed to finding a correspondence between them.
Well, GA would phrase this as the vector interpretation being \(a \b{x} + b \b{y}\) and the operator interpretation as \(a + b I\). But I would argue that even the bivectors and scalars should not be interpreted as operators either. Bivectors are not operators: they’re elements of a vector space that models units of area in planes. If the plane is created by two geometric rays then the unit of area is a vectorial representation of a patch of area. If the plane is created by two operations on vectors, then the unit of area is a vectorial representation of some sort of antisymmetrized product of those operators. That’s all fine! They’re just different spaces that have similar algebras. Rotations can be implemented with them, yes, because rotations take place in planes, but they are not the same thing: bivectors-as-vectorial-areas only become rotation operators when you contract with one of their indexes, which is a separate step that you would perform on purpose.
So GA ends up being very stuck because it equates “vectorial objects” and “operators that act on vectorial objects”. It would be better to express all the geometric objects you care about in their most natural forms, and then find isomorphisms between them when it’s necessary to do so. Otherwise all the meanings get blurred together and it’s very confusing. So that’s another problem with geometric algebra: eliding the distinction between vectors and operators is undesirable, confusing, and disingenuous. The GP is only geometrically meaningful, to my knowledge, in the context of “representations of certain classes of geometric operators as implemented in particular Clifford Algebras”, and treating it like it is some general-case thing turns a lot of people away from the start.
In the standard GA over \(\bb{R}^3\), once you have defined the weird GP on vectors, the next step is to define the regular useful operations of EA in terms of it:
\[\b{a} \cdot \b{b} = \frac{1}{2}(ab + ba)\] \[\b{a} \^ \b{b} = \frac{1}{2}(ab - ba)\]
This construction is appealing to people who came from physics because their first exposure to exterior algebra was probably in the form of the Pauli matrices (which show up in the quantum mechanics of a non-relativistic electron) and the Gamma matrices (which show up in the Dirac Equation for relativistic electrons and positrons).
The gamma matrices, famously, have their symmetric product equal to the (Minkowski) metric \(\eta^{\mu \nu} = \text{diag}(1, -1, -1, -1)\):
\[\{ \gamma^\mu, \gamma^\nu \} = \gamma^\mu \gamma^\nu + \gamma^\nu \gamma^\mu = 2 \eta^{\mu \nu}\]
Which, after some unpacking of the notation, says that \(\gamma^0 = \b{t}\) and \(\gamma^i = \b{x}^i\) and that \(\b{t} \cdot \b{t} = +1\) while \(\b{x} \cdot \b{x} = \b{y} \cdot \b{y} = \b{z} \cdot \b{z} = -1\). Essentially these are the objects you need if you want to “square root” the Laplacian \(\p_t^2 - \p_x^2 - \p_y^2 - \p_z^2 = (\gamma^0 \p_t + \gamma^1 \p_x + \gamma^2 \p_y + \gamma^3 \p_z)^2\). Somehow it works but good look figuring out what it means! It turns out that the total set of Gamma matrices has 16 elements which correspond to the 16 elements of \(\^^4 \bb{R}^{1, 3}\): one scalar (the identity), four vectors (the regular Gamma matrices), six bivectors (the commutators of Gamma matrices), four trivectors (etc), and one pseudoscalar (the object usually written \(\gamma^5\)). And their multiplication rule is exactly the Clifford algebra on those objects with metric signature \((+1, -1, -1, -1)\). That is actually cool and interesting: apparently the Gamma matrices do implement the Clifford algebra \(\text{Cl}_{1,3}\), which GA calls the “spacetime algebra”. Evidently whatever a bispinor “is”, vectors act on them by multiplication using the Gamma matrices as their representation.
So if you were coming from knowing about Pauli matrice and Gamma matrices, finding out that there’s a way to interpret them all as basic elements of an intuitive algebra is very appealing. This, I think, is the reason Hestenes, Doran, Lasenby, etc were very interested in the geometric product as a generic tool for building vector algebra in the first place; their early papers are very targeted at physicists who are frustrated with spinors and bispinors not making much sense.
I agree that rewriting the objects in terms of their Clifford Algebra is a good idea. But I don’t agree that this means you should rephrase all of geometry in terms of the Clifford Product / Geometric Product. The GP is provisionally useful for complex numbers, quaternions/Pauli matrices, and Gamma matrices, and fantastically useful in general for spinors (apparently!)… but that doesn’t apply anywhere else. So why would you go rewrite all of vector algebra in terms of it? Anyway I’m counting it as another problem with GA: The fact that the GP shows up for mysterious reasons in the physics of spinors is no reason to use it for the rest of geometry. For purposes other than spinor-related algebra, an operator-first formulation does everything you want without a magic bizarre product, and it’s not like the spinor algebra makes a lot of intuitive sense anyway. Writing everything the way that they are produced in spinor algebra is not providing any intuition for anything.
(Incidentally, the fact that the Gamma matrices which convert between spinors and real numbers also obey a Clifford algebra is… really weird, isn’t it? I have trouble thinking of any kind of possible explanation that would lead to that. Each gamma matrix corresponds to a cardinal direction, their antisymmetric product gives a bivector, but also their symmetric product gives the identity—what could that possibly mean? It feels like it’s closely related to the, um Divine Understanding of Spinors, the interpretation that Atiyah was talking about not having when he said “No one fully understands spinors.”. Whatever they are, their symmetrization becomes the identity operator. It’s so weird.)
A stray comment online led me to add this section later on.
Okay, fine, suppose you have learned that Rotor-based rotations are a good way to representation rotations of vectors:
\[\b{v} \mapsto e^{\b{B}\theta/2} \b{v} e^{-\b{b} \theta/2}\]
You may have learned this in terms of quaternions, rotation operators, or in terms of a full GA. And it is a good and powerful formula! It clearly expresses something very fundamental about geometry. It is not a coincidence that Euler-style formulas are more awkward in \(\bb{R}^3\) and above: even though \(e^{R_{xy}\theta}(\b{v})\) with \(R_{xy}\) as an operator gives the right answer, trying to use it as an element \(R_{xy} = \b{xy}\) of a geometric algebra doesn’t work due to \((\b{xy})(\b{z}) \neq 0\).
Yet the rotor formula works, and continues to work in higher dimensions. Why? Well, at a mechanical level, it works because by writing the rotation as a sandwich product \(\b{v} \ra R \b{v} R^{-1}\), any component of \(\b{v}\) that \(R\) commutes with gets canceled out: \(R_{xy} \b{z} R_{xy}^{-1} = \b{z} R_{xy} R_{xy}^{-1} = \b{z}\). But this is not a very enlightening answer.
A slightly better explanation is that it takes the form of the familiar change-of-basis matrices from linear algebra, \(A \mapsto P A P^{-1}\). Viewed this way, it seems like the vector \(\b{z}\) that we are rotating is some kind of linear transformation from one space to another.
Elsewhere, in quantum physics say, we learn that spinors in fact transform according to only one of these half-angle rotor operators:
\[\| \chi \> \mapsto e^{R \theta/2} \| \chi \>\]
And one is naturally wonder if a spinor is a sort of “square root” of an operator. After all if \(\b{v}\) was thought of as the product of two spinors \(\b{v} = \| \chi \> \< \chi \|\) then its rotation property would be the same: \(R_{\theta}(\b{v}) = e^{R \theta/2} \| \chi \> \< \chi \| e^{- R \theta / 2}\).
And so sometimes people will say seemingly-profound things about spinors:
These are kind of annoying. On the one hand, yes, there is almost certainly some connection between the two things. But seriously. If you know about rotors, you still don’t know much of anything about spinors.
For one thing you would need to be able to answer the question: if \(e^{R \theta/2}\) is a spinor, then what is \(e^{R \theta/3}\) or \(e^{R \theta/k}\)? Are those also physical objects? Because they are triple / \(k\)-covers of \(SO(3)\), yet they’re not important here, and you ought to be able to explain why. \(SO(3)\) has half-integer representations but not third-integer representations; why not?
More importantly: the core idea of spinors is that they capture the connectedness of paths in \(SO(3)\). A loop in \(SO(3)\) (a full \(2\pi\)-rotation around the \(z\)-axis, say) returns vectors to where they started, but is not homotopic to the identity rotation. Spinors track this information: \(SO(3)\) has a universal cover \(SU(2)\), which basically “completes” its path-connectedness, which happens to be \(2\) to \(1\), so it descends to a half-integer projective representation on \(SO(3)\). And then in physics, it turns out that whatever fermions such as electrons are, they are particles which keep track of their path-connectedness, and destructively interfere with themselves if they are on the same side of \(SO(3)\), and therefore each of their position wavefunctions essentially come in two superposable variants which we call spin-up and spin-down.
So rotors do hint at the underlying algebra here, and if you study them carefully you will find that they do form a path-disonnected space due to the half-angle. But writing down a rotor does not mean you understand spinors. It is just a marginally more coherent way of thinking about them than you had before. Most of the mystery is still there.
(That said, if somebody finds a really good way to think about a vector as a tensor product of spinors \(\b{v} = \| \chi \> \< \chi \|\), I’d be curious to read it. But as far as I know this is not that enlightening in practice.)
Not only are the GP and mixed-grade multivectors weird, they have to invent a bunch of weird other operators just to undo their awkwardness. Such as the grade projection operator
\[\<A\>_k = \text{(grade-k component of )}A\]
Or the “even” and “odd” grade projections:
\[\<A\>^+ = \< A \>_0 + \< A \>_2 + \< A \>_4 + \ldots \\ \<A\>^- = \< A \>_1 + \< A \>_1 + \< A \>_3 + \ldots \\\]
Or some really awkward definitions of every other kind of product:
\[\begin{aligned} A \, \lfloor \, B &= \sum_{r,s} \< \<A\>_r \<B\>_s \>_{s-r} \\ A \, \rfloor \, B &= \sum_{r,s} \< \<A\>_r \<B\>_s \>_{r-s} \\ A \ast B &= \sum_{r,s} \< \<A\>_r \<B\>_s \>_{0} \\ A \bullet B &= \sum_{r,s} \< \<A\>_r \<B\>_s \>_{\| s - r \|} \end{aligned}\]
None of any of this is necessary if you don’t use mixed-grade multivectors and the GP in the first place. And absolutely nobody wants to learn any identies involving these things. So that’s another complaint: there are way too many confusing definitions required when you base everything on the geometric product. I have to imagine that every single person who has gone to learn GA has been taken aback by this, and by the fact that the people writing about it don’t seem to have much of a problem with it. And actually I have only shown the tip of the iceberg here. Take a look, for instance, at the list of operations on the website ProjectiveGeometricAlgebra.org.
To be fair, the proliferation of operations is somewhat a problem in EA also: the Interior Product, for instance, is fairly awkward to use, and like \(\lfloor\) and \(\rfloor\) above, there kinda needs to be two versions of it if you want to apply it from either the left or right. But at least it is has a fairly elementary interpretation of a simpler operation in the algebra, as the adjoint of the wedge product under the inner product. And there are other operations that show up, like the Meet \(\vee\) which is dual to the wedge product. But GA has all of these plus its extra unnecessary stuff.
More generally I think it is better construct all of these operations directly from the tensor algebra. I suspect that the “right way” (inasmuch as that phrase means anything) to think about vector algebra is to think of the two fundamental operations as being (1) the tensor product \(\b{a} \o \b{b}\) and (2) the dot product/trace \(\b{a} \cdot \b{b}\). Everything else is really constructed from these, and despite what people will say, it is actually rather intuitive that the product of \((a_x \b{x} + a_y \b{y})(b_x \b{x} + b_y \b{y})\) would be \(a_x b_x \b{xx} + a_x b_y \b{xy} + a_y b_x \b{yx} + a_y b_y \b{yy}\). Or at least, it is certainly more intuitive than the geometric product. It is weird at first that multiplying two vectors would make a rank-\(2\) tensor, but it is not really different from the fact that multiplying two scalars with one unit each gives a scalar with two units: \(5 \text{m} \cdot 3 \text{s} = 15 \text{ m}\cdot\text{s}\).8 True, it is not invertible, but it shouldn’t be: it’s a very generic operation whose inverse is not a single value. If you produce a version of vector multiplication that is invertible, you have definitely erased information somewhere to make that possible, so it is certainly not the “true” meaning of vector multiplication.
Anyway, if you start with the tensor product, then your pedagogical task is to explain why anybody would then go and invent the exterior product from that, but that isn’t too bad: in some sense the dot product asks “what happens if you multiply two vectors and ignore the terms that aren’t parallel?” and then the wedge product asks “What happens if you multiply two vectors and ignore the terms that are parallel?”. Those are at least philosophical constructions, and although they’re not completely satisfying, they do pretty well.
Here’s a really basic objection: geometric product’s associativity is actually really awkward for doing basic linear algebra.
A geometric algebra is what you get when you take the tensor algebra on basis vectors \(\{\b{x}, \b{y}, \ldots \}\) and assert that \(\b{xx} = 1\) and \(\b{xy} = -\b{yx}\) everywhere (so, quotienting by relations of those forms)9. (Or in other metric signatures, that \(\b{xx} = Q(x,x)\) or whatever.) The geometric product itself is what the tensor product \(\o\) becomes under this mapping. Naturally it is associative because \(\o\) is:
\[(\b{ab})(\b{c}) = \b{a}(\b{bc}) = \b{abc}\]
But this definition is actually really awkward. Look what it does to the “squares”” of the multivectors:
\[\begin{aligned} (1)(1) &= 1 \\ (\b{x})(\b{x}) &= 1 \\ (\b{xy})(\b{xy}) &= -1 \\ (\b{xyz})(\b{xyz}) &= -1 \\ (\b{wxyz})(\b{wxyz}) &= 1 \end{aligned}\]
What is going on? Well, every time you switch the position of two args, you get a minus sign, and… the pattern is weird. You know what would work way better than that? If the product operated left-to-right, like tensor contraction i.e. the dot product already does:
\[\begin{aligned} (1) \cdot (1) &= 1 \\ (\b{x}) \cdot (\b{x}) &= 1 \\ (\b{xy}) \cdot (\b{xy}) &= 1 \\ (\b{xyz}) \cdot (\b{xyz}) &= 1 \\ (\b{wxyz}) \cdot (\b{wxyz}) &= 1 \end{aligned}\]
But if you made the geometric product operate left-to-right, it doesn’t work, because the wedge product part actually does care about the ordering. That’s how it works in regular exterior algebra already: the dot product and wedge product are different operations that associate differently; the dot product is left-to-right while the wedge product associates. So you end up making a choice between two conventions for your algebra:
To me (1) sounds way better. Let linear algebra work like it should and just add in the parts you need to make operators that compose differently. Don’t break linear algebra just to make it look more like complex numbers!
And really, some of GA’s definitions of things in terms of the GP work better if you use left-to-right contraction. For example the weird minus sign in the rotation \(e^{(\b{x \^ y} )\theta} (\b{x}) = \b{x} \cos \theta - \b{y} \sin \theta\) up above goes away if \(\b{xy}(\b{x}) = \b{y}\). The definition of the cross product in terms of wedge product becomes \(\b{a} \times \b{b} = I \cdot (\b{a} \^ \b{b})\) instead of \(-I (\b{a} \b{b})\).
The way GA recovers the standard multivector inner product is with the “reversion operator”, which looks like
\[A^{\dagger} = \< A \>_0 + \<A\>_1 - \<A\>_2 - \<A\>_3 + \<A\>_4 + \ldots\]
Which just means that it reverses the order of vectors in a product:
\[(\b{xyz})^{\dagger} = \b{zyx} = - \b{xyz}\]
Such that the “standard” dot product of two multivectors (the one that returns \(1\) if they are the basis element) is implemented as
\[(\b{xyz}) \cdot (\b{xyz}) = (\b{xyz})^{\dagger} (\b{xyz}) = 1\]
It seems to me that they defined their operation to associate in the wrong way and then have had to construct this operation to undo the mistake.
Incidentally, reversion is basically a generalization of complex conjugation. GA likes the way that the GP associates because it preserves the “square root of \(-1\)” behavior of complex numbers and quaternions: \(i^2 = j^2 = k^2 = -1\). Then reversion is used to construct the vector norm again, which for complex numbers and quaternions is implemented with complex conjugation: \(\| a \|^2 = \bar{a} a = (a_x - a_y i) (a_x + a_y i) = a_x^2 + a_y^2\). I find it strange. It’s hard to just say that complex conjugation is not an important operation, but it’s also hard to say why it’s so important—that is, I can’t see a great philosophical argument for it. It is not an operation we really “want” to be using if we’re trying to make geometry simple and intuitive.10
I think once again the problem is the conflationg of “vectors” and “operators on vectors”. Vectors themselves, or any multivectors, ought to have have normal norms that square to \(1\). Operators on vectors, such as rotations and reflections, can square to whatever they need to square to; naturally \(R_{xy}^2 = -I\), which, fine, write as \(-1\) if you want to use a Clifford Algebra to represent it, and implement a version of complex-conjugation to extend this to your mixed-grade operators. But don’t go around telling people that for some reason bivectors that represent units of surface area also square to \(-1\), because that’s crazy.11
One other thing that GA emphasizes from early on is the fact that most of the time you can divide by vectors and (usually) multivectors:
\[\b{v}^{-1} = \frac{\b{v}}{\|\b{v} \|^2}\]
This is another one of the properties of complex numbers and quaternions that it attempts to extend to all vectorial objects. It almost makes sense: if you are treating all multivectors as operators on other multivectors under multiplication, then naturally they have an inverse (if they are not an implementation of a projection) which is given by something that looks like division. I’m fine with that part. My objection is just that blurring the distinction between the multivectors and operators in the first place is weird, so inverting them is weird also. If you describe this as “inverting a vector”, it is mysterious and weird. If you describe it as “inverting an operator (which is implemented as a vector in this particular algebra)” it is completely intuitive. So just do that!
For instance a rotation operator \(R_{xy}: \b{v} \mapsto \b{v} \cdot (\b{x} \^ \b{y})\) has inverse \(R^{-1}_{xy}\), which is of course a rotation in the same plane with the opposite orientation, hence implemented as \(R^{-1}_{xy} = R_{yx} = R_{-xy}\). Meanwhile the inverse of \(\b{x} \^ \b{y}\) under the dot product is the object \((\b{x} \^ \b{y})/\|\b{x} \^ \b{y}\|^2\). Etc. This perspective seems a lot more orderly and sensible to me, and it makes it completely clear how each inverse object should work with no magic.
I will say that at least one type of vector division shows up all over math. It is basically part of the operation of “projection”:
\[(\b{v} \cdot \b{a}^{-1}) \b{a} = (\frac{\b{v} \cdot \b{a}}{\| \b{a} \|^2}) \b{a} = \text{proj}_{\b{a}}(\b{v})\]
It might seem weird to call this “division” since it does not exactly invert a particular multiplication operation. But I think it is a good generalization of division. In particular it has the correct behavior if the vectors are parallel, because \((a \b{x}) \cdot (b \b{x})^{-1} = a/b\), and in other cases its behavior is fairly easy to interpret: basically it divides the parallel parts and drops the non-parallel parts. (In other metrics there are also some concerns about zero-divisors, but whatever, just don’t try to invert those.)
Of course anything you might do with the \(\b{a}^{-1}\) notation you can also do without it,, but I think it’s rather elegant how it takes care of handling the factors of \(\| \b{a} \|\) for you. For instance it gives a neat way to factor a vector \(\b{v}\) into components along an orthogonal set of vectors \(\{\b{a}, \b{b}, \b{c}\}\) even if they are not unit vectors:
\[\b{v} = (\b{v} \cdot \b{a}^{-1}) \b{a} + (\b{v} \cdot \b{b}^{-1}) \b{b} + (\b{v} \cdot \b{c}^{-1}) \b{c}\]
Which may as well be written as
\[\b{v} = v_a \b{a} + v_b \b{b} + v_c \b{c}\]
By using this “vector division” instead of just a regular dot product, we cancel out the magnitude of the \(\{ \b{a}, \b{b}, \b{c} \}\) elegantly. In a way this is treating \(\{ \b{a}, \b{b}, \b{c} \}\) as a matrix \(\text{diag}(a,b,c)\) in a certain basis, then inverting it to get \(\text{diag}(a^{-1}, b^{-1}, c^{-1})\) in the same basis. (Of course, this only works due to the fact that the three vectors are orthogonal; otherwise you would get cross terms.)
Anyway, I am just trying to make the case that GA’s notion of vector division is not on its own necessarily a bad idea. The baisc construction shows up a lot in vector algebra, and if you are writing your operators as multivectors of course it is meaningful to invert them. But it gets confusing when you start conflating operators nad primitives and doing a bunch of algebra on the primitives.”Inverting a vector” is basically not meaningful, while “inverting a translation” is, and pretending like they are the same is pedagogically and philosophically unsound. But it seems to me like a perfectly sound interpretation is waiting just a few steps away.
I have given a lot of reasons why I think GA is problematic: the Geometric Product is a bad operation for most purposes. It really implements operator composition and is not a very fundamental or intuitive thing. Using a Clifford Algebra to implement geometry is an implementation detail, appropriate for some problems but not for general understandings of vector algebra and all of geometry. Giving it first-class status and then bizarrely acting like that is not weird is weird and alienating to people who can see through this trick.
Nor should we be trying to make everything look more like complex numbers and quaternions. Those are already weird and confusing; we should be moving away from them! Don’t call the geometric product “the” way to multiply vectors. Stop fixating on the geometric product or on some particular \(Cl_{p,q,r}\) that solves everything with a bunch of funky formula for basic stuff. Just teach wedge products and operators and keep it simple; stick to the good parts! Treat the Clifford Algebras as what they are: implementations of the compositions of particular operations in a particular notation. Not a replacement for the rest of geometry.
So for the time being I have to reject GA as a thing that I identify with. Fortunately, it is a philosophy, not a mathematical theory, so it’s easy to reject. That’s why when I write blog posts about the same basic ideas, and which align with the same basic philosophy of recasting mathematics in a more geometric and multivectorial form, I use the phrase “Exterior Algebra” instead.
That I said, I really do think there’s a lot more to discover here. I’m convinced that there’s some unifying theory of vector algebra that will tie this all together with a bow, and I’m hoping someone finds it, preferably soon. Among other things it will explain exactly why the geometric product does work, when it does, and also why so many other formulas end up looking suggestive and interesting and imply that for instance we can sometimes divide and multiply vectors like they’re numbers in a bunch of cases. When it does come along maybe we can call it “Geometric Algebra” again; it’s a good name. Or maybe “Geometric Algebra 2.0”, or “New Geometric Algebra”, or “Geometrical Algebra”. Or maybe we drag the name “Clifford Algebra” down out of the clouds and make it accessible to everyone. Whatever you want! But in the meantime, I’m not interested in using the name GA, because I think that name is attached to a bunch of bad ideas. The geometric product, its associated ontology, and the culture around it… are just mucking everything up. Thanks.
(If you want to read more criticisms of GA literature, also check out Eric Lengyel’s Poor Foundations in Geometric Algebra. I can’t vouch for its accuracy but it sounds about right. He’s much more of an expert in this stuff, anyway, than I am. I only got involved because I was tired of there not being any vocal criticism out there.)
The story is from an article called “Grassmann’s legacy” in the 2011 book “From Past to Future: Grassmann’s Work in Context”. Also, Riesz’s lecture notes can be found in a 1993 book called “Clifford Numbers and Spinors”. ↩
Many details are available in Hestenes’ essay “The Genesis of Geometric Algebra: A Personal Retrospective”, although dang do I wish he would stop acting like all his work is the greatest stuff on earth. ↩
Lounesto is kind of hilarious. He’s apparently a very blunt Finnish guy who went around finding errors in everyone else’s publications about Clifford Algebras and collecting them all on his website. ↩
The answer, at minimum, is at least trying to name what space they’re supposed to be rotations in, even if to just give it in a name like \(X\), and then write \(R_{X}\) instead of \(i\). Are all the \(i\)s of QM experimentally proven to be in the same space? I’m not sure anybody knows. Your intro quantum book doesn’t mention it; it treats them as axiomatic. ↩
For a fun time, search viXra, that is, crank ArXiv, for the phrase “geometric algebra”. Aside: if I ever have a beautiful Theory of Everything to share with the world it has occurred to me that it would be funny to post it on ViXra instead of somewhere reputable, just to confuse everyone. Don’t write them off completely! ↩
For instance the most common stance on the r/math subreddit looks like this one: “From what I have seen, Geometric Algebra is just a rehashing of existing math.”. Which, yes, I agree, but the point is to make the existing math more intuitive, not to discover new results. The fact that research mathematics is generally not concerned with making calculation and intuition easier to think about is, I think, a giant failure that it will eventually regret. There’s as much value in making things easy to use as there is in discovering them. At this point probably more. Picture if nobody had started teaching non-mathematicians calculus because it was just for experts—it feels like that. ↩
The actual implementation of quaternions in geometric algebra regards it as the even subalgebra of the geometric algebra on \(\bb{R}^3\), with elements given by e.g. \(\b{i} = -I\b{x}\), that is, \(\b{i} = \b{zy}\), \(\b{j} = \b{xz}\), \(\b{k} = \b{yx}\). This is of course totally weird but it’s equivalent to how quaternions are implemented in Pauli matrices: \(\b{x} \mapsto -i \sigma_1\), etc. Quaternion multiplication follows from the GP: \(\b{ij} = (\b{zy})(\b{xz}) = \b{yx} = \b{k}\) and \(\b{ii} = (\b{zy})(\b{zy}) = -1\). But this mapping is basically arbitrary, and other mappings would also implement the same underlying algebra. ↩
Actually, I think it is exactly the same as that, and whenever I finally write my book on all this I’m going to introduce the tensor algebra as a way of juggling multiple units at once rather than any sort of universal free multilinear multiplication… ↩
Strangely, the texts on GA do a bad job of actually explaining that that’s how it works. Quoting MacDonald who wrote a well-known book on GA: “I do not think it possible to give a quick definition of the general geometric product.” Hmm. ↩
My rough understanding is that when \(\bb{R}\) gets algebraically completed by \(i = \sqrt{-1}\), there are really two possible values \(i\) and \(-i\) that satisfy \(i^2 = -1\). Therefore if we are solving any problem in \(\bb{R}\) with this value \(i\), the solution can’t care about the difference between \(+i\) and \(-i\), and you can interchange the two. That part is fine. But why, then, does multiplying \(z \bar{z}\) give a “magnitude” that works in a reasonable way? It is not very clear and certainly not natural compared to \(z \cdot z\).
2026 edit: I have come to understand this better recently. \(z \mapsto \bar{z}\) regards \(z = r \oplus i \theta\) as a decomposition into subrepresentations and then inverts only the rotational part. Something like that. And then \(\| z \| = \sqrt{z \bar{z}}\) is equivalent to the projection \(\b{v}_x = (v_x, 0) = \frac{1}{2} [(v_x , v_y) + (v_x, -v_y)]\), but in a multiplicative instead of additive group. ↩
Aside: I wonder sometimes if EA is missing an operation in its toolbox which allows for contracting only some components of multivectors together while multiplying the rest, such that \((\b{x} \^ \b{y}) \cdot_1 (\b{x} \^ \b{y}) = - (\b{x} \o \b{x} + \b{y} \o \b{y}) = - I\). I wrote about this operation some here, where I called it the “partial trace” because it is somewhat like that operation on tensors. But it is hard to think about because it clearly has to be able to create non-wedge product results (such as \(I\)), which are hard to incorporate into the overall algebra. (That is generally part of my stance on GA and EA both: there are some missing parts of the theory that are needed to make all the properties of vector algebra make sense, and they’re going to solve real intuitive problems a lot better than the GP does.) ↩