Commit Graph

1688 Commits

Author SHA1 Message Date
Gael Guennebaud
6536b4bad7 Implement temporary-free path for "D.nolias() ?= C + A*B". (I thought it was already implemented) 2015-10-09 15:28:09 +02:00
Gael Guennebaud
ae38910693 The evalautor of Solve was missing the EvalBeforeNestingBit flag. 2015-10-09 14:57:19 +02:00
Gael Guennebaud
515ecddb97 Add unit test for nested_eval 2015-10-09 14:29:46 +02:00
Gael Guennebaud
78b8c344b5 Add unit test for CoeffReadCost 2015-10-09 14:28:48 +02:00
Gael Guennebaud
321cb56bf6 Add unit test to check nesting of complex expressions in redux() 2015-10-09 13:29:39 +02:00
Gael Guennebaud
c9718514f5 Fix nesting sub-expression in outer-products 2015-10-08 21:41:53 +02:00
Gael Guennebaud
8d00a953af Fix a nesting issue in some matrix-vector cases. 2015-10-08 17:36:57 +02:00
Gael Guennebaud
dd934ad057 Re-enable vectorization of LinSpaced, plus some cleaning 2015-10-08 17:27:01 +02:00
Gael Guennebaud
412c049ba4 Fix a warning 2015-10-08 16:27:54 +02:00
Gael Guennebaud
aa6b1aebf3 Properly implement PartialReduxExpr on top of evaluators, and fix multiple evaluation of nested expression 2015-10-08 15:57:05 +02:00
Gael Guennebaud
1b148d9e2e Move IncompleteCholesky to official modules 2015-10-08 11:32:46 +02:00
Gael Guennebaud
41cc1f9033 Remove debuging prod() and lazyprod() function, plus some cleaning in noalias assignment 2015-10-07 15:41:22 +02:00
Gael Guennebaud
ca0dd7ae26 Fix implicit cast in unit test 2015-10-07 15:36:12 +02:00
Gael Guennebaud
8bb51a87f7 Re-enable some invalid scalar type conversion checks by disabling explicit vectorization 2015-10-06 17:24:01 +02:00
Gael Guennebaud
27a94299aa Add sparse vector to Ref<SparseMatrix> conversion unit tests, and improve output of sparse_ref unit test in case of failure. 2015-10-06 17:23:11 +02:00
Gael Guennebaud
2e0ece7b66 Fix wrong casting syntax 2015-10-06 17:22:12 +02:00
Gael Guennebaud
6100d1ae64 Improve counting of sparse temporaries 2015-10-06 11:32:02 +02:00
Gael Guennebaud
75a60d3ac0 bug #1075: fix AlignedBox::sample for runtime dimension 2015-09-30 11:44:02 +02:00
Doug Kwan
239c9946cd Specified signedness of char type in test so that test passes
consistently on different targets.
2015-09-28 14:26:10 -07:00
Gael Guennebaud
8c1ee3629f Add support for row/col-wise lpNorm() 2015-09-28 11:36:00 +02:00
Gael Guennebaud
9d993c709b Fix typo in Vectowise::any() 2015-09-16 22:31:19 +02:00
Gael Guennebaud
680d318352 Add unit tests for bug #981: valid and invalid usage of ternary operator 2015-09-09 11:38:25 +02:00
Gael Guennebaud
ef2b54f422 Fix AMD ordering when a column has only one off-diagonal non-zero (also fix bug #1045) 2015-09-03 11:04:06 +02:00
Gael Guennebaud
cda55ab245 Fix compilation of cuda unit test 2015-09-02 16:59:07 +02:00
Gael Guennebaud
14458ec0a0 Fix packetmath unit test for exp and log 2015-09-02 15:47:58 +02:00
Gael Guennebaud
6522c3a6f0 Add regression test for bug #817 2015-09-02 13:16:03 +02:00
Christoph Hertzberg
8097d8d028 surpress some warnings 2015-08-17 21:50:52 +02:00
Gael Guennebaud
dc2c103b3b merge 2015-08-16 14:22:02 +02:00
Christoph Hertzberg
d6a4805fdf Protect further isnan/isfinite/isinf calls 2015-08-16 14:00:02 +02:00
Christoph Hertzberg
61e0977e10 Protect all calls to isnan, isinf and isfinite with parentheses. 2015-08-14 17:32:34 +02:00
Gael Guennebaud
febcce34f1 Enable vectorization with half-packets 2015-08-07 20:05:31 +02:00
Gael Guennebaud
6245591349 Fix prototype of plset and generalize linspace functor. 2015-08-07 19:27:59 +02:00
Gael Guennebaud
2afdef6a54 Generalize first_aligned to take the requested alignment as a template parameter, and add a first_default_aligned variante calling first_aligned with the requirement of the largest packet for the given scalar type. 2015-08-06 17:52:01 +02:00
Gael Guennebaud
1f5024332e First part of a big refactoring of alignment control to enable the handling of arbitrarily aligned buffers. It includes:
- AlignedBit flag is deprecated. Alignment is now specified by the evaluator through the 'Alignment' enum, e.g., evaluator<Xpr>::Alignment. Its value is in Bytes.
 - Add several enums to specify alignment: Aligned8, Aligned16, Aligned32, Aligned64, Aligned128. AlignedMax corresponds to EIGEN_MAX_ALIGN_BYTES. Such enums are used to define the above Alignment value, and as the 'Options' template parameter of Map<> and Ref<>.
 - The Aligned enum is now deprecated. It is now an alias for Aligned16.
 - Currently, traits<Matrix<>>, traits<Array<>>, traits<Ref<>>, traits<Map<>>, and traits<Block<>> also expose the Alignment enum.
2015-08-06 15:31:07 +02:00
Gael Guennebaud
db0f5c9d90 Fix conversion warning 2015-08-04 16:12:44 +02:00
Gael Guennebaud
b986c147cd Fix ForceNonZeroDiag for complexes 2015-08-04 16:12:16 +02:00
Gael Guennebaud
aec4814370 Many files were missing in previous changeset. 2015-07-29 11:11:23 +02:00
Gael Guennebaud
175ed636ea bug #973: update macro-level control of alignement by introducing user-controllable EIGEN_MAX_ALIGN_BYTES and EIGEN_MAX_STATIC_ALIGN_BYTES macros. This changeset also removes EIGEN_ALIGN (replaced by EIGEN_MAX_ALIGN_BYTES>0), EIGEN_ALIGN_STATICALLY (replaced by EIGEN_MAX_STATIC_ALIGN_BYTES>0), EIGEN_USER_ALIGN*, EIGEN_ALIGN_DEFAULT (replaced by EIGEN_ALIGN_MAX). 2015-07-29 10:22:25 +02:00
Christoph Hertzberg
a44d022caf bug #792: SparseLU::factorize failed for structurally rank deficient matrices 2015-07-26 20:30:30 +02:00
Benoit Steiner
a446020b78 Reenable 2 tests previously disabled by mistake 2015-07-23 08:47:00 -07:00
Benoit Steiner
4200bdec24 Extended the range of value inputs for TensorIntDiv to support tensors with more than 4 billion elements. 2015-07-22 17:02:30 -07:00
Gael Guennebaud
45ee14a13a Fix output of relative error, and add more support for long double 2015-07-21 22:22:12 +02:00
Gael Guennebaud
87f3e533f5 bug #1036: implement verify_is_approx_upto_permutation through a combinatorial search.
The previous implementation was subject to numerical cancellation issues.
2015-07-20 15:34:06 +02:00
Gael Guennebaud
6544b49e59 Generalize pow(x,e) such that x and e can be a different expression type or a scalar for either x or e. Add x.pow(e) with e an array expression. 2015-07-20 13:57:55 +02:00
Gael Guennebaud
88e352adac Add support for replicate in CUDA 2015-07-20 10:53:03 +02:00
Gael Guennebaud
f5aa640862 Clean some previous changes and more cuda fixes 2015-07-15 10:57:55 +02:00
Gael Guennebaud
fa17358c4b Rotation2D: fix slerp to take the shortest path, and add convenient method to get the angle in [-pi,pi] or [0,pi] 2015-07-07 17:27:12 +02:00
Benoit Steiner
3625734bc8 Moved some utilities to TensorMeta.h to make it easier to reuse them accross several tensor operations.
Created the TensorDimensionList class to encode the list of all the dimensions of a tensor of rank n. This could be done using TensorIndexList, however TensorIndexList require cxx11 which isn't yet supported as widely as we'd like.
2015-06-29 10:49:55 -07:00
Gael Guennebaud
392a30db82 Use VERIFY_IS_EQUAL instead of VERIFY(a==b) to get more feedback in case of failure 2015-06-26 16:22:49 +02:00
Gael Guennebaud
c911fc8dee split compiler intensive bdcsvd_1 unit test 2015-06-26 16:14:23 +02:00
Gael Guennebaud
98ff17eb9e Add special path for matrix<complex>/real.
This also fixes underflow issues when scaling complex matrices through complex/complex operator.
2015-06-26 16:08:15 +02:00
Gael Guennebaud
3f49cf4c90 More msvc 2013/2015 workarounds 2015-06-26 09:07:53 +02:00
Gael Guennebaud
c5f9eafcbc Fix assignement to selfadjoint-view when testing real-world problems 2015-06-25 17:08:58 +02:00
Gael Guennebaud
6b4d255cab Avoid division by a zero complex 2015-06-25 14:04:05 +02:00
Gael Guennebaud
84264ceebc workaround msvc 2013/2015 wrong instanciation of isnan, isfinite, isinf 2015-06-25 10:00:26 +02:00
Gael Guennebaud
4c8cd13b35 Add explicit ctor for diagonal to sparse conversion 2015-06-24 18:11:06 +02:00
Gael Guennebaud
23535ed31c Add unit test for dense = SparseQR::matrixQ 2015-06-24 17:55:41 +02:00
Gael Guennebaud
62f21e2d11 Add support for sparse = diagonal 2015-06-24 17:55:00 +02:00
Gael Guennebaud
2a33075aeb std::isnan is c++11 only 2015-06-24 10:29:17 +02:00
Gael Guennebaud
23da99492f Add unit-test for Visual2013 ambiguous call to operator= 2015-06-24 10:27:02 +02:00
Benoit Steiner
6441befbb3 Added more checks to test the correctness of the pexp implementation 2015-06-23 19:12:46 -07:00
Gael Guennebaud
c3e398d138 Fix overflow when checking SVD accuracy 2015-06-23 15:05:20 +02:00
Gael Guennebaud
18c9d155f3 Fix the fact that float(int) != float(int(float(int))) 2015-06-23 14:33:00 +02:00
Gael Guennebaud
9fc1c92137 Fix isinf unit tests 2015-06-22 16:48:27 +02:00
Gael Guennebaud
b3b3dcad05 Reduce compiler memory consumption for SVD unit tests 2015-06-22 09:58:06 +02:00
Gael Guennebaud
e9edb085c0 Check number of temporaries when applying permutations 2015-06-19 16:39:24 +02:00
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