Skip to content

Trimming Cysparse code base #243

@lambe

Description

@lambe

This issue came out of discussions with @dpo and continued development of the NLP.py project. In that project, we're supporting several sparse matrix types and it's becoming a problem to carry a lot of different classes around. For example, when converting an NLPModel to a SlackModel, each supported sparse matrix type has its own variation of the SlackModel to handle the different method calls. Another important example is developing sparse QP solvers, because we don't want to have different solvers for each sparse matrix type. We think Cysparse should be the default sparse matrix package moving forward, so we are going to begin studying that.

At the same time, we would like to get cysparse back under active development so that the projects can support each other. Since the main class used in cysparse (under NLP.py) is the int64-float64 combination, we think this should be the focus of development, and set aside the other types. This would also allow us to trim the code base substantially and avoid the reliance on a templating engine.

Obviously a lot of work has gone into supporting many different type combinations, so we want to open this up for discussion. What do @syarra and @counterclocker think especially?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions