Gael Guennebaud
4bbc320468
bug #1435 : fix aliasing issue in exressions like: A = C - B*A;
2017-06-08 12:55:25 +02:00
Gael Guennebaud
c927af60ed
Fix a performance regression in (mat*mat)*vec for which mat*mat was evaluated multiple times.
2016-11-30 17:59:13 +01:00
Gael Guennebaud
504a4404f1
Optimize expression matching "d?=a-b*c" as "d?=a; d?=b*c;"
2016-08-23 16:52:22 +02:00
Gael Guennebaud
8b9dc9f0df
bug #1144 : fix regression in x=y+A*x (aliasing), and move evaluator_traits::AssumeAliasing to evaluator_assume_aliasing.
2016-01-09 08:30:38 +01:00
Gael Guennebaud
6536b4bad7
Implement temporary-free path for "D.nolias() ?= C + A*B". (I thought it was already implemented)
2015-10-09 15:28:09 +02:00
Gael Guennebaud
c9718514f5
Fix nesting sub-expression in outer-products
2015-10-08 21:41:53 +02:00
Gael Guennebaud
8d00a953af
Fix a nesting issue in some matrix-vector cases.
2015-10-08 17:36:57 +02:00
Gael Guennebaud
6318d53b41
Factorize VERIFY_EVALUATION_COUNT in unit tests
2015-06-19 16:38:26 +02:00
Gael Guennebaud
371d3bef36
Workaround dead store warnings in unit tests.
2015-02-18 11:30:44 +01:00
Gael Guennebaud
296cb40161
merge with default branch
2014-07-10 22:04:45 +02:00
Gael Guennebaud
b47ef1431f
Fix many long to int implicit conversions
2014-07-08 16:47:11 +02:00
Gael Guennebaud
5b78780def
Add evaluator shortcut for triangular ?= product
2014-02-18 17:43:16 +01:00
Gael Guennebaud
d1d7a1ade9
Workaround a bunch of stupid warnings in unit tests
2013-06-23 19:11:32 +02:00
Gael Guennebaud
ff661a7b6f
Add temporary check for triangularView += product
2013-04-10 23:13:04 +02:00
Benoit Jacob
69124cfca2
Automatic relicensing to MPL2 using Keirs script. Manual fixup follows.
2012-07-13 14:42:47 -04:00
Gael Guennebaud
a8f66fec65
add the possibility to configure the maximal matrix size in the unit tests
2011-07-12 14:41:00 +02:00
Gael Guennebaud
6e67d15795
now gemv supports strides
2011-01-30 08:17:46 +01:00
Benoit Jacob
e8768251db
rename macro
2010-12-25 17:01:01 -05:00
Benoit Jacob
75b7d98665
bug #54 - really fix const correctness except in Sparse
2010-12-22 17:45:37 -05:00
Benoit Jacob
4716040703
bug #86 : use internal:: namespace instead of ei_ prefix
2010-10-25 10:15:22 -04:00
Gael Guennebaud
55495dcbae
extend product unit tests
2010-07-07 10:50:40 +02:00
Gael Guennebaud
7e836ccb4c
unit test fix for default to row major
2010-06-24 17:49:51 +02:00
Hauke Heibel
546b802b77
Still fixing warnings.
2010-06-20 20:16:45 +02:00
Hauke Heibel
f1679c7185
Utilize Index in all unit tests.
2010-06-20 17:37:56 +02: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
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
04c663840b
* add some 1x1 tests
...
* temporarily disable tests that strangely fail, with a big FIXME
2010-04-16 12:32:33 -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
a76950bdab
fix a couple of ICE with gcc 4.0.1
2010-02-12 09:41:56 +01:00
Hauke Heibel
13ce92f5ba
Fixed notemporary unit test.
2010-02-11 11:31:36 +01:00
Hauke Heibel
d0e8342a04
Fixed warning.
2010-02-10 18:00:36 +01:00
Hauke Heibel
c11df02f0d
Deactivated test which requires variadic macros.
2010-02-09 20:52:15 +01:00
Hauke Heibel
5da3049b80
Regression tests for number of nested temporaries.
...
Moved EIGEN_DEBUG_MATRIX_CTOR to ei_matrix_storage to capture resize related allocations.
2010-02-09 20:32:48 +01:00
Gael Guennebaud
d104d2cd29
add accessors to coeff based product
2010-02-09 11:13:22 +01:00
Jitse Niesen
dbf3af866e
Remove some Array #includes.
2010-01-21 12:31:03 +00: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
Gael Guennebaud
ebb2878829
finally add a Array class with storage via the introduction of a DenseStorageBase
...
base class shared by both Matrix and Array
2009-12-17 13:37:00 +01:00
Benoit Jacob
2840ac7e94
big huge changes, so i dont remember everything.
...
* renaming, e.g. LU ---> FullPivLU
* split tests framework: more robust, e.g. dont generate empty tests if a number is skipped
* make all remaining tests use that splitting, as needed.
* Fix 4x4 inversion (see stable branch)
* Transform::inverse() and geo_transform test : adapt to new inverse() API, it was also trying to instantiate inverse() for 3x4 matrices.
* CMakeLists: more robust regexp to parse the version number
* misc fixes in unit tests
2009-10-28 18:19:29 -04:00
Benoit Jacob
6c1b91678b
kill ei_add_test_multi. Now the macro ei_add_test does all that automatically, by parsing the source file. No risk anymore to specify the wrong number of tests! Also, introduce CALL_SUBTESTX for X=1..10 that allows to port existing code much quicker. And port already the product* and eigensolver* files.
2009-10-19 14:40:35 -04:00
Gael Guennebaud
a54b99fa72
move eigen values related stuff of the QR module to a new EigenSolver module.
...
- perhaps we can find a better name ?
- note that the QR module still includes the EigenSolver module for compatibility
2009-09-03 11:39:44 +02:00
Hauke Heibel
e6c9d6c528
Remove last lazyness warnings.
2009-09-02 20:59:57 +02:00
Gael Guennebaud
1e7a9ea70a
fix issue #47 : now m.noalias() = XXX properly resize m if needed
2009-09-01 13:35:44 +02:00
Gael Guennebaud
50c703f0c7
As proposed on the list:
...
- rename EvalBeforeAssignBit to MayAliasBit
- make .lazy() remove the MayAliasBit only, and mark it as deprecated
- add a NoAlias pseudo expression, and MatrixBase::noalias() function
Todo:
- we have to decide whether += and -= assume no aliasing by default ?
- once we agree on the API: update the Sparse module and the unit tests respectively.
2009-08-15 18:35:51 +02:00
Gael Guennebaud
afbd73b5cd
overload operartor* with a ProductBase such that "scalar * (mat * mat)" is optimized
...
as one could naturally expect
2009-08-11 15:15:06 +02:00
Gael Guennebaud
1d4fea48b5
fix a couple of compilations issues
2009-08-06 14:10:02 +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
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
864171df5c
fix a couple of issues related to recent products
2009-07-28 18:11:30 +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