You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by lr...@apache.org on 2015/11/19 21:47:15 UTC
[33/50] [abbrv] incubator-systemml git commit: Cleanup hop literal
handling (prevent inconsistencies name/value)
Cleanup hop literal handling (prevent inconsistencies name/value)
Project: http://git-wip-us.apache.org/repos/asf/incubator-systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-systemml/commit/187f067b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-systemml/tree/187f067b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-systemml/diff/187f067b
Branch: refs/heads/master
Commit: 187f067b29d0de73b9fe4ddc2a4ba0800d4e3bd7
Parents: cb3a4ce
Author: Matthias Boehm <mb...@us.ibm.com>
Authored: Tue Nov 3 19:42:13 2015 -0800
Committer: Matthias Boehm <mb...@us.ibm.com>
Committed: Wed Nov 4 09:17:59 2015 -0800
----------------------------------------------------------------------
.../java/com/ibm/bi/dml/hops/AggUnaryOp.java | 2 +-
.../java/com/ibm/bi/dml/hops/DataGenOp.java | 4 +-
.../java/com/ibm/bi/dml/hops/LiteralOp.java | 16 ++---
.../ibm/bi/dml/hops/ParameterizedBuiltinOp.java | 8 +--
src/main/java/com/ibm/bi/dml/hops/ReorgOp.java | 12 ++--
.../java/com/ibm/bi/dml/hops/TernaryOp.java | 4 +-
.../dml/hops/ipa/InterProceduralAnalysis.java | 2 +-
.../dml/hops/recompile/LiteralReplacement.java | 26 +++----
.../bi/dml/hops/rewrite/HopRewriteUtils.java | 72 ++++++++++----------
.../RewriteAlgebraicSimplificationDynamic.java | 16 ++---
.../RewriteAlgebraicSimplificationStatic.java | 36 +++++-----
.../hops/rewrite/RewriteConstantFolding.java | 12 ++--
.../rewrite/RewriteIndexingVectorization.java | 28 ++++----
.../com/ibm/bi/dml/parser/DMLTranslator.java | 54 +++++++--------
.../instructions/cp/AppendCPInstruction.java | 4 +-
15 files changed, 148 insertions(+), 148 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/187f067b/src/main/java/com/ibm/bi/dml/hops/AggUnaryOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/ibm/bi/dml/hops/AggUnaryOp.java b/src/main/java/com/ibm/bi/dml/hops/AggUnaryOp.java
index ad4efd5..ab4e73f 100644
--- a/src/main/java/com/ibm/bi/dml/hops/AggUnaryOp.java
+++ b/src/main/java/com/ibm/bi/dml/hops/AggUnaryOp.java
@@ -661,7 +661,7 @@ public class AggUnaryOp extends Hop implements MultiThreadedHop
{
in1 = input11.constructLops();
in2 = input12.constructLops();
- in3 = new LiteralOp("1",1).constructLops();
+ in3 = new LiteralOp(1).constructLops();
}
//create new ternary aggregate operator
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/187f067b/src/main/java/com/ibm/bi/dml/hops/DataGenOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/ibm/bi/dml/hops/DataGenOp.java b/src/main/java/com/ibm/bi/dml/hops/DataGenOp.java
index 6b24340..6227b53 100644
--- a/src/main/java/com/ibm/bi/dml/hops/DataGenOp.java
+++ b/src/main/java/com/ibm/bi/dml/hops/DataGenOp.java
@@ -147,9 +147,9 @@ public class DataGenOp extends Hop implements MultiThreadedHop
HashMap<String, Lop> inputLops = new HashMap<String, Lop>();
for (Entry<String, Integer> cur : _paramIndexMap.entrySet()) {
if( cur.getKey().equals(DataExpression.RAND_ROWS) && _dim1>0 )
- inputLops.put(cur.getKey(), new LiteralOp(String.valueOf(_dim1), _dim1).constructLops());
+ inputLops.put(cur.getKey(), new LiteralOp(_dim1).constructLops());
else if( cur.getKey().equals(DataExpression.RAND_COLS) && _dim2>0 )
- inputLops.put(cur.getKey(), new LiteralOp(String.valueOf(_dim2), _dim2).constructLops());
+ inputLops.put(cur.getKey(), new LiteralOp(_dim2).constructLops());
else
inputLops.put(cur.getKey(), getInput().get(cur.getValue()).constructLops());
}
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/187f067b/src/main/java/com/ibm/bi/dml/hops/LiteralOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/ibm/bi/dml/hops/LiteralOp.java b/src/main/java/com/ibm/bi/dml/hops/LiteralOp.java
index 63db8cc..0ed419d 100644
--- a/src/main/java/com/ibm/bi/dml/hops/LiteralOp.java
+++ b/src/main/java/com/ibm/bi/dml/hops/LiteralOp.java
@@ -40,23 +40,23 @@ public class LiteralOp extends Hop
//default constructor for clone
}
- public LiteralOp(String l, double value) {
- super(l, DataType.SCALAR, ValueType.DOUBLE);
+ public LiteralOp(double value) {
+ super(String.valueOf(value), DataType.SCALAR, ValueType.DOUBLE);
this.value_double = value;
}
- public LiteralOp(String l, long value) {
- super(l, DataType.SCALAR, ValueType.INT);
+ public LiteralOp(long value) {
+ super(String.valueOf(value), DataType.SCALAR, ValueType.INT);
this.value_long = value;
}
- public LiteralOp(String l, String value) {
- super(l, DataType.SCALAR, ValueType.STRING);
+ public LiteralOp(String value) {
+ super(value, DataType.SCALAR, ValueType.STRING);
this.value_string = value;
}
- public LiteralOp(String l, boolean value) {
- super(l, DataType.SCALAR, ValueType.BOOLEAN);
+ public LiteralOp(boolean value) {
+ super(String.valueOf(value), DataType.SCALAR, ValueType.BOOLEAN);
this.value_boolean = value;
}
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/187f067b/src/main/java/com/ibm/bi/dml/hops/ParameterizedBuiltinOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/ibm/bi/dml/hops/ParameterizedBuiltinOp.java b/src/main/java/com/ibm/bi/dml/hops/ParameterizedBuiltinOp.java
index 12dc87e..8387736 100644
--- a/src/main/java/com/ibm/bi/dml/hops/ParameterizedBuiltinOp.java
+++ b/src/main/java/com/ibm/bi/dml/hops/ParameterizedBuiltinOp.java
@@ -401,7 +401,7 @@ public class ParameterizedBuiltinOp extends Hop
//step1: compute index vectors
Hop ppred0 = input;
if( !isPPredInput ) { //ppred only if required
- ppred0 = new BinaryOp("tmp1", DataType.MATRIX, ValueType.DOUBLE, OpOp2.NOTEQUAL, input, new LiteralOp("0",0));
+ ppred0 = new BinaryOp("tmp1", DataType.MATRIX, ValueType.DOUBLE, OpOp2.NOTEQUAL, input, new LiteralOp(0));
HopRewriteUtils.updateHopCharacteristics(ppred0, brlen, bclen, memo, this);
}
@@ -420,7 +420,7 @@ public class ParameterizedBuiltinOp extends Hop
else //GENERAL CASE: GENERAL PERMUTATION MATRIX
{
//max ensures non-zero entries and at least one output row
- BinaryOp max = new BinaryOp("tmp3", DataType.MATRIX, ValueType.DOUBLE, OpOp2.MAX, cumsum, new LiteralOp("1",1));
+ BinaryOp max = new BinaryOp("tmp3", DataType.MATRIX, ValueType.DOUBLE, OpOp2.MAX, cumsum, new LiteralOp(1));
HopRewriteUtils.updateHopCharacteristics(max, brlen, bclen, memo, this);
DataGenOp seq = HopRewriteUtils.createSeqDataGenOp(input);
@@ -470,7 +470,7 @@ public class ParameterizedBuiltinOp extends Hop
if(selectHop == null) {
//Step1: compute row/col non-empty indicators
- ppred0 = new BinaryOp("tmp1", DataType.MATRIX, ValueType.DOUBLE, OpOp2.NOTEQUAL, input, new LiteralOp("0",0));
+ ppred0 = new BinaryOp("tmp1", DataType.MATRIX, ValueType.DOUBLE, OpOp2.NOTEQUAL, input, new LiteralOp(0));
HopRewriteUtils.setOutputBlocksizes(ppred0, brlen, bclen);
ppred0.refreshSizeInformation();
ppred0.setForcedExecType(ExecType.MR); //always MR
@@ -581,7 +581,7 @@ public class ParameterizedBuiltinOp extends Hop
if(selectHop == null) {
//Step1: compute row/col non-empty indicators
- ppred0 = new BinaryOp("tmp1", DataType.MATRIX, ValueType.DOUBLE, OpOp2.NOTEQUAL, input, new LiteralOp("0",0));
+ ppred0 = new BinaryOp("tmp1", DataType.MATRIX, ValueType.DOUBLE, OpOp2.NOTEQUAL, input, new LiteralOp(0));
HopRewriteUtils.setOutputBlocksizes(ppred0, brlen, bclen);
ppred0.refreshSizeInformation();
ppred0.setForcedExecType(ExecType.SPARK); //always Spark
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/187f067b/src/main/java/com/ibm/bi/dml/hops/ReorgOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/ibm/bi/dml/hops/ReorgOp.java b/src/main/java/com/ibm/bi/dml/hops/ReorgOp.java
index ec78078..703fb4a 100644
--- a/src/main/java/com/ibm/bi/dml/hops/ReorgOp.java
+++ b/src/main/java/com/ibm/bi/dml/hops/ReorgOp.java
@@ -180,14 +180,14 @@ public class ReorgOp extends Hop
if( !(desc instanceof LiteralOp && ixret instanceof LiteralOp) ) {
LOG.warn("Unsupported non-constant ordering parameters, using defaults and mark for recompilation.");
setRequiresRecompile();
- desc = new LiteralOp("false", false);
- ixret = new LiteralOp("false", false);
+ desc = new LiteralOp(false);
+ ixret = new LiteralOp(false);
}
//Step 1: extraction (if unknown ncol or multiple columns)
Hop vinput = input;
if( input.getDim2() != 1 ) {
- vinput = new IndexingOp("tmp1", getDataType(), getValueType(), input, new LiteralOp("1", 1L),
+ vinput = new IndexingOp("tmp1", getDataType(), getValueType(), input, new LiteralOp(1L),
HopRewriteUtils.createValueHop(input, true), by, by, false, true);
vinput.refreshSizeInformation();
HopRewriteUtils.setOutputBlocksizes(vinput, getRowsInBlock(), getColsInBlock());
@@ -224,9 +224,9 @@ public class ReorgOp extends Hop
//small vector, use in-memory sort
ArrayList<Hop> sinputs = new ArrayList<Hop>();
sinputs.add(vinput);
- sinputs.add(new LiteralOp("1",1)); //by (always vector)
+ sinputs.add(new LiteralOp(1)); //by (always vector)
sinputs.add(desc);
- sinputs.add(new LiteralOp("TRUE", true)); //indexreturn (always indexes)
+ sinputs.add(new LiteralOp(true)); //indexreturn (always indexes)
voutput = new ReorgOp("tmp3", getDataType(), getValueType(), ReOrgOp.SORT, sinputs);
HopRewriteUtils.copyLineNumbers(this, voutput);
//explicitly construct CP lop; otherwise there is danger of infinite recursion if forced runtime platform.
@@ -247,7 +247,7 @@ public class ReorgOp extends Hop
HopRewriteUtils.copyLineNumbers(this, seq);
//generate table
- TernaryOp table = new TernaryOp("tmp5", DataType.MATRIX, ValueType.DOUBLE, OpOp3.CTABLE, seq, voutput, new LiteralOp("1",1L) );
+ TernaryOp table = new TernaryOp("tmp5", DataType.MATRIX, ValueType.DOUBLE, OpOp3.CTABLE, seq, voutput, new LiteralOp(1L) );
HopRewriteUtils.setOutputBlocksizes(table, getRowsInBlock(), getColsInBlock());
table.refreshSizeInformation();
table.setForcedExecType(ExecType.MR); //force MR
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/187f067b/src/main/java/com/ibm/bi/dml/hops/TernaryOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/ibm/bi/dml/hops/TernaryOp.java b/src/main/java/com/ibm/bi/dml/hops/TernaryOp.java
index 5f5580f..c16f66c 100644
--- a/src/main/java/com/ibm/bi/dml/hops/TernaryOp.java
+++ b/src/main/java/com/ibm/bi/dml/hops/TernaryOp.java
@@ -504,7 +504,7 @@ public class TernaryOp extends Hop
new Lop[] {
group, //matrix
getInput().get(2).constructLops(), //weight
- new LiteralOp(String.valueOf(left),left).constructLops() //left
+ new LiteralOp(left).constructLops() //left
},
tertiaryOp,
getDataType(), getValueType(), et);
@@ -513,7 +513,7 @@ public class TernaryOp extends Hop
new Lop[] {
group,//getInput().get(1).constructLops(), //matrix
getInput().get(2).constructLops(), //weight
- new LiteralOp(String.valueOf(left),left).constructLops(), //left
+ new LiteralOp(left).constructLops(), //left
inputLops[3],
inputLops[4]
},
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/187f067b/src/main/java/com/ibm/bi/dml/hops/ipa/InterProceduralAnalysis.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/ibm/bi/dml/hops/ipa/InterProceduralAnalysis.java b/src/main/java/com/ibm/bi/dml/hops/ipa/InterProceduralAnalysis.java
index 58968fe..744c22f 100644
--- a/src/main/java/com/ibm/bi/dml/hops/ipa/InterProceduralAnalysis.java
+++ b/src/main/java/com/ibm/bi/dml/hops/ipa/InterProceduralAnalysis.java
@@ -1236,7 +1236,7 @@ public class InterProceduralAnalysis
//algebraic simplification rewrites; otherwise more complex
//recursive processing of childs and rewiring required)
HopRewriteUtils.removeChildReferenceByPos(hop, hop.getInput().get(1), 1);
- HopRewriteUtils.addChildReference(hop, new LiteralOp("1",1), 1);
+ HopRewriteUtils.addChildReference(hop, new LiteralOp(1), 1);
}
//recursively process child nodes
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/187f067b/src/main/java/com/ibm/bi/dml/hops/recompile/LiteralReplacement.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/ibm/bi/dml/hops/recompile/LiteralReplacement.java b/src/main/java/com/ibm/bi/dml/hops/recompile/LiteralReplacement.java
index af3a760..666f598 100644
--- a/src/main/java/com/ibm/bi/dml/hops/recompile/LiteralReplacement.java
+++ b/src/main/java/com/ibm/bi/dml/hops/recompile/LiteralReplacement.java
@@ -133,13 +133,13 @@ public class LiteralReplacement
ScalarObject sdat = (ScalarObject)dat;
switch( sdat.getValueType() ) {
case INT:
- ret = new LiteralOp(String.valueOf(sdat.getLongValue()), sdat.getLongValue());
+ ret = new LiteralOp(sdat.getLongValue());
break;
case DOUBLE:
- ret = new LiteralOp(String.valueOf(sdat.getDoubleValue()), sdat.getDoubleValue());
+ ret = new LiteralOp(sdat.getDoubleValue());
break;
case BOOLEAN:
- ret = new LiteralOp(String.valueOf(sdat.getBooleanValue()), sdat.getBooleanValue());
+ ret = new LiteralOp(sdat.getBooleanValue());
break;
default:
//otherwise: do nothing
@@ -172,13 +172,13 @@ public class LiteralReplacement
UnaryOp cast = (UnaryOp) c;
switch( cast.getOp() ) {
case CAST_AS_INT:
- ret = new LiteralOp(String.valueOf(sdat.getLongValue()), sdat.getLongValue());
+ ret = new LiteralOp(sdat.getLongValue());
break;
case CAST_AS_DOUBLE:
- ret = new LiteralOp(String.valueOf(sdat.getDoubleValue()), sdat.getDoubleValue());
+ ret = new LiteralOp(sdat.getDoubleValue());
break;
case CAST_AS_BOOLEAN:
- ret = new LiteralOp(String.valueOf(sdat.getBooleanValue()), sdat.getBooleanValue());
+ ret = new LiteralOp(sdat.getBooleanValue());
break;
default:
//otherwise: do nothing
@@ -214,15 +214,15 @@ public class LiteralReplacement
switch( cast.getOp() ) {
case CAST_AS_INT:
long ival = HopRewriteUtils.getIntValue(sdat);
- ret = new LiteralOp(String.valueOf(ival), ival);
+ ret = new LiteralOp(ival);
break;
case CAST_AS_DOUBLE:
long dval = HopRewriteUtils.getIntValue(sdat);
- ret = new LiteralOp(String.valueOf(dval), dval);
+ ret = new LiteralOp(dval);
break;
case CAST_AS_BOOLEAN:
boolean bval = HopRewriteUtils.getBooleanValue(sdat);
- ret = new LiteralOp(String.valueOf(bval), bval);
+ ret = new LiteralOp(bval);
break;
default:
//otherwise: do nothing
@@ -264,7 +264,7 @@ public class LiteralReplacement
mo.release();
//literal substitution (always double)
- ret = new LiteralOp(String.valueOf(value), value);
+ ret = new LiteralOp(value);
}
}
@@ -312,7 +312,7 @@ public class LiteralReplacement
mo.release();
//literal substitution (always double)
- ret = new LiteralOp(String.valueOf(value), value);
+ ret = new LiteralOp(value);
}
}
}
@@ -350,7 +350,7 @@ public class LiteralReplacement
mo.release();
//literal substitution (always double)
- ret = new LiteralOp(String.valueOf(value), value);
+ ret = new LiteralOp(value);
}
}
@@ -403,7 +403,7 @@ public class LiteralReplacement
mo.release();
//literal substitution (always double)
- ret = new LiteralOp(String.valueOf(value), value);
+ ret = new LiteralOp(value);
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/187f067b/src/main/java/com/ibm/bi/dml/hops/rewrite/HopRewriteUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/ibm/bi/dml/hops/rewrite/HopRewriteUtils.java b/src/main/java/com/ibm/bi/dml/hops/rewrite/HopRewriteUtils.java
index 2b1a785..1ca124d 100644
--- a/src/main/java/com/ibm/bi/dml/hops/rewrite/HopRewriteUtils.java
+++ b/src/main/java/com/ibm/bi/dml/hops/rewrite/HopRewriteUtils.java
@@ -297,21 +297,21 @@ public class HopRewriteUtils
public static Hop createDataGenOp( Hop input, double value )
throws HopsException
{
- Hop rows = (input.getDim1()>0) ? new LiteralOp(String.valueOf(input.getDim1()),input.getDim1()) :
+ Hop rows = (input.getDim1()>0) ? new LiteralOp(input.getDim1()) :
new UnaryOp("tmprows", DataType.SCALAR, ValueType.INT, OpOp1.NROW, input);
- Hop cols = (input.getDim2()>0) ? new LiteralOp(String.valueOf(input.getDim2()),input.getDim2()) :
+ Hop cols = (input.getDim2()>0) ? new LiteralOp(input.getDim2()) :
new UnaryOp("tmpcols", DataType.SCALAR, ValueType.INT, OpOp1.NCOL, input);
- Hop val = new LiteralOp(String.valueOf(value), value);
+ Hop val = new LiteralOp(value);
HashMap<String, Hop> params = new HashMap<String, Hop>();
params.put(DataExpression.RAND_ROWS, rows);
params.put(DataExpression.RAND_COLS, cols);
params.put(DataExpression.RAND_MIN, val);
params.put(DataExpression.RAND_MAX, val);
- params.put(DataExpression.RAND_PDF, new LiteralOp(DataExpression.RAND_PDF_UNIFORM,DataExpression.RAND_PDF_UNIFORM));
- params.put(DataExpression.RAND_LAMBDA, new LiteralOp("-1.0",-1.0));
- params.put(DataExpression.RAND_SPARSITY, new LiteralOp("1.0",1.0));
- params.put(DataExpression.RAND_SEED, new LiteralOp(String.valueOf(DataGenOp.UNSPECIFIED_SEED),DataGenOp.UNSPECIFIED_SEED) );
+ params.put(DataExpression.RAND_PDF, new LiteralOp(DataExpression.RAND_PDF_UNIFORM));
+ params.put(DataExpression.RAND_LAMBDA, new LiteralOp(-1.0));
+ params.put(DataExpression.RAND_SPARSITY, new LiteralOp(1.0));
+ params.put(DataExpression.RAND_SEED, new LiteralOp(DataGenOp.UNSPECIFIED_SEED) );
//note internal refresh size information
Hop datagen = new DataGenOp(DataGenMethod.RAND, new DataIdentifier("tmp"), params);
@@ -356,8 +356,8 @@ public class HopRewriteUtils
smin = smin * scale + shift;
smax = smax * scale + shift;
- Hop sminHop = new LiteralOp(String.valueOf(smin), smin);
- Hop smaxHop = new LiteralOp(String.valueOf(smax), smax);
+ Hop sminHop = new LiteralOp(smin);
+ Hop smaxHop = new LiteralOp(smax);
HashMap<String, Hop> params2 = new HashMap<String, Hop>();
params2.put(DataExpression.RAND_ROWS, rows);
@@ -384,21 +384,21 @@ public class HopRewriteUtils
public static Hop createDataGenOp( Hop rowInput, Hop colInput, double value )
throws HopsException
{
- Hop rows = (rowInput.getDim1()>0) ? new LiteralOp(String.valueOf(rowInput.getDim1()),rowInput.getDim1()) :
+ Hop rows = (rowInput.getDim1()>0) ? new LiteralOp(rowInput.getDim1()) :
new UnaryOp("tmprows", DataType.SCALAR, ValueType.INT, OpOp1.NROW, rowInput);
- Hop cols = (colInput.getDim2()>0) ? new LiteralOp(String.valueOf(colInput.getDim2()),colInput.getDim2()) :
+ Hop cols = (colInput.getDim2()>0) ? new LiteralOp(colInput.getDim2()) :
new UnaryOp("tmpcols", DataType.SCALAR, ValueType.INT, OpOp1.NCOL, colInput);
- Hop val = new LiteralOp(String.valueOf(value), value);
+ Hop val = new LiteralOp(value);
HashMap<String, Hop> params = new HashMap<String, Hop>();
params.put(DataExpression.RAND_ROWS, rows);
params.put(DataExpression.RAND_COLS, cols);
params.put(DataExpression.RAND_MIN, val);
params.put(DataExpression.RAND_MAX, val);
- params.put(DataExpression.RAND_PDF, new LiteralOp(DataExpression.RAND_PDF_UNIFORM,DataExpression.RAND_PDF_UNIFORM));
- params.put(DataExpression.RAND_LAMBDA, new LiteralOp("-1.0",-1.0));
- params.put(DataExpression.RAND_SPARSITY, new LiteralOp("1.0",1.0));
- params.put(DataExpression.RAND_SEED, new LiteralOp(String.valueOf(DataGenOp.UNSPECIFIED_SEED),DataGenOp.UNSPECIFIED_SEED) );
+ params.put(DataExpression.RAND_PDF, new LiteralOp(DataExpression.RAND_PDF_UNIFORM));
+ params.put(DataExpression.RAND_LAMBDA, new LiteralOp(-1.0));
+ params.put(DataExpression.RAND_SPARSITY, new LiteralOp(1.0));
+ params.put(DataExpression.RAND_SEED, new LiteralOp(DataGenOp.UNSPECIFIED_SEED) );
//note internal refresh size information
Hop datagen = new DataGenOp(DataGenMethod.RAND, new DataIdentifier("tmp"), params);
@@ -417,21 +417,21 @@ public class HopRewriteUtils
long nrow = tRowInput ? rowInput.getDim2() : rowInput.getDim1();
long ncol = tColInput ? colInput.getDim1() : rowInput.getDim2();
- Hop rows = (nrow>0) ? new LiteralOp(String.valueOf(nrow), nrow) :
+ Hop rows = (nrow>0) ? new LiteralOp(nrow) :
new UnaryOp("tmprows", DataType.SCALAR, ValueType.INT, tRowInput?OpOp1.NCOL:OpOp1.NROW, rowInput);
- Hop cols = (ncol>0) ? new LiteralOp(String.valueOf(ncol), ncol) :
+ Hop cols = (ncol>0) ? new LiteralOp(ncol) :
new UnaryOp("tmpcols", DataType.SCALAR, ValueType.INT, tColInput?OpOp1.NROW:OpOp1.NCOL, colInput);
- Hop val = new LiteralOp(String.valueOf(value), value);
+ Hop val = new LiteralOp(value);
HashMap<String, Hop> params = new HashMap<String, Hop>();
params.put(DataExpression.RAND_ROWS, rows);
params.put(DataExpression.RAND_COLS, cols);
params.put(DataExpression.RAND_MIN, val);
params.put(DataExpression.RAND_MAX, val);
- params.put(DataExpression.RAND_PDF, new LiteralOp(DataExpression.RAND_PDF_UNIFORM,DataExpression.RAND_PDF_UNIFORM));
- params.put(DataExpression.RAND_LAMBDA,new LiteralOp("-1.0",-1.0));
- params.put(DataExpression.RAND_SPARSITY, new LiteralOp("1.0",1.0));
- params.put(DataExpression.RAND_SEED, new LiteralOp(String.valueOf(DataGenOp.UNSPECIFIED_SEED),DataGenOp.UNSPECIFIED_SEED) );
+ params.put(DataExpression.RAND_PDF, new LiteralOp(DataExpression.RAND_PDF_UNIFORM));
+ params.put(DataExpression.RAND_LAMBDA,new LiteralOp(-1.0));
+ params.put(DataExpression.RAND_SPARSITY, new LiteralOp(1.0));
+ params.put(DataExpression.RAND_SEED, new LiteralOp(DataGenOp.UNSPECIFIED_SEED) );
//note internal refresh size information
Hop datagen = new DataGenOp(DataGenMethod.RAND, new DataIdentifier("tmp"), params);
@@ -447,17 +447,17 @@ public class HopRewriteUtils
public static Hop createDataGenOpByVal( Hop rowInput, Hop colInput, double value )
throws HopsException
{
- Hop val = new LiteralOp(String.valueOf(value), value);
+ Hop val = new LiteralOp(value);
HashMap<String, Hop> params = new HashMap<String, Hop>();
params.put(DataExpression.RAND_ROWS, rowInput);
params.put(DataExpression.RAND_COLS, colInput);
params.put(DataExpression.RAND_MIN, val);
params.put(DataExpression.RAND_MAX, val);
- params.put(DataExpression.RAND_PDF, new LiteralOp(DataExpression.RAND_PDF_UNIFORM,DataExpression.RAND_PDF_UNIFORM));
- params.put(DataExpression.RAND_LAMBDA, new LiteralOp("-1.0",-1.0));
- params.put(DataExpression.RAND_SPARSITY, new LiteralOp("1.0",1.0));
- params.put(DataExpression.RAND_SEED, new LiteralOp(String.valueOf(DataGenOp.UNSPECIFIED_SEED),DataGenOp.UNSPECIFIED_SEED) );
+ params.put(DataExpression.RAND_PDF, new LiteralOp(DataExpression.RAND_PDF_UNIFORM));
+ params.put(DataExpression.RAND_LAMBDA, new LiteralOp(-1.0));
+ params.put(DataExpression.RAND_SPARSITY, new LiteralOp(1.0));
+ params.put(DataExpression.RAND_SEED, new LiteralOp(DataGenOp.UNSPECIFIED_SEED) );
//note internal refresh size information
Hop datagen = new DataGenOp(DataGenMethod.RAND, new DataIdentifier("tmp"), params);
@@ -510,7 +510,7 @@ public class HopRewriteUtils
*/
public static BinaryOp createMinus(Hop input)
{
- BinaryOp minus = new BinaryOp(input.getName(), input.getDataType(), input.getValueType(), OpOp2.MINUS, new LiteralOp("0", 0), input);
+ BinaryOp minus = new BinaryOp(input.getName(), input.getDataType(), input.getValueType(), OpOp2.MINUS, new LiteralOp(0), input);
HopRewriteUtils.setOutputBlocksizes(minus, input.getRowsInBlock(), input.getColsInBlock());
HopRewriteUtils.copyLineNumbers(input, minus);
minus.refreshSizeInformation();
@@ -557,11 +557,11 @@ public class HopRewriteUtils
{
Hop ret = null;
if( row ){
- ret = (hop.getDim1()>0) ? new LiteralOp(String.valueOf(hop.getDim1()),hop.getDim1()) :
+ ret = (hop.getDim1()>0) ? new LiteralOp(hop.getDim1()) :
new UnaryOp("tmprows", DataType.SCALAR, ValueType.INT, OpOp1.NROW, hop);
}
else{
- ret = (hop.getDim2()>0) ? new LiteralOp(String.valueOf(hop.getDim2()),hop.getDim2()) :
+ ret = (hop.getDim2()>0) ? new LiteralOp(hop.getDim2()) :
new UnaryOp("tmpcols", DataType.SCALAR, ValueType.INT, OpOp1.NCOL, hop);
}
@@ -578,19 +578,19 @@ public class HopRewriteUtils
public static DataGenOp createSeqDataGenOp( Hop input, boolean asc )
throws HopsException
{
- Hop to = (input.getDim1()>0) ? new LiteralOp(String.valueOf(input.getDim1()),input.getDim1()) :
+ Hop to = (input.getDim1()>0) ? new LiteralOp(input.getDim1()) :
new UnaryOp("tmprows", DataType.SCALAR, ValueType.INT, OpOp1.NROW, input);
HashMap<String, Hop> params = new HashMap<String, Hop>();
if( asc ) {
- params.put(Statement.SEQ_FROM, new LiteralOp("1",1));
+ params.put(Statement.SEQ_FROM, new LiteralOp(1));
params.put(Statement.SEQ_TO, to);
- params.put(Statement.SEQ_INCR, new LiteralOp("1",1));
+ params.put(Statement.SEQ_INCR, new LiteralOp(1));
}
else {
params.put(Statement.SEQ_FROM, to);
- params.put(Statement.SEQ_TO, new LiteralOp("1",1));
- params.put(Statement.SEQ_INCR, new LiteralOp("-1",-1));
+ params.put(Statement.SEQ_TO, new LiteralOp(1));
+ params.put(Statement.SEQ_INCR, new LiteralOp(-1));
}
//note internal refresh size information
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/187f067b/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java b/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
index 04505cd..a824de2 100644
--- a/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
+++ b/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
@@ -194,8 +194,8 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
//remove unnecessary right indexing
HopRewriteUtils.removeChildReference(parent, hi);
- Hop hnew = HopRewriteUtils.createDataGenOpByVal( new LiteralOp(String.valueOf(hi.getDim1()), hi.getDim1()),
- new LiteralOp(String.valueOf(hi.getDim2()), hi.getDim2()), 0);
+ Hop hnew = HopRewriteUtils.createDataGenOpByVal( new LiteralOp(hi.getDim1()),
+ new LiteralOp(hi.getDim2()), 0);
HopRewriteUtils.addChildReference(parent, hnew, pos);
parent.refreshSizeInformation();
hi = hnew;
@@ -787,7 +787,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
Hop hnew = null;
if( uhi.getDirection() == Direction.RowCol )
- hnew = new LiteralOp("0", 0.0);
+ hnew = new LiteralOp(0.0);
else if( uhi.getDirection() == Direction.Col )
hnew = HopRewriteUtils.createDataGenOp(uhi, input, 0); //nrow(uhi)=1
else //if( uhi.getDirection() == Direction.Row )
@@ -872,7 +872,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
hnew = HopRewriteUtils.createDataGenOp(input, false, input, true, 0);
else //diagm2v
hnew = HopRewriteUtils.createDataGenOpByVal(
- HopRewriteUtils.createValueHop(input,true), new LiteralOp("1",1), 0);
+ HopRewriteUtils.createValueHop(input,true), new LiteralOp(1), 0);
}
}
else if( rhi.getOp() == ReOrgOp.RESHAPE )
@@ -1463,7 +1463,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
case MINUS: {
if( HopRewriteUtils.isEmpty(left) && notBinaryMV ) { //empty left
HopRewriteUtils.removeChildReference(hi, left);
- HopRewriteUtils.addChildReference(hi, new LiteralOp("0",0), 0);
+ HopRewriteUtils.addChildReference(hi, new LiteralOp(0), 0);
hnew = hi;
}
else if( HopRewriteUtils.isEmpty(right) ) //empty and size known
@@ -1533,7 +1533,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
ArrayList<Hop> parents = (ArrayList<Hop>) hi.getParent().clone();
//create new operators
- BinaryOp minus = new BinaryOp(hi.getName(), hi.getDataType(), hi.getValueType(), OpOp2.MINUS, new LiteralOp("0",0), hi);
+ BinaryOp minus = new BinaryOp(hi.getName(), hi.getDataType(), hi.getValueType(), OpOp2.MINUS, new LiteralOp(0), hi);
minus.setRowsInBlock(hi.getRowsInBlock());
minus.setColsInBlock(hi.getColsInBlock());
@@ -1568,7 +1568,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
ArrayList<Hop> parents = (ArrayList<Hop>) hi.getParent().clone();
//create new operators
- BinaryOp minus = new BinaryOp(hi.getName(), hi.getDataType(), hi.getValueType(), OpOp2.MINUS, new LiteralOp("0",0), hi);
+ BinaryOp minus = new BinaryOp(hi.getName(), hi.getDataType(), hi.getValueType(), OpOp2.MINUS, new LiteralOp(0), hi);
minus.setRowsInBlock(hi.getRowsInBlock());
minus.setColsInBlock(hi.getColsInBlock());
@@ -1715,7 +1715,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
//apply rewrite if known nnz
if( X != null && X.getNnz() > 0 ){
- Hop hnew = new LiteralOp(String.valueOf(X.getNnz()), X.getNnz());
+ Hop hnew = new LiteralOp(X.getNnz());
HopRewriteUtils.removeChildReferenceByPos(parent, hi, pos);
HopRewriteUtils.addChildReference(parent, hnew, pos);
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/187f067b/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteAlgebraicSimplificationStatic.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteAlgebraicSimplificationStatic.java b/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteAlgebraicSimplificationStatic.java
index d96ded0..6bfabd3 100644
--- a/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteAlgebraicSimplificationStatic.java
+++ b/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteAlgebraicSimplificationStatic.java
@@ -302,7 +302,7 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
{
bop.setOp(OpOp2.MINUS);
HopRewriteUtils.removeChildReferenceByPos(bop, left, 0);
- HopRewriteUtils.addChildReference(bop, new LiteralOp("0",0), 0);
+ HopRewriteUtils.addChildReference(bop, new LiteralOp(0), 0);
hi = bop;
LOG.debug("Applied removeUnnecessaryBinaryOperation4 (line "+bop.getBeginLine()+")");
@@ -316,7 +316,7 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
{
bop.setOp(OpOp2.MINUS);
HopRewriteUtils.removeChildReferenceByPos(bop, right, 1);
- HopRewriteUtils.addChildReference(bop, new LiteralOp("0",0), 0);
+ HopRewriteUtils.addChildReference(bop, new LiteralOp(0), 0);
hi = bop;
LOG.debug("Applied removeUnnecessaryBinaryOperation5 (line "+bop.getBeginLine()+")");
@@ -450,8 +450,8 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
//exchange and *-1 (special case 0 stays 0 instead of -0 for consistency)
double newMinVal = (((LiteralOp)max).getDoubleValue()==0)?0:(-1 * ((LiteralOp)max).getDoubleValue());
double newMaxVal = (((LiteralOp)min).getDoubleValue()==0)?0:(-1 * ((LiteralOp)min).getDoubleValue());
- Hop newMin = new LiteralOp(String.valueOf(newMinVal), newMinVal);
- Hop newMax = new LiteralOp(String.valueOf(newMaxVal), newMaxVal);
+ Hop newMin = new LiteralOp(newMinVal);
+ Hop newMax = new LiteralOp(newMaxVal);
HopRewriteUtils.removeChildReferenceByPos(inputGen, min, ixMin);
HopRewriteUtils.addChildReference(inputGen, newMin, ixMin);
@@ -490,7 +490,7 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
if( bop.getOp()==OpOp2.PLUS ) //X+X -> X*2
{
bop.setOp(OpOp2.MULT);
- LiteralOp tmp = new LiteralOp("2", 2);
+ LiteralOp tmp = new LiteralOp(2);
bop.getInput().remove(1);
right.getParent().remove(bop);
HopRewriteUtils.addChildReference(hi, tmp, 1);
@@ -500,7 +500,7 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
else if ( bop.getOp()==OpOp2.MULT ) //X*X -> X^2
{
bop.setOp(OpOp2.POW);
- LiteralOp tmp = new LiteralOp("2", 2);
+ LiteralOp tmp = new LiteralOp(2);
bop.getInput().remove(1);
right.getParent().remove(bop);
HopRewriteUtils.addChildReference(hi, tmp, 1);
@@ -584,7 +584,7 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
}
if( X != null ){ //rewrite 'binary +/-'
HopRewriteUtils.removeChildReference(parent, hi);
- LiteralOp literal = new LiteralOp("1",1);
+ LiteralOp literal = new LiteralOp(1);
BinaryOp plus = new BinaryOp(right.getName(), right.getDataType(), right.getValueType(), bop.getOp(), Y, literal);
HopRewriteUtils.refreshOutputParameters(plus, right);
BinaryOp mult = new BinaryOp(left.getName(), left.getDataType(), left.getValueType(), OpOp2.MULT, plus, X);
@@ -609,7 +609,7 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
}
if( X != null ){ //rewrite '+/- binary'
HopRewriteUtils.removeChildReference(parent, hi);
- LiteralOp literal = new LiteralOp("1",1);
+ LiteralOp literal = new LiteralOp(1);
BinaryOp plus = new BinaryOp(left.getName(), left.getDataType(), left.getValueType(), bop.getOp(), literal, Y);
HopRewriteUtils.refreshOutputParameters(plus, left);
BinaryOp mult = new BinaryOp(right.getName(), right.getDataType(), right.getValueType(), OpOp2.MULT, plus, X);
@@ -1076,11 +1076,11 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
//create new indexing operations
IndexingOp ix1 = new IndexingOp("tmp1", DataType.MATRIX, ValueType.DOUBLE, X,
- rowExpr, rowExpr, new LiteralOp("1",1), HopRewriteUtils.createValueHop(X, false), true, false);
+ rowExpr, rowExpr, new LiteralOp(1), HopRewriteUtils.createValueHop(X, false), true, false);
HopRewriteUtils.setOutputBlocksizes(ix1, X.getRowsInBlock(), X.getColsInBlock());
ix1.refreshSizeInformation();
IndexingOp ix2 = new IndexingOp("tmp2", DataType.MATRIX, ValueType.DOUBLE, Y,
- new LiteralOp("1",1), HopRewriteUtils.createValueHop(Y, true), colExpr, colExpr, false, true);
+ new LiteralOp(1), HopRewriteUtils.createValueHop(Y, true), colExpr, colExpr, false, true);
HopRewriteUtils.setOutputBlocksizes(ix2, Y.getRowsInBlock(), Y.getColsInBlock());
ix2.refreshSizeInformation();
@@ -1385,7 +1385,7 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
//handle special case of post_nz
if( HopRewriteUtils.isNonZeroIndicator(W, X) ){
- W = new LiteralOp("1", 1);
+ W = new LiteralOp(1);
}
//construct quaternary hop
@@ -1486,7 +1486,7 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
{
Hop X = bop.getInput().get(0).getInput().get((uvIndex==0)?1:0);
Hop tmp = bop.getInput().get(0).getInput().get(uvIndex); //(U %*% t(V))
- Hop W = new LiteralOp("1", 1); //no weighting
+ Hop W = new LiteralOp(1); //no weighting
Hop U = tmp.getInput().get(0);
Hop V = tmp.getInput().get(1);
@@ -2035,9 +2035,9 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
HashMap<String,Hop> inputargs = new HashMap<String,Hop>();
inputargs.put("target", trgt);
inputargs.put("max", HopRewriteUtils.getBasic1NSequenceMaxLiteral(seq));
- inputargs.put("dir", new LiteralOp(direction, direction));
- inputargs.put("ignore", new LiteralOp("true", true));
- inputargs.put("cast", new LiteralOp("false", false));
+ inputargs.put("dir", new LiteralOp(direction));
+ inputargs.put("ignore", new LiteralOp(true));
+ inputargs.put("cast", new LiteralOp(false));
//create new hop
ParameterizedBuiltinOp pbop = new ParameterizedBuiltinOp("tmp", DataType.MATRIX, ValueType.DOUBLE,
@@ -2088,9 +2088,9 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
HashMap<String,Hop> inputargs = new HashMap<String,Hop>();
inputargs.put("target", hi.getInput().get(ixTgt));
inputargs.put("max", hi.getInput().get(ixMax));
- inputargs.put("dir", new LiteralOp(direction, direction));
- inputargs.put("ignore", new LiteralOp("false", false));
- inputargs.put("cast", new LiteralOp("true", true));
+ inputargs.put("dir", new LiteralOp(direction));
+ inputargs.put("ignore", new LiteralOp(false));
+ inputargs.put("cast", new LiteralOp(true));
//create new hop
ParameterizedBuiltinOp pbop = new ParameterizedBuiltinOp("tmp", DataType.MATRIX, ValueType.DOUBLE,
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/187f067b/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteConstantFolding.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteConstantFolding.java b/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteConstantFolding.java
index 60db0fd..37a9a28 100644
--- a/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteConstantFolding.java
+++ b/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteConstantFolding.java
@@ -165,12 +165,12 @@ public class RewriteConstantFolding extends HopRewriteRule
//fold conjunctive predicate if at least one input is literal 'false'
else if( isApplicableFalseConjunctivePredicate(root) )
{
- root = new LiteralOp(String.valueOf(false), false);
+ root = new LiteralOp(false);
}
//fold disjunctive predicate if at least one input is literal 'true'
else if( isApplicableTrueDisjunctivePredicate(root) )
{
- root = new LiteralOp(String.valueOf(true), true);
+ root = new LiteralOp(true);
}
@@ -217,10 +217,10 @@ public class RewriteConstantFolding extends HopRewriteRule
ScalarObject so = (ScalarObject) ec.getVariable(TMP_VARNAME);
LiteralOp literal = null;
switch( bop.getValueType() ){
- case DOUBLE: literal = new LiteralOp(String.valueOf(so.getDoubleValue()),so.getDoubleValue()); break;
- case INT: literal = new LiteralOp(String.valueOf(so.getLongValue()),so.getLongValue()); break;
- case BOOLEAN: literal = new LiteralOp(String.valueOf(so.getBooleanValue()),so.getBooleanValue()); break;
- case STRING: literal = new LiteralOp(String.valueOf(so.getStringValue()),so.getStringValue()); break;
+ case DOUBLE: literal = new LiteralOp(so.getDoubleValue()); break;
+ case INT: literal = new LiteralOp(so.getLongValue()); break;
+ case BOOLEAN: literal = new LiteralOp(so.getBooleanValue()); break;
+ case STRING: literal = new LiteralOp(so.getStringValue()); break;
default:
throw new HopsException("Unsupported literal value type: "+bop.getValueType());
}
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/187f067b/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteIndexingVectorization.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteIndexingVectorization.java b/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteIndexingVectorization.java
index 479b8da..226812d 100644
--- a/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteIndexingVectorization.java
+++ b/src/main/java/com/ibm/bi/dml/hops/rewrite/RewriteIndexingVectorization.java
@@ -138,7 +138,7 @@ public class RewriteIndexingVectorization extends HopRewriteRule
if( ihops.size() > 1 ){
//new row indexing operator
IndexingOp newRix = new IndexingOp("tmp", DataType.MATRIX, ValueType.DOUBLE, input,
- ihop0.getInput().get(1), ihop0.getInput().get(1), new LiteralOp("1",1),
+ ihop0.getInput().get(1), ihop0.getInput().get(1), new LiteralOp(1),
HopRewriteUtils.createValueHop(input, false), true, false);
HopRewriteUtils.setOutputParameters(newRix, -1, -1, input.getRowsInBlock(), input.getColsInBlock(), -1);
newRix.refreshSizeInformation();
@@ -147,9 +147,9 @@ public class RewriteIndexingVectorization extends HopRewriteRule
HopRewriteUtils.removeChildReference(c, input); //input data
HopRewriteUtils.addChildReference(c, newRix, 0);
HopRewriteUtils.removeChildReferenceByPos(c, c.getInput().get(1),1); //row lower expr
- HopRewriteUtils.addChildReference(c, new LiteralOp("1",1), 1);
+ HopRewriteUtils.addChildReference(c, new LiteralOp(1), 1);
HopRewriteUtils.removeChildReferenceByPos(c, c.getInput().get(2),2); //row upper expr
- HopRewriteUtils.addChildReference(c, new LiteralOp("1",1), 2);
+ HopRewriteUtils.addChildReference(c, new LiteralOp(1), 2);
c.refreshSizeInformation();
}
@@ -177,7 +177,7 @@ public class RewriteIndexingVectorization extends HopRewriteRule
if( ihops.size() > 1 ){
//new row indexing operator
IndexingOp newRix = new IndexingOp("tmp", DataType.MATRIX, ValueType.DOUBLE, input,
- new LiteralOp("1",1), HopRewriteUtils.createValueHop(input, true),
+ new LiteralOp(1), HopRewriteUtils.createValueHop(input, true),
ihop0.getInput().get(3), ihop0.getInput().get(3), false, true);
HopRewriteUtils.setOutputParameters(newRix, -1, -1, input.getRowsInBlock(), input.getColsInBlock(), -1);
newRix.refreshSizeInformation();
@@ -186,9 +186,9 @@ public class RewriteIndexingVectorization extends HopRewriteRule
HopRewriteUtils.removeChildReference(c, input); //input data
HopRewriteUtils.addChildReference(c, newRix, 0);
HopRewriteUtils.removeChildReferenceByPos(c, c.getInput().get(3),3); //col lower expr
- HopRewriteUtils.addChildReference(c, new LiteralOp("1",1), 3);
+ HopRewriteUtils.addChildReference(c, new LiteralOp(1), 3);
HopRewriteUtils.removeChildReferenceByPos(c, c.getInput().get(4),4); //col upper expr
- HopRewriteUtils.addChildReference(c, new LiteralOp("1",1), 4);
+ HopRewriteUtils.addChildReference(c, new LiteralOp(1), 4);
c.refreshSizeInformation();
}
@@ -240,7 +240,7 @@ public class RewriteIndexingVectorization extends HopRewriteRule
//new row indexing operator
IndexingOp newRix = new IndexingOp("tmp1", DataType.MATRIX, ValueType.DOUBLE, input,
- rowExpr, rowExpr, new LiteralOp("1",1),
+ rowExpr, rowExpr, new LiteralOp(1),
HopRewriteUtils.createValueHop(input, false), true, false);
HopRewriteUtils.setOutputParameters(newRix, -1, -1, input.getRowsInBlock(), input.getColsInBlock(), -1);
newRix.refreshSizeInformation();
@@ -252,9 +252,9 @@ public class RewriteIndexingVectorization extends HopRewriteRule
//reset row index all candidates
for( Hop c : ihops ) {
HopRewriteUtils.removeChildReferenceByPos(c, c.getInput().get(2), 2); //row lower expr
- HopRewriteUtils.addChildReference(c, new LiteralOp("1",1), 2);
+ HopRewriteUtils.addChildReference(c, new LiteralOp(1), 2);
HopRewriteUtils.removeChildReferenceByPos(c, c.getInput().get(3), 3); //row upper expr
- HopRewriteUtils.addChildReference(c, new LiteralOp("1",1), 3);
+ HopRewriteUtils.addChildReference(c, new LiteralOp(1), 3);
c.refreshSizeInformation();
}
@@ -269,7 +269,7 @@ public class RewriteIndexingVectorization extends HopRewriteRule
}
LeftIndexingOp newLix = new LeftIndexingOp("tmp2", DataType.MATRIX, ValueType.DOUBLE, input, ihop0,
- rowExpr, rowExpr, new LiteralOp("1",1),
+ rowExpr, rowExpr, new LiteralOp(1),
HopRewriteUtils.createValueHop(input, false), true, false);
HopRewriteUtils.setOutputParameters(newLix, -1, -1, input.getRowsInBlock(), input.getColsInBlock(), -1);
newLix.refreshSizeInformation();
@@ -310,7 +310,7 @@ public class RewriteIndexingVectorization extends HopRewriteRule
//new row indexing operator
IndexingOp newRix = new IndexingOp("tmp1", DataType.MATRIX, ValueType.DOUBLE, input,
- new LiteralOp("1",1), HopRewriteUtils.createValueHop(input, true),
+ new LiteralOp(1), HopRewriteUtils.createValueHop(input, true),
colExpr, colExpr, false, true);
HopRewriteUtils.setOutputParameters(newRix, -1, -1, input.getRowsInBlock(), input.getColsInBlock(), -1);
newRix.refreshSizeInformation();
@@ -322,9 +322,9 @@ public class RewriteIndexingVectorization extends HopRewriteRule
//reset row index all candidates
for( Hop c : ihops ) {
HopRewriteUtils.removeChildReferenceByPos(c, c.getInput().get(4), 4); //col lower expr
- HopRewriteUtils.addChildReference(c, new LiteralOp("1",1), 4);
+ HopRewriteUtils.addChildReference(c, new LiteralOp(1), 4);
HopRewriteUtils.removeChildReferenceByPos(c, c.getInput().get(5), 5); //col upper expr
- HopRewriteUtils.addChildReference(c, new LiteralOp("1",1), 5);
+ HopRewriteUtils.addChildReference(c, new LiteralOp(1), 5);
c.refreshSizeInformation();
}
@@ -339,7 +339,7 @@ public class RewriteIndexingVectorization extends HopRewriteRule
}
LeftIndexingOp newLix = new LeftIndexingOp("tmp2", DataType.MATRIX, ValueType.DOUBLE, input, ihop0,
- new LiteralOp("1",1), HopRewriteUtils.createValueHop(input, true),
+ new LiteralOp(1), HopRewriteUtils.createValueHop(input, true),
colExpr, colExpr, false, true);
HopRewriteUtils.setOutputParameters(newLix, -1, -1, input.getRowsInBlock(), input.getColsInBlock(), -1);
newLix.refreshSizeInformation();
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/187f067b/src/main/java/com/ibm/bi/dml/parser/DMLTranslator.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/ibm/bi/dml/parser/DMLTranslator.java b/src/main/java/com/ibm/bi/dml/parser/DMLTranslator.java
index f1ccd1a..ed6f955 100644
--- a/src/main/java/com/ibm/bi/dml/parser/DMLTranslator.java
+++ b/src/main/java/com/ibm/bi/dml/parser/DMLTranslator.java
@@ -1466,13 +1466,13 @@ public class DMLTranslator
return processIndexingExpression(sourceIndexed,target,hops);
} else if (source instanceof IntIdentifier) {
IntIdentifier sourceInt = (IntIdentifier) source;
- LiteralOp litop = new LiteralOp(Long.toString(sourceInt.getValue()), sourceInt.getValue());
+ LiteralOp litop = new LiteralOp(sourceInt.getValue());
litop.setAllPositions(sourceInt.getBeginLine(), sourceInt.getBeginColumn(), sourceInt.getEndLine(), sourceInt.getEndColumn());
setIdentifierParams(litop, sourceInt);
return litop;
} else if (source instanceof DoubleIdentifier) {
DoubleIdentifier sourceDouble = (DoubleIdentifier) source;
- LiteralOp litop = new LiteralOp(Double.toString(sourceDouble.getValue()), sourceDouble.getValue());
+ LiteralOp litop = new LiteralOp(sourceDouble.getValue());
litop.setAllPositions(sourceDouble.getBeginLine(), sourceDouble.getBeginColumn(), sourceDouble.getEndLine(), sourceDouble.getEndColumn());
setIdentifierParams(litop, sourceDouble);
return litop;
@@ -1481,13 +1481,13 @@ public class DMLTranslator
return hops.get(sourceId.getName());
} else if (source instanceof BooleanIdentifier) {
BooleanIdentifier sourceBoolean = (BooleanIdentifier) source;
- LiteralOp litop = new LiteralOp(String.valueOf(sourceBoolean.getValue()), sourceBoolean.getValue());
+ LiteralOp litop = new LiteralOp(sourceBoolean.getValue());
litop.setAllPositions(sourceBoolean.getBeginLine(), sourceBoolean.getBeginColumn(), sourceBoolean.getEndLine(), sourceBoolean.getEndColumn());
setIdentifierParams(litop, sourceBoolean);
return litop;
} else if (source instanceof StringIdentifier) {
StringIdentifier sourceString = (StringIdentifier) source;
- LiteralOp litop = new LiteralOp(sourceString.getValue(), sourceString.getValue());
+ LiteralOp litop = new LiteralOp(sourceString.getValue());
litop.setAllPositions(sourceString.getBeginLine(), sourceString.getBeginColumn(), sourceString.getEndLine(), sourceString.getEndColumn());
setIdentifierParams(litop, sourceString);
return litop;
@@ -1564,14 +1564,14 @@ public class DMLTranslator
if (target.getRowLowerBound() != null)
rowLowerHops = processExpression(target.getRowLowerBound(),null,hops);
else
- rowLowerHops = new LiteralOp(Long.toString(1), 1);
+ rowLowerHops = new LiteralOp(1);
if (target.getRowUpperBound() != null)
rowUpperHops = processExpression(target.getRowUpperBound(),null,hops);
else
{
if ( target.getDim1() != -1 )
- rowUpperHops = new LiteralOp(Long.toString(target.getOrigDim1()), target.getOrigDim1());
+ rowUpperHops = new LiteralOp(target.getOrigDim1());
else
{
try {
@@ -1587,14 +1587,14 @@ public class DMLTranslator
if (target.getColLowerBound() != null)
colLowerHops = processExpression(target.getColLowerBound(),null,hops);
else
- colLowerHops = new LiteralOp(Long.toString(1), 1);
+ colLowerHops = new LiteralOp(1);
if (target.getColUpperBound() != null)
colUpperHops = processExpression(target.getColUpperBound(),null,hops);
else
{
if ( target.getDim2() != -1 )
- colUpperHops = new LiteralOp(Long.toString(target.getOrigDim2()), target.getOrigDim2());
+ colUpperHops = new LiteralOp(target.getOrigDim2());
else
{
try {
@@ -1647,14 +1647,14 @@ public class DMLTranslator
if (source.getRowLowerBound() != null)
rowLowerHops = processExpression(source.getRowLowerBound(),null,hops);
else
- rowLowerHops = new LiteralOp(Long.toString(1), 1);
+ rowLowerHops = new LiteralOp(1);
if (source.getRowUpperBound() != null)
rowUpperHops = processExpression(source.getRowUpperBound(),null,hops);
else
{
if ( source.getOrigDim1() != -1 )
- rowUpperHops = new LiteralOp(Long.toString(source.getOrigDim1()), source.getOrigDim1());
+ rowUpperHops = new LiteralOp(source.getOrigDim1());
else
{
try {
@@ -1670,14 +1670,14 @@ public class DMLTranslator
if (source.getColLowerBound() != null)
colLowerHops = processExpression(source.getColLowerBound(),null,hops);
else
- colLowerHops = new LiteralOp(Long.toString(1), 1);
+ colLowerHops = new LiteralOp(1);
if (source.getColUpperBound() != null)
colUpperHops = processExpression(source.getColUpperBound(),null,hops);
else
{
if ( source.getOrigDim2() != -1 )
- colUpperHops = new LiteralOp(Long.toString(source.getOrigDim2()), source.getOrigDim2());
+ colUpperHops = new LiteralOp(source.getOrigDim2());
else
{
try {
@@ -1873,23 +1873,23 @@ public class DMLTranslator
switch(op) {
case QNORM:
case PNORM:
- distLop = new LiteralOp("normal", "normal");
+ distLop = new LiteralOp("normal");
break;
case QT:
case PT:
- distLop = new LiteralOp("t", "t");
+ distLop = new LiteralOp("t");
break;
case QF:
case PF:
- distLop = new LiteralOp("f", "f");
+ distLop = new LiteralOp("f");
break;
case QCHISQ:
case PCHISQ:
- distLop = new LiteralOp("chisq", "chisq");
+ distLop = new LiteralOp("chisq");
break;
case QEXP:
case PEXP:
- distLop = new LiteralOp("exp", "exp");
+ distLop = new LiteralOp("exp");
break;
case CDF:
@@ -2230,7 +2230,7 @@ public class DMLTranslator
currBuiltinOp = new UnaryOp(target.getName(), target.getDataType(), target.getValueType(), Hop.OpOp1.NROW, expr);
}
else {
- currBuiltinOp = new LiteralOp(Long.toString(nRows), nRows);
+ currBuiltinOp = new LiteralOp(nRows);
}
break;
@@ -2243,7 +2243,7 @@ public class DMLTranslator
currBuiltinOp = new UnaryOp(target.getName(), target.getDataType(), target.getValueType(), Hop.OpOp1.NCOL, expr);
}
else {
- currBuiltinOp = new LiteralOp(Long.toString(nCols), nCols);
+ currBuiltinOp = new LiteralOp(nCols);
}
break;
case LENGTH:
@@ -2258,7 +2258,7 @@ public class DMLTranslator
}
else {
long lval = (nCols2 * nRows2);
- currBuiltinOp = new LiteralOp(Long.toString(lval), lval);
+ currBuiltinOp = new LiteralOp(lval);
}
break;
@@ -2276,7 +2276,7 @@ public class DMLTranslator
else {
// example: x = mean(Y,W);
// stable weighted mean is implemented by using centralMoment with order = 0
- Hop orderHop = new LiteralOp(Integer.toString(0), 0);
+ Hop orderHop = new LiteralOp(0);
currBuiltinOp=new TernaryOp(target.getName(), target.getDataType(), target.getValueType(),
Hop.OpOp3.CENTRALMOMENT, expr, expr2, orderHop);
}
@@ -2367,7 +2367,7 @@ public class DMLTranslator
case 4:
// example DML statement: F = ctable(A,B) or F = ctable(A,B,10,15)
// here, weight is interpreted as 1.0
- Hop weightHop = new LiteralOp(Double.toString(1.0), 1.0);
+ Hop weightHop = new LiteralOp(1.0);
// set dimensions
weightHop.setDim1(0);
weightHop.setDim2(0);
@@ -2621,7 +2621,7 @@ public class DMLTranslator
HashMap<String,Hop> tmpparams = new HashMap<String, Hop>();
tmpparams.put(DataExpression.RAND_MAX, expr); //range
tmpparams.put(DataExpression.RAND_ROWS, expr2);
- tmpparams.put(DataExpression.RAND_COLS, new LiteralOp("1",1));
+ tmpparams.put(DataExpression.RAND_COLS, new LiteralOp(1));
if ( in.length == 4 )
{
@@ -2635,11 +2635,11 @@ public class DMLTranslator
if ( expr3.getValueType() == ValueType.BOOLEAN )
{
tmpparams.put(DataExpression.RAND_PDF, expr3);
- tmpparams.put(DataExpression.RAND_SEED, new LiteralOp(String.valueOf(DataGenOp.UNSPECIFIED_SEED),DataGenOp.UNSPECIFIED_SEED) );
+ tmpparams.put(DataExpression.RAND_SEED, new LiteralOp(DataGenOp.UNSPECIFIED_SEED) );
}
else if ( expr3.getValueType() == ValueType.INT )
{
- tmpparams.put(DataExpression.RAND_PDF, new LiteralOp(String.valueOf(false), false));
+ tmpparams.put(DataExpression.RAND_PDF, new LiteralOp(false));
tmpparams.put(DataExpression.RAND_SEED, expr3 );
}
else
@@ -2648,8 +2648,8 @@ public class DMLTranslator
}
else if ( in.length == 2 )
{
- tmpparams.put(DataExpression.RAND_PDF, new LiteralOp(String.valueOf(false), false));
- tmpparams.put(DataExpression.RAND_SEED, new LiteralOp(String.valueOf(DataGenOp.UNSPECIFIED_SEED),DataGenOp.UNSPECIFIED_SEED) );
+ tmpparams.put(DataExpression.RAND_PDF, new LiteralOp(false));
+ tmpparams.put(DataExpression.RAND_SEED, new LiteralOp(DataGenOp.UNSPECIFIED_SEED) );
}
currBuiltinOp = new DataGenOp(DataGenMethod.SAMPLE, target, tmpparams);
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/187f067b/src/main/java/com/ibm/bi/dml/runtime/instructions/cp/AppendCPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/com/ibm/bi/dml/runtime/instructions/cp/AppendCPInstruction.java b/src/main/java/com/ibm/bi/dml/runtime/instructions/cp/AppendCPInstruction.java
index 0d1ba99..a056daa 100644
--- a/src/main/java/com/ibm/bi/dml/runtime/instructions/cp/AppendCPInstruction.java
+++ b/src/main/java/com/ibm/bi/dml/runtime/instructions/cp/AppendCPInstruction.java
@@ -86,7 +86,7 @@ public class AppendCPInstruction extends BinaryCPInstruction
if(matBlock1.getNumRows() != matBlock2.getNumRows()) {
throw new DMLRuntimeException("Append-cbind is not possible for input matrices "
+ input1.getName() + " and " + input2.getName()
- + " with different number of rows");
+ + " with different number of rows: "+matBlock1.getNumRows()+" vs "+matBlock2.getNumRows());
}
//execute append operations (append both inputs to initially empty output)
@@ -107,7 +107,7 @@ public class AppendCPInstruction extends BinaryCPInstruction
if(matBlock1.getNumColumns() != matBlock2.getNumColumns()) {
throw new DMLRuntimeException("Append-rbind is not possible for input matrices "
+ input1.getName() + " and " + input2.getName()
- + " with different number of columns");
+ + " with different number of columns: "+matBlock1.getNumColumns()+" vs "+matBlock2.getNumColumns());
}
//execute append operations (append both inputs to initially empty output)