Commit Graph

1634 Commits

Author SHA1 Message Date
Hauke Heibel
42b88983ff Fixed mean reduction leading to unresolved symbol. 2010-01-29 11:48:16 +01:00
Hauke Heibel
33abe75afa Fixed Quaternion operator*= added regression test. 2010-01-28 10:32:44 +01:00
Thomas Capricelli
fcd074c928 silent warning of icc 2010-01-27 23:43:32 +01:00
Gael Guennebaud
0ce5bc0d14 add support for global math function for array 2010-01-27 23:23:59 +01:00
Hauke Heibel
5b9cc65418 Added EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION macro including unit tests and documentation. 2010-01-27 20:34:05 +01:00
Benoit Jacob
828d058b4b EIGEN_ENUM_MIN ---> EIGEN_SIZE_MIN 2010-01-27 11:42:04 -05:00
Benoit Jacob
35bacf7cb8 *forward port fix in MapBase::coeff(int) and coeffRef(int)
*forward port expanded map.cpp unit test
*fix unused variable warnings
2010-01-27 07:11:49 -05:00
Hauke Heibel
4365a48748 Added an ei_linspaced_op to create linearly spaced vectors.
Added setLinSpaced/LinSpaced functionality to DenseBase.
Improved vectorized assignment - overcomes MSVC optimization issues.
CwiseNullaryOp is now requiring functors to offer 1D and 2D operators.
Adapted existing functors to the new CwiseNullaryOp requirements.
Added ei_plset to create packages as [a, a+1, ..., a+size].
Added more nullaray unit tests.
2010-01-26 19:42:17 +01:00
Jitse Niesen
bdb0e9fcd0 Clean up one compilation error and two warnings. 2010-01-26 16:02:19 +00:00
Benoit Jacob
6ae7d842a3 generate a compilation error when using ReturnByValue::coeff() or coeffRef(),
instead of doing an infinite recursion
2010-01-24 21:44:18 -05:00
Gael Guennebaud
be11a254ac rm ExpressionMaker stuff (weird as I was pretty sure that I had already removed them) 2010-01-22 10:17:43 +01:00
Gael Guennebaud
d40c110053 lot of cleaning:
- clean the *_PUBLIC_INTERFACE_*
- update Diagonal, ReturnByValue, ForceAlignedAccess, UnaryView, etc. to support array
- many other small stuff
2010-01-22 10:15:41 +01:00
Hauke Heibel
f1a025185a Added array() to ArrayBase and matrix() to MatrixBase(). 2010-01-21 17:55:09 +01:00
Jitse Niesen
dbf3af866e Remove some Array #includes. 2010-01-21 12:31:03 +00:00
Hauke Heibel
7bf5930496 Adapted Geometry includes.
Adapted the decomposition documentation regarding the solve signature.
2010-01-21 09:43:30 +01:00
Hauke Heibel
ecc71abdda Added the Array include's warning for GCC. 2010-01-20 21:36:50 +01:00
Hauke Heibel
26df0609e2 Corrected the Array include's deprecation warning for MSVC. 2010-01-20 20:56:52 +01:00
Hauke Heibel
85d80d0fcd merge 2010-01-20 20:51:42 +01:00
Hauke Heibel
5d48cc1f5b Moved the Array module to Core. 2010-01-20 20:51:01 +01:00
Jitse Niesen
e78e3cd41b Fix bug in MatrixBase::setIdentity(int, int). 2010-01-20 12:07:46 +00:00
Gael Guennebaud
d5d5417062 add SSE code (from Intel) for the fast inversion of 4x4 matrices of double 2010-01-19 16:04:04 +01:00
Gael Guennebaud
60b0ddc3e1 update the fast 4x4 SSE inversion code from more recent Intel's code 2010-01-19 15:33:45 +01:00
Jitse Niesen
a13ffbd836 Get rid off GCC warning on comparing enums from different types. 2010-01-19 11:05:52 +00:00
Gael Guennebaud
9f899808d7 fix scalar - matrix 2010-01-18 22:56:47 +01:00
Gael Guennebaud
0158d78906 extend CwiseNullaryOp to support Array 2010-01-18 22:56:25 +01:00
Thomas Capricelli
c436abd0ac fix both compilation and previous fix : now 'basicstuff' passes again.
(Gael: i dont think you meant removing this setIdentity(), did you?)
2010-01-18 10:29:11 +01:00
Gael Guennebaud
6b380992b5 fix != 2010-01-18 08:18:48 +01:00
Benoit Jacob
b5a6f382ca work around warning about /* inside of a comment (gcc 4.4) 2010-01-16 11:50:09 -05:00
Hauke Heibel
37d4505228 More documentation improvements. 2010-01-16 15:43:11 +01:00
Hauke Heibel
90d5a7c0dd Adapted doxygen's new style sheet.
Added documentation to some of the typedefs.
2010-01-15 15:45:07 +01:00
Gael Guennebaud
dd4b2f044d forgot to include this file in previous commit 2010-01-15 13:36:09 +01:00
Gael Guennebaud
d62ee0668f remove useless using comp. assignment operators 2010-01-15 13:34:28 +01:00
Gael Guennebaud
76a355817b fix a warning 2010-01-15 13:26:39 +01:00
Benoit Jacob
bfe6fdde24 allow to multiply a householder sequence and a matrix when one is real and one is complex.
This is especially important as in bidiagonalization, the band matrix is real.
2010-01-15 00:35:26 -05:00
Benoit Jacob
ddc32adb0e New UpperBidiagonalization class 2010-01-14 22:30:58 -05:00
Benoit Jacob
f1d1756cdd Introduce third template parameter to HouseholderSequence: int Side.
When it's OnTheRight, we read householder vectors as rows above the diagonal.
With unit test. The use case will be bidiagonalization.
2010-01-14 19:16:49 -05:00
Gael Guennebaud
5d796e363c compilation fix for UmfPack 2010-01-14 22:31:06 +01:00
Hauke Heibel
814659c201 Changed parts of the documentation.
The param keyword is now tparam (in Matrix).
Made PlainMatrixType non-internal (currently MatrixBase only); I think this is an important typedef in particular when writing your own template methods.
2010-01-14 10:10:07 +01:00
Hauke Heibel
c0b2aa0ace Added some minor comments.
Adapted some of the doc/snippets.
2010-01-13 17:51:09 +01:00
Hauke Heibel
a87c0a5ed8 Fixes #83. 2010-01-12 17:13:46 +01:00
Hauke Heibel
553fb31f7e Using operator*= is not required in MapBase. Since no other operator*= is present, none of the base class operator*='s may be hidden and all of them should be visible. As far as I was able to verify, this is not affecting GCC. This fixes #84. 2010-01-12 16:30:03 +01:00
Hauke Heibel
e48c3faf25 Fixed the ProductReturnType (at least for UnrolledProducts).
Fixed operator= (MSVC specific) in Array.
2010-01-12 13:38:04 +01:00
Hauke Heibel
a8ea2c8cef Fixes #81. 2010-01-12 10:07:06 +01:00
Hauke Heibel
caa9ced853 Add a real plain matrix type to the ei_nested declaration used in product return type. 2010-01-12 09:41:06 +01:00
Hauke Heibel
a05d42616b Fixed DenseStorageBase typedef (MSVC specific).
Unified the ei_plain_matrix_type.
2010-01-11 18:16:59 +01:00
Benoit Jacob
24a09ceae8 * Fix a bug in HouseholderQR with mixed fixed/dynamic size: must use EIGEN_SIZE_MIN instead of EIGEN_ENUM_MIN, and there are many other occurences throughout Eigen!
* HouseholderSequence:
  - add shift parameter
  - add essentialVector() method to start abstracting the direction
  - add unit test in householder.cpp
2010-01-11 08:48:39 -05:00
Hauke Heibel
325da2ea3c Fixed conservativeResize.
Fixed multiple overloads for operator=.
Removed debug output.
2010-01-11 13:57:50 +01:00
Jitse Niesen
376341de4a Eigen/src/Core/DenseStorageBase.h: add 'typename' 2010-01-11 10:04:39 +00:00
Hauke Heibel
83d21d5ff6 Fixes unit test swap_3. Friends are not inherited. 2010-01-10 23:15:36 +01:00
Hauke Heibel
3d5912d458 Backed out the removal of the actual resize like implementation. Now, resizing by dimension is optional. 2010-01-10 23:11:05 +01:00
Hauke Heibel
350c7beb92 Fixed swapping and corresponding MSVC compilation. 2010-01-10 20:02:26 +01:00
Hauke Heibel
e0f5b4add3 Fixed MSVC compilation. 2010-01-10 15:36:28 +01:00
Jitse Niesen
ef0ed5b271 test/triangular.cpp: isUpper() --> isUpperTriangular()
Necessary to get the test to compile after c5d7c9f0de
.
I'm assuming that isUpperTriangular() is the name we want; the alternative
is to change Eigen/src/Core/{MatrixBase,TriangularMatrix}.h
2010-01-08 12:46:24 +00:00
Benoit Jacob
0fb0307377 implement BandMatrix::evalTo (thus avoid infinite recursion when assigning a BandMatrix to a Matrix) 2010-01-07 22:08:18 -05:00
Benoit Jacob
b05f59ee07 Backed out changeset 58fb27cd56 2010-01-07 22:00:45 -05:00
Benoit Jacob
58fb27cd56 undo 2010-01-07 21:53:52 -05:00
Benoit Jacob
7befc8d6f3 undo my last commit 2010-01-07 21:51:40 -05:00
Trevor Irons
5f0cf1d7f6 Added std::sqrt(std::complex<float>) and std::sqrt(std::complex<double>) support to MathFunctions.h 2010-01-07 15:03:51 -07: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
Benoit Jacob
82ec250a0f make applyHouseholderOnTheRight take a row vector, not a column vector:
this is how it's used in practice.
2010-01-07 12:50:02 -05:00
Gael Guennebaud
7d3fe69eff Various documentation updates:
- update the tutorial
- update doc of deprecated cwise function
- update cwise doc snippets
2010-01-06 17:18:38 +01:00
Gael Guennebaud
c11300dbd5 a couple of fixes 2010-01-06 17:16:30 +01:00
Benoit Jacob
e77748ef96 merge 2010-01-06 08:24:42 -05:00
Benoit Jacob
f287ad651a fix comments 2010-01-06 08:23:19 -05:00
Gael Guennebaud
023e0dfb4e improve the new experimental sparse product 2010-01-05 19:56:59 +01:00
Gael Guennebaud
eda4e98c61 merge 2010-01-05 16:04:36 +01:00
Gael Guennebaud
d8534be728 add a novel, experimental sparse product 2010-01-05 15:57:16 +01:00
Gael Guennebaud
1837b65b28 add operators *= and /= (bis) 2010-01-05 15:41:01 +01:00
Gael Guennebaud
cab85218db add missing operators: /, /=, *= 2010-01-05 15:36:32 +01:00
Gael Guennebaud
3e22e3907f fix types of scalar constants 2010-01-05 15:35:44 +01:00
Gael Guennebaud
97f0f02e10 forgot to hg add this file 2010-01-05 14:36:55 +01:00
Gael Guennebaud
9d9e00b608 merge and add start/end to Eigen2Support 2010-01-05 13:07:32 +01:00
Gael Guennebaud
90d2ae7fec fix aliasing detection 2010-01-05 12:46:07 +01:00
Gael Guennebaud
37851cfe11 fix a coupe of warnings 2010-01-05 10:15:29 +01:00
Benoit Jacob
39ac57fa6d Big renaming:
start ---> head
  end   ---> tail
Much frustration with sed syntax. Need to learn perl some day.
2010-01-04 21:24:43 -05:00
Thomas Capricelli
57275b2b8c make some changes to please clang, fix some warnings too. 2010-01-04 23:21:04 +01:00
Gael Guennebaud
71a171c267 s/asMatrix()/matrix() 2010-01-04 19:13:08 +01:00
Gael Guennebaud
8eab9fb87e port VectorwiseOp and Swap to the novel mechanisms, and various cleanning 2010-01-04 19:00:16 +01:00
Gael Guennebaud
826bff58c6 Fix #69 for the second time, and add the respective regression test 2010-01-04 17:36:26 +01:00
Benoit Jacob
80d1f9e966 remove debug output. sorry! 2010-01-02 18:01:39 -05:00
Benoit Jacob
ff94eaa4ae clarify docs as requested on forum 2010-01-02 12:55:32 -05:00
Benoit Jacob
25f8adfa6c * Fix bug #79: ei_alignmentOffset was assuming that ptr is multiple of
sizeof(Scalar), and that assumption breaks with double on linux x86-32.
* Rename ei_alignmentOffset to ei_first_aligned
* Rewrite its documentation and part of its body
* The variant taking a MatrixBase doesn't need a separate size argument.
2010-01-02 12:38:16 -05:00
Benoit Jacob
ed5c972801 put the assign assert and debug info before the assignment itself 2010-01-01 21:47:53 -05:00
Gael Guennebaud
72b6c05bf0 sorry for committing this mess 2009-12-23 13:30:25 +01:00
Gael Guennebaud
24302ad5cd fix #76, MayLinearVectorize depends on MaxSizeAtCompileTime and not on MaxInnerSize 2009-12-23 13:19:28 +01:00
Gael Guennebaud
0b5853d917 fix the xpr analyzer for Transpose 2009-12-23 13:17:46 +01:00
Gael Guennebaud
c90ccd089a clean a bit Hessenberg and make sure the subdiagonal coeff is real even for 2x2 matrices 2009-12-23 12:30:05 +01:00
Gael Guennebaud
791bac25f2 fix #75, and add a basic unit test for Hessenberg
(it was indirectly tested by the eigenvalue decomposition)
2009-12-23 12:18:54 +01:00
Gael Guennebaud
d65c8cb60a fix #69 and extend unit tests or triangular solvers 2009-12-23 11:48:53 +01:00
Gael Guennebaud
fcc3be5dce a couple of fixes after thye merge 2009-12-23 09:07:01 +01:00
Gael Guennebaud
eaaba30cac merge with default branch 2009-12-22 22:51:08 +01:00
Gael Guennebaud
e182e9c616 extend the DenseStorageMatrix mechanism to all expressions 2009-12-22 17:37:11 +01:00
Benoit Jacob
4ec99bbc0c support gcc 4.5 2009-12-21 13:49:43 -05:00
Gael Guennebaud
02beaea2f8 add missing inclusion of LU/arch, thanks to J.B. Rouault 2009-12-19 13:49:00 +01:00
Gael Guennebaud
f8cb9a6230 oops, remove duplicated ctor 2009-12-19 13:45:14 +01:00
Gael Guennebaud
9d54783036 much better workaround for empty struct (the previous one caused GCC 4.3 to generate wrong code leading to segfaults) 2009-12-18 17:08:59 +01:00
Gael Guennebaud
af4d8c5cec a couple of fixes, now Array passes the linearstructure test 2009-12-17 19:28:54 +01:00
Gael Guennebaud
4b70b47998 clean a bit Matrix and fix static Map functions 2009-12-17 14:48:26 +01:00
Gael Guennebaud
5ca90e1b0c some cleaning in DenseStorageBase 2009-12-17 13:56:33 +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
Gael Guennebaud
4e9c227bd5 partial LU optimization: noalias 2009-12-17 11:43:42 +01:00
Gael Guennebaud
30d47860dd more fixes 2009-12-17 10:43:46 +01:00
Gael Guennebaud
34c95029ca a couple of fixes and cleaning 2009-12-17 10:00:35 +01:00
Gael Guennebaud
9f79558839 a lot of cleaning and fixes 2009-12-16 19:18:40 +01:00
Gael Guennebaud
22a6ab1f4b add an eigen2support test and a few fixes 2009-12-16 17:37:21 +01:00
Benoit Jacob
5cb779e5e1 * introduce ei_alignmentOffset(MatrixBase&,Integer)
couldnt put it in Memory.h as it needs the definition of MatrixBase
* make Redux use it
2009-12-16 08:53:14 -05:00
Gael Guennebaud
e0aa29121f this really fix the previous warning 2009-12-16 13:06:47 +01:00
Gael Guennebaud
c35fcf3bbd fix warning by making ei_empty_struct::_ei_dummy_ private 2009-12-16 12:53:55 +01:00
Gael Guennebaud
bb59c22dc9 fix compilation when mixing types 2009-12-16 12:48:15 +01:00
Gael Guennebaud
6db6774c46 * fix aliasing checks when the lhs is also transposed. At the same time,
significantly simplify the code of these checks while extending them
  to catch much more expressions!
* move the enabling/disabling of vectorized sin/cos to the architecture traits
2009-12-16 11:41:16 +01:00
Gael Guennebaud
7a9988ebb6 fix spasre triangular solve for row major lower matrices 2009-12-14 10:25:21 +01:00
Gael Guennebaud
a314814a6e suppress unused variable warnings 2009-12-15 13:59:02 +01:00
Benoit Jacob
949f14e1e4 no, this wasn't equivalent to ei_pload at all, after all! 2009-12-15 07:43:05 -05:00
Benoit Jacob
805eb9cc8b Gael, who is a man of few words^Winstructions, is right, as usual. 2009-12-15 06:50:40 -05:00
Hauke Heibel
3ea1f97f69 Suppressed the warning for missing assignment generators (forgot that in the last submission).
Commented Quake3's fast inverser sqrt in SSE's MathFunction header.
2009-12-15 08:09:14 +01:00
Benoit Jacob
4948448939 *use scalar instructions, packet not needed here
*remove unused var warning
2009-12-14 23:13:54 -05:00
Benoit Jacob
39095c8faa only include SSE path if SSE enabled 2009-12-14 22:52:11 -05:00
Benoit Jacob
d02eccf584 add SSE path for Matrix4f inverse, taken from Intel except that we do a kosher
division instead of RCPPS-followed-by-Newton-Raphson. The rationale for that is
that elsewhere in Eigen we dont allow ourselves this approximation (which throws
2 bits of mantissa), so there's no reason we should allow it here.
2009-12-14 22:47:14 -05:00
Benoit Jacob
d5f3b2dc94 change the Arch constants: const int ---> enum, more explicit names, and use
of a namespace instead of Prefix_Name.
2009-12-14 17:26:24 -05:00
Hauke Heibel
832045d363 Warning 4512 (assignment operators could not be generated) is now simply disabled.
All unimplemented assignment operators have been removed.
2009-12-14 10:32:43 +01:00
Hauke Heibel
4498864fc8 Fixed a bad type conversion. 2009-12-13 09:26:57 +01:00
Jitse Niesen
929521678d Correct type of ei_solve_retval<LLT,...>::operator= 2009-12-12 23:54:44 +00:00
Hauke Heibel
3dce51bd8e Removed more warnings. 2009-12-12 14:49:43 +01:00
Hauke Heibel
d088ee35f6 Added to possibility to compile unit tests at maximum warning level.
Silenced (amongst others) many conversion related warnings.
2009-12-12 11:39:07 +01:00
Gael Guennebaud
9facdaf7b9 some compilation fixes 2009-12-10 22:15:22 +01:00
Gael Guennebaud
7caf751fdd adapt select, replicate and reverse 2009-12-10 22:00:35 +01:00
Benoit Jacob
d2e44f2636 * 4x4 inverse: revert to cofactors method
* inverse tests: use createRandomMatrixOfRank, use more strict precision
* tests: createRandomMatrixOfRank: support 1x1 matrices
* determinant: nest the xpr
* Minor: add comment
2009-12-09 12:43:25 -05:00
Jitse Niesen
8bfa354ee3 Documentation clean up.
* remove non-existant reference to CwiseAll
* define \householder_module (used in HouseholderSequence.h)
* update I01_TopicLazyEvaluation.dox - Product is now called GeneralProduct
* remove reference to list of examples which was deleted ages ago
* rename PartialLU_solve.cpp snippet to PartialPivLU_solve.cpp
2009-12-08 15:12:27 +00:00
Gael Guennebaud
8e05f9cfa1 add a DenseBase class for MAtrixBase and ArrayBase and more code factorisation 2009-12-04 23:17:14 +01:00
Gael Guennebaud
c68c695b87 Fix poor Quaternion::slerp snapping 2009-12-04 15:01:17 +01:00
Gael Guennebaud
ea684af6b4 merge 2009-12-04 12:40:29 +01:00
Gael Guennebaud
7aad434160 fix compilation and clean a bit Map<Quaternion> 2009-12-04 12:26:56 +01:00
Gael Guennebaud
e12f5adbde fix MSVC10 compilation 2009-12-02 19:32:54 +01:00
Benoit Jacob
3e73f6036c * HouseholderSequence:
* be aware of number of actual householder vectors
    (optimization in non-full-rank case, no behavior change)
  * fix applyThisOnTheRight, it was using k instead of actual_k
* QR: rename matrixQ() to householderQ() where applicable
2009-12-02 11:11:09 -05:00
Mathieu Gautier
26ea7c9801 * remove empty destructors in Matrix.h and MatrixStorage.h 2009-12-02 11:09:56 +01:00
Hauke Heibel
84551d067e merge 2009-12-02 11:08:44 +01:00
Hauke Heibel
95861fbd6c Added NestByValue and .nestByValue() again for the sake of backwards compatibility. 2009-12-02 10:53:30 +01:00
Hauke Heibel
e3612bc0b8 Removed unnecessary code. 2009-12-02 09:11:24 +01:00
Mark Borgerding
c05ae35441 merge with tip 2009-12-01 18:03:15 -05:00
Mark Borgerding
ff1e9542f6 added comments to help vim understand the header files are c++. 2009-12-01 18:00:29 -05:00
Benoit Jacob
68117c267c ColPivQR: now the unit tests even succeeds:
* with random matrices multiplied by 1e+8 (i.e. fixed wrong absolute fuzzy compare)
* with 10,000 repetitions (i.e. the fuzzy compare is really clever)
and when it occasionnally fails, less than once in 10,000 repeats, it is only on the exact rank computation.
2009-12-01 13:51:35 -05:00
Benoit Jacob
95d88e1327 Big reworking of ColPivQR and its unit test, which now passes even with thousands of repetitions and correctly tests matrices of all sizes. Several surprises along the way: for example, a major cause of trouble was the optimized "table of column squared norms" where the accumulation of imprecision was a serious issue; another surprise is that tests like "x!=0" before dividing by x really benefit from being replaced by fuzzy tests, as i hit real cases where i got wrong results in 1/epsilon. 2009-12-01 13:26:29 -05:00
Benoit Jacob
49c0986d86 minor cleanup 2009-12-01 13:22:14 -05:00
Hauke Heibel
d3250cb38f That's it NestByValue and .nestByValue() are both gone! 2009-12-01 13:29:08 +01:00
Hauke Heibel
b08d5b2d2c Even more NestByValue cleanup... 2009-12-01 13:16:51 +01:00
Hauke Heibel
2bf354da80 Much more NestByValue cleanup. 2009-12-01 11:51:22 +01:00
Hauke Heibel
3091be5134 Removed NestByValue dependency from Cholesky, Eigenvalues, LU and QR. 2009-12-01 10:22:54 +01:00
Hauke Heibel
7b3e205ebd Removed NestByValue dependency from VectorwiseOp. 2009-12-01 09:56:40 +01:00
Hauke Heibel
88be826791 Removed NestByValue dependency from MatrixBase::select(). 2009-12-01 09:49:15 +01:00
Gael Guennebaud
b2a5fb874f add specialization ei_ref_selector for sparse matrix types 2009-12-01 06:21:29 +01:00
Hauke Heibel
e6c560aedf Removed wrong typename. 2009-11-30 19:06:07 +01:00
Hauke Heibel
1c2e476fa7 Initial commit for a modified ei_nested logic. 2009-11-30 18:56:56 +01:00
Benoit Jacob
4b1aca2288 precision ---> dummy_precision 2009-11-26 22:05:02 -05:00
Thomas Capricelli
f795681da0 export stableNorm(), blueNorm() and hypotNorm() to colwise() and rowwise()
+ rudimentary test
2009-11-26 02:28:13 +01:00
Benoit Jacob
684d76eba3 add SSE4 support, start with integer multiplication 2009-11-24 15:12:43 -05:00
Benoit Jacob
abdb2a2bd5 fix assert and handle Unit shapes 2009-11-24 12:14:40 -05:00
Benoit Jacob
44d0d667cd 4x4 inverse:
* change block selection threshold from 1e-2 to 1e-1
* add rigorous precision test
2009-11-23 10:13:21 -05:00
Gael Guennebaud
80ebeae48d Add the concept of base class plugins, and started to write the ArrayBase class.
Sorry for this messy commit but I have to commit it...
2009-11-20 18:20:55 +01:00
Gael Guennebaud
4af1753b6f * remove EnforceAlignedAccess option to Block, VectorBlock, Map and MapBase
because thanks to the previous commit this is not needed anymore
* add a more general ForceAlignedAccess expression which can be used for any expression.
  It is already used by StableNorm.h.
2009-11-20 16:30:14 +01:00
Gael Guennebaud
eb8f450071 Hey, finally the copyCoeff stuff is not only used to implement swap anymore :)
Add an internal pseudo expression allowing to optimize operators like +=, *= using
the copyCoeff stuff.
This allows to easily enforce aligned load for the destination matrix everywhere.
2009-11-20 15:39:38 +01:00
Jitse Niesen
b0baf43114 Eigen/CMakeLists.txt: remove parens from if.
Only CMake 2.6.3 and later recognize this syntax, and at the moment we
require 2.6.2. CMake uses the right precendence, per its man page, so the
parentheses are not necessary.
2009-11-20 11:26:26 +00:00
Benoit Jacob
6cbf662f14 * don't laugh, but these bugs took me forever to fix.
* expand unit tests to make sure to catch them: they nearly escaped the existing tests as these memory violations were highly dependent on the numbers of rows and cols.
2009-11-19 22:01:13 -05:00
Benoit Jacob
eac3232095 minor improvements in triangular stuff 2009-11-19 20:50:50 -05:00
Benoit Jacob
88b551e89b * fix compilation of unit-tests (sorry, had tested only 1 channel)
* remove buggy (superfluous?) specialization in the meta-unroller
2009-11-19 19:20:19 -05:00
Benoit Jacob
a20a744adc TriangularMatrix: extend to rectangular matrices 2009-11-19 17:07:55 -05:00
Benoit Jacob
2275f98d7b move signature file to root directory, where it belongs 2009-11-19 12:41:28 -05:00
Benoit Jacob
bbf0eb35a7 * in Eigen/CMakeLists.txt, finally do a globbing to we no longer will have problems with "oops forgot to install new module".
* add a file Eigen/signature_of_eigen3_matrix_library, use it to make FindEigen3.cmake more solid: able to find Eigen in either eigen3/ or eigen/ and not mix it up with Eigen2.
2009-11-19 12:31:11 -05:00
Benoit Jacob
b5f4636d42 * eigen2->eigen3
* bump version to 2.91.0
* add FindEigen3.cmake
2009-11-19 12:09:04 -05:00
Benoit Jacob
abb2a1bb15 simplification 2009-11-18 17:44:20 -05:00
Benoit Jacob
126a8e6a69 fix remaining bug in ColPivHouseholderQR, so now all tests pass again 2009-11-18 17:40:45 -05:00
Benoit Jacob
40865fa28c fix bugs, old and new:
* old bug: in CwiseBinaryOp: only set the LinearAccessBit if both sides have the same storage order.
* new bug: in Assign.h, only consider linear traversal if both sides have the same storage order.
2009-11-18 17:20:39 -05:00
Benoit Jacob
11fa2ae2c6 temporarily disable linear traversal.
Actually I don't think it's buggy. But it probably triggers existing bugs, I suspect that
some xprs have LinearAccessBit and shouldn't have it.
Also this fixes the "bugs" with JacobiSVD ---> now it works again
2009-11-18 16:31:14 -05:00
Benoit Jacob
8860203e6a fix stuff after the PermutationMatrix changes.
I still have JacobiSVD errors when cols>rows
2009-11-18 12:41:24 -05:00
Gael Guennebaud
e3d890bc5a Another big refactoring change:
* add a new Eigen2Support module including Cwise, Flagged, and some other deprecated stuff
* add a few cwiseXxx functions
* adapt a few modules to use cwiseXxx instead of the .cwise() prefix
2009-11-18 18:15:19 +01:00
Benoit Jacob
94c706d04f Assign.h: add LinearTraversal (non-vectorized index-based traversal)
Rename some constants to make names match more closely what they mean.
2009-11-18 11:57:07 -05:00
Gael Guennebaud
0529ecfe1b Big refactoring/cleaning in the spasre module with
in particular the addition of a selfadjointView, and the
extension of triangularView. The rest is cleaning and does not
change/extend the API.
2009-11-18 14:52:52 +01:00
Gael Guennebaud
1e62e0b0d8 more ET refactoring:
* extend Cwise for multiple storage base class
* a lot of cleaning in the Sparse module
2009-11-17 16:04:19 +01:00
Benoit Jacob
9f21e2aab7 port the QR module to PermutationMatrix 2009-11-17 08:14:54 -05:00
Gael Guennebaud
63bcc1c0fb adapt CwiseBinaryOp and the Sparse counter part 2009-11-17 10:11:27 +01:00
Benoit Jacob
30b610a10f vade retro 2009-11-16 21:45:01 -05:00
Benoit Jacob
ac00902f84 for consistency: PlainMatrixType ---> DenseMatrixType 2009-11-16 21:43:15 -05:00
Benoit Jacob
984c000778 addToDense ---> addTo
subToDense ---> subTo
2009-11-16 21:33:41 -05:00
Benoit Jacob
07412b2075 PermutationMatrix: add setIdentity and transpositions methods
LU: make use of that
2009-11-16 21:28:26 -05:00
Benoit Jacob
b90744dc05 Port FullPivLU to PermutationMatrix 2009-11-16 17:05:12 -05:00
Benoit Jacob
76c614f9bd PartialPivLU: port to PermutationMatrix
PermutationMatrix: add resize()
2009-11-16 15:36:07 -05:00
Benoit Jacob
eb6df28c6c DiagonalMatrix: release-quality documentation
BandMatrix: rename toDense() ---> toDenseMatrix() for consistency
2009-11-16 15:25:58 -05:00
Benoit Jacob
e8d0dbf82e PermutationMatrix:
* make multiplication order not be reversed
 * release-quality documentation
2009-11-16 15:07:33 -05:00
Benoit Jacob
8a1bada43d initialize-by-zero: remember that when the newsize==oldsize, resize() must remain a NOP 2009-11-16 13:45:06 -05:00
Gael Guennebaud
1c9a2d246f adapt CwiseUnaryOp and CwiseUnaryView 2009-11-16 19:39:29 +01:00
Gael Guennebaud
2a3a6fe45e Experiment the ET refactoring on Transpose for Dense and Sparse storages.
All tests work fine.
2009-11-16 18:19:08 +01:00
Benoit Jacob
b25eb5fdaa PermutationMatrix: add inverse() and product of permutations 2009-11-16 09:39:07 -05:00
Benoit Jacob
955cd7f884 * add PermutationMatrix
* DiagonalMatrix:
   - add MaxSizeAtCompileTime parameter
   - DiagonalOnTheLeft ---> OnTheLeft
   - fix bug in DiagonalMatrix::setIdentity()
2009-11-15 21:12:15 -05:00
Mathieu Gautier
6680fa42ee * add Map<Quaternion> test based on Map from test/map.cpp
* replace implicit constructor AngleAxis(QuaternionBase&) by an explicit one, it seems ambiguous for the compiler
* remove explicit constructor with conversion type quaternion(Quaternion&): conflict between constructor.
* modify EIGEN_INHERIT_ASSIGNEMENT_OPERATORS to suit Quaternion class
2009-11-13 16:41:51 +01:00
Benoit Jacob
8b563d7163 ouch, avoid infinite loop!
optimization is not so important here, so a for loop will do.
2009-11-12 14:08:47 -05:00
Benoit Jacob
5266a78aca also optionnally initialize by zero after resizing 2009-11-12 12:49:00 -05:00
Benoit Jacob
8132ee3908 * add non-default option to initialize matrices by 0
(useful for porting)
* maketests really has to be in test/
2009-11-12 12:39:22 -05:00
Jitse Niesen
343eec7ca8 Compilation fix: makeHousholderInPlace now uses references. 2009-11-11 16:23:09 +00:00
Benoit Jacob
bf691cc3f1 fix PowerPC platform detection 2009-11-11 10:52:00 -05:00
Benoit Jacob
a440385b41 *adapt Householder to the convention that we now favor refs over ptrs for output. Keep "workspace" as pointer because it is an array (which is now more obvious).
*rename makeHouseholderSequence to householderSequence, because that's what it returns.
2009-11-10 21:22:20 -05:00
Gael Guennebaud
f647fb8dd4 fix compilation and removed some unused stuff in skyline 2009-11-10 21:22:55 +01:00
Gael Guennebaud
58632c1652 fix #68 I did not see the skyline matrix patch contained that 2009-11-10 14:19:03 +01:00
Gael Guennebaud
1879403562 mv the Skyline module to unsupported/ 2009-11-10 12:47:42 +01:00
kayhman
1333fe651d Added basic SkylineMatrix. 2009-11-04 15:18:12 +01:00
Benoit Jacob
92749eed11 * merge
* remove a ctor in QuaternionBase as it gives a strange error with GCC 4.4.2.
2009-11-09 09:08:03 -05:00
Benoit Jacob
4b366b07be add missing includes 2009-11-09 08:04:20 -05:00
Benoit Jacob
9a0900e33e last round of changes, mainly to return derived types instead of base types, and fix various compilation issues 2009-11-09 07:51:31 -05:00
Gael Guennebaud
670651e2e0 Quaternion: fix compilation, cleaning 2009-11-09 10:48:18 +01:00
Benoit Jacob
e4e58e8337 simplifications in the ei_solve_impl system, factor out some boilerplate code 2009-11-08 16:51:41 -05:00
Benoit Jacob
ba7bfe110c port the qr module to ei_solve_xxx. 2009-11-08 10:21:26 -05:00
Gael Guennebaud
aa0974286f fix compilation adding a makeconst helper struct 2009-11-07 09:07:23 +01:00
Gael Guennebaud
771c0507fb back out previous back out, and this time don't forget
to include the NumTraits.h file in the commit ;)
2009-11-06 11:23:18 +01:00
Jitse Niesen
1470afda5b Backed out previous changeset: Does not compile.
There is no member Nested in NumTraits.
2009-11-06 09:16:25 +00:00
Gael Guennebaud
fe81b3f651 Add the possibility to control the storage mode of scalar value (by value or reference)
in order to avoid unecessary copies when using complex scalar types (e.g., a AutoDiffScalar)
2009-11-05 18:06:33 +01:00
Benoit Jacob
68210b03c1 port svd to the ei_xxx_return_value thing
this commit made in caltrain from Palo Alto to SF
2009-11-04 21:00:12 -05:00
Benoit Jacob
4c456d4211 fix bug in svd solve reported on forum, was apparently assuming square matrix, not sure how the unit test could work. 2009-11-04 11:46:17 -05:00
Hauke Heibel
3979f6d8aa Let's try to stick to the original code, thus activate the fix of #62 only for 64 bit builds. 2009-11-04 15:49:22 +01:00
Hauke Heibel
e2170b9f7e Direct access of the packet structs fixes bug #62 and doe not seem to
influence compiler optimization.
2009-11-04 15:38:11 +01:00
Gael Guennebaud
a7bebe0aeb an attempt to fix a compilation issue with MSVC 2009-11-04 09:04:50 +01:00
Benoit Jacob
0182695204 move cholesky to ei_xxx_return_value 2009-11-03 11:34:45 -05:00
Benoit Jacob
a77872dd6c move partial-pivoting lu to ei_solve_impl 2009-11-03 03:06:34 -05:00
Benoit Jacob
da363d997f introduce ei_xxx_return_value and ei_xxx_impl for xxx in solve,kernel,impl
put them in a new internal 'misc' directory
2009-11-03 02:18:10 -05:00
Gael Guennebaud
979431b987 fix #66 : upper triangular checks in ComplexSchur 2009-11-02 10:46:40 +01:00
Benoit Jacob
3ae4e3880f fix compilation 2009-10-31 14:36:31 -04:00
Benoit Jacob
48261fc773 * default MatrixBase ctor: make it protected, make it a static assert, only do the check when debugging eigen to avoid slowing down compilation for everybody (this check is paranoiac, it's very seldom useful)
* add private MatrixBase ctors to catch cases when the user tries to construct MatrixBase objects directly
2009-10-31 11:50:15 -04:00
Benoit Jacob
f975b9bd3e SVD::solve() : port to new API and improvements 2009-10-30 08:51:33 -04:00
Benoit Jacob
6b48e932e9 *port the Cholesky module to the new solve() API
*improve documentation
2009-10-29 21:11:05 -04:00
Hauke Heibel
d0562bd473 corrected the computation cost of mean 2009-10-29 19:58:54 +01:00
Hauke Heibel
c70a603e34 added mean() reduction 2009-10-29 19:56:58 +01:00
Gael Guennebaud
e513cc75c4 oops I forgot to include that file in the previous commit (fixing #65) 2009-10-29 14:24:09 +01:00
Gael Guennebaud
541eac0828 fix #65: MatrixBase::nonZero() 2009-10-29 14:22:02 +01:00
Benoit Jacob
e8dd552257 sync with mainline 2009-10-28 19:06:45 -04: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
6219f9acfa * rename new Quat class to Quaternion, remove existing Quaternion
* add Copyright line for Mathieu
* cast() was broken (compile errors) and needed anyway to be in QuaternionBase
* it's VectorBlock<T,3>, don't pass additional parameter 1, it has different meaning!!
* make it compile with GCC (put 'typename' at the right location)
2009-10-27 15:45:24 -04:00
Mathieu Gautier
611d2b0b1d Quaternion could now map an array of 4 scalars :
new classes :
* QuaternionBase
* Map<Quaternion>
2009-10-27 13:19:16 +00:00
Hauke Heibel
427f8a87d1 Added dox for the new typedefs. 2009-10-27 16:02:36 +01:00
Hauke Heibel
dbaba9019b Added more common typedefs. 2009-10-27 15:57:21 +01:00
Hauke Heibel
7cc9fb5d0a Umeyama is now working with fixed size src and dst points. 2009-10-27 15:29:12 +01:00
Benoit Jacob
1f1c04cac1 sync the documentation examples 2009-10-26 14:37:43 -04:00
Benoit Jacob
44cdbaba4d * make inverse() do a ReturnByValue
* add computeInverseWithCheck
* doc improvements
* update test
2009-10-26 14:16:50 -04:00
Benoit Jacob
07d1bcffda remove 1 useless layer of functions 2009-10-26 12:30:29 -04:00
Benoit Jacob
ec02388a5d big rewrite in Inverse.h
in particular, the API is essentially finalized and the 4x4 case is fixed to be numerically stable.
2009-10-26 11:18:23 -04:00
Hauke Heibel
66fe5a5f36 It is just not that easy and requires more work to get it done right. 2009-10-24 14:48:34 +02:00
Gael Guennebaud
a382963b04 * extend Map to allow the user to specify whether the mapped data
is aligned or not. This is done using the Aligned constant:
  Map<MatrixType,Aligned>::Map(data);
* rename ForceAligned to EnforceAlignedAccess, and update its doc,
  and emphasize this is mainly an internal stuff.
2009-10-23 14:26:14 +02:00
Hauke Heibel
99bb29abcf demeaning with colwise expression 2009-10-22 10:11:26 +02:00
Benoit Jacob
68d48511b2 move PartialLU to the new API 2009-10-21 17:06:42 -04:00
Benoit Jacob
c3180b7ffb MatrixBase:
* support resize() to same size (nop). The case of FFT was another case where that make one's life far easier.
   hope that's ok with you Gael. but indeed, i don't use it in the ReturnByValue stuff.

FFT:
 * Support MatrixBase (well, in the case with direct memory access such as Map)
 * adapt unit test
2009-10-20 23:25:49 -04:00
Benoit Jacob
13f31b8daf * make PartialLU avoid to generate inf/nan when given a singular matrix
(result undefined, but at least it won't take forever on intel 387)
* add lots of comments, especially to LU.h
* fix stuff I had broken in Inverse.h
* split inverse test
2009-10-20 00:36:07 -04:00
Benoit Jacob
9a700c2974 * LU unit test: finally test fixed sizes
* ReturnByValue: after all don't eval to temporary for generic MatrixBase impl
2009-10-19 10:56:37 -04:00
Benoit Jacob
47eeb40380 remove the m_originalMatrix member. Instead, image() now takes the original matrix as parameter. It was the only method to use it anyway. Introduce m_isInitialized. 2009-10-18 15:21:19 -04:00
Benoit Jacob
d71c7f42d3 * useThreshold -> setThreshold
* remove defaultThreshold()
2009-10-18 14:20:14 -04:00
Benoit Jacob
8332c232db big huge changes in LU!
* continue the decomposition until a pivot is exactly zero;
  don't try to compute the rank in the decomposition itself.
* Instead, methods such as rank() use a new internal parameter
  called 'threshold' to determine which pivots are to be
  considered nonzero.
* The threshold is by default determined by defaultThreshold()
  but the user can override that by calling useThreshold(value).
* In solve/kernel/image, don't assume that the diagonal of U
  is sorted in decreasing order, because that's only approximately
  true. Additional work was needed to extract the right pivots.
2009-10-18 00:47:40 -04:00
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