59 Commits

Author SHA1 Message Date
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
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
ed265258e4 Fix returned index type of inner iterators of sparse blocks. 2015-09-03 15:07:35 +02:00
Gael Guennebaud
aa768add0b Since there is no reason for evaluators to be nested by reference, let's remove the evaluator<>::nestedType indirection. 2015-09-02 22:10:39 +02:00
Gael Guennebaud
92b9f0e102 Cleaning pass on evaluators: remove the useless and error prone evaluator<>::type indirection. 2015-09-02 21:38:40 +02:00
Gael Guennebaud
9001f4a46b Add missing specialization of evaluator of sub-sparse-matrices that can be seen as a SparseCompressedBase. This changeset enable faster iterator for such expressions. 2015-09-01 22:29:17 +02:00
Gael Guennebaud
dbd12b4cda Make sure that BlockImpl<const SparseMatrix> ctor is called with the right type 2015-04-21 10:15:36 +02:00
Gael Guennebaud
5861cfb55e Remove unused GenericSparseBlockInnerIteratorImpl code. 2015-04-01 22:29:29 +02: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
2adbf6b8ca fix stupid warning with old GCC 2015-03-28 22:34:54 +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
Gael Guennebaud
d4eda01488 Big 957, workaround MSVC/ICC compilation issue 2015-02-18 11:24:32 +01:00
Gael Guennebaud
cc641aabb7 Remove deprecated usage of expr::Index. 2015-02-16 14:46:51 +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
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
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
Christoph Hertzberg
4ec2f07a5b Fixed bug in SparseBlock which caused a segfault in sparse_extra_3 test 2014-10-30 21:34:10 +01:00
Christoph Hertzberg
36448c9e28 Make constructors explicit if they could lead to unintended implicit conversion 2014-09-23 14:28:23 +02:00
Gael Guennebaud
0ca43f7e9a Remove deprecated code not used by evaluators 2014-09-18 15:15:27 +02:00
Gael Guennebaud
107bb308c3 Fix various small issues detected by gcc 2014-08-01 16:24:23 +02:00
Gael Guennebaud
3c7686630d merge with default branch 2014-07-15 10:55:03 +02:00
Gael Guennebaud
df604e4f49 Fix inner iterator on an outer-vector 2014-07-11 16:24:49 +02:00
Gael Guennebaud
296cb40161 merge with default branch 2014-07-10 22:04:45 +02:00
Gael Guennebaud
b47ef1431f Fix many long to int implicit conversions 2014-07-08 16:47:11 +02:00
Gael Guennebaud
c401167712 Fix double constructions of the nested CwiseBinaryOp evaluator in sparse*diagonal product iterator. 2014-06-27 16:41:45 +02:00
Gael Guennebaud
b868bfb84a Make operator=(EigenBase<>) uses the new assignment mechanism and introduce a generic EigenBase to EigenBase assignment kind based on the previous evalTo mechanism. 2014-06-25 17:23:52 +02:00
Gael Guennebaud
e3ba5329ff Implement evaluators for sparse Block. 2014-06-25 09:58:26 +02:00
Christoph Hertzberg
2db792852f Silence stupid parenthesis warnings for old GCC versions (<= 4.6.x) 2014-03-13 12:58:57 +01:00
Gael Guennebaud
37a1d736bf _MatrixTypeNested must be public in sparse Block 2014-02-18 13:35:24 +01:00
Gael Guennebaud
3573a10712 Fix support for row (resp. column) of a column-major (resp. row-major) sparse matrix 2014-02-17 13:46:17 +01:00
Gael Guennebaud
8f2d068e84 Use the specialization of Block<SparseMatrix> for const matrices too 2013-11-10 16:16:50 +01:00
Gael Guennebaud
5c2d1b4710 Add missing nonZeros() overload in Block<SparseMatrixBase<>> 2013-11-10 15:26:07 +01:00
Gael Guennebaud
7fa007e8bf Fix sparse block 2013-09-07 00:00:13 +02:00
Gael Guennebaud
ed78a76161 Merged in advanpix/eigen-mp-devs (pull request PR-32)
Fixes for SparseMatrix to support non-POD scalar types
2013-09-03 22:05:14 +02:00
Gael Guennebaud
eda2f8948a Another compilation fix with ICC/MSVC combo 2013-09-03 21:42:59 +02:00
Pavel Holoborodko
41321e4366 Replaced memcpy & memmove to smart_* alternatives for non-POD scalar types 2013-08-25 18:12:15 +09:00
Gael Guennebaud
1b8394f71f Fix compilation with ICC/MSVC combo 2013-08-21 15:28:53 +02:00
Gael Guennebaud
d0142e963b Fix ambiguity from the origin of Index type in BlockImpl<Sparse>::InnerIterator 2013-07-06 17:33:49 +02:00
Gael Guennebaud
7450b23fbb Fix bug #563: assignement to Block<SparseMatrix> is now allowed on non-compressed matrices 2013-04-12 13:20:13 +02:00
Desire NUENTSA
6c68f1d787 bug #563 : Sparse block assignments should be called on compressed matrices. Uncompressed matrices will be supported later 2013-03-11 19:21:18 +01:00
Gael Guennebaud
24d81aeb20 Fix overlaping operands when calling memcpy 2013-03-04 17:47:45 +01:00
Gael Guennebaud
e5bf4440c0 Fix "type qualifiers are meaningless here" warnings 2013-02-28 19:29:32 +01:00
Gael Guennebaud
698de91c8a Fix segfault in SparseBlock::InnerIterator 2013-02-25 01:30:18 +01:00
Gael Guennebaud
6c8cf15c06 Fix compilation of Block/SparseBlock with MSVC 2012-12-16 19:45:48 +01:00
Desire NUENTSA
9162a8492e ReverseInnerIterator for SparseBlock 2012-11-16 20:00:34 +01:00
Gael Guennebaud
4e60283289 Remove Sparse/InnerVectorSet expression in favor of a more general Block<> specialization for Sparse expression.
The specializations for "InnerPanels" are still preserved for efficiency reasons and because they offer additional usefull features.
2012-11-16 09:02:50 +01:00
Benoit Jacob
69124cfca2 Automatic relicensing to MPL2 using Keirs script. Manual fixup follows. 2012-07-13 14:42:47 -04:00
Jitse Niesen
3c412183b2 Get rid of include directives inside namespace blocks (bug #339). 2012-04-15 11:06:28 +01:00