Hacker News new | ask | show | jobs
by rhelz 848 days ago
// Requiring up to 2^n terms for what was an n-dimensional space//

Sometimes, the economy is illusory, e.g. normal vectors transform differently than position vectors do. Sure, you can, if you want, use the same data structure to represent both of them, but you'll still have to have some way of keeping track what kind of vector it is holding, as well as sprinkle special cases throughout your code to handle each one differently.

GA, takes the bull by the horns by having vectors use one basis (i,j,k) for vectors, and another basis (j*k, k*i, i*j) for the other.

// never understood the utility of combining them into one equation //

This is a good example of how having a higher-dimensional space actually gives you better economy of storage than a lower dimensional space does: one equation is better than two, or four :-)

And electric fields are different from magnetic fields in quite the same way as vectors are different from bivectors. You can either "special case" them by using a different equation for Electric and Magnetic fields, or you can treat them uniformly with one.

2 comments

> And electric fields are different from magnetic fields in quite the same way as vectors are different from bivectors. You can either "special case" them by using a different equation for Electric and Magnetic fields, or you can treat them uniformly with one.

What irks me is that the magnetic part of the Maxwell equations is 0 for geometrical reasons, whereas the electrical part is 0 for physical reasons (roughly speaking the curvature of the potential is proportional to the current). Putting them in one equations makes it seem as if you could have something other than 0 on the magnetic side, which is impossible without fundamentally changing the topology of spacetime.

Treating them uniformly is a mistake in my opinion.

You think this way because you do not pair in the right way the Maxwell equations. The divergence equations are not paired. The same for the curl equations. Pairing the equations in the wrong way can actually lead to errors in the relativistic case.

Two equations are intrinsic properties of the electromagnetic field because it is derived from a potential, i.e. the null condition for the divergence of the magnetic field and Faraday's law of induction.

The other two equations are what you call "physical", i.e. they show the relationship between the electromagnetic field and its sources, i.e. electric current and electric charge.

Alternatively, if you use potentials to describe the electromagnetic field, which is better in my opinion, you just have the relations between potentials and their sources (together with the conservation law for the electric charge). With potentials, you can get rid of the "geometrical" relations (though the choice of potentials is not unique).

A somewhat simpler way of keeping track in the case of normals is to use row vectors for, well, covectors, which is what normals are anyways.

What GA brings is the ability to express linear combinations of scalars, vectors, bi-vectors ... Whether this is actually useful/desirable in practice is another story though.

The #1 thing that GA brings is the ability to divide by vectors, which makes working many things out on paper dramatically simpler.
Yeah, but the original commenter's objection was it seems weird to, e.g. use a 6-dimensional space to represent 3-dimensional quantities.

Doing it by using vectors and covectors still requires you to keep track of 6 degrees of freedom, i.e, 6 dimensions. Eventually everybody has to pay the piper :-)

Yes, you need to keep track of which is which (most likely using the type system) but you don't risk adding vectors to covectors without converting explicitly. Each of vectors/covectors is 3 dimensions, but there is no 6-dimensional space in which vectors/covectors are allowed to mix.

IIUC this is unlike GA/exterior algebra where scalars/vectors/bi-vectors/... can be added together, just like one can add a scalar to a pure imaginary quaternion in the quaternion algebra.

> Yes, you need to keep track of which is which (most likely using the type system) but you don't risk adding vectors to covectors without converting explicitly.

Do many graphics libraries actually do this? In my experience adding points and normals directly is actually quite common.