Gael Guennebaud
7b0c4102fa
* add a Make* expression type builder to allow the
...
construction of generic expressions working
for both dense and sparse matrix. A nicer solution
would be to use CwiseBinaryOp for any kind of matrix.
To this end we either need to change the overall design
so that the base class(es) depends on the kind of matrix,
or we could add a template parameter to each expression
type (e.g., int Kind = ei_traits<MatrixType>::Kind)
allowing to specialize each expression for each kind of matrix.
* Extend AutoDiffScalar to work with sparse vector expression
for the derivatives.
2009-10-16 13:22:38 +02:00
Benoit Jacob
3c4a025a54
merge
2009-10-15 16:09:43 -04:00
Benoit Jacob
41e942d3fb
don't try to finish early
2009-10-15 16:09:17 -04:00
Hauke Heibel
d177c1f3ac
Inlining fixes + fixed typo.
...
Removed ei_assert in presence of static assert.
2009-10-15 21:07:14 +02:00
Hauke Heibel
0927ba1fd3
More warning fixes.
2009-10-14 19:55:23 +02:00
Hauke Heibel
c37cfc32b3
Fixed more W4 warnings.
2009-10-14 11:08:00 +02:00
Hauke Heibel
f4661e696e
Resize is only defined in Matrix and not in MatrixBase.
...
I am not sure whether the better fix is to move the resize functions to MatrixBase.
2009-10-14 11:07:11 +02:00
Gael Guennebaud
8c37b1b5b7
add missing PartialReduxExpr::coeff(index) function
2009-10-13 14:41:57 +02:00
Gael Guennebaud
1443094072
compilation fix: make the generic template ctor explicit
2009-10-13 09:23:09 +02:00
Gael Guennebaud
81a70cef5c
merge
2009-10-07 14:26:42 +02:00
Gael Guennebaud
af31345df3
really fix stable norm compilation for older gcc
2009-10-07 14:25:12 +02:00
Benoit Jacob
24e1d3266a
merge
2009-10-06 09:27:01 -04:00
Benoit Jacob
80ede36b24
allow arbitrary resulttype, fixes Xuewen's issue, and this stuff is going to get deeply refactored soon anyway.
2009-10-06 09:26:28 -04:00
Gael Guennebaud
4cf7366027
fix compilation in stable norm, move a platform check to the unit tests
2009-10-06 10:24:41 +02:00
Gael Guennebaud
904f35d194
discard vectorization in matrix-vector product when data is not even
...
aligned on the scalar type size (e.g., for double on 32 bits system without -malign-double)
2009-10-05 17:22:16 +02:00
Benoit Jacob
bb1cc0d092
after all we're not aligning to 8byte boundary
...
keep most of the changes though as they make the code more extensible
2009-10-05 10:55:42 -04:00
Benoit Jacob
d41577819b
we were already aligning to 16 byte boundary fixed-size objects that are multiple of 16 bytes;
...
now we also align to 8byte boundary fixed-size objects that are multiple of 8 bytes.
That's only useful for now for double, not e.g. for Vector2f, but that didn't seem to hurt. Am I missing something? Do you prefer that we don't align Vector2f at all?
Also, improvements in test_unalignedassert.
2009-10-05 10:11:11 -04:00
Benoit Jacob
71f19d90d0
forgot to hg add this file
2009-10-02 12:40:19 -04:00
Gael Guennebaud
bcdeb68b63
merge
2009-10-01 13:28:22 +02:00
Gael Guennebaud
9a3cae4655
better fix for (v * v') * v, we still have to find a way to reorder it
2009-10-01 13:27:03 +02:00
Benoit Jacob
3529179376
merge
2009-10-01 07:26:47 -04:00
Hauke Heibel
5409ce1625
Fixed wrong line endings.
2009-10-01 07:20:09 +02:00
Benoit Jacob
3a315fdc9a
make Replicate ctor require the exact expected type
2009-09-30 15:47:11 -04:00
Gael Guennebaud
d7a2a37a4c
bugfix in the eigenvalue solvers (forgot to resize the eigen vectors)
2009-09-30 16:48:02 +02:00
Benoit Jacob
fa65b09661
add outerproduct coeff(int,int) method.
...
This is needed to make this expression work:
(vec1*vec2.transpose())*vec3
Gael, no objection? Seems to make sense as that's fast.
2009-09-29 20:30:28 -04:00
Benoit Jacob
eeabd18afc
Fix compilation of HouseholderQR and ColPivotingHouseholderQR for non-square fixed-size matrices.
...
For Colpiv that was just changing MatrixQType to MatrixType in the instantiation of HouseholderSequence.
For HouseholderQR I also re-ported the solve method from Colpiv as there were multiple issues.
2009-09-28 10:49:55 -04:00
Benoit Jacob
67bf7c90c5
* update test to expose bug #57
...
* update createRandomMatrixOfRank to support fixed size
2009-09-28 09:40:18 -04:00
Benoit Jacob
765600458b
* bump to 2.90.0 now that it's agreed that we're doing eigen3
...
---> question: do we change the prefix eigen2/ to eigen3/ now?
no, better wait until we've also changed the repository name
* more message improvements: "Install Eigen" was unclear as it left
out other things like the BLAS library
2009-09-27 18:05:54 -04:00
Benoit Jacob
92480ffd26
* Introduce make targets btest (build tests), blas (build blas lib), demos (build demos).
...
* remove EIGEN_BUILD_TESTS and siblings
* add summary at the end of cmake run, hopefully not too verbose
* fix build of quaternion demo
* kill remnants of old binary library option
2009-09-27 17:48:53 -04:00
Hauke Heibel
e115fa3cea
Ok, too many class bodies - it was only required for ei_svd_precondition_2x2_block_to_be_real.
2009-09-27 17:18:19 +02:00
Hauke Heibel
3c74d6b7d4
Added private, non-implemented assignment operators to functions that don't need them (fixes VC warning on /W4).
2009-09-27 17:03:02 +02:00
Hauke Heibel
13545eab9b
Fixed VC compilation error on the JacobiSVD module.
2009-09-27 17:00:10 +02:00
Benoit Jacob
924b55e9a9
when copying a ReturnByValue into a MatrixBase, first eval it to a PlainMatrixType.
...
This allows to limit the number of instantiations of the big template method evalTo.
Also allows to get rid of the dummy MatrixBase::resize().
See "TODO" comment.
2009-09-26 22:48:16 -04:00
Benoit Jacob
e82ab8a5dd
move also inverse() to ReturnByValue, by doing a solve on NestByValue<Identity>.
...
also: adding resize() to MatrixBase was really needed ;)
2009-09-26 11:40:29 -04:00
Hauke Heibel
104f9954e1
Removed implicit type conversion (VC warning fix).
2009-09-25 14:58:20 +02:00
Hauke Heibel
21d2533723
Matrix::conservativeResize, resize only when necessary.
2009-09-25 14:44:48 +02:00
Gael Guennebaud
bdf603caec
remove some dirty lines
2009-09-25 12:58:41 +02:00
Gael Guennebaud
e12bd2e8d2
extend the support for bool
2009-09-25 12:58:04 +02:00
Hauke Heibel
3d6e4ab879
Uuups that was not yet intended for a commit.
2009-09-25 10:14:16 +02:00
Hauke Heibel
2fbf5ce7df
Fixed issue #57 .
2009-09-25 10:12:09 +02:00
Benoit Jacob
176c26feb5
allow to do xpr = solve(b) etc... just by adding a dummy MatrixBase::resize()
2009-09-22 01:41:09 -04:00
Benoit Jacob
4f9e270343
* make LU::kernel() and LU::image() also use ReturnByValue
...
* make them return zero vector in the degenerate case, instead of asserting
(let's stick to the principle that we only assert on memory errors)
2009-09-22 00:16:51 -04:00
Benoit Jacob
0ad3494bd3
fix docs
2009-09-22 21:51:23 -04:00
Benoit Jacob
ab5cc8284a
convert LU::solve() to the new API
2009-09-22 20:58:29 -04:00
Benoit Jacob
c1c780a94f
* ReturnByValue:
...
-- simpplify by removing the 2nd template parameter
-- rename Functor to Derived, as now it's a usual CRTP
* Homogeneous:
-- in products, honor the Max sizes etc.
2009-09-22 12:20:45 -04:00
Hauke Heibel
c6822d6723
Added EIGEN_REF_TO_TEMPORARY define for rvalue support.
...
Allowed VC10 to make use of static_assert.
2009-09-21 19:59:58 +02:00
Benoit Jacob
1df54e3ac2
fix bug #42 , add missing Transform::Identity()
2009-09-19 19:59:49 -04:00
Benoit Jacob
828a79ac78
allow to override EIGEN_RESTRICT, to satisfy a smart ass blogger who claims
...
that eigen2 owes all its performance to nonstandard restrict keyword.
well, this can also improve portability in case some compiler doesn't have __restrict.
2009-09-19 19:45:58 -04:00
Gael Guennebaud
0b60027f3c
implement __gnuc_forget_about_setZero_its_over_now
2009-09-18 15:36:05 +02:00
Gael Guennebaud
3b5a9acba8
fix stable_norm unit test
2009-09-18 11:41:38 +02:00