Figure out the list of alternatives that exist and implement the following functions:
- Sparse matrix Creation
- From Dense
- From CSR arrays
- From COO arrays
- Format Conversion
- To Dense
- CSR <--> COO
- Matrix multiply
- CSRMM (sparse matrix, dense matrix with options for sparse)
- CSRMV (sparse matrix, dense vector with options for sparse)
-
Sparse Matrix Transpose (Same as CSR --> CSC)Transpose is an available option for matmul.
Use cuSparse for CUDA, clSparse for OpenCL.
CPU can use either MKL or fallback. For distribution installers, we will use MKL, with the possibility of a fallback option which will need to be implemented from scratch.