From the possible options I listed above, c , a substantially easier API. On the other hand, if it's not exposed to the user, it doesn't particularly matter what structures and math that higher-level language uses behind the scenes to do what it does; most aspects of compiler theory are irrelevant for users of high-level languages. If the people maintaining the black boxes I rely upon have an easier job keeping it functioning and correct, I would say that is very relevant to me. Don't know if the article has been updated since your post, but Interpolation and Gimbal Lock are both called out as working with Rotors in the 5th paragraph.

Anything you can do with a Quaternion, such as Interpolation and avoiding Gimbal lock, you can do on a Rotor. But the understanding grows a lot. Neat, thanks!

You can take the logarithm of a rotor in order to do interpolation. This requires seven additions, four multiplications, one division, and one square root. I would replace the last two operations by another multiplication and one reciprocal square root. There is extensive SIMD support for very fast approximations, and getting better in newer chips.

### Blog Archive

Yes of course. I just mean, conceptually that is what is required.

- Read Doing Physics with Quaternions | Leanpub.
- Quaternion.
- Q: Quaternions and Octonions: what? | Ask a Mathematician / Ask a Physicist!
- Life and Travels of Mungo Park.

You can replace a bunch of the multiplications and additions by FMA instructions as well. By the way Raph, I think you might be interested in this draft paper I have been working on well, not working on for the past two months, but anyway Very cool! Some of the later sections are broken. The fact that this is interactive is great, maybe I'll get around to putting my stuff in this form. The broken parts are intentionally commented out, either now redundant or not finished yet.

There are still a bunch of diagrams to make but I got a bit stalled on the project after going on a trip and taking care of a toddler full time. There are still a couple of research problems to figure out. In particular how to best set the tangent and curvature at the knots.

But I think this thing should compare favorably to Spiro curves for some use cases: in particular it is pretty local, a bit more robust to pathological inputs, and a lot simpler to compute and explain. Edit: sorry to bystanders for a completely off-topic conversation. And as was largely the point of my thesis these things are tradeoffs, a spline that's perfect in all these ways is not possible.

I'd be more than happy to continue the discussion somewhere else. BenFrantzDale 10 months ago. The same is true with lower performance, I suspect with the 3x3 matrix representation. Matrices for rotation have the problem that you are using a 9-dimensional representation for a 3-dimensional quantity, so it is easy to make matrices that are not rotations indeed the vast majority of the possible space of matrices consists of transformations that are not anywhere close to a pure rotation.

Composing matrices leads to rounding errors. It is more complicated to invert matrices. As you say the matrix logarithm is more complicated. It's beautiful to see that the logarithm of a rotation matrix is a skew-symmetric matrix.

### Table of Contents

The skew-symmetric matrices correspond to angular velocity, which behave like vectors. You can add and interpolate as you expect. Rotation matrices multiply. Skew-symmetric matrices add. The logarithmic and exponential map moves between the two spaces. Just letting you know that I think it's valuable to bring up matrices into this discussion, even if they do have problems in practice with rounding errors and efficiency.

I love knowing about Lie algebras and groups, but I think I disagree about the "because". The matrix exponential and logarithm just are. You can define and compute them without invoking anything about Lie groups. I didn't know the term "infinitesimal generator". And certainly since rotation matrices and quaternions are both representations of rotation, they should have a log that is isomorphic.

Wilder still is the log of a 4x4 transformation matrix has the same tangent-vector properties, giving a coordinate-system-invariant rotation and translation. Skew symmetric matrices are isomorphic to bivectors :. Texts on GA seem to start out saying "we're going to replace vector analysis with something intuitive and natural and eloquent and Its properties are found via formula-wrangling, and the results you get from it seem to just magically work, rather than being intuitive.

Bivectors in general are conceptually great; it's just the geometric product which I think is conceptually flimsy. And it's surprisingly hard to compute or make sense of the geometric product in general which is why the writer of the first book cited on the OP wrote "I do not think it possible to give a quick definition of the general geometric product. You can express that form without the geometric product, but I haven't found a way that strikes me as very elegant. I don't mean to condemn GA - I think what it's doing is massively important.

