This is an automated email from the ASF dual-hosted git repository.

baunsgaard pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/systemds.git

commit 65e31c781a581f453f45438a3809dba4d2eb57d6
Author: Sebastian Baunsgaard <[email protected]>
AuthorDate: Tue Oct 17 13:17:02 2023 +0200

    [MINOR] Fix empty sparse row bug in CLA
    
    There was an edge case not fixed for CLA where the pre-aggregate
    to add to a matrix returned empty rows. This commit fixes those instances.
---
 src/main/java/org/apache/sysds/runtime/compress/colgroup/APreAgg.java   | 2 ++
 .../java/org/apache/sysds/runtime/compress/colgroup/ColGroupUtils.java  | 2 ++
 2 files changed, 4 insertions(+)

diff --git 
a/src/main/java/org/apache/sysds/runtime/compress/colgroup/APreAgg.java 
b/src/main/java/org/apache/sysds/runtime/compress/colgroup/APreAgg.java
index 71411dfb00..655bfc496f 100644
--- a/src/main/java/org/apache/sysds/runtime/compress/colgroup/APreAgg.java
+++ b/src/main/java/org/apache/sysds/runtime/compress/colgroup/APreAgg.java
@@ -247,6 +247,8 @@ public abstract class APreAgg extends AColGroupValue {
                if(tmp.isInSparseFormat()) {
                        SparseBlock sb = tmp.getSparseBlock();
                        for(int row = 0; row < rowIndexes.size(); row++) {
+                               if(sb.isEmpty(row))
+                                       continue;
                                final int apos = sb.pos(row);
                                final int alen = sb.size(row);
                                final int[] aix = sb.indexes(row);
diff --git 
a/src/main/java/org/apache/sysds/runtime/compress/colgroup/ColGroupUtils.java 
b/src/main/java/org/apache/sysds/runtime/compress/colgroup/ColGroupUtils.java
index 4bb547d520..c67a40b34c 100644
--- 
a/src/main/java/org/apache/sysds/runtime/compress/colgroup/ColGroupUtils.java
+++ 
b/src/main/java/org/apache/sysds/runtime/compress/colgroup/ColGroupUtils.java
@@ -283,6 +283,8 @@ public interface ColGroupUtils {
                if(tmp.isInSparseFormat()) {
                        final SparseBlock sb = tmp.getSparseBlock();
                        for(int row = rl, offT = 0; row < ru; row++, offT++) {
+                               if(sb.isEmpty(offT))
+                                       continue;
                                final int apos = sb.pos(offT);
                                final int alen = sb.size(offT);
                                final int[] aix = sb.indexes(offT);

Reply via email to