352 Commits

Author SHA1 Message Date
Gael Guennebaud
757971e7ea bug #1258: fix compilation of Map<SparseMatrix>::coeffRef 2016-07-26 09:40:19 +02:00
klimpel
8b3fc31b55 compile fix (SFINAE variant apparently didn't work for all compilers) for the following compiler/platform:
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)
Copyright (C) 2006 Free Software Foundation, Inc.
2016-07-11 17:42:22 +02:00
Gael Guennebaud
155d8d8603 Fix compilation with msvc 2016-07-05 14:43:42 +02:00
Gael Guennebaud
91b3039013 Change the semantic of the last template parameter of Assignment from "Scalar" to "SFINAE" only.
The previous "Scalar" semantic was obsolete since we allow for different scalar types in the source and destination expressions.
On can still specialize on scalar types through SFINAE and/or assignment functor.
2016-07-04 11:02:00 +02:00
Gael Guennebaud
f57fd78e30 Generalize coeff-wise sparse products to support different scalar types 2016-06-14 11:29:54 +02:00
Gael Guennebaud
66e99ab6a1 Relax mixing-type constraints for binary coefficient-wise operators:
- Replace internal::scalar_product_traits<A,B> by Eigen::ScalarBinaryOpTraits<A,B,OP>
- Remove the "functor_is_product_like" helper (was pretty ugly)
- Currently, OP is not used, but it is available to the user for fine grained tuning
- Currently, only the following operators have been generalized: *,/,+,-,=,*=,/=,+=,-=
- TODO: generalize all other binray operators (comparisons,pow,etc.)
- TODO: handle "scalar op array" operators (currently only * is handled)
- TODO: move the handling of the "void" scalar type to ScalarBinaryOpTraits
2016-06-06 15:11:41 +02:00
Gael Guennebaud
53feb73b45 Remove dead code. 2016-06-02 22:19:55 +02:00
Gael Guennebaud
2c00ac0b53 Implement generic scalar*expr and expr*scalar operator based on scalar_product_traits.
This is especially useful for custom scalar types, e.g., to enable float*expr<multi_prec> without conversion.
2016-06-02 22:16:37 +02:00
Gael Guennebaud
77e652d8ad Doc: improve documentation of Map<SparseMatrix> 2016-06-01 10:03:32 +02:00
Gael Guennebaud
2c1b56f4c1 bug #1238: fix SparseMatrix::sum() overload for un-compressed mode. 2016-05-31 10:56:53 +02:00
Gael Guennebaud
e8cef383b7 bug #1236: fix possible integer overflow in density estimation. 2016-05-26 17:51:04 +02:00
Gael Guennebaud
bebc5a2147 Fix/handle some int-to-long conversions. 2016-05-26 17:35:53 +02:00
Gael Guennebaud
8456bbbadb bug #1224: fix regression in (dense*dense).sparseView() by specializing evaluator<SparseView<Product>> for sparse products only. 2016-05-18 16:53:28 +02:00
Gael Guennebaud
b507b82326 Use default sorting strategy for square products. 2016-05-18 16:51:54 +02:00
Christoph Hertzberg
0f61343893 Workaround maybe-uninitialized warning 2016-05-11 09:00:18 +02:00
Gael Guennebaud
0f3c4c8ff4 Fix compilation of sparse.cast<>().transpose(). 2016-04-29 18:26:08 +02:00
Gael Guennebaud
dfa80b2060 Compilation fix 2016-03-01 12:48:56 +01:00
Gael Guennebaud
bee9efc203 Compilation fix 2016-03-01 12:47:27 +01:00
Gael Guennebaud
8e6faab51e bug #1172: make valuePtr and innderIndexPtr properly return null for empty matrices. 2016-02-27 14:55:40 +01:00
Gael Guennebaud
6f0992c05b Fix nesting type and complete reflection methods of Block expressions. 2016-02-19 22:21:02 +01:00
Gael Guennebaud
4252af6897 Remove dead code. 2016-02-12 16:13:35 +01:00
Gael Guennebaud
2f5f56a820 Fix usage of evaluator in sparse * permutation products. 2016-02-12 16:13:16 +01:00
Gael Guennebaud
0a537cb2d8 bug #901: fix triangular-view with unit diagonal of sparse rectangular matrices. 2016-02-12 15:58:31 +01:00
Gael Guennebaud
eb6d9aea0e Clarify error message when writing to a read-only sparse-sub-matrix. 2016-02-03 16:58:23 +01:00
Gael Guennebaud
ec469700dc bug #557: make InnerIterator of sparse storage types more versatile by adding default-ctor, copy-ctor/assignment 2016-02-01 15:04:33 +01:00
Gael Guennebaud
1bc207c528 backout changeset d4a9e615699bd7f26864d57d2b28021b9f64b6ff
: the extended SparseView is not needed anymore
2016-01-30 14:43:21 +01:00
Gael Guennebaud
8ed1553d20 bug #632: implement general coefficient-wise "dense op sparse" operations through specialized evaluators instead of using SparseView.
This permits to deal with arbitrary storage order, and to by-pass the more complex iterator of the sparse-sparse case.
2016-01-30 14:39:50 +01:00
Gael Guennebaud
15084cf1ac bug #632: add support for "dense +/- sparse" operations. The current implementation is based on SparseView to make the dense subexpression compatible with the sparse one. 2016-01-29 22:09:45 +01:00
Gael Guennebaud
d4a9e61569 Extend SparseView to allow keeping explicit zeros. This is equivalent to sparseView(1,-1) but faster because the test is removed at compile-time. 2016-01-29 22:07:56 +01:00
Gael Guennebaud
b908e071a8 bug #178: get rid of some const_cast in SparseCore 2016-01-28 22:11:18 +01:00
Gael Guennebaud
9c8f7dfe94 bug #1156: fix several function declarations whose arguments were passed by value instead of being passed by reference 2016-01-27 18:34:42 +01:00
Gael Guennebaud
9aa6fae123 bug #1154: move to dynamic scheduling for spmv products. 2016-01-27 18:03:51 +01:00
Gael Guennebaud
b114e6fd3b Improve documentation. 2016-01-25 11:56:25 +01:00
Gael Guennebaud
869b4443ac Add SparseVector::conservativeResize() method. 2016-01-25 11:55:39 +01:00
Gael Guennebaud
8b9dc9f0df bug #1144: fix regression in x=y+A*x (aliasing), and move evaluator_traits::AssumeAliasing to evaluator_assume_aliasing. 2016-01-09 08:30:38 +01:00
Gael Guennebaud
715f6f049f Improve inline documentation of SparseCompressedBase and its derived classes 2016-01-03 21:56:30 +01:00
Gael Guennebaud
eadc377b3f Add missing doc of Derived template parameter 2015-12-30 16:43:19 +01:00
Gael Guennebaud
29bb599e03 Fix numerous doxygen issues in auto-link generation 2015-12-30 16:04:24 +01:00
Gael Guennebaud
fbe18d5507 Forbid the creation of SparseCompressedBase object 2015-12-09 15:47:32 +01:00
Gael Guennebaud
f3dca16a1d bug #1117: workaround unused-local-typedefs warning when EIGEN_NO_STATIC_ASSERT and NDEBUG are both defined. 2015-11-23 14:07:52 +01:00
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
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
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
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
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
73f692d16b Fix ambiguous instantiation 2015-10-27 11:01:37 +01:00