Hacker News new | ask | show | jobs
by gugagore 2026 days ago
Despite the costs of using a “too big” symmetry group (I’d say overparameterization), I bet it’s hard to beat the performance of 4*4 matrix multiplications, since the computation is so uniform, vectorizable, and perfectly sized for e.g. SIMD. Even if there are fewer math operations with another representation.
1 comments

It depends. For composing multiple transforms, composing versors aka quaternions/dual quaternions is cheaper than a full 4x4 multiply. For a single application, a 4x4 will be cheaper.
Without benchmarks, I do not trust you. :) have you tried? On what platform? And did you take a look at the assembly code?
Take a look at Klein : https://www.jeremyong.com/klein/ (arm implementation is coming)

Its geometric product between motors is the equivalent of the 4x4 matrix product.

Although the basic computational complexity tells the story :

4x4 matrix product : 16 floats storage, 64 multiplies, 48 additions.

3D PGA versor product : 8 floats storage, 48 multiplies, 40 additions.

Quaternions are used in animation for blending and composing transforms for a reason. You don't have to trust me, but yes... tried for maybe ten years and counting from doing graphics and animation work.
From the documentation of the Eigen library [0]:

> If the quaternion is used to rotate several points (>1) then it is much more efficient to first convert it to a 3x3 Matrix. Comparison of the operation cost for n transformations:

> - Quaternion2: 30n

> - Via a Matrix3: 24 + 15n

So really it depends on what you're doing (admittedly here it is 3x3 not 4x4)

[0] https://eigen.tuxfamily.org/dox/classEigen_1_1QuaternionBase...

Right, as I said, composition is faster, not application.