Benoit Jacob
92749eed11
* merge
...
* remove a ctor in QuaternionBase as it gives a strange error with GCC 4.4.2.
2009-11-09 09:08:03 -05:00
Benoit Jacob
9a0900e33e
last round of changes, mainly to return derived types instead of base types, and fix various compilation issues
2009-11-09 07:51:31 -05:00
Benoit Jacob
ba7bfe110c
port the qr module to ei_solve_xxx.
2009-11-08 10:21:26 -05:00
Jitse Niesen
daa4574a43
Add regression test for issue #66 (ComplexSchur of zero matrix).
2009-11-05 03:46:18 +00:00
Benoit Jacob
0182695204
move cholesky to ei_xxx_return_value
2009-11-03 11:34:45 -05:00
Benoit Jacob
da363d997f
introduce ei_xxx_return_value and ei_xxx_impl for xxx in solve,kernel,impl
...
put them in a new internal 'misc' directory
2009-11-03 02:18:10 -05:00
Benoit Jacob
f975b9bd3e
SVD::solve() : port to new API and improvements
2009-10-30 08:51:33 -04:00
Benoit Jacob
6b48e932e9
*port the Cholesky module to the new solve() API
...
*improve documentation
2009-10-29 21:11:05 -04:00
Benoit Jacob
e8dd552257
sync with mainline
2009-10-28 19:06:45 -04:00
Benoit Jacob
2840ac7e94
big huge changes, so i dont remember everything.
...
* renaming, e.g. LU ---> FullPivLU
* split tests framework: more robust, e.g. dont generate empty tests if a number is skipped
* make all remaining tests use that splitting, as needed.
* Fix 4x4 inversion (see stable branch)
* Transform::inverse() and geo_transform test : adapt to new inverse() API, it was also trying to instantiate inverse() for 3x4 matrices.
* CMakeLists: more robust regexp to parse the version number
* misc fixes in unit tests
2009-10-28 18:19:29 -04:00
Benoit Jacob
44cdbaba4d
* make inverse() do a ReturnByValue
...
* add computeInverseWithCheck
* doc improvements
* update test
2009-10-26 14:16:50 -04:00
Benoit Jacob
ec02388a5d
big rewrite in Inverse.h
...
in particular, the API is essentially finalized and the 4x4 case is fixed to be numerically stable.
2009-10-26 11:18:23 -04:00
Gael Guennebaud
a382963b04
* extend Map to allow the user to specify whether the mapped data
...
is aligned or not. This is done using the Aligned constant:
Map<MatrixType,Aligned>::Map(data);
* rename ForceAligned to EnforceAlignedAccess, and update its doc,
and emphasize this is mainly an internal stuff.
2009-10-23 14:26:14 +02:00
Benoit Jacob
83a7b7c44c
support gcc 3.3
2009-10-22 15:56:10 -04:00
Benoit Jacob
13f31b8daf
* make PartialLU avoid to generate inf/nan when given a singular matrix
...
(result undefined, but at least it won't take forever on intel 387)
* add lots of comments, especially to LU.h
* fix stuff I had broken in Inverse.h
* split inverse test
2009-10-20 00:36:07 -04:00
Benoit Jacob
6c1b91678b
kill ei_add_test_multi. Now the macro ei_add_test does all that automatically, by parsing the source file. No risk anymore to specify the wrong number of tests! Also, introduce CALL_SUBTESTX for X=1..10 that allows to port existing code much quicker. And port already the product* and eigensolver* files.
2009-10-19 14:40:35 -04:00
Benoit Jacob
580672ea43
Add new default option EIGEN_SPLIT_LARGE_TESTS and cmake macro ei_add_test_multi.
...
When enabled, large tests are split into smaller executables.
This needs minimal changes in the unit tests.
Updated the LU test to use it.
2009-10-19 13:29:00 -04:00
Benoit Jacob
9a700c2974
* LU unit test: finally test fixed sizes
...
* ReturnByValue: after all don't eval to temporary for generic MatrixBase impl
2009-10-19 10:56:37 -04:00
Benoit Jacob
47eeb40380
remove the m_originalMatrix member. Instead, image() now takes the original matrix as parameter. It was the only method to use it anyway. Introduce m_isInitialized.
2009-10-18 15:21:19 -04:00
Benoit Jacob
0255f28279
oops, didn't want to commit that
2009-10-18 01:35:07 -04:00
Benoit Jacob
8332c232db
big huge changes in LU!
...
* continue the decomposition until a pivot is exactly zero;
don't try to compute the rank in the decomposition itself.
* Instead, methods such as rank() use a new internal parameter
called 'threshold' to determine which pivots are to be
considered nonzero.
* The threshold is by default determined by defaultThreshold()
but the user can override that by calling useThreshold(value).
* In solve/kernel/image, don't assume that the diagonal of U
is sorted in decreasing order, because that's only approximately
true. Additional work was needed to extract the right pivots.
2009-10-18 00:47:40 -04:00
Benoit Jacob
3c4a025a54
merge
2009-10-15 16:09:43 -04:00
Hauke Heibel
0927ba1fd3
More warning fixes.
2009-10-14 19:55:23 +02:00
Gael Guennebaud
1443094072
compilation fix: make the generic template ctor explicit
2009-10-13 09:23:09 +02:00
Gael Guennebaud
2049f742e4
trivial compilation fix
2009-10-13 08:53:01 +02:00
Benoit Jacob
c4ab6a2032
also test that the matrix Q is unitary
2009-10-12 22:33:51 -04:00
Hauke Heibel
e5bf72679c
Fixed nmake parameter.
...
Disabled debug_* targets for MSVC_IDE (they already exist).
Removed the make usage message for MSVC_IDE.
2009-10-09 14:09:25 +02:00
Gael Guennebaud
af31345df3
really fix stable norm compilation for older gcc
2009-10-07 14:25:12 +02:00
Gael Guennebaud
4cf7366027
fix compilation in stable norm, move a platform check to the unit tests
2009-10-06 10:24:41 +02:00
Gael Guennebaud
904f35d194
discard vectorization in matrix-vector product when data is not even
...
aligned on the scalar type size (e.g., for double on 32 bits system without -malign-double)
2009-10-05 17:22:16 +02:00
Benoit Jacob
bb1cc0d092
after all we're not aligning to 8byte boundary
...
keep most of the changes though as they make the code more extensible
2009-10-05 10:55:42 -04:00
Benoit Jacob
d41577819b
we were already aligning to 16 byte boundary fixed-size objects that are multiple of 16 bytes;
...
now we also align to 8byte boundary fixed-size objects that are multiple of 8 bytes.
That's only useful for now for double, not e.g. for Vector2f, but that didn't seem to hurt. Am I missing something? Do you prefer that we don't align Vector2f at all?
Also, improvements in test_unalignedassert.
2009-10-05 10:11:11 -04:00
Benoit Jacob
a9a9ba8453
remove unneeded stuff
2009-10-05 07:58:53 -04:00
Benoit Jacob
fa9fc1397b
next attempt ... introduce EIGEN_CMAKE_RUN_FROM_CTEST, in that case don't EXCLUDE_FROM_ALL
2009-10-05 07:42:31 -04:00
Benoit Jacob
b78b2ede5f
finally, the right fix: set CTEST_BUILD_TARGET.
...
So this is the come-back of btest target, and the default target is empty again.
2009-10-04 20:27:44 -04:00
Benoit Jacob
a1d9b76dd5
add debug targets like debug_qr to build a specific test with debug info
...
remove the btest target, instead just do "make" since anyway we have to let "make" build the tests
2009-10-03 16:50:50 -04:00
Hauke Heibel
7d2ca0e05e
Added cmake project definitions.
2009-10-02 18:45:24 +02:00
Gael Guennebaud
9a3cae4655
better fix for (v * v') * v, we still have to find a way to reorder it
2009-10-01 13:27:03 +02:00
Benoit Jacob
4b04a9bcfa
*add test to prevent future regression
2009-09-29 21:00:13 -04:00
Benoit Jacob
eeabd18afc
Fix compilation of HouseholderQR and ColPivotingHouseholderQR for non-square fixed-size matrices.
...
For Colpiv that was just changing MatrixQType to MatrixType in the instantiation of HouseholderSequence.
For HouseholderQR I also re-ported the solve method from Colpiv as there were multiple issues.
2009-09-28 10:49:55 -04:00
Benoit Jacob
67bf7c90c5
* update test to expose bug #57
...
* update createRandomMatrixOfRank to support fixed size
2009-09-28 09:40:18 -04:00
Benoit Jacob
92480ffd26
* Introduce make targets btest (build tests), blas (build blas lib), demos (build demos).
...
* remove EIGEN_BUILD_TESTS and siblings
* add summary at the end of cmake run, hopefully not too verbose
* fix build of quaternion demo
* kill remnants of old binary library option
2009-09-27 17:48:53 -04:00
Benoit Jacob
e82ab8a5dd
move also inverse() to ReturnByValue, by doing a solve on NestByValue<Identity>.
...
also: adding resize() to MatrixBase was really needed ;)
2009-09-26 11:40:29 -04:00
Benoit Jacob
176c26feb5
allow to do xpr = solve(b) etc... just by adding a dummy MatrixBase::resize()
2009-09-22 01:41:09 -04:00
Benoit Jacob
4f9e270343
* make LU::kernel() and LU::image() also use ReturnByValue
...
* make them return zero vector in the degenerate case, instead of asserting
(let's stick to the principle that we only assert on memory errors)
2009-09-22 00:16:51 -04:00
Benoit Jacob
ab5cc8284a
convert LU::solve() to the new API
2009-09-22 20:58:29 -04:00
Benoit Jacob
c1c780a94f
* ReturnByValue:
...
-- simpplify by removing the 2nd template parameter
-- rename Functor to Derived, as now it's a usual CRTP
* Homogeneous:
-- in products, honor the Max sizes etc.
2009-09-22 12:20:45 -04:00
Benoit Jacob
1df54e3ac2
fix bug #42 , add missing Transform::Identity()
2009-09-19 19:59:49 -04:00
Gael Guennebaud
3b5a9acba8
fix stable_norm unit test
2009-09-18 11:41:38 +02:00
Benoit Jacob
760636a237
fix bug #52 : Transform::inverse() should return a Transform
2009-09-18 18:45:45 -04:00