spla
spla copied to clipboard
Library features
Features
List of features/operations/primitives to support in the library in the near/far future. Items written with priority, from higher to lower priority.
Core
Data primitives
- [x] Matrix
- [x] Vector
- [x] Scalar
Functional primitives
- [x] Function binary
- [x] Function unary
- [x] Function select
Storage formats
- [x] CPU LIL
- [x] CPU DOK
- [x] CPU COO
- [x] CPU CSR
- [x] Dense
- [x] CL CSR
- [ ] CL COO
Operations
- [x] Mask & complement mask
- [x] Matrix read/write
- [x] Vector read/write
- [x] Scalar read/write
- [ ] Matrix eadd
- [x] Vector eadd
- [ ] MxM
- [x] VxM
- [ ] Matrix assign
- [x] Vector assign
- [x] Matrix reduce (to vector)
- [x] Matrix reduce (to scalar)
- [x] Vector reduce (to scalar)
- [ ] Extract sub matrix
- [ ] Extract sub vector
- [ ] Extract matrix row
- [ ] Extract matrix col
- [ ] Kron
- [x] MxV
- [ ] Matrix transpose
- [ ] Matrix emult
- [ ] Vector emult
- [ ] Matrix select
- [ ] Vector select
Python package
~~Dec 2021~~ ~~March 2022~~ April 2023
Foundation
- [ ] Type wrapper
- [ ] Auto type packing/unpacking
- [x] Import C functions
- [ ] Built-in types
- [ ] Built-in functions
Data primitives
- [ ] Matrix wrapper
- [ ] Vector wrapper
- [ ] Scalar wrapper
Operations
- [ ] Empty matrix/vector/scalar
- [ ] Generate matrix/vector/scalar
- [ ] From values matrix/vector/scalar
- [ ] Property query
- [ ] To lists
- [ ] Index subscription
- [ ] To string
Performance
~~Feb 2022~~ March 2023
- [ ] High-performance memory saving SpGEMM
- [ ] Two-pass merge-path based element-wise addition
- [x] Direction optimized mxv
Additional
~~Jan 2022~~ April 2023
- [ ] Built-in extra values types
- [ ] Built-in extra function type