Hacker News new | past | comments | ask | show | jobs | submit login
Introduction to Clifford Algebra (2006) (av8n.com)
189 points by beefman on Feb 14, 2020 | hide | past | favorite | 71 comments

Check my clifford algebra implementation


The Grassmann.jl package provides tools for doing computations based on multi-linear algebra, differential geometry, and spin groups using the extended tensor algebra known as Leibniz-Grassmann-Clifford-Hestenes geometric algebra. Combinatorial products included are ∧, ∨, ⋅, *, ⋆, ', ~, d, ∂ (which are the exterior, regressive, inner, and geometric products; along with the Hodge star, adjoint, reversal, differential and boundary operators). The kernelized operations are built up from composite sparse tensor products and Hodge duality, with high dimensional support for up to 62 indices using staged caching and precompilation. Code generation enables concise yet highly extensible definitions. The DirectSum.jl multivector parametric type polymorphism is based on tangent bundle vector spaces and conformal projective geometry to make the dispatch highly extensible for many applications. Additionally, the universal interoperability between different sub-algebras is enabled by AbstractTensors.jl, on which the type system is built.

Wow! I keep finding these really great Julia packages that implement grad level math / science concepts. It's great! Unfortunately not sure what I'd do with Clifford Algebra myself.

Oh wow, this is nothing short of awesome. Your docs¹ are great at first glance, too. Incredible work! Thanks so much, this might prove invaluable for my (personal) research. I guess I have to learn Julia too now, eh. :)

[1]: https://grassmann.crucialflow.com/dev/

Does anyone have a good summary of how this relates to the differential geometry world with its n-forms and n-vectors? For example, I'm used to thinking of the wedge product as operating over n-forms and requiring a metric (or volume element) transformation to work over vectors. Similarly, I don't see any discussion of behaviors under coordinate transformations.

> Does anyone have a good summary of how this relates to the differential geometry world with its n-forms and n-vectors?

This might be helpful as a start:


> I don't see any discussion of behaviors under coordinate transformations.

That's because, as the article emphasizes, you don't need coordinates (or basis vectors, which is the term used in the article) to work with geometric objects. You can use them, but you don't need to.

Similarly, vectors, bivectors, tensors, etc. can all be defined without making use of their behavior under coordinate transformations. Textbooks that emphasize coordinates might make it appear otherwise, but that's not the case.

So, like many things, this is both true and false. The object isn't the coordinates, but you do need two kinds of things to make physics work. (Maybe you don't for geometry, though, not sure.)

If you have a displacement vector, and a potential gradient, they can't be the same "kind" of thing (i.e. both vectors), because their dot-product should be preserved. If the slope gets half as long, it's twice as steep.

> you do need two kinds of things to make physics work

I'm not sure what two kinds of things you are referring to, but it doesn't seem like they are "geometric objects" and "coordinates". All I'm saying is that you don't need coordinates; they are a convenience, not a necessity. I am not saying you need only one kind of geometric object.

> If you have a displacement vector, and a potential gradient, they can't be the same "kind" of thing

Agreed. You need both vectors and covectors, or more generally "things with upper indexes" and "things with lower indexes". But you don't need coordinates to work with those things. The indexes do not have to represent components. They can represent "slots" (at least that's what Misner, Thorne, and Wheeler call them in their classic GR textbook), in which you can insert vectors (for lower index slots) or covectors (for upper index slots) in order to obtain other geometric objects (and ultimately numbers, which are what you compare with actual measurements).

Yeah, I have a physics / GR background, so MTW is the lens through which I see all of this. That and Schutz's Geometrical Methods of Mathematical Physics.

I agree that we don't need coordinates. Things are things.

But what always got me about the geometric algebra stuff was that they used bivectors for areas, which seems like the wrong thing. If you're integrating a vector field over it, you want a 2-form, not a bivector. I suppose the distinction doesn't matter as long as you're just in Euclidean space, but even then, if you need to drop down to coordinates and do the actual integral, you're still going to want to have changes of variables that work. That leaves me with a kernel of doubt that they're doing the right thing.

When I looked at differential geometry, I'd already seen Hestene's Geometric Algebra (a Clifford Algebra) and I was confused that you couldn't combine n-forms with m-forms in DG. The link is (I believe!) that Clifford Algebras are _graded_ algebras, whereas DG's n-forms are not graded, so in DG you can't combine forms of different degree arbitrarily.

