[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 <[email protected]> Authored: Wed Nov 1 21:55:56 2017 -0700 Committer: Matthias Boehm <[email protected]> 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
