- This org-mode file has a work plan list and a unit test list that correspond (and hopefully reflect) the development of the Python package SSparseMatrix.
- [X] Sparse matrix
scipy.sparse.csr_matrix
- [X] Row names
dict
- [X] Column names
dict
- [X] Dimension names
dict
- [X] Sparse matrix
- [X] Row names
- [X] Column names
- [X] Dimension names
- [X] Shape
- [X] Rows count
- [X] Columns count
- [X] Deep copy
- [X] Sparse matrix
csr_matrixis preferred
- [X] Row names
- [X] Default row names
- [X] List spec
- [X] Dictionary spec
- [X] Column names
- [X] Default row names
- [X] List spec
- [X] Dictionary spec
- [X] Dimension names
- [X] Default row names
- [X] List spec
- [X] Dictionary spec
- The first non-trivial operation to make
- Important to have in order to visualize results during development.
- [X] Object method
- [X] Digits specifications
- [X] Whether to have boundary or not
- [ ] Printing into a string
- In order to have
__str__implementation thatprintcan use.
- In order to have
- [-] Multiplication [75%] [3/4]
- [X]
SSparseMatrix - [X] Scalar
- [ ]
numpy.array - [X]
scipy.sparse.csr_matrix
- [X]
- [-] Addition [75%] [3/4]
- [X]
SSparseMatrix - [X] Scalar
- [ ]
numpy.array - [X]
scipy.sparse.csr_matrix
- [X]
- [ ] Figure out general delegation mechanism
- [ ] Abs
- [ ] Log
- [X] Unitizing
- [ ] Matrix power
- [ ] Matrix norm
- [X] Single element access
- [X] By indexes
- [X] By row- and column name
- [X] Sub-matrix by index slice spec
- [X] Row spec
- [X] Column spec
- Using both specs is not implemented in ~scipy.sparse~
- [X] Sub-matrix by list of names
- [X] Row spec
- [X] Column spec
- Using both specs is not implemented in ~scipy.sparse~
- [X] Mixed specs
- Works “out of the box”
- [X]
SSparseMatrix - [X]
scipy.sparse.csr_matrix - [X]
list - [X]
numpy.array
- [X] Row sums
- [X] Row sums dictionary
- [X] Column sums
- [X] Column sums dictionary
- [X] Row binding
- [X] Column binding
- [X] Impose row names
- [X] Impose column names
- Done through transposing
- [X] Triplets
- [X] Wolfram Language form
- [X] String
__str__ - [X] Concise form
__repr__
- [ ] Check the row names are unique
- [ ] Check the column names are unique
- [ ] Give appropriate diagnostic messages
- The unit tests (so far) are made with small matrices in order to make easier visual verification (by humans.)
- [X] Creation
- [X] Get row names
- [X] Get column names
- [X] Set row names
- [X] Set column names
- [ ] Set dimensions names
- [X] Transposing
- [X]
SSparseMatrixbySSparseMatrix- Dot product by object’s transpose
- [X] Vector-list
- [X]
numpy.array
- [ ] Addition
- [ ]
SSparseMatrixobject - [ ]
scipy.sparse.csr_matrixobject - [ ] Scalar
- [ ]
- [ ] Multiplication
- [ ]
SSparseMatrixobject - [ ]
scipy.sparse.csr_matrixobject - [ ] Scalar
- [ ]
- [ ] Unitizing
- [ ] Default
- [ ] By threshold
- [ ] Row binding with proper matrices
- [ ] Column binding
- [ ] Row names
- [ ] Column names
- Usage message for each method.
- [X] Just the basics:
- [X] Creation
- [X] Object structure
- [X] Dot product
- [X] Transpose
- [X] Sub-matrices
- [X] Row and column sums
- [X] Deep copies and in-place computations
- [X] References
- [X]
examples.py - [X] Jupyter notebook
- [X] README.md
- [X] Based on the Jupyter notebook
- [C] From
examples.py