Gael Guennebaud
ce5669dbf9
* enable vectorization of sin, cos, etc. by default with an option to
...
disable them (-DEIGEN_FAST_MATH=0)
* add a specialization of MatrixBase::operator*(RealScalar) for fast
"matrix of complex" times scalar products (even more useful for
autodiff scalar types)
2009-03-26 12:50:24 +00:00
Gael Guennebaud
62de40f8bb
oops forgot to include a file in previous commit (I had other local
...
changes I did not want to commit yet...)
2009-03-26 07:10:59 +00:00
Gael Guennebaud
a22ef7e1f3
for some reason passing the argument by const reference killed the perf
...
(in the packet version of sin, cos, exp, lop), so let's pass them by
value. Also, improve the perf of ei_plog by reducing dependencies.
2009-03-25 18:33:36 +00:00
Gael Guennebaud
17860e578c
add SSE2 versions of sin, cos, log, exp using code from Julien
...
Pommier. They are for float only, and they return exactly the same
result as the standard versions in about 90% of the cases. Otherwise the max error
is below 1e-7. However, for very large values (>1e3) the accuracy of sin and cos
slighlty decrease. They are about 3 or 4 times faster than 4 calls to their respective
standard versions. So, is it ok to enable them by default in their respective functors ?
2009-03-25 12:26:13 +00:00
Gael Guennebaud
70c0174bf9
* allows fixed size matrix with size==0 (via a specialization of
...
MatrixStorage returning a null pointer). For instance this is very
useful to make Tridiagonalization compile for 1x1 matrices
* fix LLT and eigensolver for 1x1 matrix
2009-03-23 14:44:44 +00:00
Konstantinos A. Margaritis
fe00e864a1
ei_pnegate implemented for AltiVec
2009-03-20 17:26:50 +00:00
Gael Guennebaud
fbf415c547
add vectorization of unary operator-() (the AltiVec version is probably
...
broken)
2009-03-20 10:03:24 +00:00
Gael Guennebaud
3d385ae968
angle-axis doc: make it more clear the axis must be normalized
2009-03-18 19:38:55 +00:00
Gael Guennebaud
dcf49e5a28
more MSVC fixes: restrict keywords (sorry for all these commits)
2009-03-17 13:32:26 +00:00
Gael Guennebaud
718af05517
more MSVC fixes (asm comments...)
2009-03-17 13:25:26 +00:00
Gael Guennebaud
497d77b08c
fix compilation MSVC
2009-03-17 13:18:53 +00:00
Gael Guennebaud
c6264d9b7e
add affine * homogeneous vector for backward compatibility (e.g.,
...
kgllib)
2009-03-11 14:32:03 +00:00
Gael Guennebaud
02e97ac0ae
minor changes in AlignedBox needed for BVH module
2009-03-11 14:21:55 +00:00
Gael Guennebaud
b8f46090ff
add optimized cross3 function (code from Rohit Garg)
2009-03-11 14:20:36 +00:00
Gael Guennebaud
f697ea6d30
fix a few compilation errors and warnings (ICC)
2009-03-11 08:45:53 +00:00
Gael Guennebaud
14691d6836
fix compilation with old, and future gcc
2009-03-10 11:55:50 +00:00
Gael Guennebaud
3e4307d8a8
compilation fix in MapBase
2009-03-10 09:06:38 +00:00
Gael Guennebaud
8aa5aa269a
add "slice vectorization" of redux (eg. m.block().minCoeff() is now
...
vectorized)
2009-03-09 23:16:39 +00:00
Gael Guennebaud
c087373968
because of a missing specialization, operator/(scalar) was not vectorized
2009-03-09 23:14:53 +00:00
Gael Guennebaud
db6c3d0197
fix MapBase's ForceAligned concept which was not working at all....
2009-03-09 19:23:31 +00:00
Gael Guennebaud
3f80c68be5
add the vectorization of abs
2009-03-09 18:40:09 +00:00
Gael Guennebaud
314aff875e
fix warning in Tridiag
2009-03-09 10:41:37 +00:00
Gael Guennebaud
44f218988c
add a small note in Transform doc.
2009-03-08 11:38:45 +00:00
Gael Guennebaud
3ac42fed94
big rework of the Transform class:
...
* add Projective and AffineCompact modes as an optional third template
argument
* extend Transform::operator* to support more use cases
2009-03-08 11:35:30 +00:00
Gael Guennebaud
7718a8ed83
slight optimization of SSE base integer mul (thanks to Rohit Garg)
2009-03-08 10:14:07 +00:00
Jure Repinc
f9790a649c
Install the newly added eigen2/Eigen/src/Geometry/arch/Geometry_SSE.h
2009-03-08 06:21:21 +00:00
Gael Guennebaud
e4f64ce098
add optimized quaternion * quaternion product specialization for
...
float/SSE using code from Rohit Garg
2009-03-07 13:52:44 +00:00
Gael Guennebaud
6f95270ede
significantly reduce the default stack allocation limit which was much
...
too high
2009-03-06 16:52:43 +00:00
Gael Guennebaud
2c78ca62a6
patch from Stjepan Rajko (MSVC fix in RotationBase)
2009-03-06 11:45:39 +00:00
Andrew Coles
093e3cd5b5
Commented out duplicate definition of TransformTraits - was causing
...
compile-time errors.
2009-03-05 22:35:06 +00:00
Gael Guennebaud
fa9f7708d4
add efficient matrix product specializations for Homogeneous
2009-03-05 16:40:56 +00:00
Gael Guennebaud
31332fca0b
remove bad #include of SelfadjointRank2Update.h
2009-03-05 10:29:20 +00:00
Gael Guennebaud
0be89a4796
big addons:
...
* add Homogeneous expression for vector and set of vectors (aka matrix)
=> the next step will be to overload operator*
* add homogeneous normalization (again for vector and set of vectors)
* add a Replicate expression (with uni-directional replication
facilities)
=> for all of them I'll add examples once we agree on the API
* fix gcc-4.4 warnings
* rename reverse.cpp array_reverse.cpp
2009-03-05 10:25:22 +00:00
Gael Guennebaud
6a26506341
add ReturnByValue pseudo expression for in-place evaluation with a
...
return-by-value API style (will soon use it for the transform products)
2009-03-04 13:00:00 +00:00
Gael Guennebaud
3288e9e168
add much faster versions of unaligned stores (and slightly faster
...
unaligned loads)
2009-03-03 14:01:30 +00:00
Gael Guennebaud
c4601314be
cleaned Tridiagonalization impl, with improved performance
2009-03-02 15:07:39 +00:00
Gael Guennebaud
ed134a0ce5
performance improvement: rewrite of the matrix-matrix product following
...
Goto's paper => x1.4 speedup with more consistent perf results
2009-03-02 13:15:15 +00:00
Gael Guennebaud
8ed186b9ab
improve WIP new matrix product
2009-02-27 17:18:52 +00:00
Gael Guennebaud
170128770a
compilation fix + test orho methods for complex
2009-02-26 10:09:23 +00:00
Gael Guennebaud
91af389a9a
fix unitOrthogonal() for size > 3
2009-02-25 09:23:09 +00:00
Laurent Montel
2d6d14a3d3
Add COMPONENT Devel
2009-02-23 07:50:56 +00:00
Laurent Montel
8e7c4df0db
Fix install header
2009-02-22 10:28:31 +00:00
Gael Guennebaud
de014efdaf
* split CacheFriendlyProduct into multiple smaller files
...
* add an efficient selfadjoint * vector implementation (= blas symv)
perf are inbetween MKL and GOTO
=> the interface is still missing (have to be rethougth)
2009-02-21 20:20:38 +00:00
Gael Guennebaud
3d86dcf473
oops, got confused by the preprocessor directives around
...
posix_memalign...
2009-02-21 16:35:57 +00:00
Gael Guennebaud
7c4f9ecf0c
fix posix_memalign return value warning
2009-02-21 16:23:18 +00:00
Daniel Gomez Ferro
032880074e
Added new product implementation.
...
Just works for square, power of 2 matrices of floats.
2009-02-20 22:23:25 +00:00
Gael Guennebaud
e2ee7a6a58
increase version number for step
2009-02-19 15:46:10 +00:00
Gael Guennebaud
752d95c20e
eventually c++ does not provide any optimized pow(int,int) function,
...
so here you go :) (should also fix Timothy's troubles)
2009-02-18 18:24:31 +00:00
Gael Guennebaud
e6f1104b57
* fix Quaternion::setFromTwoVectors (thanks to "benv" from the forum)
...
* extend PartialRedux::cross() to any matrix sizes with automatic
vectorization when possible
* unit tests: add "geo_" prefix to all unit tests related to the
geometry module and start splitting the big "geometry.cpp" tests to
multiple smaller ones (also include new tests)
2009-02-17 09:53:05 +00:00
Gael Guennebaud
67b4fab4e3
fix assertion issue in slice vectorization
2009-02-16 10:17:21 +00:00