875 Commits

Author SHA1 Message Date
Christophe Riccio
0e31538c26 Deprecated some GTX functions 2013-10-11 01:10:15 +02:00
Christophe Riccio
02c3ce21e8 More CUDA coverage, deprecated GTX_1010102 extension 2013-10-11 00:21:27 +02:00
David Reid
dea65c8c23 Remove #include of missing file. 2013-10-07 15:34:04 +10:00
Christophe Riccio
b51fe09cb9 Fixed build 2013-09-30 02:05:13 +02:00
Christophe Riccio
f911117407 Replace glm::detail::type traits by std::numerical_limits traits 2013-09-30 01:57:05 +02:00
Christophe Riccio
b6f5b4121d Fixed merge 2013-09-19 21:46:51 +02:00
Christophe Riccio
843cc7bd61 Fixed eulerAngleY rotation orientation 2013-09-19 21:33:29 +02:00
Christophe Riccio
d37d3539ed - Fixed ldexp implementation
- Increased assert coverage
- Increased static_assert coverage
- Replaced GLM traits by STL traits when possible
- Allowed including individual core feature
2013-09-16 03:03:49 +02:00
Christophe Riccio
6838815f9f Factorized fastInversesqrt code 2013-09-15 14:39:59 +02:00
Christophe Riccio
ba1ccbaba2 Fixed merge 2013-09-15 03:57:12 +02:00
Christophe Riccio
cc02b86fb1 Fixed merge 2013-09-15 03:30:20 +02:00
Christophe Riccio
804078f690 Fixed test against GLM_COMPILER_GCC31 and GLM_COMPILER_VC2005 that doesn't exist in GLM 0.9.5 #111 2013-09-08 15:32:30 +02:00
Christophe Riccio
c9f623e717 Fixed glm::orientation with GLM_FORCE_RADIANS defined #112 2013-09-08 15:23:13 +02:00
Christophe Riccio
0ff1026dbb Removed value_type and size_type 2013-09-08 02:30:16 +02:00
Christophe Riccio
b9266c07b0 Using C++ casts 2013-09-08 00:22:17 +02:00
Christophe Riccio
16b9c79acc Added implicit conversion of types with different precision qualifier 2013-09-02 00:16:41 +02:00
Christophe Riccio
25a5c21a24 Initial build with half types removed 2013-08-14 00:55:47 +02:00
Christophe Riccio
ef15d06104 Updated doxygen references 2013-05-12 15:51:11 +02:00
Christophe Riccio
0a54eb99b1 Fixed compatibility type, using precision qualifier 2013-05-12 15:50:49 +02:00
Christophe Riccio
1b3d5cd378 Fixed space characters 2013-05-10 21:37:20 +02:00
Christophe Riccio
a319cff426 Removed scalar functions 2013-05-10 12:36:10 +02:00
Christophe Riccio
691f04e14f Fixed post in/decrement operators 2013-05-08 21:52:21 +02:00
Christophe Riccio
b2e55904b8 Fixed dual quat built on GCC 2013-05-07 01:02:52 +02:00
Christophe Riccio
13f27821b9 Completed GTX_multiple for negative values, issue #79 2013-05-06 18:00:06 +02:00
Christophe Riccio
e3da5f952c Fixed merge 2013-05-06 15:34:37 +02:00
Robert Ancell
f0d4080fe3 Fix glm::higherMultiple and glm::lowerMultiple and assoicated test cases. Does not fix the specialized versions of these functions 2013-05-03 16:52:06 -07:00
Dave Reid
e0cfd7d672 Attempt a small optimization in operator*(fquatSIMD, fvec4SIMD). No big improvement. 2013-04-24 15:00:03 +10:00
Dave Reid
c08ea7656b Reorganize operator* to makes things a bit clearer. 2013-04-24 14:46:20 +10:00
Dave Reid
1eb88e4bc1 Cleanup. 2013-04-24 14:06:28 +10:00
Dave Reid
c1006718b3 Add fastMix() and fastSlerp() implementations.
These have stricter pre-conditions than standard mix() and slerp()
  - 1) Input quaternions must be unit length.
  - 2) The interpolation factor (a) must be in the range [0, 1]

