[MINOR] Simplification 1x1 matrix initialization with scalar Project: http://git-wip-us.apache.org/repos/asf/systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/fa6394cc Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/fa6394cc Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/fa6394cc
Branch: refs/heads/master Commit: fa6394cc6981e80b262549ab86bd535124c3212b Parents: d6e2ae6 Author: Matthias Boehm <[email protected]> Authored: Wed May 9 20:47:30 2018 -0700 Committer: Matthias Boehm <[email protected]> Committed: Thu May 10 12:28:39 2018 -0700 ---------------------------------------------------------------------- .../runtime/instructions/cp/QuaternaryCPInstruction.java | 10 +++------- .../runtime/instructions/cp/VariableCPInstruction.java | 3 +-- .../runtime/instructions/mr/QuaternaryInstruction.java | 3 +-- .../org/apache/sysml/runtime/matrix/data/MatrixBlock.java | 8 +++----- .../functions/misc/UnivariateStatsBasicTest.java | 3 +-- 5 files changed, 9 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/systemml/blob/fa6394cc/src/main/java/org/apache/sysml/runtime/instructions/cp/QuaternaryCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/QuaternaryCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/QuaternaryCPInstruction.java index 85d2422..e9ed9a9 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/QuaternaryCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/QuaternaryCPInstruction.java @@ -106,14 +106,10 @@ public class QuaternaryCPInstruction extends ComputationCPInstruction { MatrixBlock matBlock3 = ec.getMatrixInput(input3.getName(), getExtendedOpcode()); MatrixBlock matBlock4 = null; if( qop.hasFourInputs() ) { - if (input4.getDataType() == DataType.SCALAR) { - matBlock4 = new MatrixBlock(1, 1, false); - final double eps = ec.getScalarInput(input4.getName(), input4.getValueType(), input4.isLiteral()).getDoubleValue(); - matBlock4.quickSetValue(0, 0, eps); - } - else { + if (input4.getDataType() == DataType.SCALAR) + matBlock4 = new MatrixBlock(ec.getScalarInput(input4).getDoubleValue()); + else matBlock4 = ec.getMatrixInput(input4.getName(), getExtendedOpcode()); - } } //core execute http://git-wip-us.apache.org/repos/asf/systemml/blob/fa6394cc/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 6d30346..5786e87 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 @@ -581,8 +581,7 @@ public class VariableCPInstruction extends CPInstruction { else if( getInput1().getDataType()==DataType.SCALAR ) { ScalarObject scalarInput = ec.getScalarInput( getInput1().getName(), getInput1().getValueType(), getInput1().isLiteral()); - MatrixBlock out = new MatrixBlock(1,1,false); - out.quickSetValue(0, 0, scalarInput.getDoubleValue()); + MatrixBlock out = new MatrixBlock(scalarInput.getDoubleValue()); ec.setMatrixOutput(output.getName(), out, getExtendedOpcode()); } else if( getInput1().getDataType()==DataType.LIST ) { http://git-wip-us.apache.org/repos/asf/systemml/blob/fa6394cc/src/main/java/org/apache/sysml/runtime/instructions/mr/QuaternaryInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/mr/QuaternaryInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/mr/QuaternaryInstruction.java index bf7dfdf..da8bd12 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/mr/QuaternaryInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/mr/QuaternaryInstruction.java @@ -309,9 +309,8 @@ public class QuaternaryInstruction extends MRInstruction implements IDistributed IndexedMatrixValue iWij = (_input4 != -1) ? cachedValues.getFirst(_input4) : null; MatrixValue Wij = (iWij!=null) ? iWij.getValue() : null; if (null == Wij && qop.hasFourInputs()) { - MatrixBlock mb = new MatrixBlock(1, 1, false); String[] parts = InstructionUtils.getInstructionParts(instString); - mb.quickSetValue(0, 0, Double.valueOf(parts[4])); + MatrixBlock mb = new MatrixBlock(Double.valueOf(parts[4])); Wij = mb; } http://git-wip-us.apache.org/repos/asf/systemml/blob/fa6394cc/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java b/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java index ae48c1b..61a1086 100644 --- a/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java +++ b/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java @@ -5235,14 +5235,12 @@ public class MatrixBlock extends MatrixValue implements CacheBlock, Externalizab LibMatrixMult.matrixMultWSigmoid(X, U, V, R, qop.wtype2, k); else LibMatrixMult.matrixMultWSigmoid(X, U, V, R, qop.wtype2); - } + } else if( qop.wtype3 != null ){ //wdivmm //note: for wdivmm-minus X and W interchanged because W always present MatrixBlock W = qop.wtype3.hasFourInputs() ? checkType(wm) : null; - if( qop.getScalar() != 0 ) { - W = new MatrixBlock(1, 1, false); - W.quickSetValue(0, 0, qop.getScalar()); - } + if( qop.getScalar() != 0 ) + W = new MatrixBlock(qop.getScalar()); if( k > 1 ) LibMatrixMult.matrixMultWDivMM(X, U, V, W, R, qop.wtype3, k); else http://git-wip-us.apache.org/repos/asf/systemml/blob/fa6394cc/src/test/java/org/apache/sysml/test/integration/functions/misc/UnivariateStatsBasicTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/misc/UnivariateStatsBasicTest.java b/src/test/java/org/apache/sysml/test/integration/functions/misc/UnivariateStatsBasicTest.java index 849b293..525a92d 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/misc/UnivariateStatsBasicTest.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/misc/UnivariateStatsBasicTest.java @@ -77,8 +77,7 @@ public class UnivariateStatsBasicTest extends AutomatedTestBase runTest(true, false, null, -1); //write input types - MatrixBlock mb = new MatrixBlock(1,1,false); - mb.quickSetValue(0, 0, 1); + MatrixBlock mb = new MatrixBlock(1d); MatrixWriterFactory.createMatrixWriter(OutputInfo.CSVOutputInfo) .writeMatrixToHDFS(mb, input("uni-types.csv"), 1, 1, 1, 1, 1); MapReduceTool.writeMetaDataFile(input("uni-types.csv.mtd"), ValueType.DOUBLE,
