Live data from Hacker News

The case against geometric algebra (2024)

alexkritchevsky.com

51–60 of 148 posts

Re: The case against geometric algebra (2024)

#52
META: Pulling this out of its original context because I think more readers would find the code amusing. I am breaking the rules, but hopefully for a good/pardonable reason.

> 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.

Re: The case against geometric algebra (2024)

#53
post #52

META: Pulling this out of its original context because I think more readers would find the code amusing. I am breaking the rules, but hopefully for a good/pardonable reason. > 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…

This is like how one often wants to distinguish the points of an affine space from the vectors representing displacements in that space (there is no distinguished origin for the physical world, but there is a distinguished concept of zero displacement). One can add a vector to a point to get a point, or a vector to a vector to get a vector, but cannot add a point to a point to get another point. Yet, it is meaningful to treat a linear combination of points in an affine space as yielding another point in the same space when the weights of the linear combination sum to 1.

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").

Re: The case against geometric algebra (2024)

#54
post #2

With my limited knowledge, I read through it stumbling along, and from what I gather, this GA is not Clifford Algebra, and the argument is that the GA movement itself is misguided, and that combining operators and geometric objects without distinguishing between them is problematic. 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 h…

As someone who studies physics and then went into a long IT career (but kept reading papers casually), my view is that this whole GA saga is very reminiscent of how after decades of experience, I still can't convince juniors of the benefits of what I now consider obvious best practices. No amount of demonstrations of the blindingly obvious improvement of some better technique seems to work on someone who "finally got…

As a programmer I’m wondering how you get a decent graphics library out of it. If it’s conceptually better, shouldn’t it make writing code to do calculations easier?

Re: The case against geometric algebra (2024)

#55
post #53
post #52

META: Pulling this out of its original context because I think more readers would find the code amusing. I am breaking the rules, but hopefully for a good/pardonable reason. > 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…

This is like how one often wants to distinguish the points of an affine space from the vectors representing displacements in that space (there is no distinguished origin for the physical world, but there is a distinguished concept of zero displacement). One can add a vector to a point to get a point, or a vector to a vector to get a vector, but cannot add a point to a point to get another point. Yet, it is meaningful…

I agree with you on three dimensional vector products. It's too special, too cute and doesn't generalize to all dimensions, and as you said, you have to keep track of the two types of vectors.

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.

Re: The case against geometric algebra (2024)

#56
from a theoretical physicist point of view, i find GA don't add much to the standard tooling ppl use, i.e. Lie algebras, Clifford and (sometimes) differential forms. while it's always nice to have a formalism that "hides indices", in most cases (for (super-)gravitation at least) just writing tensor/clifford/lie indices is just much faster and less error prone.

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

Re: The case against geometric algebra (2024)

#57
post #10

From a mathematician's point of view, yes, you should write the Maxwell field equations, at least to see it once, that way because you're showing a very low-level symmetry that even the differential forms approach doesn't get all the way to. Differential forms is a standard approach for general relativity, e.g. MTW. I guess the people pushing this are a little pushy, but this reminds me of the whole pie fight over th…

The space time approach with E as t wedge x and B as x wedge y is purely linear algebra, not differential forms. 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 muc…

One should teach the next generation the best way possible, and not turn them into conformists.

"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.

Re: The case against geometric algebra (2024)

#58
> That part is fine. But why, then, does multiplying zzˉ give a “magnitude” that works in a reasonable way?

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.

Re: The case against geometric algebra (2024)

#59
post #2

With my limited knowledge, I read through it stumbling along, and from what I gather, this GA is not Clifford Algebra, and the argument is that the GA movement itself is misguided, and that combining operators and geometric objects without distinguishing between them is problematic. 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 h…

As someone who studies physics and then went into a long IT career (but kept reading papers casually), my view is that this whole GA saga is very reminiscent of how after decades of experience, I still can't convince juniors of the benefits of what I now consider obvious best practices. No amount of demonstrations of the blindingly obvious improvement of some better technique seems to work on someone who "finally got…

(This is a nitpick and does not argue against your main claim that GA is a better abstraction to represent and solve physics problems with, that I have no way to evaluate because I don't speak GA, though now I'm curious and will maybe spend an afternoon trying to figure out)

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.

Re: The case against geometric algebra (2024)

#60
post #44

I found this article pretty confusing. 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 the…

When I wrote " GA is considered a kooky, crackpotty sideshow..." I didn't mean I consider it to be..., I mean, it is the case that it is considered to be.... I guess I'm surprised if you haven't run into this? I'm not sure, but it's am impression I've gotten online for a long time. And if you read many of the older Hestenes-era writings you can't help but get it yourself.

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.

Post reply on HN