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
The following commit(s) were added to refs/heads/main by this push:
new 8bda7c92a0 [MINOR] Optimize contains any Single Index
8bda7c92a0 is described below
commit 8bda7c92a06f288bb2fe32583b23ac5633d2f61d
Author: Sebastian Baunsgaard <[email protected]>
AuthorDate: Sat Apr 6 17:32:29 2024 +0200
[MINOR] Optimize contains any Single Index
---
.../sysds/runtime/compress/colgroup/indexes/ArrayIndex.java | 10 ++++++++++
.../sysds/runtime/compress/colgroup/indexes/SingleIndex.java | 9 +++++++++
2 files changed, 19 insertions(+)
diff --git
a/src/main/java/org/apache/sysds/runtime/compress/colgroup/indexes/ArrayIndex.java
b/src/main/java/org/apache/sysds/runtime/compress/colgroup/indexes/ArrayIndex.java
index 0c0693d53c..57cd08fb01 100644
---
a/src/main/java/org/apache/sysds/runtime/compress/colgroup/indexes/ArrayIndex.java
+++
b/src/main/java/org/apache/sysds/runtime/compress/colgroup/indexes/ArrayIndex.java
@@ -45,6 +45,16 @@ public class ArrayIndex extends AColIndex {
return cols[i];
}
+ /**
+ * For performance reasons we can extract the array. Be careful when
you do.
+ *
+ * @return The internal array.
+ */
+ public int[] getArray() {
+ // For performance reasons available
+ return cols;
+ }
+
@Override
public IColIndex shift(int i) {
int[] ret = new int[cols.length];
diff --git
a/src/main/java/org/apache/sysds/runtime/compress/colgroup/indexes/SingleIndex.java
b/src/main/java/org/apache/sysds/runtime/compress/colgroup/indexes/SingleIndex.java
index 2b14ecc3e7..3c149512fe 100644
---
a/src/main/java/org/apache/sysds/runtime/compress/colgroup/indexes/SingleIndex.java
+++
b/src/main/java/org/apache/sysds/runtime/compress/colgroup/indexes/SingleIndex.java
@@ -138,6 +138,15 @@ public class SingleIndex extends AColIndex {
return idx;
}
+
+ @Override
+ public boolean containsAny(IColIndex idx) {
+ if(idx instanceof SingleIndex)
+ return this.idx == idx.get(0);
+ else// turn around the logic.
+ return idx.contains(this.idx);
+ }
+
@Override
public String toString() {
StringBuilder sb = new StringBuilder();