ReneEnjilian opened a new pull request, #2049:
URL: https://github.com/apache/systemds/pull/2049
### **Main changes**
This patch builds upon the previous one for the SparseBlockMCSC class. Here,
I implemented the row API defined in SparseBlock utilized by all other sparse
block formats (i.e., CSR, COO, MCSR, DCSR). Additionally, I expose for all
methods the column API for efficient use in specific operations. By exposing
the row API, we can remove all special cases in the sparse test package that
were only designed for SparseBlockMCSC (previously it only exposed the column
API). All tests in the sparse test package pass for MCSC without handling any
column-oriented special cases now.
### **Bugs in other Sparse Block formats:**
I noticed that in MCSR, COO and CSR the method _size(int rl, int ru, int cl,
int cu)_ produces wrong results for a number of certain matrices I tested on.
For various shapes defined by rl, ru, cl, and cu, they would produce sometimes
negative results.
**Example**
- A = {{10, 20, 0, 0, 0, 0},
{0, 30, 0, 40, 0, 0},
{0, 0, 50, 60, 70, 0},
{0, 0, 0, 0, 0, 80}},
- rl=0, ru=4, cl=0, and cu=6 (i.e., covering the entire matrix)
- CSR and COO will return -17 instead of 8
For other boundaries and matrices similar mistakes happened. I adapted the
method for those sparse block formats. Surprisingly, the tests did not catch
this error.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]