Commit Graph

16 Commits

Author SHA1 Message Date
Andreas Longva
aad2216c56 Initial port from nalgebra::CsCholesky factorization to CscCholesky 2021-01-26 10:11:24 +01:00
Andreas Longva
dbdf5567fc Implement arithmetic operations for CSC matrices 2021-01-26 10:11:24 +01:00
Andreas Longva
b59c4a3216 Refactor most of Csr/CscMatrix logic into helper type CsMatrix
Still need to update CSC API so that it mirrors CsrMatrix
in terms of get_entry and so on.
2021-01-26 10:11:24 +01:00
Andreas Longva
921686c490 Rename CsrMatrix::get(_mut) to get_entry(_mut) and change semantics 2021-01-26 10:11:24 +01:00
Andreas Longva
95ee65fa8e Implement remaining conversions (missing docs) 2021-01-26 10:11:24 +01:00
Andreas Longva
54329146c9 Initial COO <-> Dense conversion routines 2021-01-26 10:11:24 +01:00
Andreas Longva
46442d6060 Initial basic proptest support for CooMatrix (missing tests) 2021-01-26 10:11:24 +01:00
Andreas Longva
ec339f9108 Implement CSC matrix basic API
The CSC matrix API mirrors the CSR matrix API. However, there
are subtle differences throughout (both in the available
methods and the implementation) that I believe makes any attempt
to avoid the duplicate effort futile.
2021-01-26 10:11:24 +01:00
Andreas Longva
082416e3ec Make SparseFormatErrorKind #[non_exhaustive] 2021-01-26 10:11:24 +01:00
Andreas Longva
df1ef991f3 Test SparsityPattern and CSR try_* constructors 2021-01-26 10:11:24 +01:00
Andreas Longva
ff435110b9 Implement CSR::disassemble and SparsityPattern::disassemble 2021-01-26 10:11:24 +01:00
Andreas Longva
a15e78a6b7 Put COO, CSR, SparsityPattern and related types in their own modules
This mimics how std does it, e.g. std::vec::Vec. This avoids potential
problems down the road, where adding more types might clutter the
API interface and generated documentation.
2021-01-26 10:11:24 +01:00
Andreas Longva
7a5f8ef1ea Redesign error handling for CSR and SparsityPattern construction
SparsityPattern's constructor now returns a fine-grained error
enum that enumerates possible errors. We use this to build a more
user-friendly error when constructing CSR matrices.

We also overhauled the main SparseFormatError error type by
making it a struct containing a *Kind type and an underlying error
that contains the message.
2021-01-26 10:11:24 +01:00
Andreas Longva
7e94a1539a Add an (incomplete) overview of planned functionality for nalgebra-sparse
The way it is currently written is temporary, but it helps structure
the work towards an initial MVP.
2021-01-26 10:11:24 +01:00
Andreas Longva
7f5b702a49 CSR row access and iterators 2021-01-26 10:11:24 +01:00
Andreas Longva
1dbccfeb7c Initial COO implementation 2021-01-26 10:11:24 +01:00