Benoit Jacob
26c2afd55a
fix compile errors in Tridiagonalization and in doc examples
2010-12-30 04:52:20 -05:00
Benoit Jacob
dbd9c5fd50
fix HouseholderSequence API, bug #50 :
...
* remove ctors taking more than 2 ints
* rename actualVectors to length
* add length/shift/trans accessors/mutators
2010-12-30 04:18:40 -05:00
Gael Guennebaud
e736df3edd
suppress stupid warning
2010-12-10 15:53:13 +01:00
Gael Guennebaud
67c28570e3
fix compilation with ICC (template keyword on a non template method)
2010-12-10 10:05:52 +01:00
Gael Guennebaud
bacd531862
fix bug #128 : tridiagonalization failed for 1x1 matrices
2010-12-09 19:56:20 +01:00
Hauke Heibel
f0ba513f41
Fixed compilation of tridiagonalization related unit tests.
2010-11-27 15:41:46 +01:00
Gael Guennebaud
d551e99644
make HessenbergDecompositionMatrixHReturnType internal
2010-11-26 15:39:01 +01:00
Gael Guennebaud
e06c6553e0
make TridiagonalizationMatrixTReturnType internal and only export a public MatrixTReturnType typedef
2010-11-26 15:36:29 +01:00
Gael Guennebaud
0d63212257
add a TridiagonalizationMatrixTReturnType class to make Tridiagonalization::matrixT() more efficient and future proof.
2010-11-26 15:31:47 +01:00
Gael Guennebaud
5a4f77716d
fix bug #107 : SelfAdjointEigenSolver and RowMajor (and add unit test)
2010-11-04 09:33:05 +01:00
Hauke Heibel
7bc8e3ac09
Initial fixes for bug #85 .
...
Renamed meta_{true|false} to {true|false}_type, meta_if to conditional, is_same_type to is_same, un{ref|pointer|const} to remove_{reference|pointer|const} and makeconst to add_const.
Changed boolean type 'ret' member to 'value'.
Changed 'ret' members refering to types to 'type'.
Adapted all code occurences.
2010-10-25 22:13:49 +02:00
Benoit Jacob
4716040703
bug #86 : use internal:: namespace instead of ei_ prefix
2010-10-25 10:15:22 -04:00
Benoit Jacob
e259f71477
rename PlanarRotation -> JacobiRotation
2010-10-19 21:56:26 -04:00
Radu Bogdan Rusu
94ea1eed9a
fix warning
2010-09-27 09:56:54 -04:00
Gael Guennebaud
95f2e7f3f5
introduce a new LvalueBit flag and split DenseCoeffBase into three level of accessors
2010-07-21 10:57:01 +02:00
Gael Guennebaud
ea27678153
fix compilation of ei_tridiagonalization_inplace_selector for 1x1 matrix
2010-07-18 17:10:11 +02:00
Gael Guennebaud
883a8cbb2c
disable the optimized 3x3 path for complexes which was not working at all
2010-07-16 18:22:00 +02:00
Gael Guennebaud
6ab9e8632f
fix bad fuzzy comparison in 3x3 tridiagonalization
2010-07-16 16:38:58 +02:00
Benoit Jacob
e5de9e5226
Remove \nonstable yet. The stability rules for Eigen3 are much simpler:
...
- all what's not in unsupported/ is considered stable API
(except internal stuff e.g. expression templates).
2010-06-29 10:10:47 -04:00
Gael Guennebaud
28e64b0da3
email change
2010-06-24 23:21:58 +02:00
Gael Guennebaud
19f2f53e2c
fix compilation when default to row major
2010-06-24 15:13:41 +02:00
Gael Guennebaud
ab6a044d0d
eigenvalues: documentation fixes
2010-06-17 14:34:10 +02:00
Gael Guennebaud
43086d12d2
implement other variants
2010-06-17 10:11:38 +02:00
Gael Guennebaud
db160f2e0b
warn users other variants are not implemented yet... (will do it very soon)
2010-06-16 23:55:08 +02:00
Gael Guennebaud
74006a9fe9
* decouple the generalized selfadjoint eigenvalue problem to the standard one
...
* uses named values instead of bools
2010-06-16 23:48:16 +02:00
Jitse Niesen
c2f6cbab8d
Fix compilation of docs after changes in Eigenvalues module.
...
Clean-up after revision 469382407c
.
2010-06-14 10:16:01 +01:00
Gael Guennebaud
03331552a9
add a info() function in LLT to report on succes/faillure
2010-06-12 10:12:22 +02:00
Gael Guennebaud
469382407c
* Make HouseholderSequence::evalTo works in place
...
* Clean a bit the Triadiagonalization making sure it the inplace
function really works inplace ;), and that only the lower
triangular part of the matrix is referenced.
* Remove the Tridiagonalization member object of SelfAdjointEigenSolver
exploiting the in place capability of HouseholdeSequence.
* Update unit test to check SelfAdjointEigenSolver only consider
the lower triangular part.
2010-06-10 16:39:46 +02:00
Gael Guennebaud
f8683c409f
generalized eigendecomposition doc
2010-06-10 09:44:52 +02:00
Gael Guennebaud
41e5625f96
clean general symm eigensolver
2010-06-10 09:34:49 +02:00
Gael Guennebaud
8692ccc5fb
Fix generalized symm eigensolver (I don't know why the eigenvectors were normalized)
2010-06-10 00:04:33 +02:00
Gael Guennebaud
7726cc8a29
clean old stuff used to support precompilation inside a binary lib
2010-06-07 14:47:20 +02:00
Jitse Niesen
9178e2bd54
Add info() method which can be queried to check whether iteration converged.
2010-06-03 22:59:57 +01:00
Jitse Niesen
ed73a195e0
Refactor compute() by splitting off two smaller private methods.
2010-06-03 22:29:11 +01:00
Jitse Niesen
38d8352b7b
Add field m_maxIterations; break loop when this limit is exceeded.
2010-06-02 17:31:02 +01:00
Jitse Niesen
e3e2380548
Make all compute() methods return a reference to *this.
2010-06-01 17:40:51 +01:00
Jitse Niesen
8dc947821b
Allow user to compute only the eigenvalues and not the eigenvectors.
2010-05-31 18:17:47 +01:00
Jitse Niesen
609941380a
Change skipU argument to computeU - this reverses the meaning.
...
See "skipXxx / computeXxx parameters in Eigenvalues module" on mailing list.
2010-05-31 16:48:41 +01:00
Jitse Niesen
db8631b66a
Guard with assert against using decomposition objects uninitialized.
2010-05-30 21:49:35 +01:00
Benoit Jacob
aaaade4b3d
the Index types change.
...
As discussed on the list (too long to explain here).
2010-05-30 16:00:58 -04:00
Jitse Niesen
e7d809d434
Update eigenvalues() and operatorNorm() methods in MatrixBase.
...
* use SelfAdjointView instead of Eigen2's SelfAdjoint flag.
* add tests and documentation.
* allow eigenvalues() for non-selfadjoint matrices.
* they no longer depend only on SelfAdjointEigenSolver, so move them to
a separate file
2010-05-24 17:43:50 +01:00
Jitse Niesen
8a3f552e39
Return matrices by constant reference where possible.
...
This changes the return type of:
* eigenvectors() and eigenvalues() in ComplexEigenSolver
* eigenvalues() in EigenSolver
* eigenvectors() and eigenvalues() in SelfAdjointEigenSolver
2010-05-24 17:43:27 +01:00
Jitse Niesen
7a43a4408b
Replace local variables by member variables in compute() methods.
...
This is to avoid dynamic memory allocations in the compute() methods of
ComplexEigenSolver, EigenSolver, and SelfAdjointEigenSolver where possible.
As a result, Tridiagonalization::decomposeInPlace() is no longer used.
Biggest remaining issue is the allocation in HouseholderSequence::evalTo().
2010-05-24 17:43:06 +01:00
Jitse Niesen
68820fd4e8
Use ReturnByValue mechanism for HessenbergDecomposition::matrixH().
2010-05-24 17:36:13 +01:00
Jitse Niesen
eb3ca68684
Change return type of matrixH() method to HouseholderSequence.
...
This method is a member of Tridiagonalization and HessenbergDecomposition.
2010-05-24 17:35:54 +01:00
Jitse Niesen
2d74f1ac92
Document SelfAdjointEigenSolver and add examples.
2010-05-04 17:11:32 +01:00
Jitse Niesen
afed0ef90d
Document Tridiagonalization class, remove unused types.
2010-05-01 17:52:16 +01:00
Jitse Niesen
d9c1224133
Simplify computation of eigenvectors in EigenSolver.
...
* reduce scope of declarations
* use that low = 0 and high = size-1
* rename some variables
* rename hqr2_step2() to computeEigenvectors()
* exploit that ei_isMuchSmallerThan takes absolute value of arguments
2010-04-26 17:43:16 +01:00
Jitse Niesen
024995dbca
Use topRows() and rightCols() in ComplexSchur and RealSchur.
2010-04-26 16:59:18 +01:00
Benoit Jacob
9962c59b56
* implement the corner() API change: new methods topLeftCorner() etc
...
* get rid of BlockReturnType: it was not needed, and code was not always using it consistently anyway
* add topRows(), leftCols(), bottomRows(), rightCols()
* add corners unit-test covering all of that
* adapt docs, expand "porting from eigen 2 to 3"
* adapt Eigen2Support
2010-04-22 14:11:18 -04:00