The mathematical language for vector analysis deficient compared to what we could be using, and a lot of things are more intuitive and natural in better language. I just suspect that the, uh, ideal form of this stuff will look slightly different than GA, and might not include the geometric product at all, but will definitely include the wedge product absolutely everywhere. I've spent a lot of free time trying to figure this out but I don't really have a compelling result yet. I've been meaning to try blogging about it, though, since it's basically my favorite thing to study.

The geometric product is super useful and important! As well as much nicer to work with when doing algebraic manipulation. In particular, it is what lets you take products, inverses and quotients assuming the denominator is non-null of arbitrary vectors. Several times in the last few years I have done several pages of complicated calculations in terms of coordinates or matrices, where the intermediate steps were basically an indecipherable mess of symbols, and then sat down, really thought about what I was doing for a while, and re-written it using GA language and ended up simplifying my work down to a few lines of simple algebraic manipulations, where I could typically then give a nice geometrical interpretation to each step.

If you want to compute the geometric product using concrete numbers in terms of a basis, then it is straightforward to write the code or work through by hand. What is hard is not the geometric product. What is hard is geometry! There is a lot of depth and subtlety, and it takes years to really learn your way around. That is not the fault of the language though; there is a certain amount of irreducible complexity involved. It would be a few years of hard work, because figuring out the right order for the curriculum, the right types of problems to build intuition, which tools to include or leave out of an introductory book, how to best show the work for a whole collection of worked examples ideally with some interactive computer diagrams , and so on.

It is easy to compute on vectors. It is possible, but complicated and unintuitive I have written code to do it in the past , to compute it on multivectors. I'm arguing in favor of most of GA's language. I just keep finding that the wedge and inner product parts are fantastic, and the geometric product part isn't.

And I think the reason people keep finding GA appealing is because they didn't have the wedge product before, so having that in their conceptual toolkit fixes a lot, while having the geometric product doesn't fix much on top of it. Anyway I've studied GA a lot and I still have basically no idea what 'AB' means when both are arbitrary-grade multivectors, and as far as I can tell most sources don't even try to explain it.

What is the sine of the square root of the logarithm of the tangent of some polynomial applied to a scalar? Who knows?! You can certainly make up nonsensical expressions using matrices, differential forms, etc. Your multivector might be an electromagnetic field. It might be a rotor. It might be a representation of a sphere in the conformal model, To be clear, I don't think the wedge product is sufficient either; I just think it's the real reason most people end up finding GA to be appealing.

I think there's work to do to clean the whole space up. Particularly, the wedge product is a 'join' or 'union' operator amusingly, it has the wrong symbol. The 'meet' operator is not widely known but should probably be equally prominent. I haven't figured out for myself where the other holes are yet. As someone unable to fathom the enthusiasm for geometric algebra Acting on two vectors these give a scalar and a 2-form. Why is adding these different objects a good idea?

Don't they have different units like, a pure number vs meters squared? It's analogous to the real and imaginary parts of a complex number. Does it makes sense to add a real number and a purely imaginary number? Aren't they different kinds of things? Yes, and yes! It would really helpful if the article had some worked examples of this arithmetic, with actual numbers, the kind with digits and decimal points in. Then, things like the structure of a geometric product would be absolutely clear. Let me have a go. That's because the input vectors are actually quite similar - pointing z-by-y-z, with a little bit of x.

Hence, their projection onto each other is large, whereas the parallelogram they form is quite small long and thin. The dot product measures the former, the wedge product the latter. Have i got that right? But I still don't see why this is useful, apart from being able to extract from it both the wedge product and the inner product which you started with. Having an algebra that corresponds to geometric operations is good because you get a high-level framework for how to manipulate quantities instead of having to do things case by case.

