This bugzilla service is closed. All entries have been migrated to https://gitlab.com/libeigen/eigen

Bug 910

Summary: Provide Ref<SparseMatrix>/Ref<const SparseMatrix>
Product: Eigen Reporter: Christoph Hertzberg <chtz>
Component: SparseAssignee: Nobody <eigen.nobody>
Status: DECISIONNEEDED ---    
Severity: Feature Request CC: chtz, gael.guennebaud
Priority: Normal    
Version: 3.3 (current stable)   
Hardware: All   
OS: All   
Whiteboard:
Bug Depends on:    
Bug Blocks: 897    

Description Christoph Hertzberg 2014-12-01 15:27:17 UTC
Storing references to sparse matrices is not directly possible at the moment but it would help solving Bug 897.
A question is whether Block<SparseMatrix> objects shall be storeable into a Ref object.

Similar to Ref<const Matrix<...> >, a Ref<const SparseMatrix> can hold a temporary if the passed matrix is not storage compatible with the Ref object.
Similar to Bug 884, we can think about a Ref<const SparseMatrix&> variant.
Comment 1 Christoph Hertzberg 2014-12-02 14:50:36 UTC
To efficiently solve bug 897 we need some kind of ForceCompressed flag. 
And I guess storing Block<SparseMatrix> directly has rather limited use (at least I would not enable it by default).
Comment 2 Gael Guennebaud 2015-02-09 11:42:45 UTC
Almost done:
https://bitbucket.org/eigen/eigen/commits/70b74ce94084/

Still have to add an option to enforce compressed storage.
Comment 3 Gael Guennebaud 2015-06-09 21:11:44 UTC
https://bitbucket.org/eigen/eigen/commits/284bd8c6daa2/
Changeset:   284bd8c6daa2
User:        ggael
Date:        2015-06-09 21:11:24+00:00
Summary:     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.
Comment 4 Nobody 2019-12-04 13:55:46 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to gitlab.com's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.com/libeigen/eigen/issues/910.