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
faf8f7732d
merge
2010-04-21 12:31:04 -04:00
Benoit Jacob
e33953b888
fix compilation in Sparse (error introduced yesterday)
2010-04-21 12:28:51 -04:00
Hauke Heibel
2db5387488
Fixed two bad errors on std::vector.
...
First, MSVC 2010 does not ship a 'fixed'/'adapted' STL.
Second, only under very rare cases we do not even need the aligned_allocator.
2010-04-21 18:21:46 +02:00
Benoit Jacob
4ba032c9ab
fix grave bug introduced by me: the low-level matrix-vector product functions can't be fed strided vectors, only strided matrices.
2010-04-20 15:59:17 -04:00
Benoit Jacob
941a7e4ebd
oos, remove eval() used for debugging
2010-04-19 13:31:29 -04:00
Benoit Jacob
40b2aaa8b1
merge
2010-04-18 22:15:20 -04:00
Benoit Jacob
504a31f643
renaming (MatrixType ---> whatever appropriate)
...
and documentation improvements
2010-04-18 22:14:55 -04:00
Thomas Capricelli
29a3aec483
erf() is really non standard, better dont pollute eigen with it.
2010-04-19 02:06:11 +02:00
Hauke Heibel
086d5f1ac6
Fixed indentation and removed debug code.
2010-04-18 20:16:39 +02:00
Hauke Heibel
214d5a892d
Added support for STL lists with aligned Eigen types.
2010-04-18 20:10:43 +02:00
Hauke Heibel
031932b4ec
Disabled erf also for Cygwin where it is not supported and causes errors.
2010-04-18 20:08:56 +02:00
Hauke Heibel
7db0f242ef
Disabled unsupported erf on MSVC machines.
2010-04-18 14:37:44 +02:00
Thomas Capricelli
f1deab0e5a
introduce ei_erf() for various scalar type
2010-04-18 03:39:22 +02:00
Benoit Jacob
ba5b5f6a4b
fix compilation
2010-04-17 11:29:25 -04:00
Hauke Heibel
cc33a56140
Added MSVC stack allocation support.
2010-04-17 16:08:17 +02:00
Benoit Jacob
797f63044a
oops, forgot to add DenseDirectAccessBase
2010-04-16 14:46:55 -04:00
Benoit Jacob
d9ee28851e
fix ei_blas_traits directaccess check: in the case of vectors, having a nontrivial inner stride is OK.
2010-04-16 14:12:53 -04: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
Benoit Jacob
ff6a46105d
* Refactoring of the class hierarchy: introduction of DenseDirectAccessBase, removal of extra _Base/_Options template parameters.
...
* Introduction of strides-at-compile-time so for example the optimized code really knows when it needs to evaluate to a temporary
* StorageKind / XprKind
* Quaternion::setFromTwoVectors: use JacobiSVD instead of SVD
* ComplexSchur: support the 1x1 case
2010-04-16 10:13:32 -04:00
Gael Guennebaud
ea1a2df370
taucs: make SupernodalMultifrontal the default mode
2010-04-15 12:42:17 +02:00
Gael Guennebaud
0b6b316f18
an attempt to fix compilation with MSVC
2010-04-15 12:36:28 +02:00
Gael Guennebaud
a2324d6265
fix sparse squared norm
2010-04-13 10:40:55 +02:00
Jitse Niesen
614fbe497d
Merge.
2010-04-12 18:55:27 +01:00
Jitse Niesen
574ad9efbd
Move computation of eigenvalues from RealSchur to EigenSolver.
2010-04-12 18:54:15 +01:00
Jitse Niesen
73d3a27667
RealSchur: Make sure zeros are really zero (cont'd); add default ctor, docs.
2010-04-12 18:14:32 +01:00
Gael Guennebaud
0b0366a53d
cholmod: assume selfadjoint matrix by default since selfadjoint flag has been removed
2010-04-09 13:37:05 +02:00
Jitse Niesen
872df22ca4
RealSchur: Make sure zeros are really zero; simplify initFrancisQRStep().
2010-04-09 11:23:17 +01:00
Jitse Niesen
7dea3a33a5
RealSchur: change parameter lists; minor rewrite of computeShift().
2010-04-07 17:29:12 +01:00
Jitse Niesen
b6829e1d5b
RealSchur: use makeHouseholder() to construct the transformation.
2010-04-07 10:27:27 +01:00
Jitse Niesen
cc57df9bea
RealSchur: Rename l and n to il and iu.
2010-04-06 18:26:30 +01:00
Jitse Niesen
9fad1e392b
RealSchur: split computation in smaller functions.
2010-04-06 17:45:46 +01:00
Jitse Niesen
7dc56b3dfb
RealSchur: Use Householder module in Francis QR step.
2010-04-06 16:43:07 +01:00
Jitse Niesen
86df74c765
RealSchur: reduce scope of temporary variables in hqr2().
2010-04-06 15:26:09 +01:00
Jitse Niesen
dad50338b8
RealSchur: Use PlanarRotation in "found two real eigenvalues" branch.
2010-04-06 15:12:21 +01:00
Jitse Niesen
d88d1cfa62
Merge.
2010-04-02 21:33:34 +01:00
Jitse Niesen
79e1ce6093
RealSchur and EigenSolver: some straightforward renames.
2010-04-02 21:05:32 +01:00
Jitse Niesen
a16a36ecf2
Add tests for real and complex Schur; extend test for Hessenberg.
...
Make a minor correction to the ComplexSchur class.
2010-04-02 14:32:20 +01:00
Hauke Heibel
9d6afdeb22
ei_psqrt fix for zero input
2010-04-01 15:10:52 +02:00
Jitse Niesen
3a14a13533
Split computation of real Schur form in EigenSolver to its own class.
...
This is done with the minimal amount of work, so the result is very rough.
2010-04-01 12:32:56 +01:00
Jitse Niesen
8cfa672fe0
Use HessenbergDecomposition in EigenSolver.
2010-03-31 21:50:18 +01:00
Jitse Niesen
1b3f7f2fee
Extend documentation and add examples for EigenSolver class.
2010-03-31 11:59:11 +01:00
Benoit Jacob
338ec0390f
let the cast functor use the new ei_cast()
2010-03-30 14:51:47 -04:00
Benoit Jacob
16e416b8d7
generalize the idea of the previous commit to all kinds of casts, see this forum thread:
...
http://forum.kde.org/viewtopic.php?f=74&t=86914
this is important to allow users to support custom types that don't have the needed conversion operators.
2010-03-30 14:47:45 -04:00
Benoit Jacob
9e0d8697c7
add ei_cast_to_int, we are indeed somethings (e.g. in IO.h) casting scalars to int and the only way to allow users to extend that to their own scalar types that don't have int cast operators, was to allow them specialize ei_cast_to_int_impl.
2010-03-30 14:16:54 -04:00
Benoit Jacob
8f99ae5ea4
move the computation of the number of significant digits to a templated helper struct, that can be specialized to custom types if needed. Should address this request:
...
http://forum.kde.org/viewtopic.php?f=74&t=86914
2010-03-30 11:38:09 -04:00
Jitse Niesen
e6300efb5c
Extend documentation for HessenbergDecomposition.
2010-03-28 17:33:56 +01:00
Thomas Capricelli
0a5c2d8a54
fix misc warnings, more importantly when NDEBUG is defined, assert() is a
...
nop.
2010-03-27 18:58:29 +01:00
Jitse Niesen
c68098b9be
Clean up ComplexSchur::compute() .
2010-03-24 14:10:33 +00:00
Jitse Niesen
37e17938e9
Extend documentation of ComplexSchur and add examples.
2010-03-23 12:49:09 +00:00