[SYSTEMML-561] Fix frame-matrix casting (robustness wrong input types) Project: http://git-wip-us.apache.org/repos/asf/incubator-systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-systemml/commit/328b644c Tree: http://git-wip-us.apache.org/repos/asf/incubator-systemml/tree/328b644c Diff: http://git-wip-us.apache.org/repos/asf/incubator-systemml/diff/328b644c
Branch: refs/heads/master Commit: 328b644cb22091dd7f0c3cb7e44766159fda1592 Parents: 6c89c3a Author: Matthias Boehm <[email protected]> Authored: Tue Apr 5 14:21:56 2016 -0700 Committer: Matthias Boehm <[email protected]> Committed: Tue Apr 5 14:21:56 2016 -0700 ---------------------------------------------------------------------- .../runtime/instructions/cp/VariableCPInstruction.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/328b644c/src/main/java/org/apache/sysml/runtime/instructions/cp/VariableCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/VariableCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/VariableCPInstruction.java index 0bd3fad..da7a8a0 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/VariableCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/VariableCPInstruction.java @@ -519,16 +519,16 @@ public class VariableCPInstruction extends CPInstruction break; case CastAsMatrixVariable:{ MatrixBlock out = null; - if( input1.getDataType()==DataType.SCALAR ) { - ScalarObject scalarInput = ec.getScalarInput(input1.getName(), input1.getValueType(), input1.isLiteral()); - out = new MatrixBlock(1,1,false); - out.quickSetValue(0, 0, scalarInput.getDoubleValue()); - } - else { //DataType.FRAME + if( input1.getDataType()==DataType.FRAME ) { FrameBlock fin = ec.getFrameInput(input1.getName()); out = DataConverter.convertToMatrixBlock(fin); ec.releaseFrameInput(input1.getName()); } + else { //assume DataType.SCALAR otherwise + ScalarObject scalarInput = ec.getScalarInput(input1.getName(), input1.getValueType(), input1.isLiteral()); + out = new MatrixBlock(1,1,false); + out.quickSetValue(0, 0, scalarInput.getDoubleValue()); + } ec.setMatrixOutput(output.getName(), out); break; }
