Hauke Heibel
832045d363
Warning 4512 (assignment operators could not be generated) is now simply disabled.
...
All unimplemented assignment operators have been removed.
2009-12-14 10:32:43 +01:00
Hauke Heibel
d088ee35f6
Added to possibility to compile unit tests at maximum warning level.
...
Silenced (amongst others) many conversion related warnings.
2009-12-12 11:39:07 +01:00
Gael Guennebaud
8e05f9cfa1
add a DenseBase class for MAtrixBase and ArrayBase and more code factorisation
2009-12-04 23:17:14 +01:00
Benoit Jacob
3e73f6036c
* HouseholderSequence:
...
* be aware of number of actual householder vectors
(optimization in non-full-rank case, no behavior change)
* fix applyThisOnTheRight, it was using k instead of actual_k
* QR: rename matrixQ() to householderQ() where applicable
2009-12-02 11:11:09 -05:00
Hauke Heibel
84551d067e
merge
2009-12-02 11:08:44 +01:00
Benoit Jacob
68117c267c
ColPivQR: now the unit tests even succeeds:
...
* with random matrices multiplied by 1e+8 (i.e. fixed wrong absolute fuzzy compare)
* with 10,000 repetitions (i.e. the fuzzy compare is really clever)
and when it occasionnally fails, less than once in 10,000 repeats, it is only on the exact rank computation.
2009-12-01 13:51:35 -05:00
Benoit Jacob
95d88e1327
Big reworking of ColPivQR and its unit test, which now passes even with thousands of repetitions and correctly tests matrices of all sizes. Several surprises along the way: for example, a major cause of trouble was the optimized "table of column squared norms" where the accumulation of imprecision was a serious issue; another surprise is that tests like "x!=0" before dividing by x really benefit from being replaced by fuzzy tests, as i hit real cases where i got wrong results in 1/epsilon.
2009-12-01 13:26:29 -05:00
Hauke Heibel
b08d5b2d2c
Even more NestByValue cleanup...
2009-12-01 13:16:51 +01:00
Hauke Heibel
3091be5134
Removed NestByValue dependency from Cholesky, Eigenvalues, LU and QR.
2009-12-01 10:22:54 +01:00
Benoit Jacob
126a8e6a69
fix remaining bug in ColPivHouseholderQR, so now all tests pass again
2009-11-18 17:40:45 -05:00
Benoit Jacob
8860203e6a
fix stuff after the PermutationMatrix changes.
...
I still have JacobiSVD errors when cols>rows
2009-11-18 12:41:24 -05:00
Benoit Jacob
9f21e2aab7
port the QR module to PermutationMatrix
2009-11-17 08:14:54 -05:00
Benoit Jacob
a440385b41
*adapt Householder to the convention that we now favor refs over ptrs for output. Keep "workspace" as pointer because it is an array (which is now more obvious).
...
*rename makeHouseholderSequence to householderSequence, because that's what it returns.
2009-11-10 21:22:20 -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
e4e58e8337
simplifications in the ei_solve_impl system, factor out some boilerplate code
2009-11-08 16:51:41 -05:00
Benoit Jacob
ba7bfe110c
port the qr module to ei_solve_xxx.
2009-11-08 10:21:26 -05: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
Hauke Heibel
f4661e696e
Resize is only defined in Matrix and not in MatrixBase.
...
I am not sure whether the better fix is to move the resize functions to MatrixBase.
2009-10-14 11:07:11 +02: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
Hauke Heibel
2fbf5ce7df
Fixed issue #57 .
2009-09-25 10:12:09 +02:00
Gael Guennebaud
24950bdfcb
make ColPivotingQR use HouseholderSequence
2009-09-16 15:56:20 +02:00
Gael Guennebaud
49dd5d7847
* add a HouseholderSequence class (not good enough yet for Triadiagonalization and HessenbergDecomposition)
...
* rework a bit AnyMatrixBase, and mobe it to a separate file
2009-09-16 14:35:42 +02:00
Benoit Jacob
a4fd0aa25b
* fix bug in col-pivoting qr, forgot to swap the colNorms when swapping cols
...
* add Gael a copyright line
2009-09-16 14:19:59 -04:00
Gael Guennebaud
a54b99fa72
move eigen values related stuff of the QR module to a new EigenSolver module.
...
- perhaps we can find a better name ?
- note that the QR module still includes the EigenSolver module for compatibility
2009-09-03 11:39:44 +02:00
Benoit Jacob
7aa6fd3625
big reorganization in JacobiSVD:
...
- R-SVD preconditioning now done with meta selectors to avoid compiling useless code
- SVD options now honored, with options to hint "at least as many rows as cols" etc...
- fix compilation in bad cases (rectangular and fixed-size)
- the check for termination is now done on the fly, no more goto (should have done that earlier!)
2009-09-03 02:53:51 -04:00
Gael Guennebaud
7586f7f706
fix #51 (bad use of std::complex::real)
2009-09-02 15:18:11 +02:00
Gael Guennebaud
b83654b5d0
* rename JacobiRotation => PlanarRotation
...
* move the makeJacobi and make_givens_* to PlanarRotation
* rename applyJacobi* => apply*
2009-09-02 15:04:10 +02:00
Benoit Jacob
cc375e2f79
merge
2009-09-02 06:37:41 -04:00
Benoit Jacob
e6b77bcc6b
JacobiSVD: implement general R-SVD using full-pivoting QR, so we now support any rectangular matrix size by reducing to the smaller of the two dimensions (which is also an optimization)
2009-09-02 06:36:55 -04:00
Hauke Heibel
05ddd32849
added missing JacobiRotation's ...
2009-09-01 23:12:40 +02:00
Gael Guennebaud
4d91229bdc
[mq]: eigensolver
2009-09-01 16:20:56 +02:00
Hauke Heibel
ab6eb6a1a4
Adaptions from .lazy() towards .noalias().
...
Added missing casts.
2009-08-31 17:29:37 +02:00
Benoit Jacob
191d5275a7
modernize HouseholderQR too, uniformize all that stuff, update tests
2009-08-24 13:46:14 -04:00
Benoit Jacob
0eb142f559
bring the modern comfort also to ColPivotingHouseholderQR
...
+ some fixes in FullPivotingHouseholderQR
2009-08-24 11:11:41 -04:00
Benoit Jacob
b8106e97b4
add logAbsDeterminant()
...
move log and exp functors from Array to Core
update documentation
2009-08-24 09:46:17 -04:00
Benoit Jacob
c9a307f330
give FullPivotingHouseholderQR all the modern comfort
2009-08-24 00:23:35 -04:00
Benoit Jacob
97bc1af1f1
add ColPivotingHouseholderQR
...
rename RRQR to fullPivotingHouseholderQR
2009-08-23 18:04:33 -04:00
Benoit Jacob
7bedf5e9cb
add initial, rough, full-pivoting RRQR decomposition
...
lots of room for improvement!
and add Gael a (c) line in Householder.h
2009-08-22 01:13:21 -04:00
Gael Guennebaud
d56be9c128
* make HessenbergDecomposition uses the Householder module
...
* bugfix in ei_blas_traits for .conjugate().conjugate()
2009-08-17 17:41:01 +02:00
Gael Guennebaud
ff0f005d4c
change the make householder algorithm so that the remaining coefficient
...
is real, and make Tridiagonalization use it
2009-08-17 17:04:32 +02:00
Gael Guennebaud
737bed19c1
make HouseholderQR uses the Householder module
2009-08-16 19:22:15 +02:00
Benoit Jacob
ee982709d3
in all decs, make the compute() methods return *this
...
(implements feature request #18 )
2009-08-15 23:12:39 -04:00
Gael Guennebaud
6373c3cd00
oops bis, I forgot that SelfAdjointEigneSolver directly called the selector...
2009-08-14 13:49:29 +02:00
Gael Guennebaud
1b257a7620
add an optimized "apply in place a rotation in the plane",
...
and make Jacobi and SelfAdjointEigenSolver use it
=> ~ x1.75 speedup for JacobiSVD and x2 for SelfAdjointEigenSolver
2009-08-13 11:42:02 +02:00
Gael Guennebaud
3ac01b1400
compilation fix in EigenSolver,
...
bugfix in PartialLU
2009-08-06 16:41:54 +02:00
Gael Guennebaud
1d4fea48b5
fix a couple of compilations issues
2009-08-06 14:10:02 +02:00
Gael Guennebaud
fa55cf5ce7
fix compilation and segfault issues
2009-08-06 11:19:36 +02:00
Benoit Jacob
523cdedf58
make the dot product linear in the second variable, not the first variable
2009-08-03 17:20:45 +02:00