None of these restrictions should be too bad. The reason for these is that it uses fastAcos()
and fastSin(), both of which have a limited allowable range.

In my contrived tests, I observed about a 10x improvement over the standard versions. This is
mostly because of the faster acos/sin operations. The fastSin(__m128) implementation also helps
here because it can do four fastSin() operations simultaneously using SSE (mix() and slerp()
each need three).
2013-04-24 13:55:38 +10:00
Dave Reid
d07496460a Add the ability to convert a SIMD quat to a standard mat4. 2013-04-24 09:54:28 +10:00
Dave Reid
942bf08fe3 Add the ability to convert standard mat4s and mat3s to SIMD quats. 2013-04-24 09:39:22 +10:00
Dave Reid
13837e1079 Remove the SSE3 implementation in operator*(fquatSIMD, fquatSIMD).
The SSE2 version is now running faster than the SSE3 version.
2013-04-24 08:51:17 +10:00
Dave Reid
197b6c96d8 Improve efficiency of operator*(fquatSIMD, fquatSIMD) in SSE4 mode.
Now only requires 3 shuffle, 4 mul and 4 dpps.
2013-04-24 07:58:41 +10:00
Dave Reid
d23da666c5 Merge branch '0.9.5' of https://github.com/g-truc/glm into quat_simd 2013-04-24 07:33:10 +10:00
Christophe Riccio
8c7828e6f7 Fixed merge 2013-04-23 16:40:07 +02:00
Christophe Riccio
3c7989486e Fixed literals in dual quaternion implementation 2013-04-23 16:39:15 +02:00
Dave Reid
7563a8bc4d Add initial implementation of SIMD optimized quaternions.
A few things here can probably be improved by people a lot smarter then
me, but for the most part things are generally faster.

A few notes:
 - A fquatSIMD can be converted to a fmat4x4SIMD using mat4SIMD_cast().
 - A tquat<float> can be converted to a fquatSIMD using quatSIMD_cast().
 - Some functions are virtually the same as their scalar counterparts
   because I've just not been able to get them faster.
 - Only the basic functions are implemented. Future plans include fast,
   approximate normalize, length and mix/slerp functions.
2013-04-23 15:36:12 +10:00
Dave Reid
6a7ccdb530 Fix another compilation error. 2013-04-23 14:18:05 +10:00
Dave Reid
b6d994f638 Compilation fixes due to missing P template parameters. 2013-04-23 10:01:50 +10:00
Dave Reid
5519b86003 Fix fvec4SIMD and fmat4x4SIMD compilation errors. 2013-04-23 09:19:57 +10:00
Christophe Riccio
f1967b5fb3 Removed GTX_ocl_type, issue #64 2013-04-19 21:53:31 +02:00
Christophe Riccio
85ae145cf5 Fixed merge 2013-04-19 21:38:57 +02:00
Christophe Riccio
e72f18997c Fixed GTX_multiple for negative values, issue #51 2013-04-19 21:30:52 +02:00
Christophe Riccio
d4043ea49a Added all precision types for GTC_type_precision 2013-04-16 21:58:26 +02:00
Christophe Riccio
296e3d7007 Fixed half precision implementation 2013-04-15 11:04:24 +02:00
Christophe Riccio
c14e2d7fbc Added precision template parameter 2013-04-10 13:46:27 +02:00
Christophe Riccio
39cf417691 Added initial implementation for forward declarations: int and float scalar types, #56 2013-03-31 01:16:13 +01:00
Christophe Riccio
6a96cd819a Fixed dual quaternion build on Clang, fixed space characters #49 2013-03-31 00:48:28 +01:00
Christophe Riccio
78d3e5ca66 Updated readme 2013-03-27 02:33:59 +01:00