Thanks for that, it's a really good explanation! From the sounds of it, I think you'd be much more happy working with differential forms! Differential forms use only the wedge product and a duality mapping known as the hodge dual It's the GA equivalent of multiplying by the psuedoscalar. Geometric algebra will be here waiting for when you get tired of resorting to the hodge dual to take an inner product ;. I learned about differential forms in my physics degree, and then later discovered that the exterior algebra made a lot more sense if you introduced it separately.

Basically it seems like the exterior algebra is useful in many settings, and differential-forms are just one rather confusing application of it. My current opinion is that exterior algebra should, someday, be taught first around the time of linear algebra , and then later extended to differential forms when derivatives and manifolds get involved. I agree that the Hodge Dual is easily the worst part of exterior algebra.

Either can essentially be constructed from the other iirc. The Hodge star isn't so bad: It's just the generalization of the idea that you can describe a plane by its normal vector. On it's own it's not bad, but it's troublesome because given a complicated expression with wedges and stars, it's not at all intuitive how you can simplify it without working in coordinates.

Is there a silver bullet, though? The complexity of having to mess around with epsilon tensors is still there no matter which abstraction you use to sweep it under the rug The way this text does the geometric product is trying to be intuitive by immediately giving a "physical" interpretation as the sum of the inner and outer products. However the physical interpretations breaks down when trying to multiply three of these together.

From this natural constraint one can then deduce the sum-based interpretation that the OP gives. Yeah, I spent a long time trying to find a very clean path to the geometric product and failed so far, but I feel I am getting closer, ahah. Personally that alone is enough to justify learning more about geometric algebra. That is true of the wedge product also, though. That's my point. The geometric product gives very little power over the wedge product, and when it does, it's massively non-intuitive how it works.

## Quaternion

The wedge product of a bivector with itself is 0. To get your bivector to square to —1, you need to be using the geometric product. DoctorOetker 10 months ago. One reason the geometric product is attractive over usual vector notation is for the same reason the usual vector notation is attractive over coordinate notations think Maxwell Equations in terms of Ex, Ey, Ez etc [0] : instead of a verbose and highly repetitive system of equations with easy operators you can reason and calculate with a single equation, but where the operators have higher complexity, but also correspondingly more properties to exploit assuming you take the time to get familiarized with them.

## Maths - Matrix Calculus - Martin Baker

An example and another reason is that contary to the inner product and exterior product, the geometric product is associative, which is clearly useful! The student who is being advised to learn integrals might similarily protest that "everything people love about integrals, could much more easily be understood by just the desirable parts: limits, of summations, of products. So yes to prove the theory of integrals you will need to understand limits, sums, products,..

Imagine being a student in an alternate history, where integrals were never defined, of course they can still derive all the results minus the results stating things about integrals themselves which we arrive at through our current application of integrals by means of limits of sums of products. But then every derivation that in our world would sanely use integrals would be a long verbose derivation, which they might call "limited totalizations" without reifying this concept.

So they are basically rederiving the same result over and over. That's when people normally add syntactic sugar to avoid repitition. Now imagine being this student following such a course, and further imagine that before following this course you had always been somewhat of an autodidact in high school etc, so half the time you are reading your course notes and half the time you are reading books out of curriculum. One day you stumble on some "integer math" book, and then while reading you realize this is not about integers, so you reread the title and it actually reads "math of integrals".

After reading on you realize that all the verbose and highly redundant notation in "limited totalization" class can be avoided. Thats what I experienced: I was reading random books about "algebraic geometry" and one of them was totally whacky and off and not algebraic geometry, then I notice the title is actually "geometric algebra". I was in my 3rd year physics. So the people who are paid to teach me are giving me shitty calculitis, most of them are simply unaware of this field, some of them are but are daunted or simply lack the time to go back through all the knowledge they have learnt and rephrase them into this language, and even if they could, it would require the whole curriculum to change in "sync" well, with a delay of one year per generation It really is inertia.

