Gael Guennebaud
543a785756
Fix compilation in sparse module
2009-08-06 17:28:49 +02:00
Gael Guennebaud
2707a6b87c
fix determinant in PartialLU
2009-08-06 17:28:31 +02:00
Gael Guennebaud
1d1e4884da
oops, one more bug fix in homogeneous
2009-08-06 16:56:10 +02:00
Gael Guennebaud
9822493aaf
fixes in determinant and homogeneous
2009-08-06 16:54:55 +02:00
Gael Guennebaud
3ac01b1400
compilation fix in EigenSolver,
...
bugfix in PartialLU
2009-08-06 16:41:54 +02:00
Gael Guennebaud
e82e30862a
typo
2009-08-06 15:04:42 +02:00
Gael Guennebaud
03febf00a0
fix VS compilation issue in MapBase::operator+= and -=
2009-08-06 15:03:37 +02:00
Gael Guennebaud
2e46e9f2b4
shame on me
2009-08-06 14:57:38 +02:00
Gael Guennebaud
d34c5ef509
fix my bad fix of Hauke's fix ;)
2009-08-06 14:54:25 +02:00
Gael Guennebaud
1d4fea48b5
fix a couple of compilations issues
2009-08-06 14:10:02 +02:00
Hauke Heibel
c2861dd41a
fixed inversion for AffineCompact matrices
2009-08-06 12:25:18 +02:00
Gael Guennebaud
56d00779db
more product refactoring
2009-08-06 12:20:02 +02:00
Hauke Heibel
6b2ab13ac5
fix vs.net compilation issue
2009-08-06 11:40:25 +02:00
Hauke Heibel
8163757cf0
fix vs.net compilation issue
2009-08-06 11:27:25 +02:00
Gael Guennebaud
fa55cf5ce7
fix compilation and segfault issues
2009-08-06 11:19:36 +02:00
Gael Guennebaud
b9b17ea5a5
add the missing Affine Transform * set of column vectors products...
2009-08-06 11:02:03 +02:00
Benoit Jacob
0744638b6f
remove remnant of MultiplierBase
2009-08-06 10:35:13 +02:00
Gael Guennebaud
84a7659bef
implement the missing outer product,
...
and attempt to workaround a gcc internal error
2009-08-05 17:39:11 +02:00
Gael Guennebaud
88147e0a91
big refactoring in Product.h:
...
- all specialized products now inherits ProductBase
- the default product evaluated by Assign is still here,
but it is currently enabled for small fixed sizes only
- => this significantly speed up compilation for large matrices
- I left the OuterProduct specialization empty as an exercise...
2009-08-05 15:23:35 +02:00
Benoit Jacob
014c581a5b
fix assertions, improve docs.
...
we never assert on conditions that depend on the result of a computation!!
also the assertion that rank>0 amounts to matrix!=0 which we have to leave under the responsibility of the user.
2009-08-05 10:15:28 +02:00
Gael Guennebaud
7d607048a9
implement a ProductBase class and, as a proof of concept, update TriangularProduct
...
and SelfAdjointMatrixProduct to take advantage of it => fewer LOC
2009-08-04 16:54:17 +02:00
Gael Guennebaud
f3a6bc48c4
fix a couple of compilation issue due to the removal of MultiplierBase
2009-08-04 13:16:40 +02:00
Gael Guennebaud
2089a263f8
merge
2009-08-04 11:31:25 +02:00
Gael Guennebaud
4bec101470
implement two levels of blocking in PartialLU => high speedup
2009-08-04 11:28:02 +02:00
Benoit Jacob
4436a4d68c
use explicit Block/VectorBlock xprs to make sure that compile-time known sizes are used
2009-08-04 00:27:58 +02:00
Benoit Jacob
523cdedf58
make the dot product linear in the second variable, not the first variable
2009-08-03 17:20:45 +02:00
Gael Guennebaud
912da9fade
merge with special_matrix branch
2009-08-03 16:17:32 +02:00
Gael Guennebaud
a8f943127c
merge
2009-08-03 16:11:30 +02:00
Benoit Jacob
d10c710b15
add new Householder module
2009-08-03 16:06:57 +02:00
Gael Guennebaud
3cf5bb31f6
* Bye bye MultiplierBase, extend a bit AnyMatrixBase to allow =, +=, and -=
...
* This probably makes ReturnByValue needless
2009-08-03 16:05:15 +02:00
Benoit Jacob
66ee2044ce
small fixes
2009-08-03 16:05:07 +02:00
Benoit Jacob
3cde9c0e35
apply Gael's idea for auto transpose in mixed fixed/dynamic case
2009-08-03 16:04:15 +02:00
Gael Guennebaud
ce1dc1ab16
implements a blocked version of PartialLU
2009-08-03 12:11:18 +02:00
Gael Guennebaud
0103de8512
bugfix in trsm
2009-08-02 15:32:43 +02:00
Gael Guennebaud
48fc64458c
add blocked LLT, and bugfix in trsm asserts
2009-08-01 23:42:51 +02:00
Gael Guennebaud
18429156a1
add selfadjointView from a trinagularView
2009-07-31 17:35:55 +02:00
Gael Guennebaud
2796bcabb1
some cleaning
2009-07-31 17:35:20 +02:00
Gael Guennebaud
a156f5a869
faster trsm kernel and fix a couple of issues
2009-07-31 13:18:19 +02:00
Gael Guennebaud
21f686846b
s/std::atan2/ei_atan2
2009-07-31 10:08:23 +02:00
Manuel Yguel
ae5e26a363
add missing ei_atan2 without painfull warnings
2009-07-31 09:21:31 +02:00
Gael Guennebaud
2e9f7f80bf
compilation fixes for sun CC
2009-07-31 10:04:34 +02:00
Benoit Jacob
d8bfd151d1
forward-port Anthony Truchet's changeset 8eab0bccbf
2009-07-30 16:05:38 +02:00
Gael Guennebaud
ff20a2ba94
add explicit "on the right" triangular solving,
...
=> no temporary when the rhs/unknows is row major
2009-07-30 16:03:06 +02:00
Gael Guennebaud
62d9b9b7b5
fix typo
2009-07-29 09:26:20 +02:00
Gael Guennebaud
864171df5c
fix a couple of issues related to recent products
2009-07-28 18:11:30 +02:00
Gael Guennebaud
1ba35248e9
synch with main branch
2009-07-28 17:37:22 +02:00
Gael Guennebaud
54804eb626
synch with main branch
2009-07-28 17:35:07 +02:00
Gael Guennebaud
264fe82c65
add a debug mechanism to compute the number of intermediate evaluations (only for dynamic size)
2009-07-28 17:13:13 +02:00
Gael Guennebaud
7ed7ec64b5
improve the expression analyzer to bypass Transpose expression
2009-07-28 14:02:12 +02:00
Gael Guennebaud
5f3606bce9
bug fix in inverse for 1x1 matrix,
...
some compilation fixes in sparse_solvers
2009-07-27 18:09:56 +02:00
Gael Guennebaud
94cc30180e
compilation fixes
2009-07-27 13:50:23 +02:00
Gael Guennebaud
0590c18555
various compilation and bug fixes in selfadjoint stuff
2009-07-27 13:17:39 +02:00
Gael Guennebaud
b5e4064289
cleaning and fix a perf issue
2009-07-27 12:13:53 +02:00
Gael Guennebaud
f95b77be62
trmm is now fully working and available via TriangularView::operator*
2009-07-27 11:42:54 +02:00
Gael Guennebaud
6aba84719d
trmm is now working in all storage order configurations
2009-07-27 10:27:01 +02:00
Gael Guennebaud
1d4d9a37fd
some cleaning
2009-07-26 13:53:24 +02:00
Gael Guennebaud
f3fde74695
finalize trsm: works in all situations, and it is now used by solve() and solveInPlace()
2009-07-26 13:01:37 +02:00
Gael Guennebaud
282e18da49
ok, now trsm works very well for upper triangular matrices
...
TODO: link it with the meta triangular_solve_selector and handle
the case where the rhs is row major by copying it to a col-major
temporary + handle right solving: X = B * M^-1
2009-07-26 00:49:17 +02:00
Gael Guennebaud
f4112dcff3
The new trsm is working very very well (read very fast) for
...
lower triangular matrix and row or col major lhs.
TODO: handle upper triangular and row major rhs cases
2009-07-25 21:41:01 +02:00
Gael Guennebaud
35927e78c2
add WIP trsm
2009-07-24 16:21:52 +02:00
Gael Guennebaud
c6d06c22ac
some cleaning
2009-07-24 10:53:31 +02:00
Gael Guennebaud
6076173f0b
add a simplified version of the sybb kernel built on top of gebp
2009-07-24 10:08:21 +02:00
Gael Guennebaud
82c5438c95
split and add unit tests for symm and syrk,
...
the .rank*update() functions now returns a reference to *this
2009-07-23 21:22:51 +02:00
Gael Guennebaud
b67abe22b3
oops,, update SYRK so that the rhs can be non-square²
2009-07-23 20:56:04 +02:00
Gael Guennebaud
a81388fae9
Implement efficient sefladjoint product (aka SYRK) : C += alpha * U U^T
...
It is currently available via SelfAdjointView::rankKupdate.
TODO: allows to write SelfAdjointView += u * u.adjoint()
2009-07-23 19:01:20 +02:00
Gael Guennebaud
713c92140c
improve SYMV it is now faster and ready for use
2009-07-23 14:20:45 +02:00
Gael Guennebaud
eee14846e3
formating
2009-07-23 10:19:58 +02:00
Gael Guennebaud
ddb3ac98a2
addd matrix * self adjoint high level API
2009-07-23 10:05:38 +02:00
Hauke Heibel
8d2cd744b0
Added an explicit cast from int to bool to suppress MSVC warnings.
2009-07-23 00:11:25 +02:00
Gael Guennebaud
f696efc00e
bugfix in SYMM
2009-07-22 23:48:42 +02:00
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
e7f8e939e2
* GEMM enhencement: no need to pre-transpose the rhs
...
=> faster a * b.transpose() product
=> this also fix a bug in a so far untested situation
* SYMM is now ready for use => still have to write the high level
stuff to convert natural expressions into a call to SYMM
2009-07-22 18:04:16 +02:00
Gael Guennebaud
d6475ea390
more refactoring in the level3 products
2009-07-22 11:54:58 +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
a012aecbc4
bugfix in SVD
2009-07-20 13:44:52 +02:00
Gael Guennebaud
4375c043ac
minor compilation fixes for Sun CC and ICC
2009-07-20 13:27:41 +02:00
Gael Guennebaud
4c85fa8c73
compilation fix (sun CC)
2009-07-20 10:57:31 +02:00
Gael Guennebaud
c10b919edb
compilation fix
2009-07-20 10:56:03 +02:00
Gael Guennebaud
b3ad796d40
bugfix in operator*= (matrix product)
2009-07-20 10:44:07 +02:00
Gael Guennebaud
a551107cce
bugfix for a = a * b; when a has to be resized
2009-07-20 10:35:47 +02:00
Gael Guennebaud
32b08ac971
re-implement stableNorm using a homemade blocky and
...
vectorization friendly algorithm (slow if no vectorization)
2009-07-17 16:22:39 +02:00
Gael Guennebaud
525da6a464
bugfix in blueNorm
2009-07-16 14:20:36 +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
079fa81d84
add a TridiagonalMatrix wrapper arround BandMatrix, and extend this latter
2009-07-15 19:53:08 +02:00
Gael Guennebaud
4f792583c7
add BandMatrix::col()
2009-07-15 18:00:11 +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
279cedc1ce
some cleaning/renaming is Triangular/SelfadjointView
2009-07-14 22:38:21 +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
ddbaaebf9e
one more fix of the previous commit (forgot to update ei_must_nest_by_value)
2009-07-13 15:27:01 +02:00
Gael Guennebaud
bd506d837c
fix typo in previous commit
2009-07-13 15:21:32 +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
ab17f92728
more sun studio fixes
2009-07-10 16:27:01 +02:00