Commit Graph

4176 Commits

Author SHA1 Message Date
Gael Guennebaud
c688cc28d6 fix copy/paste typo 2015-10-28 20:20:05 +01:00
Gael Guennebaud
6759a21e49 CUDA support: define more accurate min/max values for device::numeric_limits of float and double using values from cfloat header 2015-10-28 16:49:15 +01:00
Gael Guennebaud
28ddb5158d Enable std::isfinite/nan/inf on MSVC 2013 and newer and clang. Fix isinf for gcc4.4 and older msvc with fast-math. 2015-10-28 16:27:20 +01:00
Gael Guennebaud
8531304858 Simplify cost computations based on HugeCost being smaller that unrolling limit 2015-10-28 13:39:02 +01:00
Gael Guennebaud
77ff3386b7 Refactoring of the cost model:
- Dynamic is now an invalid value
 - introduce a HugeCost constant to be used for runtime-cost values or arbitrarily huge cost
 - add sanity checks for cost values: must be >=0 and not too large
This change provides several benefits:
 - it fixes shortcoming is some cost computation where the Dynamic case was not properly handled.
 - it simplifies cost computation logic, and should avoid future similar shortcomings.
 - it allows to distinguish between different level of dynamic/huge/infinite cost
 - it should enable further simplifications in the computation of costs (save compilation time)
2015-10-28 11:42:14 +01:00
Gael Guennebaud
e3031d7bfa bug #1008: improve handling of fast-math mode for older gcc versions. 2015-10-27 16:43:23 +01:00
Gael Guennebaud
2475a1de48 bug #1008: stabilize isfinite/isinf/isnan/hasNaN/allFinite functions for fast-math mode. 2015-10-27 15:39:50 +01:00
Gael Guennebaud
699c33e76a merge 2015-10-27 11:10:11 +01:00
Gael Guennebaud
8c66b6bc61 Simplify evaluator::Flags for Map<> 2015-10-27 11:06:42 +01:00
Gael Guennebaud
12f50a4697 Fix assign vectorization logic with respect to fixed outer-stride 2015-10-27 11:04:19 +01:00
Gael Guennebaud
73f692d16b Fix ambiguous instantiation 2015-10-27 11:01:37 +01:00
Gael Guennebaud
0fc8954282 Improve readibility of EIGEN_DEBUG_ASSIGN mode. 2015-10-27 10:38:49 +01:00
Gael Guennebaud
e6f8c5c325 Add support to directly evaluate the product of two sparse matrices within a dense matrix. 2015-10-26 18:20:00 +01:00
Gael Guennebaud
a5324a131f bug #1092: fix iterative solver ctors for expressions as input 2015-10-26 16:16:24 +01:00
Gael Guennebaud
f93654ae16 bug #1098: fix regression introduced when generalizing some compute() methods in changeset 7031a851d4
.
2015-10-26 16:00:25 +01:00
Gael Guennebaud
4704bdc9c0 Make the IterativeLinearSolvers module compatible with MPL2-only mode
by defaulting to COLAMDOrdering and NaturalOrdering for ILUT and ILLT respectively.
2015-10-26 15:17:52 +01:00
Gael Guennebaud
47d44c2f37 Add missing licence header to some top header files 2015-10-26 11:46:05 +01:00
Gael Guennebaud
8a211bb1a9 bug #1088: fix setIdenity for non-compressed sparse-matrix 2015-10-25 22:01:58 +01:00
Gael Guennebaud
ac6b2266b9 Fix SparseMatrix::insert/coeffRef for non-empty compressed matrix 2015-10-25 22:00:38 +01:00
Sergiu Dotenco
85afb61417 use explicit Scalar types for AngleAxis initialization
(grafted from 89a222ce50
)
2015-08-28 22:20:15 +02:00
Gael Guennebaud
0eb46508e2 Avoid any openmp calls if multi-threading is explicitely disabled at runtime. 2015-10-22 16:30:28 +02:00
Gael Guennebaud
6df8e99470 bug #1089: add a warning when using a MatrixBase method which is implemented within another module by declaring them inline. 2015-10-22 16:10:28 +02:00
Gael Guennebaud
e78bc111f1 bug #1090: fix a shortcoming in redux logic for which slice-vectorization plus unrolling might happen. 2015-10-21 20:58:33 +02:00
Gael Guennebaud
8afd0ce955 add FIXME 2015-10-21 13:48:15 +02:00
Gael Guennebaud
8961265889 bug #1064: add support for Ref<SparseVector> 2015-10-21 09:47:43 +02:00
Gael Guennebaud
fe630c9873 Improve numerical accuracy in LLT and triangular solve by using true scalar divisions (instead of x * (1/y)) 2015-10-18 22:15:01 +02:00
Gael Guennebaud
c0adf6e38d Fix perm*sparse return type and nesting, and add several sanity checks for perm*sparse 2015-10-14 10:16:48 +02:00
Gael Guennebaud
527fc4bc86 Fix ambiguous instantiation issues of product_evaluator. 2015-10-14 10:14:47 +02:00
Gael Guennebaud
2598f3987e Add a plain_object_eval<> helper returning a plain object type based on evaluator's Flags,
and base nested_eval on it.
2015-10-14 10:12:58 +02:00
Gael Guennebaud
b4c79ee1d3 Update custom setFromTripplets API to allow passing a functor object, and add a collapseDuplicates method to cleanup the API. Also add respective unit test 2015-10-13 11:30:41 +02:00
Calixte Denizet
b9d81c9150 Add a functor to setFromTriplets to handle duplicated entries 2015-10-06 13:29:41 +02:00
Gael Guennebaud
9acfc7c4f3 remove reference to internal method 2015-10-13 10:55:58 +02:00
Gael Guennebaud
a44d91a0b2 extend unit test for SparseMatrix::prune 2015-10-13 10:53:38 +02:00
Gael Guennebaud
252e89b11b bug #1086: replace deprecated UF_long by SuiteSparse_long 2015-10-12 16:20:12 +02:00
Gael Guennebaud
6407e367ee Add missing epxlicit keyword, and fix regression in DynamicSparseMatrix 2015-10-12 09:49:05 +02:00
Gael Guennebaud
63e29e7765 Workaround ICC issue with first_aligned 2015-10-11 22:47:28 +02:00
Gael Guennebaud
6163db814c bug #1085: workaround gcc default ABI issue 2015-10-10 22:38:55 +02:00
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
a4cc4c1e5e Clarify note in nested_eval for evaluator creating temporaries. 2015-10-09 14:57:51 +02:00
Gael Guennebaud
ae38910693 The evalautor of Solve was missing the EvalBeforeNestingBit flag. 2015-10-09 14:57:19 +02:00
Gael Guennebaud
2632b3446c Improve documentation of TriangularView. 2015-10-09 12:10:58 +02:00
Gael Guennebaud
1429daf850 Add lvalue check for TriangularView::swap, and fix deprecated TriangularView::lazyAssign 2015-10-09 12:10:48 +02:00
Gael Guennebaud
72bd05b6d8 Cleaning in Redux.h 2015-10-09 12:07:42 +02:00
Gael Guennebaud
041e038fef Remove dead code in selfadjoint_matrix_vector_product 2015-10-09 10:42:14 +02:00
Gael Guennebaud
c2d68b984f Optimize a bit complex selfadjoint * vector product. 2015-10-09 10:34:58 +02:00
Gael Guennebaud
1932a24760 Simplify EIGEN_DENSE_PUBLIC_INTERFACE 2015-10-09 10:21:54 +02:00
Gael Guennebaud
186ec1437c Cleanup EIGEN_SPARSE_PUBLIC_INTERFACE, it is now a simple alias to EIGEN_GENERIC_PUBLIC_INTERFACE 2015-10-08 22:06:49 +02:00
Gael Guennebaud
c9718514f5 Fix nesting sub-expression in outer-products 2015-10-08 21:41:53 +02:00
Gael Guennebaud
4140ee039d Fix propagation of AssumeAliasing for expression as: "scalar * (A*B)" 2015-10-08 21:41:27 +02:00
Gael Guennebaud
d866279364 Clean a bit the implementation of inverse permutations 2015-10-08 18:36:39 +02:00