g-truc/glm — pull request #75 by mackron (2013-04-24 05:41:34+00:00)
Title: SIMD Quaternions

Here is the SIMD quaternions I've been working on. I'm sure some things can probably be improved later.

Only the basics are present at the moment. As I need stuff I'll just add them in and post pull requests.

The biggest improvements I've observed has been with transforming an fvec4SIMD (about 2x in my contrived tests) and quat -> mat conversions (about 1.5x). Also, fastMix() and fastSlerp() are much, much faster than the normal mix()/slerp(). Check the commit message for more information about that one.

I wasn't able to get everything magically running faster. The SSE2 implementation of quat/quat multiply has a barely noticeable improvement. The SSE4 implementation is a little better, though (about a 1.25x speed up).

I've added an SSE implementation of fastSin(). Not sure on the best place to put that, so you might want to find a better place for it. It's used in fastMix() and fastSlerp().