Gael Guennebaud
0cb4f32e12
implement high level API for SYMM and fix a couple of bugs related to complex
2009-07-22 23:12:22 +02:00
Gael Guennebaud
d6627d540e
* refactoring of the matrix product into multiple small kernels
...
* started an efficient selfadjoint matrix * general matrix product
based on the generic kernels ( => need a very little LOC)
2009-07-21 16:58:35 +02:00
Gael Guennebaud
afa8f2ca95
* various fixes related to sub diagonals and band matrix
...
* allows 0 sized objects in Block/Map
2009-07-21 11:19:52 +02:00
Gael Guennebaud
34490f1493
* bugfixes in Product, and test/product_selfadjoint
...
* speed up in the extraction of the matrix Q in Tridiagonalization
2009-07-16 00:03:17 +02:00
Gael Guennebaud
97c9445c60
synch with main devel branch
2009-07-15 19:54:31 +02:00
Gael Guennebaud
df6561a73f
change the implementation of BandMatrix to follow the BLAS/LAPACK storage scheme
2009-07-15 17:00:49 +02:00
Gael Guennebaud
1578421ed1
fix issue #25 : the problem was that we assumed Dynamic was a multiple of a packet size
...
(also disable the test of blueNorm)
2009-07-15 14:20:45 +02:00
Gael Guennebaud
587029a612
started an implementation of BandMatrix: at least the read/write access
...
to the main/sub/super diagonals seems to work well.
2009-07-14 23:27:37 +02:00
Gael Guennebaud
8120a5cecd
synch with main devel branch
2009-07-14 23:06:25 +02:00
Gael Guennebaud
7a9519a9be
fix typo in blue norm
2009-07-14 23:00:53 +02:00
Gael Guennebaud
f5d2317b12
add a blueNorm() function implementing the Blues's stable norm
...
algorithm. it is currently provided for experimentation
purpose only.
2009-07-13 21:14:47 +02:00
Gael Guennebaud
1e7b1a8a85
add a SparseNestByValue expression and fix issue in sparse adjoint evaluation
2009-07-13 14:55:03 +02:00
Gael Guennebaud
a2cf7ba955
add triangular * vector product
2009-07-13 13:17:55 +02:00
Gael Guennebaud
a2087cd7a3
Add an efficient rank2 update function (like the level2 blas xSYR2 routine).
...
Note that it is already used in Tridiagonalization.
2009-07-11 21:14:59 +02:00
Gael Guennebaud
ec5c608aa3
Set of fixes and workaround to make sun studio more happy.
...
Still remains the problem of alignment and vectorization.
2009-07-10 16:10:03 +02:00
Gael Guennebaud
b47dea8b7a
add a meta unroller for the triangular solver (only for vectors as rhs)
2009-07-10 11:30:46 +02:00
Gael Guennebaud
1a1b2e9f27
finally directly calling the low-level products is faster
2009-07-10 10:41:26 +02:00
Gael Guennebaud
fa60c72398
started to simplify the triangular solvers
2009-07-09 17:11:03 +02:00
Gael Guennebaud
96e7d9f896
ok now all the complex mat-mat and mat-vec products involving conjugate,
...
adjoint, -, and scalar multiple seems to be well handled. It only remains
the simpler case: C = alpha*(A*B) ... for the next commit
2009-07-08 18:24:37 +02:00
Gael Guennebaud
13b2dafb50
conjugate expressions are now properly caught by Product
...
=> significant speedup in expr. like a.adjoint() * b,
for complex scalar type (~ x3)
2009-07-07 21:30:20 +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
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
Benoit Jacob
e093b43b2c
* rename QR to HouseholderQR because really that impacts the API, not just the impl.
...
* rename qr() to householderQr(), for same reason.
* clarify that it's non-pivoting, non-rank-revealing, so remove all the rank API, make solve() be void instead of bool, update the docs/test, etc.
* fix warning in SVD
2009-07-06 17:12:10 +02:00
Gael Guennebaud
0c2232e5d9
quick reimplementation of SVD from the numeral recipes book:
...
this is still not Eigen style code but at least it works for
n>m and it is more accurate than the JAMA based version. (I needed
it now, this is why I did that)
2009-07-06 13:47:41 +02:00
Manuel Yguel
c398d0edcf
another test in the non invertible case
2009-07-04 14:55:25 +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
7b750182f2
* polish computeInverseWithCheck to share more code, fix documentation, fix coding style
...
* add snippet for computeInverseWithCheck documentation
* expand unit-tests to cover computeInverseWithCheck
2009-06-29 22:07:37 +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
Gael Guennebaud
627595ad19
* rename PartialRedux to VectorwiseOp
...
* add VectorwiseOp's +, -, +=, -= operators
2009-06-10 11:20:30 +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
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
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
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
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
Gael Guennebaud
f47c4b5da8
update cdash testsuite file to use mercurial
2009-05-19 09:24:22 +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
Jitse Niesen
e3d64cb418
Fix compilation error in createRandomMatrixOfRank()
2009-05-17 21:17:45 +01:00
Hauke Heibel
6358c12998
* introduced method createRandomMatrixOfRank (R = U*D*V where U,V unitary, D r-by-c diag. with rank non-zero values)
...
* switched lu/qr tests to be using createRandomMatrixOfRank
* removed unused methods doSomeRankPreservingOperations
* removed NOTE about doSomeRankPreservingOperations
2009-05-17 16:07:12 +02:00
Gael Guennebaud
877c3c00a2
enable testing of complex numbers for taucs
2009-05-12 13:43:40 +00:00
Gael Guennebaud
f5b5571a5a
compilation fixes
2009-05-12 07:32:34 +00:00
Gael Guennebaud
9b256d997e
various minor updates of some unit tests
2009-05-11 11:09:41 +00:00
Benoit Jacob
9afd1324fd
constant Diagonal ---> DiagonalBits
...
introduce ei_is_diagonal to check for it
DiagonalCoeffs ---> Diagonal and allow Index to by Dynamic
-> add MatrixBase::diagonal(int) with unittest and doc
2009-05-10 16:24:39 +00:00
Benoit Jacob
eac79b6d2e
CREDIT Hauke Heibel, fix MSVC warnings
2009-05-09 03:41:17 +00:00