Benoit Jacob
c64ca6870e
this explicit keyword can't hurt
2009-10-31 11:49:20 -04:00
Benoit Jacob
6a90f6c5f0
* default MatrixBase ctor: make it protected, make it a static assert, only do the check when debugging eigen to avoid slowing down compilation for everybody (this check is paranoiac, it's very seldom useful)
...
* add private MatrixBase ctors to catch cases when the user tries to construct MatrixBase objects directly
2009-10-31 11:48:33 -04:00
Gael Guennebaud
22dd13fdb9
backporting fix of #65
2009-10-29 14:26:38 +01:00
Gael Guennebaud
5455d6fbe8
backporting fix of #65
2009-10-29 14:26:00 +01:00
Benoit Jacob
de693cf34a
remove extra ;
2009-10-28 10:04:13 -04:00
Benoit Jacob
21c4e0802d
fix potential warning
2009-10-28 09:45:09 -04:00
Benoit Jacob
241b9d34a7
Hey, I was insomniac too ;)
...
This restores much of the performance benefit of Euler's method, without compromising accuracy (tested on 1e+7 matrices). Namely, my benchmark now runs in 1.5 s instead of 2.2 s. The same in the default branch runs in 1.08 s instead of 1.9 s, so the default branch benefits even more!
2009-10-28 03:50:29 -04:00
Benoit Jacob
9e15a6da2e
Fix 4x4 matrix inversion. Applying Euler's trick is more tricky than what "high performance matrix inversion" websites would have you believe. Our 4x4 matrix inversion wasn't numerically stable, because in applying the Euler trick we didn't take the 2x2 block of biggest determinant. As a result, with float, we got relative errors above 1% every 1000 random matrices, and we got completely wrong results every 10000 matrices.
...
Note that this decreases the performance, but we're still significantly faster than the brutal cofactors approach.
2009-10-27 07:35:25 -04:00
Benoit Jacob
38bc82a6f7
bump
2009-10-24 16:35:46 -04:00
Benoit Jacob
e1c96f3fe0
bump
2009-10-23 18:37:05 -04:00
Benoit Jacob
46f0fe3b4b
SVD:
...
* implement default ctor, users were relying on the compiler generater one and reported issues on the forum
* turns out that we crash on 1x1 matrices but work on Nx1. No interest in fixing that, so just guard by assert and unit test.
2009-10-23 18:05:55 -04:00
Benoit Jacob
21d081c6da
bump
2009-10-22 16:14:03 -04:00
Benoit Jacob
be8ae0d45f
* CMakeLists: only pass -Wextra if it's supported (it's not on gcc 3.3)
...
* MapBase: put static first (fix gcc 3.3 warning)
* StdVector: add missing newline at end
2009-10-22 15:20:02 -04:00
Hauke Heibel
a4a3e511d0
Added missing resize case for m_outerSize==0.
2009-10-15 23:30:15 +02:00
Hauke Heibel
ffee27bf72
Fixed uninitialized variables in unit tests.
...
Fixed /W4 warning C4512 (LU was left out on purpose).
2009-10-14 08:33:36 +02:00
Benoit Jacob
5e24fbbead
add assert for M>=N
2009-10-13 14:17:25 -04:00
Benoit Jacob
09364c8d05
fix compilation with gcc 3.3
2009-10-12 12:29:07 -04:00
Gael Guennebaud
3b8938ee1a
backport d97d307fcfc9c9421562705db7bf734865dfd53b
2009-10-06 10:36:59 +02:00
Gael Guennebaud
e43d630d80
fix #10 : the reallocateSparse function was half coded
...
(transplanted from 55de162cf6fa3e666ef6b07223c18ae9cd1f1a30
)
2009-06-08 14:05:23 +02:00
Benoit Jacob
8084dbc86a
copy the Memory.h file from the devel branch and remove some added trailing spaces.
...
This is now very harmless to do as the big change (EIGEN_ALIGN preprocessor stuff and the body of ei_aligned_malloc) was already introduced in 2.0.6.
Should address Björn's issue, and also improve FreeBSD platform detection.
2009-09-25 09:09:14 -04:00
Benoit Jacob
922e11e184
bump
2009-09-23 12:08:16 -04:00
Benoit Jacob
8c2ace33c9
backport Rohit's vectorized quaternion product
2009-09-22 13:39:30 -04:00
Benoit Jacob
b66516e746
fix bug #42 : add missing Transform::Identity()
2009-09-19 20:00:36 -04:00
Benoit Jacob
ecf64d2dc3
Allow to override EIGEN_RESTRICT, to satisfy a smart ass blogger who claims
...
that eigen2 owes all its performance to nonstandard restrict keyword.
well, this can also improve portability in case some compiler doesn't have __restrict.
2009-09-19 19:46:40 -04:00
Benoit Jacob
6af2c2c67a
backported the following to 2.0:
...
* EIGEN_ALIGN and EIGEN_DONT_ALIGN and the corresponding logic in Macros.h
(instead of using EIGEN_ARCH_WANTS_ALIGNMENT)
* The body of ei_aligned_malloc and ei_aligned_free
The reason for this backporting is that a user complained that with eigen 2.0 he got a warning at Memory.h:81 that the return value of posix_memalign was not used, and that function was declared with an attribute warn_unused_result.
Looking at this, it seemed that the body of this function was already overly complicated, and fixing this warning made it even worse, while the devel branch had a much simpler body and didn't suffer from that problem.
Then it was necessary to update ei_aligned_free too, and to backport EIGEN_ALIGN.
Inch' Allah....
2009-09-21 05:39:55 -04:00
Benoit Jacob
8097487b9d
backport bugfix in visitor (didn't work on rowvectors, fixed by splitting the vector case away from the matrix case)
2009-09-16 14:28:49 -04:00
Benoit Jacob
aaf1826384
backport: the first fix was the good one
2009-09-03 01:28:12 -04:00
Benoit Jacob
3590911de2
backport the fix to bug #50 : compilation errors with swap
2009-09-02 17:04:34 -04:00
Benoit Jacob
e0cbf79e5a
bump to 2.0.5
2009-08-22 17:19:08 -04:00
Benoit Jacob
3af177058e
fix nasty bug: when calling the cache friendly product, one used the product xpr flags instead of the destination flags, resulting in a transposed result when the storage orders didn't match.
2009-08-21 16:03:14 -04:00
Benoit Jacob
7a44945a16
fix casting warning with MSVC
2009-08-18 07:41:17 -04:00
Gael Guennebaud
a9c60954ed
add EIGEN_TRANSFORM_PLUGIN
2009-08-17 09:16:04 +02:00
Gael Guennebaud
4a50ee8c21
fix issue #36 (missing return *this in Rotation2D
...
(transplanted from a4f664251863907604d43be70a41cc4c1dddd42a
)
2009-08-11 15:11:47 +02:00
Gael Guennebaud
c9f7a19053
make LU::solve() not to crash when rank=0
...
(transplanted from fe813911f2fc3b5679c769a3624349a3e053ac63
)
2009-08-09 00:06:53 +02:00
Gael Guennebaud
47973c4963
set EIGEN_STACK_ALLOCATION_LIMIT as in the devel branch
2009-08-08 10:45:57 +02:00
Benoit Jacob
d4f9515ca0
bump to 2.0.4
2009-08-01 00:58:09 +02:00
Benoit Jacob
990615e884
backport 126284d08bcf9abb3a6665bf31305a188371e461
...
.
2009-07-31 13:30:12 +02:00
Gael Guennebaud
841ec959e5
s/std::atan2/ei_atan2
2009-07-31 10:08:23 +02:00
Manuel Yguel
2dce3311f7
add missing ei_atan2 without painfull warnings
2009-07-31 09:21:31 +02:00
Anthony Truchet
8eab0bccbf
Bugfix in the Qt's QTransform and QMatrix support in Geometry/Transform.h
...
Function 'Transform<Scalar,Dim>::toQMatrix(void) const' :
- 'other' was a hasty copy/paste to be replaced my m_matrix
- 'coeffRef' was incorect for const Transform
Function 'Transform<Scalar,Dim>::toQTransform(void) const' :
- return type was incorrect 'QMatrix' to be replaced by 'QTransform'
- same bigfixes as in the previous point
2009-07-30 10:09:41 +02:00
Gael Guennebaud
f5a167b3e7
apply patch from Hauke Heibel cleaning overloaded operator new/detete
2009-05-07 20:33:48 +00:00
Gael Guennebaud
7ae2bc6109
compilation fix
...
(transplanted from c10b919edb9a362388a98f620f8cef7292ff496a
)
2009-07-20 10:56:03 +02:00
Gael Guennebaud
654fea39dc
bugfix in operator*= (matrix product)
...
(transplanted from b3ad796d4087ca768452d1bbe0555a85cd7e1dde
)
2009-07-20 10:44:07 +02:00
Gael Guennebaud
fa44566305
bugfix for a = a * b; when a has to be resized
...
(transplanted from a551107ccea8fe027d2672cb82f6b70e741bb996
)
2009-07-20 10:35:47 +02:00
Gael Guennebaud
8302ce6cdc
remove the special version of ei_pow(int,int) for gcc >= 4.3 that was stupid
...
because gcc convert it to a pow(double,double)
2009-07-16 09:10:34 +02:00
Gael Guennebaud
c6eb9ef60e
backporting bugfix in Quaternion::setFromTwoVectors()
2009-07-06 09:05:48 +02:00
Benoit Jacob
55bf82c923
backport improvements to transpose documentation
2009-06-21 17:41:55 +02:00
Benoit Jacob
c3bab0edb7
fix #12 , but the fix is not optimal, householder transformations need to be rethought in the complex case, see:
...
http://download.tuxfamily.org/eigen/complex-householder.pdf
2009-06-19 18:50:22 +02:00
Benoit Jacob
a1a26f45d3
fix #14 : make llt::solve() and also ldlt::solve() work with uninitialized result
2009-06-19 17:01:32 +02:00
Benoit Jacob
f5ae3a4b5a
result of our experiments with LU tuning: implement very simple formula, that
...
turns out to be similar to Higham's formula already in use in LDLt
2009-05-07 20:35:26 +00:00