You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by re...@apache.org on 2017/11/03 18:02:48 UTC
[46/50] [abbrv] systemml git commit: [SYSTEMML-1980] HopDagValidator:
Accept Integer Matrices
[SYSTEMML-1980] HopDagValidator: Accept Integer Matrices
Under rare conditions a matrix can have INT ValueType and execute correctly. For example the program
```
X= Rand( rows=2, cols=2, min=1, max=2)
R = cbind(as.matrix(nrow(X)) * 2, as.matrix(ncol(X)))
```
would throw an exception by the HopValidator because the Hops produced look like
(here, "MI" means matrix data type and integer value type):
```
----GENERIC (lines 28-0) [recompile=false]
------(33) u(cast_as_matrix) ([2]) [1,1,1000,1000,-1]MI [0,0,0 -> -MB]
------(35) b(*) (33,[2]) [1,1,1000,1000,-1]MI [0,0,0 -> -MB], CP
------(37) u(cast_as_matrix) ([2]) [1,1,1000,1000,-1]MI [0,0,0 -> -MB]
------(38) b(cbind) (35,37) [1,2,1000,1000,-1]MI [0,0,0 -> -MB], CP
------(44) PWrite R (38,[target/tes...],[false],[TEXT],[false],[,]) [1,2,-1,-1,-1]MI [0,0,0 -> -MB], CP
```
This patch relaxes the HopValidator to allow Integer matrices.
Closes #695.
Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/fc478916
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/fc478916
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/fc478916
Branch: refs/heads/master
Commit: fc47891656e5f804ce8a9ba1085a79d04153a138
Parents: cb1d792
Author: Dylan Hutchison <dh...@cs.washington.edu>
Authored: Wed Nov 1 21:55:56 2017 -0700
Committer: Matthias Boehm <mb...@gmail.com>
Committed: Wed Nov 1 21:55:57 2017 -0700
----------------------------------------------------------------------
src/main/java/org/apache/sysml/hops/rewrite/HopDagValidator.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/systemml/blob/fc478916/src/main/java/org/apache/sysml/hops/rewrite/HopDagValidator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/HopDagValidator.java b/src/main/java/org/apache/sysml/hops/rewrite/HopDagValidator.java
index 7d14532..ce4648a 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/HopDagValidator.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/HopDagValidator.java
@@ -126,7 +126,7 @@ public class HopDagValidator {
// check Matrix data type Hops must have Double Value type
if (dt == Expression.DataType.MATRIX )
- check(vt == Expression.ValueType.DOUBLE, hop,
+ check(vt == Expression.ValueType.DOUBLE || vt == Expression.ValueType.INT, hop,
"has Matrix type but Value Type %s is not DOUBLE", vt);
//recursively process children