Repository: systemml Updated Branches: refs/heads/master 2ec6d4d7c -> f700df2c8
[SYSTEMML-1626] Fix compiler/runtime dimension checks for solve Closes #753. Project: http://git-wip-us.apache.org/repos/asf/systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/f700df2c Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/f700df2c Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/f700df2c Branch: refs/heads/master Commit: f700df2c88e3f60c5603cccf83927738771f6d8b Parents: 2ec6d4d Author: Janardhan Pulivarthi <[email protected]> Authored: Thu Apr 5 18:01:54 2018 -0700 Committer: Matthias Boehm <[email protected]> Committed: Thu Apr 5 18:01:55 2018 -0700 ---------------------------------------------------------------------- .../java/org/apache/sysml/parser/BuiltinFunctionExpression.java | 3 ++- .../org/apache/sysml/runtime/matrix/data/LibCommonsMath.java | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/systemml/blob/f700df2c/src/main/java/org/apache/sysml/parser/BuiltinFunctionExpression.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/BuiltinFunctionExpression.java b/src/main/java/org/apache/sysml/parser/BuiltinFunctionExpression.java index e1ac9da..8ce197f 100644 --- a/src/main/java/org/apache/sysml/parser/BuiltinFunctionExpression.java +++ b/src/main/java/org/apache/sysml/parser/BuiltinFunctionExpression.java @@ -1096,7 +1096,8 @@ public class BuiltinFunctionExpression extends DataIdentifier raiseValidateError("Second input to solve() must be a vector", conditional); if ( getFirstExpr().getOutput().dimsKnown() && getSecondExpr().getOutput().dimsKnown() && - getFirstExpr().getOutput().getDim1() != getSecondExpr().getOutput().getDim1() ) + getFirstExpr().getOutput().getDim1() != getSecondExpr().getOutput().getDim1() && + getFirstExpr().getOutput().getDim1() != getFirstExpr().getOutput().getDim2()) raiseValidateError("Dimension mismatch in a call to solve()", conditional); output.setDataType(DataType.MATRIX); http://git-wip-us.apache.org/repos/asf/systemml/blob/f700df2c/src/main/java/org/apache/sysml/runtime/matrix/data/LibCommonsMath.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/LibCommonsMath.java b/src/main/java/org/apache/sysml/runtime/matrix/data/LibCommonsMath.java index 4efc3aa..22572ba 100644 --- a/src/main/java/org/apache/sysml/runtime/matrix/data/LibCommonsMath.java +++ b/src/main/java/org/apache/sysml/runtime/matrix/data/LibCommonsMath.java @@ -78,8 +78,11 @@ public class LibCommonsMath } public static MatrixBlock matrixMatrixOperations(MatrixObject in1, MatrixObject in2, String opcode) { - if(opcode.equals("solve")) + if(opcode.equals("solve")) { + if (in1.getNumRows() != in1.getNumColumns()) + throw new DMLRuntimeException("The A matrix, in solve(A,b) should have squared dimensions."); return computeSolve(in1, in2); + } return null; }
