Commit Graph

1672 Commits

Author SHA1 Message Date
Gael Guennebaud
6318d53b41 Factorize VERIFY_EVALUATION_COUNT in unit tests 2015-06-19 16:38:26 +02:00
Gael Guennebaud
bb6acc561e Workaround broken complex*real product on old clang versions 2015-06-17 16:11:58 +02:00
Gael Guennebaud
40f326ef2e workaround clang's broken complex division 2015-06-17 15:33:09 +02:00
Gael Guennebaud
736a805883 Add unit test for bug #879 2015-06-16 22:11:41 +02:00
Gael Guennebaud
972a535288 Remove aligned-on-scalar assert and fallback to non vectorized path at runtime (first_aligned already had this runtime guard) 2015-06-14 15:04:07 +02:00
Gael Guennebaud
3946c981b1 Relax tolerance when testing LDLT on singular problems 2015-06-15 15:08:16 +02:00
Gael Guennebaud
2212e40e95 Extend VERIFY_IS_APPROX to report the magnitude of the relative difference in case of failure. This will ease identifying strongest failing tests 2015-06-15 15:03:19 +02:00
Gael Guennebaud
2f2a441a4d Fix use of unitialized buffers. 2015-06-13 22:19:40 +02:00
Gael Guennebaud
d93ba137f2 Introduce EIGEN_PI, get rid of M_PI and acos(-1.0) 2015-06-10 17:12:10 +02:00
Gael Guennebaud
b0d5aaafcc Rename free functions isFinite, isInf, isNaN to be compatible with c++11 2015-06-10 16:17:09 +02:00
Gael Guennebaud
25a98be948 bug #80: merge with d_hood branch on adding more coefficient-wise unary array functors 2015-06-10 15:52:05 +02:00
Gael Guennebaud
192bce2795 bug #890, add a more general routine to check that two dense object reference to the same data 2015-06-10 10:09:04 +02:00
Gael Guennebaud
e6832ce93d Add regression test for bug #890 2015-06-10 09:32:10 +02:00
Gael Guennebaud
feaf76c001 bug #910: add a StandardCompressedFormat option to Ref<SparseMatrix> to enforce standard compressed storage format.
If the input is not compressed, then this trigger a copy for a const Ref, and a runtime assert for non-const Ref.
2015-06-09 23:11:24 +02:00
Gael Guennebaud
f899aeb301 bug #650: fix sparse * dense wrt noalias and compound assignment 2015-06-09 18:33:24 +02:00
Gael Guennebaud
f9350e70eb fix unused variable warning 2015-06-09 15:17:21 +02:00
Gael Guennebaud
3a4299b245 bug #872: remove usage of deprecated bind1st. 2015-06-09 10:52:04 +02:00
Gael Guennebaud
9aef0db992 Skip too large real-world problems for solvers that do not scale (e.g., SimplicialLLT without reordering) 2015-06-09 09:29:53 +02:00
Gael Guennebaud
9a2447b0c9 Fix shadow warnings triggered by clang 2015-06-09 09:11:12 +02:00
Gael Guennebaud
cd8b996f99 Extend unit test and documentation of SelfAdjointEigenSolver::computeDirect 2015-06-08 16:16:42 +02:00
Gael Guennebaud
8f031a3cee bug #997: add missing evaluators for m.lazyProduct(v.homogeneous()) 2015-06-08 15:43:41 +02:00
Gael Guennebaud
e6c5723dcd Add unit test for m.replicate(...)(index). 2015-06-08 15:42:15 +02:00
Gael Guennebaud
98a8d43457 Improve unit testing of real-word sparse problem (fix some shortcommings, use VERIFY, etc.) 2015-06-05 14:33:37 +02:00
Gael Guennebaud
b685660b22 Do go to full accuracy when testing BiCGSTAB. 2015-06-05 14:32:26 +02:00
Gael Guennebaud
a852001196 Add regression test for bugs #854 and #1014, and check that the eigenvector matrix is unitary. 2015-05-12 18:45:39 +02:00
Gael Guennebaud
e66caf48e8 Make test matrices for eigensolver/selfadjoint even more tricky 2015-05-12 18:44:46 +02:00
Christoph Hertzberg
494fa991c3 bug #872: Avoid deprecated binder1st/binder2nd usage by providing custom functors for comparison operators 2015-05-07 17:28:40 +02:00
Gael Guennebaud
c2107d30ce Extend unit tests of sefladjoint-eigensolver 2015-05-07 15:54:07 +02:00
Christoph Hertzberg
da2baf685d Regression test for bug #302
(transplanted from 80fd8fab87
)
Changed DenseIndex to Index
2015-04-26 21:05:33 +02:00
Gael Guennebaud
1681a665d9 Extend unit test of Map<,,Stride<>> with stack allocated buffers and less trivial operations. 2015-04-24 10:38:28 +02:00
Gael Guennebaud
834f66e9fc Extend unit test of Map<> with stack allocated buffers and less trivial operations. 2015-04-24 10:10:19 +02:00
Deanna Hood
0250f4a9f2 Merged default into unary-array-cwise-functors 2015-04-20 14:01:35 -04:00
Gael Guennebaud
5a3c48e3c6 bug #942: fix dangling references in evaluator of diagonal * sparse products. 2015-04-18 22:43:27 +02:00
Christoph Hertzberg
3be9f5c4d7 Constructing a Matrix/Array with implicit transpose could lead to memory leaks.
Also reduced code duplication for Matrix/Array constructors
2015-04-16 13:25:20 +02:00
Deanna Hood
085aa8e601 Don't use M_PI since it's only guaranteed to be defined in Eigen/Geometry 2015-04-08 13:59:18 -05:00
Gael Guennebaud
3105986e71 bug #875: remove broken SparseMatrixBase::nonZeros and introduce a nonZerosEstimate() method to sparse evaluators for internal uses.
Factorize some code in SparseCompressedBase.
2015-04-01 22:27:34 +02:00
Gael Guennebaud
39dcd01b0a bug #973: enable alignment of multiples of half-packet size (e.g., Vector6d with AVX) 2015-04-01 13:55:09 +02:00
Gael Guennebaud
8481dc21ea bug #986: add support for coefficient-based product with 0 depth. 2015-04-01 13:15:23 +02:00
Gael Guennebaud
79b4e6acaf Fix bug #987: wrong alignement guess in diagonal product. 2015-03-31 23:35:12 +02:00
Gael Guennebaud
8313fb7df7 Add row/column-wise reverseInPlace feature. 2015-03-31 21:35:53 +02:00
Gael Guennebaud
dfb674a25e Make reverseInPlace really work in-place. 2015-03-31 20:17:10 +02:00
Gael Guennebaud
20d030f207 Fix vectorization of swap for non trivial expressions 2015-03-31 20:16:02 +02:00
Gael Guennebaud
ae01c05e18 Fix computeProductBlockingSizes with m==0, and add respective unit test. 2015-03-31 15:19:57 +02:00
Christoph Hertzberg
3238ca6abc Addendum to last patch: k is Index and not int 2015-03-31 00:42:14 +02:00
Christoph Hertzberg
1efae98fee bug #985: RealQZ failed when either matrix had zero rows or columns (report and patch by Ben Goodrich)
Also added a regression test
2015-03-30 23:56:20 +02:00
Christoph Hertzberg
266a84558f Optionally build the documentation when building unit tests. 2015-03-27 16:36:59 +01:00
Gael Guennebaud
ad044008da Fix transpose versus adjoint. 2015-03-27 12:07:14 +01:00
Gael Guennebaud
7e225b6fa4 Suppress some false negatives in SVD unit test 2015-03-27 10:55:53 +01:00
Gael Guennebaud
f42b105f73 Add the possibility to make VERIFY* checks to output a warning instead of abording. 2015-03-24 13:39:14 +01:00
Deanna Hood
83e5b7656b Use M_PI instead of acos(-1) for pi 2015-03-22 06:04:31 +10:00
Gael Guennebaud
9ee62fdcd5 Fix random unit test for 32bits systems. 2015-03-19 21:39:37 +01:00
Gael Guennebaud
d7698c18b7 Split sparse_basic unit test 2015-03-19 15:11:05 +01:00
Gael Guennebaud
f329d0908a Improve random number generation for integer and add unit test 2015-03-19 15:10:36 +01:00
Deanna Hood
41b717de25 More extensive unit tests for recent array-wise functors 2015-03-18 03:11:03 +10:00
Deanna Hood
8878e1c1de Remove ambiguity with recent numext methods isNaN and isInf 2015-03-17 22:39:51 +10:00
Deanna Hood
1c78d6f2a6 Add boolean not operator (!) array support 2015-03-17 08:29:57 +10:00
Deanna Hood
85da0c2281 Remove test of now-missing floor, ceil, round complex implementations 2015-03-17 06:56:47 +10:00
Deanna Hood
e1d6e6c972 Make cube, inverse and abs2 free-functions 2015-03-17 06:25:24 +10:00
Deanna Hood
fef4e071d7 Rename isinf to isInf 2015-03-17 05:58:47 +10:00
Deanna Hood
46cf9cda32 Add isfinite array support as isFinite 2015-03-17 04:33:12 +10:00
Deanna Hood
fb68b149cb Rename isnan to isNaN 2015-03-17 02:04:42 +10:00
Gael Guennebaud
1330f8bbd1 bug #973, improve AVX support by enabling vectorization of Vector4i-like types, and enforcing alignement of Vector4f/Vector2d-like types to preserve compatibility with SSE and future Eigen versions that will vectorize them with AVX enabled. 2015-03-13 21:15:50 +01:00
Gael Guennebaud
2f6f8bf31c Add missing coeff/coeffRef members to Block<sparse>, and extend unit tests. 2015-03-13 16:24:40 +01:00
Deanna Hood
f89fcefa79 Add hyperbolic trigonometric functions from std array support 2015-03-11 13:13:30 +10:00
Deanna Hood
a5e49976f5 Add log10 array support 2015-03-11 08:56:42 +10:00
Deanna Hood
19a71056ae Allow calling of square(array) in addition to array.square() 2015-03-11 06:59:28 +10:00
Deanna Hood
31fdd67756 Additional unary coeff-wise functors (isnan, round, arg, e.g.) 2015-03-11 06:39:23 +10:00
Gael Guennebaud
9e885fb766 Add unit tests for CG and sparse-LLT for long int as storage-index 2015-03-09 14:33:15 +01:00
Gael Guennebaud
224a1fe4c6 bug #963: make IncompleteLUT compatible with non-default storage index types. 2015-03-09 13:55:20 +01:00
Gael Guennebaud
cf9940e17b Make sparse unit-test helpers aware of StorageIndex 2015-03-09 13:54:05 +01:00
Gael Guennebaud
14a5f135a3 bug #969: workaround abiguous calls to Ref using enable_if. 2015-03-06 17:51:31 +01:00
Gael Guennebaud
d23fcc0672 bug #978: add unit test for zero-sized products 2015-03-06 16:12:08 +01:00
Gael Guennebaud
4c8b95d5c5 Rename LSCG to LeastSquaresConjugateGradient 2015-03-05 10:16:32 +01:00
Gael Guennebaud
c43154bbc5 Check for no-reallocation in SparseMatrix::insert (bug #974) 2015-03-04 10:16:46 +01:00
Gael Guennebaud
05274219a7 Add a CG-based solver for rectangular least-square problems (bug #975). 2015-03-04 09:34:27 +01:00
Gael Guennebaud
b10cd3afd2 Re-enbale detection of min/max parentheses protection, and re-enable mpreal_support unit test. 2015-02-27 22:38:00 +01:00
Christoph Hertzberg
052b6b40f1 Fix two trivial warnings 2015-02-22 12:40:51 +01:00
Christoph Hertzberg
6af6cf0c2e I can reproduce any problems that justified this hack. However it makes builds fail in C++11 mode. 2015-02-21 19:43:56 +01:00
Gael Guennebaud
01b8440579 With C++11 Matrix<float> + Matrix<complex<float>> does not even compile 2015-02-20 09:32:49 +01:00
Gael Guennebaud
b192e29eae In C++11 destructors do not throw by default (fix CommaInitializer unit test) 2015-02-20 09:28:34 +01:00
Gael Guennebaud
ece6b440f9 Fix a C++11 compilation issue in unit test 2015-02-19 23:31:08 +01:00
Gael Guennebaud
1b7e12847d Fix some calls to result_of on binary functors as unary ones. 2015-02-19 23:30:41 +01:00
Gael Guennebaud
c7bb1e8ea8 Fix a regression when using OpenMP, and fix bug #714: the number of threads might be lower than the number of requested ones 2015-02-18 15:19:23 +01:00
Gael Guennebaud
371d3bef36 Workaround dead store warnings in unit tests. 2015-02-18 11:30:44 +01:00
Christoph Hertzberg
24d65ac0b0 Removed redundant typedef which confused old gcc versions. 2015-02-18 01:03:32 +01:00
Gael Guennebaud
9f49f00feb Extend sparse-determinant unitests 2015-02-16 19:09:48 +01:00
Gael Guennebaud
f0b1b1df9b Fix SparseLU::signDeterminant() method, and add a SparseLU::determinant() method. 2015-02-16 19:09:22 +01:00
Gael Guennebaud
0f464d9d87 bug #897: fix regression in BiCGSTAB(mat) ctor (an all other iterative solvers).
Add respective regression unit test.
2015-02-16 17:05:10 +01:00
Gael Guennebaud
aa6c516ec1 Fix many long to int conversion warnings:
- fix usage of Index (API) versus StorageIndex (when multiple indexes are stored)
 - use StorageIndex(val) when the input has already been check
 - use internal::convert_index<StorageIndex>(val) when val is potentially unsafe (directly comes from user input)
2015-02-16 13:19:05 +01:00
Gael Guennebaud
fc202bab39 Index refactoring: StorageIndex must be used for storage only (and locally when it make sense). In all other cases use the global Index type. 2015-02-13 18:57:41 +01:00
Gael Guennebaud
fe51319980 Merge Index-refactoring branch with default, fix PastixSupport, remove some useless typedefs 2015-02-13 10:03:53 +01:00
Gael Guennebaud
0918c51e60 merge Tensor module within Eigen/unsupported and update gemv BLAS wrapper 2015-02-12 21:48:41 +01:00
Gael Guennebaud
c6e8caf090 Allows Lower|Upper as a template argument of CG and MINRES: in this case the full matrix will be considered. 2015-02-10 18:57:41 +01:00
Gael Guennebaud
87629cd639 bug #897: makes iterative sparse solvers use a Ref<SparseMatrix> instead of a SparseMatrix pointer. This fixes usage of iterative solvers with a Map<SparseMatrix>. 2015-02-09 11:41:25 +01:00
Gael Guennebaud
d4ec48575e Make Block<SparseMatrix> inherit SparseCompressedBase in the case of an inner-panels and fix valuePtr() innerIndexPtr() 2015-02-09 11:14:36 +01:00
Gael Guennebaud
3af29caae8 Cleaning and add more unit tests for Ref<SparseMatrix> and Map<SparseMatrix> 2015-02-09 10:23:45 +01:00
Gael Guennebaud
f2ff8c091e Add a Ref<SparseMatrix> specialization. 2015-02-07 22:04:18 +01:00
Benoit Steiner
c739102ef9 Pulled the latest changes from the trunk 2015-02-06 05:25:03 -08:00
Gael Guennebaud
c6eb84aabc Enable vectorization of transposeInPlace for PacketSize x PacketSize matrices 2015-01-26 17:09:01 +01:00
Gael Guennebaud
e1f1091fde Add support for dense ?= diagonal 2015-01-24 10:32:49 +01:00
Gael Guennebaud
279786e987 Fix missing evaluator in outer-product 2015-01-13 10:25:50 +01:00
Gael Guennebaud
f806c23012 Fix false negatives in geo_transformations unit tests 2014-12-16 16:50:30 +01:00
Gael Guennebaud
99501a2c4c Fix wrong negative in nullary unit test when extended precision is used (FPU). 2014-12-16 16:23:47 +01:00
Christoph Hertzberg
e8cdbedefb bug #877, bug #572: Introduce a global Index typedef. Rename Sparse*::Index to StorageIndex, make Dense*::StorageIndex an alias to DenseIndex. Overall this commit gets rid of all Index conversion warnings. 2014-12-04 22:48:53 +01:00
Gael Guennebaud
b26e697182 Make SparseMatrix::coeff() returns a const reference and add a non const version of SparseMatrix::diagonal() 2014-12-01 14:41:39 +01:00
Gael Guennebaud
8518ba0bbc Fix Hyperplane::Through(a,b,c) when points are aligned or identical. We use the stratgey as in Quaternion::setFromTwoVectors. 2014-11-26 15:01:53 +01:00
Gael Guennebaud
722916e19d bug #903: clean swap API regarding extra enable_if parameters, and add failtests for swap 2014-11-06 09:25:26 +01:00
Gael Guennebaud
c6fefe5d8e Big 853: replace enable_if in Ref<> ctor by static assertions and add failtests for Ref<> 2014-11-05 16:15:17 +01:00
Christoph Hertzberg
c5a3777666 Regression test for (invalid) bug #900. We should make it possible somehow to increase the problem size depending on the available RAM. 2014-10-31 17:19:05 +01:00
Christoph Hertzberg
0833b82efd Run sparse_basic unit tests also for rectangular matrices.
TriangularView with UnitDiag does not work properly yet (bug #901)
2014-10-31 17:12:13 +01:00
Christoph Hertzberg
3d25b1f5b8 Split up some test cases 2014-10-29 17:46:54 +01:00
Christoph Hertzberg
acecb7b09f Fixed include in bdcsvd.cpp 2014-10-29 17:46:33 +01:00
Gael Guennebaud
21c0a2ce0c Move D&C SVD to official SVD module. 2014-10-29 11:29:33 +01:00
Christoph Hertzberg
04ffb9956e Replace TEST_SET_BUT_UNUSED_VARIABLE by already defined EIGEN_UNUSED_VARIABLE 2014-10-24 13:18:23 +02:00
Gael Guennebaud
a303b6a733 bug #670: add unit test for mapped input in sparse solver. 2014-10-20 16:46:47 +02:00
Christoph Hertzberg
c12b7896d0 bug #766: Check minimum CUDA version 2014-10-20 14:23:11 +02:00
Christoph Hertzberg
84aaa03182 Addendum to bug #859: pexp(NaN) for double did not return NaN, also, plog(NaN) did not return NaN.
psqrt(NaN) and psqrt(-1) shall return NaN if EIGEN_FAST_MATH==0
2014-10-20 13:13:43 +02:00
Gael Guennebaud
aa5f79206f Fix bug #859: pexp(NaN) returned Inf instead of NaN 2014-10-20 11:38:51 +02:00
Gael Guennebaud
b4a9b3f496 Add unit tests for Rotation2D's inverse(), operator*, slerp, and fix regression wrt explicit ctor change 2014-10-20 11:04:32 +02:00
Gael Guennebaud
d04f23260d Fix bug #894: the sign of LDLT was not re-initialized at each call of compute() 2014-10-20 10:48:40 +02:00
Gael Guennebaud
a370b1f2e2 Fix SparseLU::absDeterminant and add respective unit test 2014-10-17 16:52:56 +02:00
Benoit Steiner
bfdd9f3ac9 Made the blocking computation aware of the l3 cache
Also optimized the blocking parameters to take into account the number of threads used for a computation
2014-10-15 15:32:59 -07:00
Gael Guennebaud
c566cfe2ba Make SVD unit test even more tough 2014-10-15 23:37:47 +02:00
Gael Guennebaud
fd1aaf4772 merge 2014-10-15 16:33:14 +02:00
Gael Guennebaud
c806009453 Extend svd unit tests to stress problems with duplicated singular values. 2014-10-15 16:32:16 +02:00
Christoph Hertzberg
d3f52debc6 Make cuda_basic test compile again by adding lots of EIGEN_DEVICE_FUNC.
Although the test passes now, there might still be some missing.
2014-10-13 17:18:26 +02:00
Benoit Steiner
a991f94c0e Fixed the thread pool test 2014-10-10 15:20:37 -07:00
Gael Guennebaud
349c2c9235 bug #367: fix double copies in atWithInsertion, and add respective unit-test 2014-10-09 23:35:49 +02:00
Gael Guennebaud
ccd70ba123 Various numerical fixes in D&C SVD: I cannot make it fail with double, but still need to tune for single precision, and carefully test with duplicated singular values 2014-10-09 23:29:01 +02:00
Gael Guennebaud
dbdd8b0883 D&C SVD: add scaling to avoid overflow, fix handling of fixed size matrices 2014-10-06 19:35:57 +02:00
Gael Guennebaud
d44d432baa Re-enable products with triangular views of sparse matrices: we simply have to treat them as a sparse matrix. 2014-10-06 16:11:26 +02:00
Gael Guennebaud
7a17639953 Extend unit tests to check uncompressed sparse inputs in sparse solvers 2014-10-06 11:41:50 +02:00
Christoph Hertzberg
1fa6fe2abd template keyword not allowed before non-template function call 2014-10-01 14:33:55 +02:00
Gael Guennebaud
5180bb5e47 Add missing default ctor in Rotation2D 2014-09-30 16:59:28 +02:00
Christoph Hertzberg
0187504912 Avoid `unneeded-internal-declaration' warning 2014-09-30 16:43:52 +02:00
Christoph Hertzberg
12d59465cb bug #884: Copy constructor of Ref shall never malloc, constructing from other RefBase shall only malloc if the memory layout is incompatible. 2014-09-30 14:57:54 +02:00
Christoph Hertzberg
4ba8aa1482 Fix bug #884: No malloc for zero-sized matrices or for Ref without temporaries 2014-09-25 16:05:17 +02:00
Christoph Hertzberg
27d6b4daf9 Tridiagonalization::diagonal() and ::subDiagonal() did not work. Added unit-test 2014-09-24 14:37:13 +02:00
Gael Guennebaud
446001ef51 Fix nested_eval<Product<> > which wrongly returned a Product<> expression 2014-09-24 09:39:09 +02:00
Gael Guennebaud
3878e6f170 Add a true ctest unit test for failtests 2014-09-23 10:25:12 +02:00
Gael Guennebaud
ff46ec0f24 bug #881: make SparseMatrixBase::isApprox(SparseMatrixBase) exploits sparse computations instead of converting the operands to dense matrices. 2014-09-22 23:33:28 +02:00
Konstantinos Margaritis
60e093a9dc Merged eigen/eigen into default 2014-09-21 14:02:51 +03:00
Gael Guennebaud
03dd4dd91a Unify unit test for BDC and Jacobi SVD. This reveals some numerical issues in BDCSVD. 2014-09-19 15:25:48 +02:00
Gael Guennebaud
0a18eecab3 bug #100: add support for explicit scalar to Array conversion (as enable implicit conversion is much more tricky) 2014-09-19 13:25:28 +02:00
Gael Guennebaud
0ca43f7e9a Remove deprecated code not used by evaluators 2014-09-18 15:15:27 +02:00
Gael Guennebaud
e44d78dab3 workaround ambiguous call 2014-09-16 17:10:25 -07:00
Gael Guennebaud
341ae8665d avoid division by 0 2014-09-16 16:05:06 -07:00
Benoit Steiner
10a79ca3a3 Merged latest updates from the Eigen trunk. 2014-09-15 09:18:16 -07:00
Gael Guennebaud
0403d49006 Fix inverse unit test making sure we try to invert an invertible matrix 2014-09-14 20:12:07 +02:00
Gael Guennebaud
c83e01f2d6 Favor column major storage for inner products 2014-09-14 19:38:49 +02:00