Commit Graph

826 Commits

Author SHA1 Message Date
Gael Guennebaud
ea23f36c78 * change the nesting order of adjoint_return_type to
1 - make it easier to catch conjugate expressions
 2 - make sure there is no unecessary copy (we had NestByValue<Derived> which seems to be very bad)
* update eigensolver wrt recent changes
2009-07-07 15:56:13 +02:00
Gael Guennebaud
79877a9917 * take advantage of new possibilies in LLT (mat -= product)
* fix Block::operator+= product which was not optimized
* fix some compilation issues
2009-07-07 15:32:21 +02:00
Gael Guennebaud
92a35c93b2 * extended the cache friendly products to support C = alpha * A * M and C += alpha * A * B
* this allows to optimize xpr like C -= lazy_product, still have to catch "scalar_product_of_lazy_product"
* started to support conjugate in cache friendly products (very useful to evaluate A * B.adjoint() without
  evaluating B.adjoint() into a temporary
* compilation fix
2009-07-07 11:39:19 +02:00
Gael Guennebaud
544888e342 add a generic mechanism to copy a special matrix to a dense matrix so that
we don't need to add other specialization of MatrixBase::operator=, Matrix::=,
and Matrix::Matrix(...)
2009-07-07 09:05:20 +02:00
Gael Guennebaud
1aea45335f * bybye Part, welcome TriangularView and SelfAdjointView.
* move solveTriangular*() to TriangularView::solve*()
* move .llt() to SelfAdjointView
* add a high level wrapper to the efficient selfadjoint * vector product
* improve LLT so that we can specify which triangular part is meaningless
=> there are still many things to do (doc, cleaning, improve the matrix products, etc.)
2009-07-06 23:43:20 +02:00
Gael Guennebaud
08e419dcb1 * update sparse module wrt new diagonal matrix impl
* fix a bug is SparseMatrix
2009-07-04 11:16:27 +02:00
Benoit Jacob
2de9b7f537 fully vectorize DiagonalProduct
(it used to be partially vectorized and that had been lost in the big changes from the previous commit)
2009-06-29 04:01:31 +02:00
Benoit Jacob
6809f7b1cd new implementation of diagonal matrices and diagonal matrix expressions 2009-06-28 21:27:37 +02:00
Benoit Jacob
fc9000f23e only disable the inline ASM if we're NEITHER gcc nor icc. right ?? 2009-06-26 05:32:21 +02:00
Benoit Jacob
6ccb97620a patch by Patrick Mihelich: use empty struct + anonymous namespace for NoChange 2009-06-25 03:33:47 +02:00
Benoit Jacob
903acf0d5c add missing code snippets for newer Matrix methods and PartialLU::solve() 2009-06-25 00:57:51 +02:00
Benoit Jacob
03ad303d14 * add resize(int, NoChange) and resize(NoChange, int)
* add missing assert in resize(int)
* add examples for all resize variants
* expand docs (part of which is from Tim Hutt's e-mail)
2009-06-24 22:07:03 +02:00
Benoit Jacob
96dca681b0 use <...> for system headers 2009-06-24 16:35:02 +02:00
Gael Guennebaud
a44f7cf440 re-enable the fast unaligned loads for gcc and icc using inline assembly
(this allows to avoid incompatible pointer casts and to specify the dependency to the data explicitely)
2009-06-24 10:48:36 +02:00
Gael Guennebaud
aa17b5b514 use the slower unaligned load intrinsics in ei_ploadu because GCC mess up with my tricks 2009-06-23 23:28:34 +02:00
Benoit Jacob
7d48ed4be3 refine the check to disable alignment. now it's disabled on gcc3 (where we don't vectorize anyway) 2009-06-21 04:56:01 +02:00
Benoit Jacob
8be088bfb0 add Eigen/Eigen 2009-06-19 20:46:55 +02:00
Benoit Jacob
fe8ab0147b add "Dense" header 2009-06-19 19:09:35 +02:00
Benoit Jacob
032594cee2 forward port fix to #12 2009-06-19 18:51:15 +02:00
Benoit Jacob
a57325e971 fix #14: make llt::solve() and also ldlt::solve() work with uninitialized result 2009-06-19 17:01:32 +02:00
Moritz Lenz
c6e81869d0 fixed typo in SuperLUSupport.h 2009-06-17 11:55:57 +02:00
Gael Guennebaud
627595ad19 * rename PartialRedux to VectorwiseOp
* add VectorwiseOp's +, -, +=, -= operators
2009-06-10 11:20:30 +02:00
Gael Guennebaud
f3fd7fd22b fix #11: now the default Transform ctor set the last row in Affine mode. 2009-06-10 09:35:04 +02:00
Gael Guennebaud
d97d307fcf SparseMatrix::resize() always resets the matrix to an empty one 2009-06-08 14:12:11 +02:00
Gael Guennebaud
55de162cf6 fix #10: the reallocateSparse function was half coded 2009-06-08 14:05:23 +02:00
Hauke Heibel
f26c691678 Renamed internal helper functions from the Memory header. 2009-06-04 17:25:15 +02:00
Hauke Heibel
5f04f8eb6b Fixes #9. Thanks to the (unknown) bug contributor. 2009-06-04 09:11:35 +02:00
Hauke Heibel
6530c8f5b4 A much simplified version of the earlier commit introducing way fewer changes compared to changeset f292d2352e
.
The reason of the previous commit was incorrect. The smart pointers issues were actually a result of issue 9.
2009-06-03 22:22:15 +02:00
Hauke Heibel
71e5cbcbc4 Added specializations for DontAlign when using Dynamic matrices.
This allows users to store Matrices in smart pointers without the
need for a specialized allocator/de-allocator.
2009-06-03 16:47:38 +02:00
Hauke Heibel
f292d2352e Relaxed checks againts _MaxRows and _MaxCols in Matrix::_check_template_params(). 2009-05-29 09:09:48 +02:00
Benoit Jacob
ee92009fd8 make Umeyama, and its unit-test, work for me on gcc 4.3 2009-05-27 23:10:24 +02:00
Benoit Jacob
86be59124d fix the static assert checking the size template parameters. 2009-05-27 23:07:29 +02:00
Hauke Heibel
4d1e492c00 * Umeyama has now similar performance for RowMajor and ColMajor layouts.
* Fixed a bug in umeyama for fixed size matrices.
* Fixed the umeyama unit test for fixed size matrices.
* Added XprHelper::ei_plain_matrix_type_row_major.
2009-05-27 19:24:05 +02:00
Hauke Heibel
db5647abae Added Umeyama implementation. 2009-05-26 19:22:25 +02:00
Gael Guennebaud
9d5728c511 fix #4
and also improve performance of Tridiag::diag/subDiag at the same time
2009-05-23 13:31:20 +00:00
Benoit Jacob
42848498aa fixes #5 : freebsd really has aligned malloc 2009-05-22 23:54:52 +02:00
Benoit Jacob
7667a93cbe merge 2009-05-22 20:31:26 +02:00
Benoit Jacob
6347b1db5b remove sentence "Eigen itself is part of the KDE project."
it never made very precise sense. but now does it still make any?
2009-05-22 20:25:33 +02:00
Thomas Capricelli
0ed7c2f6d7 fix typo 2009-05-22 19:46:29 +02:00
Hauke Heibel
c7303a876f Oops, here the actual LLT and LDLT patch. 2009-05-22 15:58:20 +02:00
Hauke Heibel
0523b64fe9 Eigensolver decomposition interface unification.
Added default ctor and public compute method as
well as safe-guards against uninitialized usage.
Added unit tests for the safe-guards.
2009-05-22 14:27:58 +02:00
Hauke Heibel
2c247fc8a8 LU and PartialLU decomposition interface unification.
Added default ctor and public compute method as well
as safe-guards against uninitialized usage.
Added unit tests for the safe-guards.
2009-05-22 14:27:58 +02:00
Hauke Heibel
5c5789cf0f QR and SVD decomposition interface unification.
Added default ctor and public compute method as
well as safe-guards against uninitialized usage.
Added unit tests for the safe-guards.
2009-05-22 14:27:58 +02:00
Benoit Jacob
c7baddb132 add internal comment (mostly a pretext to test the eigen-commits list) 2009-05-20 16:54:40 +02:00
Gael Guennebaud
dd45c4805c * add a writable generic coeff wise expression (CwiseUnaryView)
* add writable .real() and .imag() functions
2009-05-20 15:41:23 +02:00
Benoit Jacob
a697cb4094 fix comments (old comments that were copied from LU) 2009-05-19 21:54:29 +02:00
Gael Guennebaud
510029f2bc * optimize sum() for sparse matrices and vectors
* fix the row()/col() functions of some InnerVector
2009-05-19 09:40:00 +02:00
Gael Guennebaud
b83d9b48fa fix compilation with ICC 2009-05-18 18:26:45 +02:00
Gael Guennebaud
c8629e12f4 fix #3, remove inline keywords in QtAlignedMalloc (MSVC fix) 2009-05-18 18:09:21 +02:00
Gael Guennebaud
e186728867 fix #1 : need to nest by value the affine part in homogeneous product 2009-05-18 17:55:50 +02:00