Gael Guennebaud
d00bff91ad
workaround weird gcc 4.0.1 compilation error
2010-02-15 11:00:30 +01: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
Manuel Yguel
71b64d3498
Updated tests for enhanced AlignedBox with volume, diagonal and better handling of integral types.
2010-01-20 14:55:10 +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
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
71e580c4aa
fix nesting in Arraywrapper and nesting_ops
2010-02-09 16:38:36 +01:00
Hauke Heibel
0a680a9857
Added a non-diagonal product nesting test.
2010-02-09 14:24:17 +01:00
Hauke Heibel
dd283b3f82
Fixed paste© error.
2010-02-09 14:12:41 +01:00
Hauke Heibel
928ae382b4
Added debug only unit test for nesting ops - just run ./check nesting.
2010-02-09 14:07:37 +01:00
Gael Guennebaud
d104d2cd29
add accessors to coeff based product
2010-02-09 11:13:22 +01:00
Hauke Heibel
1a77334d54
Silenced type conversion warnings.
2010-02-03 19:20:25 +01:00
Hauke Heibel
7b2dd988fa
Fixes #89 .
...
Added regression test.
2010-02-02 09:27:41 +01:00
Hauke Heibel
15c0a78c6e
One warning less...
2010-01-30 17:24:18 +01:00
Hauke Heibel
6dee5440e4
Adapted mean to work with complex numbers.
...
Added regression test.
2010-01-29 12:12:02 +01:00
Jitse Niesen
375b5faa8a
Fix copy-paste error in first_aligned test.
2010-01-28 17:06:20 +00:00
Hauke Heibel
33abe75afa
Fixed Quaternion operator*= added regression test.
2010-01-28 10:32:44 +01:00
Gael Guennebaud
0ce5bc0d14
add support for global math function for array
2010-01-27 23:23:59 +01:00
Hauke Heibel
7d92b7ad5f
Modified license header.
2010-01-27 20:47:37 +01:00
Hauke Heibel
3bfba8c9a9
Added the missing unit test file.
2010-01-27 20:34:42 +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
dcbf104bcc
add EIGEN_DEFAULT_TO_ROW_MAJOR cmake option for the tests.
2010-01-27 07:48:48 -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
dbf3af866e
Remove some Array #includes.
2010-01-21 12:31:03 +00:00
Jitse Niesen
e0c2c6385f
Add small test for Matrix::setIdentity()
...
This is to exhibit the bug that makes the jacobisvd_7 test fail.
2010-01-20 10:51:59 +00:00
Gael Guennebaud
c70d54257b
add unit tests for true array objects
2010-01-18 22:54:20 +01:00
Thomas Capricelli
0c89475317
unit tests for == / != operators
2010-01-17 23:57:59 +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
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
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
44ed79fc3c
finally, undo this
2010-01-07 22:03:58 -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
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
9d9e00b608
merge and add start/end to Eigen2Support
2010-01-05 13:07:32 +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
Gael Guennebaud
71a171c267
s/asMatrix()/matrix()
2010-01-04 19:13:08 +01:00
Gael Guennebaud
b6898996d4
fix dirty triangular unit test
2010-01-04 19:02:43 +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
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
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
5adfe934c8
add checks for on the right triangular solving with matrices
2009-12-23 10:24:13 +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
af4d8c5cec
a couple of fixes, now Array passes the linearstructure test
2009-12-17 19:28:54 +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
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
Jitse Niesen
945cbc3bc6
Add test for issue #75 (Hessenberg of 1x1 matrix).
...
Also remove an superfluous #include in matrixExponential test.
2009-12-16 22:24:24 +00:00
Gael Guennebaud
2033903376
a trivial compilation fix
2009-12-16 19:21:10 +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
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
Benoit Jacob
46a9cac7fb
silence 'statement has no effect' warning with gcc 4.4
2009-12-14 23:31:00 -05: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
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
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
Gael Guennebaud
8e05f9cfa1
add a DenseBase class for MAtrixBase and ArrayBase and more code factorisation
2009-12-04 23:17:14 +01:00
Benoit Jacob
de25059502
* Remove test_ prefix in tests
...
* tests now honor EIGEN_REPEAT and EIGEN_SEED if no arguments were passed
2009-12-02 12:07:47 -05: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
Hauke Heibel
84551d067e
merge
2009-12-02 11:08:44 +01:00
Mark Borgerding
c05ae35441
merge with tip
2009-12-01 18:03:15 -05:00
Mark Borgerding
8fce0b5459
added newline at the end of file to quiet gcc warning
2009-12-01 17:37:33 -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
Hauke Heibel
2bf354da80
Much more NestByValue cleanup.
2009-12-01 11:51:22 +01:00
Benoit Jacob
4b1aca2288
precision ---> dummy_precision
2009-11-26 22:05:02 -05:00
Benoit Jacob
5923bcb1b9
improve the scripts for building unit tests:
...
* support unsupported/
* use egrep instead of grep, properly escape special chars.
2009-11-25 21:26:37 -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
1e2bcba5e4
forward port slight changes in the 4x4 inverse test
2009-11-25 09:08:03 -05:00
Benoit Jacob
e6ea9e401c
improve precision test
2009-11-23 11:24:06 -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
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
34be9d4537
Replace toDense() by toDenseMatrix() in tests.
2009-11-20 12:22:46 +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
b5f4636d42
* eigen2->eigen3
...
* bump version to 2.91.0
* add FindEigen3.cmake
2009-11-19 12:09:04 -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
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
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
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
b25eb5fdaa
PermutationMatrix: add inverse() and product of permutations
2009-11-16 09:39:07 -05:00
Benoit Jacob
e09768e3bc
handle make errors ---> exit, don't run ctest
2009-11-16 09:38:44 -05:00
Thomas Capricelli
f7e73f1bf9
don't be shy and test them all
2009-11-16 04:20:13 +01: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
7e3c4096d8
xargs ---> xargs echo
...
(xargs alone doesnt seem to be documented in the man page, while xargs echo is documented)
2009-11-12 15:37:50 -05:00
Benoit Jacob
9b7708f660
introduce check target, and some renaming
2009-11-12 15:02:52 -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
Benoit Jacob
358452bbe6
* add ./debug and ./release scripts
...
* update the messages
* rename EIGEN_CMAKE_RUN_FROM_CTEST to something saner
2009-11-12 12:07:18 -05:00
Benoit Jacob
fc492b6264
add mctestr script. In your build directory, just do:
...
./mctestr ^qr 5
and it will build all tests matching ^qr with 5 jobs and then do `ctest -R ^qr`
2009-11-12 09:35:10 -05:00
Benoit Jacob
bc18ba7e49
* add maketests script. It is like make but takes a regexp allowing to build selected targets. Next step will be a "mctestr" script doing that and then calling ctest -R.
...
* in runtest.sh, don't override the default number of repeats. If one thinks the default should be changed, let's change it at the source.
2009-11-11 21:25:21 -05:00
Benoit Jacob
ff7fbc9431
* use standard CMAKE_BUILD_TYPE
...
* remove debug_xxx targets
* runtest.sh: don't run make
2009-11-11 16:11:33 -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
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
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
Benoit Jacob
ba7bfe110c
port the qr module to ei_solve_xxx.
2009-11-08 10:21:26 -05:00
Jitse Niesen
daa4574a43
Add regression test for issue #66 (ComplexSchur of zero matrix).
2009-11-05 03:46:18 +00:00
Benoit Jacob
0182695204
move cholesky to ei_xxx_return_value
2009-11-03 11:34:45 -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
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
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
44cdbaba4d
* make inverse() do a ReturnByValue
...
* add computeInverseWithCheck
* doc improvements
* update test
2009-10-26 14:16:50 -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
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
Benoit Jacob
83a7b7c44c
support gcc 3.3
2009-10-22 15:56:10 -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
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
Benoit Jacob
580672ea43
Add new default option EIGEN_SPLIT_LARGE_TESTS and cmake macro ei_add_test_multi.
...
When enabled, large tests are split into smaller executables.
This needs minimal changes in the unit tests.
Updated the LU test to use it.
2009-10-19 13:29:00 -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
0255f28279
oops, didn't want to commit that
2009-10-18 01:35:07 -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
Benoit Jacob
3c4a025a54
merge
2009-10-15 16:09:43 -04:00
Hauke Heibel
0927ba1fd3
More warning fixes.
2009-10-14 19:55:23 +02:00
Gael Guennebaud
1443094072
compilation fix: make the generic template ctor explicit
2009-10-13 09:23:09 +02:00
Gael Guennebaud
2049f742e4
trivial compilation fix
2009-10-13 08:53:01 +02:00
Benoit Jacob
c4ab6a2032
also test that the matrix Q is unitary
2009-10-12 22:33:51 -04:00
Hauke Heibel
e5bf72679c
Fixed nmake parameter.
...
Disabled debug_* targets for MSVC_IDE (they already exist).
Removed the make usage message for MSVC_IDE.
2009-10-09 14:09:25 +02:00
Gael Guennebaud
af31345df3
really fix stable norm compilation for older gcc
2009-10-07 14:25:12 +02: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
a9a9ba8453
remove unneeded stuff
2009-10-05 07:58:53 -04:00
Benoit Jacob
fa9fc1397b
next attempt ... introduce EIGEN_CMAKE_RUN_FROM_CTEST, in that case don't EXCLUDE_FROM_ALL
2009-10-05 07:42:31 -04:00
Benoit Jacob
b78b2ede5f
finally, the right fix: set CTEST_BUILD_TARGET.
...
So this is the come-back of btest target, and the default target is empty again.
2009-10-04 20:27:44 -04:00
Benoit Jacob
a1d9b76dd5
add debug targets like debug_qr to build a specific test with debug info
...
remove the btest target, instead just do "make" since anyway we have to let "make" build the tests
2009-10-03 16:50:50 -04:00
Hauke Heibel
7d2ca0e05e
Added cmake project definitions.
2009-10-02 18:45:24 +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
4b04a9bcfa
*add test to prevent future regression
2009-09-29 21:00:13 -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
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
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
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
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
Benoit Jacob
1df54e3ac2
fix bug #42 , add missing Transform::Identity()
2009-09-19 19:59:49 -04:00
Gael Guennebaud
3b5a9acba8
fix stable_norm unit test
2009-09-18 11:41:38 +02:00
Benoit Jacob
760636a237
fix bug #52 : Transform::inverse() should return a Transform
2009-09-18 18:45:45 -04:00
Gael Guennebaud
fcae32cc3f
compilation fixes
2009-09-17 15:11:13 +02:00
Gael Guennebaud
24950bdfcb
make ColPivotingQR use HouseholderSequence
2009-09-16 15:56:20 +02:00
Gael Guennebaud
49dd5d7847
* add a HouseholderSequence class (not good enough yet for Triadiagonalization and HessenbergDecomposition)
...
* rework a bit AnyMatrixBase, and mobe it to a separate file
2009-09-16 14:35:42 +02:00
Benoit Jacob
a4fd0aa25b
* fix bug in col-pivoting qr, forgot to swap the colNorms when swapping cols
...
* add Gael a copyright line
2009-09-16 14:19:59 -04:00
Benoit Jacob
46be9c9ac1
* fix super nasty bug: vector.maxCoeff(&index) didn't work when 'vector'
...
was a row-vector. Fixed by splitting the vector version from the matrix version.
* add unit test, the visitors weren't covered by any test!!
2009-09-16 14:18:30 -04:00
Gael Guennebaud
4a6e5694d6
disable warning 279: controlling expression is constant for ICC
2009-09-15 13:03:24 +02:00
Hauke Heibel
e6cac85333
Added missing casts.
2009-09-08 08:27:18 +02:00
Hauke Heibel
437a79e1ab
Fixed unit test and improved code reusage for resizing.
2009-09-07 17:48:42 +02:00
Hauke Heibel
e49236bac6
Ups - that was not intended to be part of the commit.
2009-09-07 17:23:29 +02:00
Hauke Heibel
64095b6610
Changed the AnyMatrixBase / ei_special_scalar_op inheritance order as proposed by Gael.
...
Added conservativeResizeLike as discussed on the mailing list.
2009-09-07 17:22:01 +02:00
Gael Guennebaud
ae1d1c8f6c
improve coverage of matrix-vector product
2009-09-07 14:04:56 +02:00
Gael Guennebaud
fb5f546161
improve coverage of unitOrthogonal
2009-09-07 12:53:25 +02:00
Gael Guennebaud
b56bb441dd
add a stable_norm unit test
2009-09-07 12:46:16 +02:00
Gael Guennebaud
a921292381
uncomment stuff commented for debugging (sorry for the noise)
2009-09-07 11:26:20 +02:00
Gael Guennebaud
b0aa2520f1
* add real scalar * complex matrix, real matrix * complex scalar,
...
and complex scalar * real matrix overloads
* allows the inner and outer product specialisations to mix real and complex
2009-09-04 11:22:32 +02:00
Gael Guennebaud
6902ef0824
extend mixingtype test to check diagonal products and fix the later for real*complex products
2009-09-04 10:17:28 +02:00
Gael Guennebaud
68b28f7bfb
rename the EigenSolver module to Eigenvalues
2009-09-04 09:23:38 +02:00
Hauke Heibel
7f5256f628
Added conservativeResize + unit test.
2009-09-03 17:27:51 +02:00
Gael Guennebaud
3eb37fe1fb
update mixingtype unit test to reflect current status, but it is still clear
...
we should allow matrix products between complex and real ?
2009-09-03 13:03:26 +02: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
Hauke Heibel
2abd5eeffd
Added support to overwrite the generator type.
...
Eigen'fied the new variables.
2009-09-02 20:57:41 +02:00
Benoit Jacob
7aa6fd3625
big reorganization in JacobiSVD:
...
- R-SVD preconditioning now done with meta selectors to avoid compiling useless code
- SVD options now honored, with options to hint "at least as many rows as cols" etc...
- fix compilation in bad cases (rectangular and fixed-size)
- the check for termination is now done on the fly, no more goto (should have done that earlier!)
2009-09-03 02:53:51 -04:00
Benoit Jacob
ec20d58317
* add serious unit test for swap
...
* fix my stupidity in Matrix::swap()
2009-09-02 16:56:48 -04:00
Benoit Jacob
cc375e2f79
merge
2009-09-02 06:37:41 -04:00
Benoit Jacob
e6b77bcc6b
JacobiSVD: implement general R-SVD using full-pivoting QR, so we now support any rectangular matrix size by reducing to the smaller of the two dimensions (which is also an optimization)
2009-09-02 06:36:55 -04:00
Hauke Heibel
59f5bce41c
fix issue #49
2009-09-01 23:15:30 +02:00
Gael Guennebaud
5b8ffa4d46
clean a bit the previous commit which came from a patch queue,
...
and since it was my first try of the patch queue feature I did not
managed to apply it with a good commit message, so here you go:
* Add a ComplexSchur decomposition class built on top of HessenbergDecomposition
* Add a ComplexEigenSolver built on top of ComplexSchur
There are still a couple of FIXME but at least they work for any reasonable matrices,
still have to extend the unit tests to stress them with nasty matrices...
2009-09-01 16:35:23 +02:00
Gael Guennebaud
4d91229bdc
[mq]: eigensolver
2009-09-01 16:20:56 +02:00
Gael Guennebaud
67ccc6b851
I've been too fast (again)
2009-09-01 13:44:21 +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
Benoit Jacob
6e4e94ff32
* JacobiSVD:
...
- support complex numbers
- big rewrite of the 2x2 kernel, much more robust
* Jacobi:
- fix weirdness in initial design, e.g. applyJacobiOnTheRight actually did the inverse transformation
- fully support complex numbers
- fix logic to decide whether to vectorize
- remove several clumsy methods
fix for complex numbers
2009-08-31 22:26:15 -04:00
Benoit Jacob
29c6b2452d
simplifications
2009-08-31 22:09:44 -04:00
Benoit Jacob
5339db6164
add VERIFY_IS_UNITARY
2009-08-31 22:08:43 -04:00