The number of people who have come to understand and use geometric algebra are simply fewer than the number who have come to understand and use normal linear algebra, hence there are more books on normal linear algebra. Just like the number of people who have learnt to read and write is larger than the number of people who understand linear algebra, and hence there are more fiction books, magazines However I believe the situation is slowly changing in the right direction, computer science didn't have compilers either for a while, sooner or later people get bored of spaghetti code His original submission used Hamilton quaternions, which had also been recognized by Clifford, who had based his work off of Grassman's "geometric algebra".

## Subscribe to RSS

Clifford called the algebra "geometric algebra", but readers of Clifford started calling the subject of Clifford's work "Clifford algebra". Or something like that, I don't pedantically check history claims By the way, the determinant of a matrix is just the outermorphism of the associated linear transformation applied to a unit pseudoscalar.

The outermorphism of a linear transformation is a useful and convenient but sometimes tricky concept. It gives you not only determinants, but also the application of your linear transformation to arbitrary multivectors. IshKebab 10 months ago. No the determinant is the isomorphism of the third latent moment of the orthonorm. Also, it's really intuitive. At least I found it really intuitive when it was first explained to me. In my opinion, the problem is not the geometric product, but having three products inner, outer and geometric.

I have explained GA using a single product, and I think it is much clearer. Of course, the inner and outer products are also very useful, but I introduce them only at the last stage, as some extra notation, not to help understand new concepts. Please do blog about this. I'd be really interested to hear your thoughts! I use quaternions at work AVs and used them in physics and astronomy in school.

The math he's talking about is darned close to the math done behind the scences with quaternions, it's just easier to grasp because it has visual references. Thing is, you only need to understand the math once to be able to use any of this stuff, and there's nothing wrong with taking it for granted after that. Either method is good enough. Basicallt, quaternions are hard to understand but easy to use.

I take easy to understand and easy to use over that any day. But hey, I also was a teacher once so I'm probably biased here. In same manner, we can write other multiplications and divisions;. The square of a unit vector can be defined from above equations; In same manner,. Also, ijk can be defined as -1 using above multiplication table and square of unit vector.

Here, the basic quaternion mathematics is described. These algebraic definitions and properties are specially required for rotation in 3D space, which describe in the next section. You may skip this section and move on the next section. And, come back later if you need to review a specific definition or property.

here Note that quaternion multiplication is not commutative, however, multiplication is associative and distributive across addition. Unlike quaternion multiplication, scalar multiplication is commutative. Quaternion subtraction can be derived from scalar multiplication and quaternion addition. Quaternion congugate is defined by negating the vector part of the quaternion.

Note that the multiplication of a quaternion and its conjugate is commutative. The norm of a quaternion is defined by;. The norm of quaternion is multiplicative meaning that the norm of the multiplication of multiple quaternions equals to the multiplication of the norms of quaternions. The inverse of a quaternion is defined to be; The quaternion inverse makes it possible to divide two quaternions. Note that the inverse of a unit quaternion equals to the conjugate of the unit quaternion. In 2D, the multiplication of two complex numbers implies 2D rotation. See details in Euler's equation.

However, multiplying a quaternion p by a unit quaternion q does not conserve the length norm of the vector part of the quaternion p. For example;. Thus, we need a special multiplication for 3D rotations that is length-conserving transformation. For this reason, we multiply the unit quaternion q at the front of p and multiplying q -1 at the back of p , in order to cancel out the length changes. This special double multiplication is called "conjugation by q ". For the above example;. The proof takes 3 steps. Since we found that the scalar parts of p and p' are same, the norm of p' is;.

Could we use it in this situation? Imagine that two quaternions represent the angular position of two gears, can we differentiate one with respect to another to get the ratio of the gears? Here we go back to the simple case of differentiation with respect to scalars, when we start to look at applications it becomes less simple. I think this involves these factors:.

Imagine a solid object which has simultanous rotation about the x,y and z axes, the angular velocity about these axes is w x ,w y and w z. As with differentiation we can integrate a whole quaternion by individually integrating each element. If you are not familiar with quaternion algebra you may like to look at the following pages first:.

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