For a better explanation I can recommend the accepted answer here:


The wedge product is inherent in all linear algebra, and is a much simpler and more basic tool than differential forms.

More generally the basics of geometric algebra (“real Clifford algebra”) should be taught to all undergraduate students taking technical courses, and could be profitably pushed back into high school.

My website is based on differential geometric algebra:


The exterior algebra can be defined over any vector space. It just happens that the exterior algebra over the cotangent space is useful for differential geometry.

Thanks, this is basically what I had concluded. The exterior algebra exists on both the tangent and cotangent space, and that I was mostly used to seeing it in the cotangent world, due to its applications there.


"It is traditional to write down four Maxwell equations.

However, by using Clifford algebra, we can express the same meaning in just one very compact, elegant equation."


I've read a number of introductions to Clifford algebras, and I'm always left with the question of what the geometric product is supposed to mean. The wedge product and dot product are easy to understand and have obvious interpretations. But other than being a gadget from which you can extract these other products, I don't see what the geometric product is for, or why it should be the primary object of consideration.

Despite the name the motivation for the geometric product is principally algebraic, ie. it's useful for doing algebraic manipulation. It does not, AFAIK, possess any geometric meaning outside of special cases.

(It's "geometric" in the sense it doesn't depend on a choice of basis I guess.)

Actually, it has a lot to do with geometry, in fact all of geometric algebra can be constructed from the geometric product, which serves as a foundation for not just algebra but also geometry. It encodes various geometric properties.

Yes, it "encodes" them and they can be "constructed" from it, but it does not have a direct geometric interpretation in the way, say, the cross product does.

I agree with this. Most of the benefits of GA are from embracing the wedge product, not the geometric product.

However, I do think there is something there. There is a concept of vector inversion that it makes possible. I have been trying to crystallize this for a long time, though.

I've come to see it more as the inverse of a division operator. Like a quaternion can be defined as the ratio of two vectors q = a/b. then qb = a and qc will rotate c the same amount as needed to take b into a. dual quaternions have a similar motivating derivation.

