Gael Guennebaud
f7aa9873ca
* fix LDLT's default ctor use
...
* add a reconstructedMatrix() function to LDLT for debug purpose
2010-02-24 10:40:16 +01:00
Benoit Jacob
60325b8330
actually, this is not even meant to be a termination criterion. so the proper fix is this.
2010-02-23 16:10:26 -05:00
Benoit Jacob
3d066f4bc7
LDLT:
...
* fix bug thanks to Ben Goodrich: we were terminating at the wrong place, leaving some matrix coefficients with wrong values.
* don't use Higham's formula here: we're not trying to be rank-revealing.
2010-02-23 16:05:37 -05:00
Benoit Jacob
d92df336ad
Further LU test improvements. I'm not aware of any test failures anymore, not even with huge numbers of repetitions.
...
Finally the createRandomMatrixOfRank() function is renamed to createRandomPIMatrixOfRank, where PI stands for 'partial isometry', that is, a matrix whose singular values are 0 or 1.
2010-02-23 15:40:24 -05:00
Benoit Jacob
7dc75380c1
* FullPivLU: replace "remaining==0" termination condition (from Golub) by a fuzzy compare
...
(fixes lu test failures when testing solve())
* LU test: set appropriate threshold and limit the number of times that a specially tricky test
is run. (fixes lu test failures when testing rank()).
* Tests: rename createRandomMatrixOfRank to createRandomProjectionOfRank
2010-02-23 09:04:59 -05:00
Hauke Heibel
1fd8d7b96a
Attempt to fix PGI compilation issue.
2010-02-23 11:35:51 +01:00
Gael Guennebaud
d2b0eadf52
fully adapt the gebp kernel and optimize it for CPU with only 8 registers
...
(transplanted from 2ed88ebbf1995be90b8d0c25ff10248c8f56d023)
2010-02-22 16:35:05 +01:00
Gael Guennebaud
51a4b929a1
implement an even lower level version of the gebp kernel for MSVC (it seems to be faster with gcc as well)
...
(transplanted from 9a5643551fe068497f84a81cd8986febf1918382)
2010-02-22 15:18:29 +01:00
Thomas Capricelli
1a70f3b48d
fix compilation
2010-02-21 19:30:11 +01:00
Hauke Heibel
a901bed33a
Added IsRowMajor enum to DenseBase.
2010-02-21 18:26:14 +01:00
Hauke Heibel
f079f52b58
merge
2010-02-21 15:25:28 +01:00
Hauke Heibel
f75e6773b0
Added ei_traits<Quaternion>::PlainObject.
2010-02-21 15:24:10 +01:00
Gael Guennebaud
608959aa6f
compilation fix in ldlt() for non matrix types
2010-02-21 10:29:19 +01:00
Gael Guennebaud
71fecd2371
add missing return value
2010-02-20 18:19:34 +01:00
Hauke Heibel
abc8c01080
Renamed PlainMatrixType to PlainObject (Array != Matrix).
...
Renamed ReturnByValue::ReturnMatrixType ReturnByValue::ReturnType (again, Array != Matrix).
2010-02-20 15:53:57 +01:00
Hauke Heibel
f0c8dcf1e2
Renamed AnyMatrixBase to EigenBase.
2010-02-20 15:26:02 +01:00
Gael Guennebaud
4f8773c23a
fix stupid enum values
2010-02-19 17:46:36 +01:00
Gael Guennebaud
016943f870
avoid 2 redundant calls to resize
2010-02-15 11:31:36 +01:00
Gael Guennebaud
dcb395c6f5
explicitly disable the use of evalTo for dense object
2010-02-15 11:09:33 +01:00
Gael Guennebaud
21d0eb3f11
the default implementation should really call evalTo
2010-02-15 11:01:55 +01:00
Hauke Heibel
8519558d11
Workaround for compounds affected by #94 .
2010-02-15 10:11:10 +01:00
Benoit Jacob
9251cfed9b
this had to be done here, not at the end.
2010-02-12 09:03:16 -05:00
Benoit Jacob
37ca4200b2
Piotr's patch was missing many occurences of size_t. So,
...
using std::size_t;
This is the only way that we can ensure QCC support in the long term without having to think about it everytime.
2010-02-12 08:58:29 -05:00
Gael Guennebaud
a76950bdab
fix a couple of ICE with gcc 4.0.1
2010-02-12 09:41:56 +01:00
Piotr Trojanek
1701a5d1f8
std:: namespace fixup for more restricive compilers such as QNX's QCC
2010-02-10 13:24:47 +01:00
Hauke Heibel
ae0a17d30b
Here is the proper fix.
2010-02-11 11:39:02 +01:00
Hauke Heibel
93e86b0884
Fixed typos.
...
Replace NumTraits<bool>::dummy_precision() (three locations) by false in order to suppress warnings.
2010-02-11 11:31:22 +01:00
Gael Guennebaud
48f5980669
fix compilation (cwise and epsilon)
2010-02-11 09:24:29 +01:00
Gael Guennebaud
0ca67afe6a
finally here is a simple solution making (a*b).diagonal() even faster than a.lazyProduct(b).diagonal() !!
2010-02-10 14:08:47 +01:00
Gael Guennebaud
8918d18e21
Improved patch from Manuel Yguel:
...
Enhance AlignedBox to accept integral types and add some usefull methods: diagonal, volume, sample.
2010-02-10 11:40:55 +01:00
Gael Guennebaud
bb290977b8
add highest and lowest functions to NumTraits
2010-02-10 11:11:21 +01:00
Gael Guennebaud
fe0827495a
* move dummy_precision and epsilon to NumTraits
...
* make NumTraits inherits std::numeric_limits
2010-02-10 10:52:28 +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
71e580c4aa
fix nesting in Arraywrapper and nesting_ops
2010-02-09 16:38:36 +01:00
Gael Guennebaud
285bc336d5
document lazyProduct
2010-02-09 14:45:17 +01:00
Gael Guennebaud
840977529f
* as promised, remove the "optimization" for Product::diagonal()
...
* add MatrixBase::lazyProduct
2010-02-09 14:34:31 +01:00
Gael Guennebaud
9ce1212d7c
For the record, here is a solution for (a*b).diagonal, at the cost of extra copies
...
if a and/or b as to be evaluated. So in the next commit I'll remove it. A nice
solution would be to evaluate the lhs/rhs into member of the initial product,
but that would be overkill.
2010-02-09 14:28:22 +01:00
Gael Guennebaud
8185a3c6cf
fix one useless temp & copy
2010-02-09 13:16:29 +01:00
Gael Guennebaud
1cb59e4781
fix nesting lazy prod by ref
2010-02-09 11:27:30 +01:00
Gael Guennebaud
d104d2cd29
add accessors to coeff based product
2010-02-09 11:13:22 +01:00
Gael Guennebaud
5686eca7b1
* fix multiple temporary copies for coeff based products
...
* introduce a lazy product version of the coefficient based implementation
=> flagged is not used anymore
=> small outer product are now lazy by default (aliasing is really unlikely for outer products)
2010-02-09 11:05:39 +01:00
Gael Guennebaud
0398e21198
s/UnrolledProduct/CoeffBasedProduct
2010-02-09 10:02:26 +01:00
Gael Guennebaud
c076fec734
fix the multiple temporary issue for nested products
2010-02-09 09:58:34 +01:00
Gael Guennebaud
8b016e717f
get rid of NestParentByRefBit
2010-02-08 16:51:41 +01:00
Hauke Heibel
871698d3aa
Introduced NestParentByRefBit and NestByRefBit - this should fix temporaries related to nested products.
...
Fixed a few typos and a few warnings.
2010-02-06 17:43:32 +01:00
Gael Guennebaud
6f3f857897
make noalias works for coefficient based products
2010-02-05 23:44:24 +01:00
Gael Guennebaud
52167be4c8
make sure the correct diagoanl() function is called in trace()
2010-02-04 18:51:29 +01:00
Gael Guennebaud
73eb0e633c
* resurected Flagged from Eigen2Support
...
* reimplement .diagonal() for ProductBase to make (A*B).diagonal() more efficient!
2010-02-04 18:28:09 +01:00
Gael Guennebaud
b44240180f
optiization: make hybrid small/large outer products use the unrolled path
2010-02-04 17:17:57 +01:00
Hauke Heibel
d0b4ef81f0
Prevent temporaries for reductions.
2010-02-04 14:26:03 +01:00