Antonio Sanchez
7dceb6e137
Use traits<Matrix>::Options instead of Matrix::Options.
...
Not all objects have an `Options` attribute (e.g. Ref), but do store this
information in `traits<...>`. Fixes #2335 .
2024-02-15 09:13:22 -08:00
Tobias Wood
f38e16c193
Apply clang-format
2023-11-29 11:12:48 +00:00
Antonio Sánchez
6e4d5d4832
Add IWYU private pragmas to internal headers.
2023-08-21 16:25:22 +00:00
Erik Schultheis
421cbf0866
Replace Eigen type metaprogramming with corresponding std types and make use of alias templates
2022-03-16 16:43:40 +00:00
Rasmus Munk Larsen
d7d0bf832d
Issue an error in case of direct inclusion of internal headers.
2021-09-10 19:12:26 +00:00
Alexander Karatarakis
4ba872bd75
Avoid leading underscore followed by cap in template identifiers
2021-08-04 22:41:52 +00:00
Rasmus Munk Larsen
13fb5ab92c
Fix more enum arithmetic.
2021-06-15 09:09:31 -07:00
Christoph Hertzberg
42715533f1
bug #1493 : Make representation of HouseholderSequence consistent and working for complex numbers. Made corresponding unit test actually test that. Also simplify implementation of QR decompositions
2018-04-15 10:15:28 +02:00
Gael Guennebaud
7031a851d4
Generalize matrix ctor and compute() method of dense decomposition to 1) limit temporaries, 2) forward expressions to nested decompositions, 3) fix ambiguous ctor instanciation for square decomposition
2015-09-07 10:42:04 +02:00
Gael Guennebaud
cc641aabb7
Remove deprecated usage of expr::Index.
2015-02-16 14:46:51 +01:00
Christoph Hertzberg
36448c9e28
Make constructors explicit if they could lead to unintended implicit conversion
2014-09-23 14:28:23 +02:00
Gael Guennebaud
55365566b2
Fix HouseholderSequence::conjugate() and ::adjoint() and add respective unit tests.
2013-06-17 00:14:42 +02:00
Gael Guennebaud
62670c83a0
Fix bug #314 : move remaining math functions from internal to numext namespace
2013-06-10 23:40:56 +02:00
Jitse Niesen
14e2ab02b5
Replace assert() by eigen_assert() (fixes bug #548 ).
2013-02-02 22:04:42 +00:00
Benoit Jacob
69124cfca2
Automatic relicensing to MPL2 using Keirs script. Manual fixup follows.
2012-07-13 14:42:47 -04:00
Jitse Niesen
3c412183b2
Get rid of include directives inside namespace blocks (bug #339 ).
2012-04-15 11:06:28 +01: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
d551e99644
make HessenbergDecompositionMatrixHReturnType internal
2010-11-26 15:39:01 +01:00
Benoit Jacob
4716040703
bug #86 : use internal:: namespace instead of ei_ prefix
2010-10-25 10:15:22 -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
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
7726cc8a29
clean old stuff used to support precompilation inside a binary lib
2010-06-07 14:47:20 +02:00
Jitse Niesen
e3e2380548
Make all compute() methods return a reference to *this.
2010-06-01 17:40:51 +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
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
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
Adolfo Rodriguez Tsouroukdissian
28dde19e40
- Added problem size constructor to decompositions that did not have one. It preallocates member data structures.
...
- Updated unit tests to check above constructor.
- In the compute() method of decompositions: Made temporary matrices/vectors class members to avoid heap allocations during compute() (when dynamic matrices are used, of course).
These changes can speed up decomposition computation time when a solver instance is used to solve multiple same-sized problems. An added benefit is that the compute() method can now be invoked in contexts were heap allocations are forbidden, such as in real-time control loops.
CAVEAT: Not all of the decompositions in the Eigenvalues module have a heap-allocation-free compute() method. A future patch may address this issue, but some required API changes need to be incorporated first.
2010-04-21 17:15:57 +02:00
Benoit Jacob
0ab431d7b8
* merge with mainline
...
* adapt Eigenvalues module to the new rule that the RowMajorBit must have the proper value for vectors
* Fix RowMajorBit in ei_traits<ProductBase>
* Fix vectorizability logic in CoeffBasedProduct
2010-04-16 11:25:50 -04:00
Jitse Niesen
e6300efb5c
Extend documentation for HessenbergDecomposition.
2010-03-28 17:33:56 +01:00
Benoit Jacob
547269da35
fix the flags and matrix options, to always have the right RowMajor bit in the vector case
2010-03-19 02:12:23 -04:00
Adolfo Rodriguez Tsouroukdissian
5a36f4a8d1
Propagate all five matrix template parameters to members and temporaries of decomposition classes. One particular advantage of this is that decomposing matrices with max sizes known at compile time will not allocate.
...
NOTE: The ComplexEigenSolver class currently _does_ allocate (line 135 of Eigenvalues/ComplexEigenSolver.h), but the reason appears to be in the implementation of matrix-matrix products, and not in the decomposition itself.
The nomalloc unit test has been extended to verify that decompositions do not allocate when max sizes are specified. There are currently two workarounds to prevent the test from failing (see comments in test/nomalloc.cpp), both of which are related to matrix products that allocate on the stack.
2010-03-08 19:31:27 +01:00
Gael Guennebaud
c5d7c9f0de
remove the Triangular suffix to Upper, Lower, UnitLower, etc,
...
and remove the respective bit flags
2010-01-07 21:15:32 +01:00
Benoit Jacob
39ac57fa6d
Big renaming:
...
start ---> head
end ---> tail
Much frustration with sed syntax. Need to learn perl some day.
2010-01-04 21:24:43 -05:00
Gael Guennebaud
c90ccd089a
clean a bit Hessenberg and make sure the subdiagonal coeff is real even for 2x2 matrices
2009-12-23 12:30:05 +01:00
Gael Guennebaud
791bac25f2
fix #75 , and add a basic unit test for Hessenberg
...
(it was indirectly tested by the eigenvalue decomposition)
2009-12-23 12:18:54 +01:00
Hauke Heibel
3091be5134
Removed NestByValue dependency from Cholesky, Eigenvalues, LU and QR.
2009-12-01 10:22:54 +01:00
Jitse Niesen
343eec7ca8
Compilation fix: makeHousholderInPlace now uses references.
2009-11-11 16:23:09 +00:00
Gael Guennebaud
77f858f6ab
improve ComplexShur api and doc
2009-09-16 14:34:08 +02:00
Gael Guennebaud
68b28f7bfb
rename the EigenSolver module to Eigenvalues
2009-09-04 09:23:38 +02:00