Clifford algebra is a big part of quantum computation. The Clifford gates (https://en.wikipedia.org/wiki/Clifford_gates) along with Magic state distillation (https://en.wikipedia.org/wiki/Magic_state_distillation) can be used to perform fault-tolerant quantum computation.

Edit: Clifford groups are not the same as Clifford algebras. I was wrong!

That’s the Clifford group, though. Is it actually related to the Clifford algebra, beyond being named after the same guy?

A group is an algebraic structure. Please reference https://en.wikipedia.org/wiki/Clifford_algebra#Clifford_grou...

Yes, I’m aware of that. But an algebra is a very different thing from “an algebraic structure”.

I'm not sure "very different" is a fair characterization. The two are closely related:


An algebraic structure on a set A (called the underlying set, carrier set or domain) is a collection of operations on A of finite arity, together with a finite set of identities, called axioms of the structure that these operations must satisfy. In the context of universal algebra, the set A with this structure is called an algebra,[1] while, in other contexts, it is (somewhat ambiguously) called an algebraic structure, the term algebra being reserved for specific algebraic structures that are vector spaces over a field or modules over a commutative ring.

Examples of algebraic structures include groups, rings, fields, and lattices.

I’m going to agree with knzhou here. Unfortunately, the terminology in mathematics can be misleading.

It is important to note context, and note the part where the article you quoted uses the works “ambiguously”, because the word “algebra” has more than one meaning.

In this case, a group is not an algebra (because we are talking in the context of algebras over a field or ring, not universal algebras).

It is unfortunate that the words are defined this way, but you have to deal with it. A “universal algebra” is a very different concept from an “algebra” (over a ring or field) even though one is an example of the other.

It’s like saying that “book” is a very different concept from “The Great Gatsby”.

Huh? I thought a a group, ring, etc. was precisely an example of a "universal algebra". You seem to contradict yourself, at times agreeing with this statement ("even though one is an example of the other"), at times not ("a group is not an algebra").

Edit: Wolfram Mathworld agrees with me: "Universal algebra studies common properties of all algebraic structures, including groups, rings, fields, lattices, etc." http://mathworld.wolfram.com/UniversalAlgebra.html

The word "algebra" means a number of different things.

It's the name of a whole field in mathematics, which covers objects like groups, rings, fields, and so forth. The sort of things defined, very handwavily, in terms of operations you can do with their elements and the equations they satisfy.

It's the name of a rather specific kind of mathematical structure: roughly, a vector space together with a way of multiplying its elements. (Motivating example: n-by-n matrices.)

It's the name (but usually with some qualifiers to make it clearer what you mean) for a broad range of mathematical structures, of which the one in the previous paragraph is a special case. See e.g. https://en.wikipedia.org/wiki/F-algebra.

Groups are among the things studied in the field of algebra. Groups aren't algebras in the second, specific, sense. They are F-algebras. Most mathematicians, most of the time, would not call groups "algebras" without some qualifier like that F- prefix.

The term "Clifford algebra" also means some different things.

A Clifford algebra is a particular sort of algebra-in-the-second-sense. The field called Clifford algebra is the study of those things. These days people more often say "geometric algebra" rather than "Clifford algebra" for that meaning.

There are mathematical objects called Clifford groups. They are not at all the same thing as Clifford algebras, and you can study Clifford algebras in some depth without paying any attention to the Clifford groups. But they are closely related to the Clifford algebras.

Both Clifford groups and Clifford algebras have applications in quantum physics and, more specifically, in quantum computing. But so far as I know the ways in which you use them in quantum computing has very little to do with the ways in which you use Clifford algebras for doing geometry. It is quite common in mathematics for the same (or equivalent) objects and structures to turn up in multiple places, in unrelated-looking ways. Sometimes this gives rise to deep connections between different fields; sometimes it's just a coincidence. I don't know enough about either quantum computation or geometric algebra to know which of those is going on here, but my intuition leans toward "coincidence".

So. vtomole's original comment was kinda-right and kinda-wrong: yes, there is a connection between Clifford algebras and quantum computation, but it doesn't have much to do with the stuff discussed, e.g., at the far end of the top-level link here. knzhou's question was a good one, pointing out that the two topics are quite separate. vtomole's reply "A group is an algebraic structure ..." didn't make any untrue statements but did miss the point; the fact that a group is an algebraic structure doesn't mean that something called "the X group" necessarily has anything to do with something called "the X algebra" -- though it happens that in this case there is a connection. (vtomole clearly got the point soon after, as seen from their subsequent replies.) knzhou was correct to point out that vtomole's reply missed the point. lisper, again, didn't say anything untrue but I think he missed the point. klodolph's comment about algebras versus universal algebras versus algebra was spot-on and the only reason why I went into more detail above is that it was apparently too brief to be clearly understood. monoideism is right that (e.g.) a group is a universal algebra, wrong to say that klodolph is self-contradictory, and I think missing the point that "algebra" is used with different meanings on different occasions, and in the phrase "Clifford algebra" the specific meaning in question is not "universal algebra". (Even though a Clifford algebra is, also, an example of a universal algebra.)

The fact that a group is a universal algebra doesn't at all licence any sort of blurring of the distinction between Clifford groups and Clifford algebras. The meaning of "algebra" in "Clifford algebra" is not "universal algebra" or "F-algebra", it is "vector space with multiplication", and a group simply isn't one of those (well, some groups are, but e.g. the Clifford groups are not).

> I thought a a group, ring, etc. was precisely an example of a "universal algebra".

No, this is incorrect. A specific group is not an example of an algebraic structure. A specific group is an example of a group, and group structure is an example of an algebraic structure.

> You seem to contradict yourself, at times agreeing with this statement ("even though one is an example of the other"), at times not ("a group is not an algebra").

The terminology is confusing, yes. I guess I didn't do a great job of explaining it. There are two things called "algebra" here and one is an example of the other, while also having examples of itself.

I'll try to put things in more concrete terms.

The real numbers, with addition and multiplication, is an example of an algebra.

"Algebra" is an example of algebraic structure.

"Group" is an example of algebraic structure.

The real numbers, with addition and multiplication, is not an example of a group.

As an analogy--

The apple I ate for lunch yesterday is an example of an apple.

"Apple" is an example of a word.

"Table" is an example of a word.

The apple I ate for lunch yesterday is not an example of a word.

> Edit: Wolfram Mathworld agrees with me: "Universal algebra studies common properties of all algebraic structures, including groups, rings, fields, lattices, etc." http://mathworld.wolfram.com/UniversalAlgebra.html

It does not agree. Note that we could add "algebras" to that list: "Including groups, rings, fields, lattices, algebras, etc."

We are not talking about common properties of algebraic structures, we are talking about a specific algebraic structure, which is called "algebra." Universal algebra is a distinct topic from group theory and a distinct topic from linear algebra. The three fields are different studies.

Yes, I know the terminology is confusing.

OK, I understand this meaning of "algebra" now. I've done some basic self-study of group theory, and of rings, but never really got to an algebra, which I see can be defined as "a ring that has the added structure of a field of scalars and a coherent multiplication". So it's a ring plus some added structure. I was unaware of this, which was adding to the confusion.

It would have been helpful to differentiate that since my question/comment pertained to the term "universal algebra". I'm still not totally sure I understand what universal algebra studies now. Is it something akin to category theory?

> I'm still not totally sure I understand what universal algebra studies now. Is it something akin to category theory?

Sort of, in the sense that it’s more general.

You might study category theory, prove some theorems, and then apply those theorems to a specific category, like Grp (which is the category of groups). In category theory, you will prove the theory using “objects” and “morphisms” which are called “groups” and “homomorphisms” inside Grp.

The same thing applies to universal algebra. You might prove some theorem in universal algebra, about algebraic structures in general, and then apply that proof to some specific algebraic structure, like algebras or groups.

(And from a practical perspective… you might actually write the proof for a specific object first, and then e.g. generalize your group theory proof into a universal algebra proof.)

The common use of “an algebra” in mathematics is a ring with a bit of extra structure.

oops yeah my apologies!

No, it's not related.

You are right. My confusion. Sorry.

Something that inhibits my understanding of a lot of the things beyond section 2.6: according to the article, equation 4b is supposed to also work for scalar ^ vector and scalar ^ scalar, but both those cases seem to contradict defn 20. - according to 4b, scalar ^ scalar will always be 0 (a^b = (ab - ba)/2 = 0, since scalar multiplication commutes), same for scalar ^ vector (a^V = (aV - Va)/2 = 0, since scalar times vector also commutes). Definition 20 on the other hand makes sense (scalar ^ scalar is a regular multiplication, same for scalar ^ vector where it's just scaling). Am I missing something? Why does 4b try to generalize to grades <= 1 in a way that contradicts the other definition (and is counter-intuitive to me)? It all makes sense if 4b only applies to grades = 1.

> The traditional form of the Maxwell equations is not manifestly invariant with respect to special relativity, because it involves a particular observer’s time and space coordinates. However, we believe the underlying physical laws are relativistically invariant.

so are maxwell's laws actually relativistically invariant or not?

There is a form of them which is invariant. You just have to write them correctly. Mathematics isn't as amazing as it sounds, there is a some ambiguity in how symbols are defined. Is your gradient with respect to rectilinear coordinates, or more general? Etc.

Is interest in GA just a local fashion or there are objective reasons in recent revival of interest?

I think it's both. Still, in the manner it's happening, the surging abundance of tutorials on Geometric Algebra somehow feels worrisome. This looks all too similar to the ever growing number of guides on what are monads and how to use them in programming. For most people - kind of makes sense, sort of interesting, sometimes inspiring, practically useless...

If you're using a functional programming languages, monads are actually quite useful. It's not just a theoretical thing.

I can see how you might not want to use them in JavaScript (although many folks do), but it's quite natural to use them in Scala, Haskell, or OCaml.

Why does it worry you?

This is almost like, for instance, why are there so many popular accounts on quantum mechanics (and new ones keep popping up every so often). This makes me think they are all wrong somehow (and to a significant degree they indeed are - which is quite understandable in this case, as QM is a tricky subject); looks like that's what the author of the next one should think, too.

Read a little bit of the introduction. If you are familiar with using complex numbers and vector cross products, you will see the advantage pretty quickly

I also have noticed the sudden and relatively intense interest in this subject: there have been at LEAST 3-4 front-page-ranking links on HN in just the past week (that I've seen at least). An interesting spontaneous zeitgeist in the comp-sci & related communities.

I never got the hang of direction of cross products, still don't know which hand rules to use for eg motors & generators (well I think I knew once but as never at ease).

This looks like what I wished I had learned instead!

If this interests you, you should check out the bivector community https://bivector.net/.

Join the discord https://discord.gg/vGY6pPk.

Check out a demo https://observablehq.com/@enkimute/animated-orbits

Also at the end of February, there is geometric algebra event in Belgium. https://bivector.net/game2020.html All the big names in the field will be there.

Here's the page one up in the directory structure:


It's got a lot of very interesting math and physics information.

Looks really impressive. For those interested in this sort of thing, another huge and varied collection of mathematical/physics articles is located at https://www.mathpages.com/

He's the guy that built the shark for 'Jaws' while an undergraduate. Very very capable, to say the least. Saw him in the halls during my postdoc but never had the occasion to talk with him.

> He's the guy that built the shark for 'Jaws' while an undergraduate.

Fascinating. That thing famously never worked well, and the movie was better for it.

Denker describes the development as a case study in "Experimental Techniques in Condensed Matter Physics at Low Temperatures." His chapter is on electromagnetic shielding and grounding - important for animated sharks and microKelvin measurements. Spielberg is indirectly referenced as the director getting impatient with delays caused by all sorts of hidden electrical problems.

The book is a compendium of tips and techniques from graduate students in Cornell's famous low temperature physics lab. Although published in 1988, it is sufficiently general to be valuable today.


Kinda makes me want to go back to college (I'm an EE) just to re-learn all the stuff I remember being so mind bending with this elegant new framework. Also, just so I can be THAT guy who always argues with the professor. Anyone know of any PhD openings that could use a maverick like me? :) (/s kinda)

going to college won't really help you, I quit college so I can abandon traditional math to completely devote myself to geometric algebra based math, here is my algebra implementation for example:


it isn't taught at universities, it is self taught.. at the university level you are going to be artificially held back more than you would by studying it independently

This cult-like attitude about geometric algebra is something I have never seen in any other (legitimate) field of math. Not sure what to attribute it to, maybe Hestenes being a bit of a crackpot?

Actually, it's not a cult-like attitude but is more of an individualist attitude. In fact, universities are the ones with the cult-like attitude.. so your statement makes no common sense at all. Geometric algebra is just as legitimate as any branch of mathematics.. Hestenes is not a crackpot, he is responsible for continuing the legacy of geometric algebra and passing it onto several other researchers.

I was in this very situation, thinking I want more than "just" EE. Applied for a PhD position in a branch where mostly mathematicians work, could not be happier with the decision.

Do it. Scratch that itch while you still can.

What steps did you take to go from industry back into academia?

Sorry if my comment implied that I had left academia. I simply decided to not go into industry as an electrical engineer but pursue a PhD in a non-related, more math-heavy subject.

Does anyone know any other good resources (esp. books) on this subject? (Clifford/geometric algebra)

In addition to gibsonf1's recommendations (not books), the following books are good. The first 2 are more pure introductions to the math, the third is applying it to physics, the fourth to CS.

Linear and Geometric Algebra, by Alan Macdonald: http://www.faculty.luther.edu/~macdonal/laga/

Vector and Geometric Calculus, by Alan Macdonald: http://www.faculty.luther.edu/~macdonal/vagc/index.html

Application to physics: New Foundations for Classical Mechanics by David Hestenes: https://books.google.com/books/about/New_Foundations_for_Cla...

Geometric Algebra For Computer Science by Dorst, Fontijne, and Mann: http://www.geometricalgebra.net/index.html

I highly recommend https://bivector.net/

In the docs section, the Geometric Algebra Primer by Jaap Suter is excellent. http://www.jaapsuter.com/geometric-algebra.pdf

A survey of geometric algebra and geometric calculus, A Macdonald - Advances in Applied Clifford Algebras, 2017 - Springer

edit: link http://www.astro.umd.edu/~jph/GAandGC.pdf

I'm currently going through Geometric Algebra for Physicists, and find it exceedingly clear:


Clifford Algebras: An Introduction

Author(s): D. J. H. Garling Series: London Mathematical Society Student Texts 78 Publisher: Cambridge University Press, Year: 2011 ISBN: 1107096383

> It is traditional to write down four Maxwell equations. However, by using Clifford algebra, we can express the same meaning in just one very compact, elegant equation:

> ∇ F = J/(c є₀)

Holy. Shit. Is this for real?

Yawn. The differential forms version is almost as compact (2 equations) and far more interpretable (if you understand connections and curvature).

Thanks! I don't know anything about the differential-forms version.

Neat, thank you!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact