Gael Guennebaud
bfd6ee64f3
bug #1105 : fix default preallocation when moving from compressed to uncompressed mode
2015-11-06 15:05:37 +01:00
Gael Guennebaud
ae87f094eb
Fix "," in non SSE4 mode
2015-11-05 12:08:36 +01:00
Gael Guennebaud
90323f1751
Fix AVX round/ceil/floor, and fix respective unit test
2015-11-04 22:15:57 +01:00
Gael Guennebaud
3dd24bdf99
Merged in aavenel/eigen (pull request PR-142)
...
Add round, ceil and floor for SSE4.1/AVX (Bug #70 )
2015-11-04 18:26:38 +01:00
Gael Guennebaud
902750826b
Add support for dense.cwiseProduct(sparse)
...
This also fixes a regression regarding (dense*sparse).diagonal()
2015-11-04 17:42:07 +01:00
Gael Guennebaud
f6b1deebab
Fix compilation of sparse-triangular to dense assignment
2015-11-04 17:02:32 +01:00
Benoit Steiner
36cd6daaae
Made the CUDA implementation of ploadt_ro compatible with cuda implementations older than 3.5
2015-11-03 16:36:30 -08:00
Gael Guennebaud
29a94c8055
compilation issue
2015-11-02 16:11:59 +01:00
Alexandre Avenel
38832e0791
Merge
2015-11-01 10:55:42 +01:00
Alexandre Avenel
d46e2c10a6
Add round, ceil and floor for SSE4.1/AVX (Bug #70 )
2015-11-01 10:49:27 +01:00
Gael Guennebaud
c0352197a1
bug #1099 : add missing incude for CUDA
2015-10-31 18:06:28 +01:00
Gael Guennebaud
b32948c642
bug #1102 : fix multiple definition linking issue
2015-10-30 22:25:59 +01:00
Gael Guennebaud
ddaaa2d381
bug #1101 : typo
2015-10-30 12:02:52 +01:00
Gael Guennebaud
0e6cb08f92
Fix shadow warning
2015-10-30 11:44:22 +01:00
Gael Guennebaud
27c56bf60f
Workaround compilation issue with MSVC<=2013
2015-10-30 10:57:11 +01:00
Benoit Steiner
ac142773a7
Don't call internal::check_rows_cols_for_overflow twice in PlainObjectBase::resize since this is extremely expensive for small arrays
2015-10-29 13:13:39 -07:00
Gael Guennebaud
7cfbe35e49
Fix duplicated declaration
2015-10-29 21:05:52 +01:00
Gael Guennebaud
568d488a27
Fusion the two similar specialization of Sparse2Dense Assignment.
...
This change also fixes a compilation issue with MSVC<=2013.
2015-10-29 13:16:15 +01:00
Gael Guennebaud
7a5f83ca60
Add overloads for real times sparse<complex> operations.
...
This avoids real to complex conversions, and also fixes a compilation issue with MSVC.
2015-10-29 03:55:39 -07:00
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
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
f6f6f50272
Clean evaluator<EvalToTemp>
2015-10-08 16:34:33 +02:00
Gael Guennebaud
67bfba07fd
Fix some CUDA issues
2015-10-08 16:30:28 +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
5cc7251188
Some cleaning in evaluators
2015-10-08 15:22:04 +02:00
Gael Guennebaud
e30bc89190
Add missing include of std vector
2015-10-08 15:20:50 +02:00
Gael Guennebaud
1b148d9e2e
Move IncompleteCholesky to official modules
2015-10-08 11:32:46 +02:00
Gael Guennebaud
64242b8bf3
Doc: add link to doc of sparse solver concept
2015-10-08 10:50:39 +02:00
Gael Guennebaud
f047ecc36a
_mm_hadd_epi32 is for SSSE3 only (and not SSE3)
2015-10-07 15:48:35 +02:00
Gael Guennebaud
aba1eda71e
Help clang to inline some functions, thus fixing some regressions
2015-10-07 15:44:12 +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
69a7897e72
Fix storage index type in empty permutations
2015-10-06 17:21:24 +02:00
Gael Guennebaud
26cde4db3c
Define Permutation*<>::Scalar to 'void', re-enable scalar type compatibility check in assignment while relaxing this test for void types.
2015-10-06 17:18:06 +02:00
Gael Guennebaud
fb51bab272
Some cleaning
2015-10-06 17:14:56 +02:00
Gael Guennebaud
2c676ddb40
Handle various TODOs in SSE vectorization (remove splitted storeu, enable SSE3 integer vectorization, plus minor tweaks)
2015-10-06 15:43:27 +02:00
Gael Guennebaud
2d287a4898
Fix Ref<SparseMatrix> for Transpose<SparseVector>
2015-10-06 15:09:04 +02:00
Gael Guennebaud
f25bdc707f
Optimise assignment into a Block<SparseMatrix> by using Ref and avoiding useless updates in non-compressed mode. This make row-by-row filling of a row-major sparse matrix very efficient.
2015-10-06 11:59:08 +02:00
Gael Guennebaud
945b80c83e
Optimize Ref<SparseMatrix> by removing useless default initialisation of SparseMapBase and SparseMatrix
2015-10-06 11:57:03 +02:00
Gael Guennebaud
9a070638de
Enable to view a SparseVector as a Ref<SparseMatrix>
2015-10-06 11:53:19 +02:00
Gael Guennebaud
1b43860bc1
Make SparseVector derive from SparseCompressedBase, thus improving compatibility between sparse vectors and matrices
2015-10-06 11:41:03 +02:00
Gael Guennebaud
6100d1ae64
Improve counting of sparse temporaries
2015-10-06 11:32:02 +02:00
Gael Guennebaud
deb261f64b
Make abs2 compatible with custom complex types
2015-10-02 10:33:25 +02:00
Gael Guennebaud
75a60d3ac0
bug #1075 : fix AlignedBox::sample for runtime dimension
2015-09-30 11:44:02 +02:00
Gael Guennebaud
781e8c38bd
merge
2015-09-29 11:12:43 +02:00
Gael Guennebaud
b2b8c1d41e
Fix performance regression in sparse * dense product where "sparse" is an expression
2015-09-29 11:11:40 +02:00
Benoit Steiner
d46bacb6bb
Call numext::mini instead of std::min in several places.
2015-09-28 10:40:41 -07:00
Gael Guennebaud
ceafed519f
Add support for permutation * homogenous
2015-09-28 16:56:11 +02:00
Gael Guennebaud
02e940fc9f
bug #1071 : improve doc on lpNorm and add example for some operator norms
2015-09-28 11:55:36 +02:00
Gael Guennebaud
8c1ee3629f
Add support for row/col-wise lpNorm()
2015-09-28 11:36:00 +02:00
Gael Guennebaud
75861f6650
bug #1069 : fix AVX support on MSVC (use of non portable C-style cast)
2015-09-28 10:08:26 +02:00