Repository: incubator-systemml
Updated Branches:
  refs/heads/master a429e2df9 -> a929ae6e6


[SYSTEMML-1327] Remove redundancy of instruction generation, cleanups

Project: http://git-wip-us.apache.org/repos/asf/incubator-systemml/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-systemml/commit/86a8e148
Tree: http://git-wip-us.apache.org/repos/asf/incubator-systemml/tree/86a8e148
Diff: http://git-wip-us.apache.org/repos/asf/incubator-systemml/diff/86a8e148

Branch: refs/heads/master
Commit: 86a8e148062391131a3d9fd615652e7050cbac24
Parents: a429e2d
Author: Matthias Boehm <[email protected]>
Authored: Thu Mar 23 18:41:42 2017 -0700
Committer: Matthias Boehm <[email protected]>
Committed: Thu Mar 23 18:41:42 2017 -0700

----------------------------------------------------------------------
 .../java/org/apache/sysml/lops/Aggregate.java   |  46 +++-----
 .../java/org/apache/sysml/lops/AppendCP.java    |   8 +-
 .../java/org/apache/sysml/lops/AppendG.java     |   6 +-
 .../org/apache/sysml/lops/AppendGAlignedSP.java |   7 +-
 .../java/org/apache/sysml/lops/AppendR.java     |   8 +-
 src/main/java/org/apache/sysml/lops/Binary.java |  15 ++-
 .../java/org/apache/sysml/lops/BinaryM.java     |  21 ++--
 .../org/apache/sysml/lops/BinaryUAggChain.java  |  30 +----
 .../java/org/apache/sysml/lops/CSVReBlock.java  |  52 ++-------
 .../org/apache/sysml/lops/CentralMoment.java    |  32 ++----
 .../java/org/apache/sysml/lops/CoVariance.java  |  45 ++------
 .../sysml/lops/CumulativeOffsetBinary.java      |  20 +---
 .../sysml/lops/CumulativePartialAggregate.java  |  21 +---
 .../sysml/lops/CumulativeSplitAggregate.java    |   2 -
 src/main/java/org/apache/sysml/lops/Data.java   |   5 +-
 .../org/apache/sysml/lops/DataPartition.java    |  31 +----
 src/main/java/org/apache/sysml/lops/Group.java  |   9 +-
 .../apache/sysml/lops/GroupedAggregateM.java    |  20 +---
 src/main/java/org/apache/sysml/lops/Lop.java    |   4 +-
 src/main/java/org/apache/sysml/lops/MMCJ.java   |  44 +++-----
 src/main/java/org/apache/sysml/lops/MMRJ.java   |  22 +---
 src/main/java/org/apache/sysml/lops/MMTSJ.java  |  30 +----
 src/main/java/org/apache/sysml/lops/MMZip.java  |   3 +-
 .../java/org/apache/sysml/lops/MapMult.java     |  74 +++---------
 .../org/apache/sysml/lops/MapMultChain.java     | 113 +++----------------
 src/main/java/org/apache/sysml/lops/PMMJ.java   |  58 +++-------
 .../org/apache/sysml/lops/PartialAggregate.java |  38 ++-----
 .../java/org/apache/sysml/lops/PlusMult.java    |  70 ++++--------
 .../java/org/apache/sysml/lops/ReBlock.java     |  51 ++-------
 src/main/java/org/apache/sysml/lops/RepMat.java |   3 +-
 .../org/apache/sysml/lops/UAggOuterChain.java   |  37 +-----
 src/main/java/org/apache/sysml/lops/Unary.java  |  26 ++---
 .../apache/sysml/lops/WeightedCrossEntropy.java |  17 +--
 .../sysml/lops/WeightedCrossEntropyR.java       |   8 +-
 .../org/apache/sysml/lops/WeightedDivMM.java    |  17 +--
 .../org/apache/sysml/lops/WeightedDivMMR.java   |   8 +-
 .../org/apache/sysml/lops/WeightedSigmoid.java  |  17 +--
 .../org/apache/sysml/lops/WeightedSigmoidR.java |   9 +-
 .../apache/sysml/lops/WeightedSquaredLoss.java  |  17 +--
 .../apache/sysml/lops/WeightedSquaredLossR.java |   8 +-
 .../org/apache/sysml/lops/WeightedUnaryMM.java  |  17 +--
 .../org/apache/sysml/lops/WeightedUnaryMMR.java |   8 +-
 .../java/org/apache/sysml/lops/ZeroOut.java     |   5 +-
 .../java/org/apache/sysml/lops/compile/Dag.java |  12 +-
 .../org/apache/sysml/lops/compile/JobType.java  |   5 +-
 45 files changed, 284 insertions(+), 815 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/Aggregate.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/Aggregate.java 
b/src/main/java/org/apache/sysml/lops/Aggregate.java
index 586a337..0eefb16 100644
--- a/src/main/java/org/apache/sysml/lops/Aggregate.java
+++ b/src/main/java/org/apache/sysml/lops/Aggregate.java
@@ -127,48 +127,31 @@ public class Aggregate extends Lop
        }
        
        @Override
-       public String getInstructions(String input1, String output) throws 
LopsException {
-               String opcode = getOpcode(); 
-               
-               StringBuilder sb = new StringBuilder();
-               sb.append( getExecType() );
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( opcode );
-               sb.append( OPERAND_DELIMITOR );
-               
-               sb.append( getInputs().get(0).prepInputOperand(input1));
-               sb.append( OPERAND_DELIMITOR );
-               
-               sb.append( this.prepOutputOperand(output));
-               
-               return sb.toString();
+       public String getInstructions(int input_index, int output_index) throws 
LopsException {
+               return getInstructions(String.valueOf(input_index), 
String.valueOf(output_index));
        }
-       
+
        @Override
-       public String getInstructions(int input_index, int output_index) throws 
LopsException
+       public String getInstructions(String input1, String output) 
+               throws LopsException 
        {
-               boolean isCorrectionApplicable = false;
-               
-               String opcode = getOpcode(); 
-               if (operation == OperationTypes.Mean || operation == 
OperationTypes.Var
+               boolean isCorrectionApplicable = (getExecType() == ExecType.MR 
&&
+                               (operation == OperationTypes.Mean || operation 
== OperationTypes.Var
                                || operation == OperationTypes.KahanSum || 
operation == OperationTypes.KahanSumSq
-                               || operation == OperationTypes.KahanTrace)
-                       isCorrectionApplicable = true;
-               
+                               || operation == OperationTypes.KahanTrace));
+                       
                StringBuilder sb = new StringBuilder();
                sb.append( getExecType() );
                sb.append( OPERAND_DELIMITOR );
-               sb.append( opcode );
+               sb.append( getOpcode() );
                sb.append( OPERAND_DELIMITOR );
                
-               sb.append( getInputs().get(0).prepInputOperand(input_index));
+               sb.append( getInputs().get(0).prepInputOperand(input1));
                sb.append( OPERAND_DELIMITOR );
 
-               sb.append( this.prepOutputOperand(output_index));
+               sb.append( this.prepOutputOperand(output));
                
-               if ( isCorrectionApplicable )
-               {
-                       // add correction information to the instruction
+               if ( isCorrectionApplicable ) {
                        sb.append( OPERAND_DELIMITOR );
                        sb.append( isCorrectionUsed );
                        sb.append( OPERAND_DELIMITOR );
@@ -177,7 +160,4 @@ public class Aggregate extends Lop
                
                return sb.toString();
        }
-
- 
- 
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/AppendCP.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/AppendCP.java 
b/src/main/java/org/apache/sysml/lops/AppendCP.java
index 6b2d361..e76f21e 100644
--- a/src/main/java/org/apache/sysml/lops/AppendCP.java
+++ b/src/main/java/org/apache/sysml/lops/AppendCP.java
@@ -65,7 +65,7 @@ public class AppendCP extends Lop
        }
 
        //called when append executes in CP
-       public String getInstructions(String input_index1, String input_index2, 
String input_index3, String output_index) 
+       public String getInstructions(String input1, String input2, String 
input3, String output) 
                throws LopsException
        {
                StringBuilder sb = new StringBuilder();
@@ -74,16 +74,16 @@ public class AppendCP extends Lop
                sb.append( "append" );
                
                sb.append( OPERAND_DELIMITOR );
-               sb.append( 
getInputs().get(0).prepInputOperand(input_index1+""));
+               sb.append( getInputs().get(0).prepInputOperand(input1));
                
                sb.append( OPERAND_DELIMITOR );
-               sb.append( 
getInputs().get(1).prepInputOperand(input_index2+""));
+               sb.append( getInputs().get(1).prepInputOperand(input2));
                
                sb.append( OPERAND_DELIMITOR );
                sb.append( 
getInputs().get(2).prepScalarInputOperand(getExecType()));
                
                sb.append( OPERAND_DELIMITOR );
-               sb.append( prepOutputOperand(output_index+"") );
+               sb.append( prepOutputOperand(output) );
                
                sb.append( OPERAND_DELIMITOR );
                sb.append( _cbind );

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/AppendG.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/AppendG.java 
b/src/main/java/org/apache/sysml/lops/AppendG.java
index de38f21..161dea1 100644
--- a/src/main/java/org/apache/sysml/lops/AppendG.java
+++ b/src/main/java/org/apache/sysml/lops/AppendG.java
@@ -108,10 +108,10 @@ public class AppendG extends Lop
                sb.append( OPCODE );
                
                sb.append( OPERAND_DELIMITOR );
-               sb.append( 
getInputs().get(0).prepInputOperand(input_index1+""));
+               sb.append( getInputs().get(0).prepInputOperand(input_index1));
                
                sb.append( OPERAND_DELIMITOR );
-               sb.append( 
getInputs().get(1).prepInputOperand(input_index2+""));
+               sb.append( getInputs().get(1).prepInputOperand(input_index2));
                
                sb.append( OPERAND_DELIMITOR );
                sb.append( 
getInputs().get(2).prepScalarInputOperand(getExecType()));
@@ -120,7 +120,7 @@ public class AppendG extends Lop
                sb.append( 
getInputs().get(3).prepScalarInputOperand(getExecType()));
                
                sb.append( OPERAND_DELIMITOR );
-               sb.append( prepOutputOperand(output_index+"") );
+               sb.append( prepOutputOperand(output_index) );
                
                sb.append( OPERAND_DELIMITOR );
                sb.append( _cbind );

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/AppendGAlignedSP.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/AppendGAlignedSP.java 
b/src/main/java/org/apache/sysml/lops/AppendGAlignedSP.java
index a97e873..0222702 100644
--- a/src/main/java/org/apache/sysml/lops/AppendGAlignedSP.java
+++ b/src/main/java/org/apache/sysml/lops/AppendGAlignedSP.java
@@ -73,16 +73,16 @@ public class AppendGAlignedSP extends Lop
                sb.append( OPCODE );
                
                sb.append( OPERAND_DELIMITOR );
-               sb.append( 
getInputs().get(0).prepInputOperand(input_index1+""));
+               sb.append( getInputs().get(0).prepInputOperand(input_index1));
                
                sb.append( OPERAND_DELIMITOR );
-               sb.append( 
getInputs().get(1).prepInputOperand(input_index2+""));
+               sb.append( getInputs().get(1).prepInputOperand(input_index2));
                
                sb.append( OPERAND_DELIMITOR );
                sb.append( 
getInputs().get(2).prepScalarInputOperand(getExecType()));
                
                sb.append( OPERAND_DELIMITOR );
-               sb.append( prepOutputOperand(output_index+"") );
+               sb.append( prepOutputOperand(output_index) );
                
                sb.append( OPERAND_DELIMITOR );
                sb.append( _cbind );
@@ -90,4 +90,3 @@ public class AppendGAlignedSP extends Lop
                return sb.toString();
        }
 }
-

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/AppendR.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/AppendR.java 
b/src/main/java/org/apache/sysml/lops/AppendR.java
index 2b7c7eb..8495efe 100644
--- a/src/main/java/org/apache/sysml/lops/AppendR.java
+++ b/src/main/java/org/apache/sysml/lops/AppendR.java
@@ -80,7 +80,7 @@ public class AppendR extends Lop
        }
        
        //called when append executes in CP
-       public String getInstructions(String input_index1, String input_index2, 
String output_index) 
+       public String getInstructions(String input1, String input2, String 
output) 
                throws LopsException
        {
                StringBuilder sb = new StringBuilder();
@@ -90,13 +90,13 @@ public class AppendR extends Lop
                sb.append( OPCODE );
                
                sb.append( OPERAND_DELIMITOR );
-               sb.append( 
getInputs().get(0).prepInputOperand(input_index1+""));
+               sb.append( getInputs().get(0).prepInputOperand(input1));
                
                sb.append( OPERAND_DELIMITOR );
-               sb.append( 
getInputs().get(1).prepInputOperand(input_index2+""));
+               sb.append( getInputs().get(1).prepInputOperand(input2));
                
                sb.append( OPERAND_DELIMITOR );
-               sb.append( prepOutputOperand(output_index+"") );
+               sb.append( prepOutputOperand(output) );
                
                sb.append( OPERAND_DELIMITOR );
                sb.append( _cbind );

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/Binary.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/Binary.java 
b/src/main/java/org/apache/sysml/lops/Binary.java
index 89c1f47..d42cb3b 100644
--- a/src/main/java/org/apache/sysml/lops/Binary.java
+++ b/src/main/java/org/apache/sysml/lops/Binary.java
@@ -175,6 +175,15 @@ public class Binary extends Lop
                }
        }
        
+       
+       @Override
+       public String getInstructions(int input_index1, int input_index2, int 
output_index) throws LopsException {
+               return getInstructions(
+                               String.valueOf(input_index1), 
+                               String.valueOf(input_index2), 
+                               String.valueOf(output_index));
+       }
+       
        @Override
        public String getInstructions(String input1, String input2, String 
output) 
                throws LopsException 
@@ -207,10 +216,4 @@ public class Binary extends Lop
                
                return sb.toString();
        }
-       
-       @Override
-       public String getInstructions(int input_index1, int input_index2, int 
output_index) throws LopsException
-       {
-               return getInstructions(input_index1+"", input_index2+"", 
output_index+"");
-       }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/BinaryM.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/BinaryM.java 
b/src/main/java/org/apache/sysml/lops/BinaryM.java
index f6a29cb..d3183e6 100644
--- a/src/main/java/org/apache/sysml/lops/BinaryM.java
+++ b/src/main/java/org/apache/sysml/lops/BinaryM.java
@@ -177,6 +177,15 @@ public class BinaryM extends Lop
                           opcode.equals("map^") || opcode.equals("map1-*");
        }
        
+       
+       @Override
+       public String getInstructions(int input_index1, int input_index2, int 
output_index) throws LopsException {
+               return getInstructions(
+                               String.valueOf(input_index1), 
+                               String.valueOf(input_index2), 
+                               String.valueOf(output_index));
+       }
+       
        @Override
        public String getInstructions(String input1, String input2, String 
output) 
                throws LopsException 
@@ -206,20 +215,12 @@ public class BinaryM extends Lop
        }
        
        @Override
-       public String getInstructions(int input_index1, int input_index2, int 
output_index) throws LopsException
-       {
-               return getInstructions(input_index1+"", input_index2+"", 
output_index+"");
-       }
-       
-       @Override
-       public boolean usesDistributedCache() 
-       {
+       public boolean usesDistributedCache() {
                return true;
        }
        
        @Override
-       public int[] distributedCacheInputIndex() 
-       {       
+       public int[] distributedCacheInputIndex() {     
                // second input is from distributed cache
                return new int[]{2};
        }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/BinaryUAggChain.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/BinaryUAggChain.java 
b/src/main/java/org/apache/sysml/lops/BinaryUAggChain.java
index eebb3b8..3203cf5 100644
--- a/src/main/java/org/apache/sysml/lops/BinaryUAggChain.java
+++ b/src/main/java/org/apache/sysml/lops/BinaryUAggChain.java
@@ -93,32 +93,10 @@ public class BinaryUAggChain extends Lop
        }
        
        @Override
-       public String getInstructions(int input_index1, int output_index)
-       {
-               StringBuilder sb = new StringBuilder();
-               
-               //exec type
-               sb.append(getExecType());
-               sb.append(Lop.OPERAND_DELIMITOR);
-               
-               //inst op code
-               sb.append(OPCODE);
-               sb.append(Lop.OPERAND_DELIMITOR);
-
-               //outer operation op code
-               sb.append(Binary.getOpcode(_binOp));
-               sb.append(Lop.OPERAND_DELIMITOR);
-               
-               //inner operation op code
-               sb.append(PartialAggregate.getOpcode(_uaggOp, _uaggDir));       
        
-               sb.append(Lop.OPERAND_DELIMITOR);
-
-               //inputs and outputs
-               sb.append( getInputs().get(0).prepInputOperand(input_index1));
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( this.prepOutputOperand(output_index));
-                               
-               return sb.toString();
+       public String getInstructions(int input_index1, int output_index) {
+               return getInstructions(
+                               String.valueOf(input_index1), 
+                               String.valueOf(output_index));
        }
        
        @Override

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/CSVReBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/CSVReBlock.java 
b/src/main/java/org/apache/sysml/lops/CSVReBlock.java
index 5bca2bb..a15e036 100644
--- a/src/main/java/org/apache/sysml/lops/CSVReBlock.java
+++ b/src/main/java/org/apache/sysml/lops/CSVReBlock.java
@@ -134,62 +134,28 @@ public class CSVReBlock extends Lop
 }
 
        @Override
-       public String getInstructions(int input_index, int output_index) throws 
LopsException
-       {
+       public String getInstructions(int input_index, int output_index) throws 
LopsException {
+               return getInstructions(String.valueOf(input_index), 
String.valueOf(output_index));
+       }
+       
+       @Override
+       public String getInstructions(String input1, String output) throws 
LopsException {
                StringBuilder sb = new StringBuilder();
                sb.append( getExecType() );
                sb.append( Lop.OPERAND_DELIMITOR );
                sb.append( OPCODE );
                sb.append( OPERAND_DELIMITOR );
-               
-               Lop input = getInputs().get(0);
-               
-               sb.append( input.prepInputOperand(input_index) );
+               sb.append( getInputs().get(0).prepInputOperand(input1));
                sb.append( OPERAND_DELIMITOR );
-               
-               sb.append( this.prepOutputOperand(output_index) );
+               sb.append( prepOutputOperand(output));
                sb.append( OPERAND_DELIMITOR );
-               
                sb.append( rows_per_block );
                sb.append( OPERAND_DELIMITOR );
                sb.append( cols_per_block );
                sb.append( OPERAND_DELIMITOR );
                
                sb.append( prepCSVProperties() );
-               
-               return sb.toString();
-       }
-       
-       @Override
-       public String getInstructions(String input1, String output) throws 
LopsException {
-               if(getExecType() != ExecType.SPARK) {
-                       throw new LopsException("The method 
getInstructions(String,String) for CSVReblock should be called only for Spark 
execution type");
-               }
-               
-               if (this.getInputs().size() == 1) {
-                       
-                       StringBuilder sb = new StringBuilder();
-                       sb.append( getExecType() );
-                       sb.append( Lop.OPERAND_DELIMITOR );
-                       sb.append( OPCODE );
-                       sb.append( OPERAND_DELIMITOR );
-                       sb.append( getInputs().get(0).prepInputOperand(input1));
-                       sb.append( OPERAND_DELIMITOR );
-                       sb.append( this.prepOutputOperand(output));
-                       sb.append( OPERAND_DELIMITOR );
-                       sb.append( rows_per_block );
-                       sb.append( OPERAND_DELIMITOR );
-                       sb.append( cols_per_block );
-                       sb.append( OPERAND_DELIMITOR );
-                       
-                       sb.append( prepCSVProperties() );
-
-                       return sb.toString();
 
-               } else {
-                       throw new LopsException(this.printErrorLocation() + 
"Invalid number of operands ("
-                                       + this.getInputs().size() + ") for 
CSVReblock operation");
-               }
+               return sb.toString();
        }
- 
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/CentralMoment.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/CentralMoment.java 
b/src/main/java/org/apache/sysml/lops/CentralMoment.java
index fcacd5d..85b6ba2 100644
--- a/src/main/java/org/apache/sysml/lops/CentralMoment.java
+++ b/src/main/java/org/apache/sysml/lops/CentralMoment.java
@@ -77,7 +77,6 @@ public class CentralMoment extends Lop
 
        @Override
        public String toString() {
-
                return "Operation = CentralMoment";
        }
 
@@ -102,11 +101,14 @@ public class CentralMoment extends Lop
                sb.append( OPERAND_DELIMITOR );
                
                // Weights
-               sb.append( getInputs().get(1).prepInputOperand(input2) );
-               sb.append( OPERAND_DELIMITOR );
+               if( input3 != null ) {
+                       sb.append( getInputs().get(1).prepInputOperand(input2) 
);
+                       sb.append( OPERAND_DELIMITOR );
+               }
                
                // Order
-               sb.append( 
getInputs().get(2).prepScalarInputOperand(getExecType()) );
+               sb.append( getInputs().get((input3!=null)?2:1)
+                               .prepScalarInputOperand(getExecType()) );
                sb.append( OPERAND_DELIMITOR );
                
                sb.append( prepOutputOperand(output));
@@ -122,24 +124,7 @@ public class CentralMoment extends Lop
         */
        @Override
        public String getInstructions(String input1, String input2, String 
output) {
-               StringBuilder sb = new StringBuilder();
-               sb.append( getExecType() );
-               sb.append( Lop.OPERAND_DELIMITOR );
-               
-               sb.append( "cm" );
-               sb.append( OPERAND_DELIMITOR ); 
-               
-               // Input data (can be weighted or unweighted)
-               sb.append( getInputs().get(0).prepInputOperand(input1));
-               sb.append( OPERAND_DELIMITOR );
-               
-               // Order
-               sb.append( 
getInputs().get(1).prepScalarInputOperand(getExecType()) );
-               sb.append( OPERAND_DELIMITOR );
-               
-               sb.append( this.prepOutputOperand(output));
-               
-               return sb.toString();
+               return getInstructions(input1, input2, null, output);
        }
        
        /**
@@ -154,7 +139,6 @@ public class CentralMoment extends Lop
         */
        @Override
        public String getInstructions(int input_index, int output_index) {
-               return getInstructions(input_index+"", "", output_index+"");
+               return getInstructions(String.valueOf(input_index), "", 
String.valueOf(output_index));
        }
-
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/CoVariance.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/CoVariance.java 
b/src/main/java/org/apache/sysml/lops/CoVariance.java
index 97429a9..8e84222 100644
--- a/src/main/java/org/apache/sysml/lops/CoVariance.java
+++ b/src/main/java/org/apache/sysml/lops/CoVariance.java
@@ -100,21 +100,7 @@ public class CoVariance extends Lop
         */
        @Override
        public String getInstructions(String input1, String input2, String 
output) {
-               StringBuilder sb = new StringBuilder();
-               sb.append( getExecType() );
-               sb.append( Lop.OPERAND_DELIMITOR );
-               sb.append( "cov" );
-               sb.append( OPERAND_DELIMITOR );
-
-               sb.append( getInputs().get(0).prepInputOperand(input1));
-               sb.append( OPERAND_DELIMITOR );
-
-               sb.append( getInputs().get(1).prepInputOperand(input2));
-               sb.append( OPERAND_DELIMITOR );
-
-               sb.append( this.prepOutputOperand(output));
-               
-               return sb.toString();
+               return getInstructions(input1, input2, null, output);
        }
 
        /**
@@ -134,13 +120,17 @@ public class CoVariance extends Lop
                sb.append( getInputs().get(0).prepInputOperand(input1));
                sb.append( OPERAND_DELIMITOR );
 
-               sb.append( getInputs().get(1).prepInputOperand(input2));
-               sb.append( OPERAND_DELIMITOR );
-
-               sb.append( getInputs().get(2).prepInputOperand(input3));
-               sb.append( OPERAND_DELIMITOR );
+               if( input2 != null ) {
+                       sb.append( getInputs().get(1).prepInputOperand(input2));
+                       sb.append( OPERAND_DELIMITOR );
+               }
+               
+               if( input3 != null ) {
+                       sb.append( getInputs().get(2).prepInputOperand(input3));
+                       sb.append( OPERAND_DELIMITOR );
+               }
                
-               sb.append( this.prepOutputOperand(output));
+               sb.append( prepOutputOperand(output));
                
                return sb.toString();
        }
@@ -152,18 +142,7 @@ public class CoVariance extends Lop
         */
        @Override
        public String getInstructions(int input_index, int output_index) {
-               StringBuilder sb = new StringBuilder();
-               sb.append( getExecType() );
-               sb.append( Lop.OPERAND_DELIMITOR );
-               sb.append( "cov" );
-               sb.append( OPERAND_DELIMITOR );
-               
-               sb.append( getInputs().get(0).prepInputOperand(input_index));
-               sb.append( OPERAND_DELIMITOR );
-               
-               sb.append ( this.prepInputOperand(output_index));
-               
-               return sb.toString();
+               return getInstructions(String.valueOf(input_index), null, null, 
String.valueOf(output_index));
        }
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/CumulativeOffsetBinary.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/CumulativeOffsetBinary.java 
b/src/main/java/org/apache/sysml/lops/CumulativeOffsetBinary.java
index 9dc93b9..5b3bb2a 100644
--- a/src/main/java/org/apache/sysml/lops/CumulativeOffsetBinary.java
+++ b/src/main/java/org/apache/sysml/lops/CumulativeOffsetBinary.java
@@ -109,26 +109,13 @@ public class CumulativeOffsetBinary extends Lop
        }
        
        @Override
-       public String getInstructions(int input_index1, int input_index2, int 
output_index)
-               throws LopsException 
-       {
-               StringBuilder sb = new StringBuilder();
-               sb.append( getExecType() );
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( getOpcode() );
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( getInputs().get(0).prepInputOperand(input_index1) );
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( getInputs().get(1).prepInputOperand(input_index2) );
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( this.prepOutputOperand(output_index) );
-
-               return sb.toString();
+       public String getInstructions(int input_index1, int input_index2, int 
output_index) {
+               return getInstructions(String.valueOf(input_index1), 
+                               String.valueOf(input_index2), 
String.valueOf(output_index));
        }
        
        @Override
        public String getInstructions(String input1, String input2, String 
output)
-               throws LopsException 
        {
                StringBuilder sb = new StringBuilder();
                sb.append( getExecType() );
@@ -140,6 +127,7 @@ public class CumulativeOffsetBinary extends Lop
                sb.append( getInputs().get(1).prepInputOperand(input2) );
                sb.append( OPERAND_DELIMITOR );
                sb.append( this.prepOutputOperand(output) );
+               
                if( getExecType() == ExecType.SPARK ) {
                        sb.append( OPERAND_DELIMITOR );
                        sb.append( _initValue );        

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/CumulativePartialAggregate.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/lops/CumulativePartialAggregate.java 
b/src/main/java/org/apache/sysml/lops/CumulativePartialAggregate.java
index ccd25a9..3e0e6a3 100644
--- a/src/main/java/org/apache/sysml/lops/CumulativePartialAggregate.java
+++ b/src/main/java/org/apache/sysml/lops/CumulativePartialAggregate.java
@@ -90,25 +90,12 @@ public class CumulativePartialAggregate extends Lop
        }
        
        @Override
-       public String getInstructions(int input_index, int output_index)
-               throws LopsException 
-       {
-               StringBuilder sb = new StringBuilder();
-               sb.append( getExecType() );
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( getOpcode() );
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( getInputs().get(0).prepInputOperand(input_index) );
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( this.prepOutputOperand(output_index) );
-
-               return sb.toString();
+       public String getInstructions(int input_index, int output_index) {
+               return getInstructions(String.valueOf(input_index), 
String.valueOf(output_index));
        }
        
        @Override
-       public String getInstructions(String input, String output)
-               throws LopsException 
-       {
+       public String getInstructions(String input, String output) {
                StringBuilder sb = new StringBuilder();
                sb.append( getExecType() );
                sb.append( OPERAND_DELIMITOR );
@@ -116,7 +103,7 @@ public class CumulativePartialAggregate extends Lop
                sb.append( OPERAND_DELIMITOR );
                sb.append( getInputs().get(0).prepInputOperand(input) );
                sb.append( OPERAND_DELIMITOR );
-               sb.append( this.prepOutputOperand(output) );
+               sb.append( prepOutputOperand(output) );
 
                return sb.toString();
        }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/CumulativeSplitAggregate.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/CumulativeSplitAggregate.java 
b/src/main/java/org/apache/sysml/lops/CumulativeSplitAggregate.java
index 252af95..14f9359 100644
--- a/src/main/java/org/apache/sysml/lops/CumulativeSplitAggregate.java
+++ b/src/main/java/org/apache/sysml/lops/CumulativeSplitAggregate.java
@@ -26,7 +26,6 @@ import org.apache.sysml.parser.Expression.*;
 
 public class CumulativeSplitAggregate extends Lop 
 {
-
        private double _initValue = 0;
        
        public CumulativeSplitAggregate(Lop input, DataType dt, ValueType vt, 
double init)
@@ -60,7 +59,6 @@ public class CumulativeSplitAggregate extends Lop
        
        @Override
        public String getInstructions(int input_index, int output_index)
-               throws LopsException 
        {
                StringBuilder sb = new StringBuilder();
                sb.append( getExecType() );

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/Data.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/Data.java 
b/src/main/java/org/apache/sysml/lops/Data.java
index 8e723c4..b8e40af 100644
--- a/src/main/java/org/apache/sysml/lops/Data.java
+++ b/src/main/java/org/apache/sysml/lops/Data.java
@@ -259,11 +259,8 @@ public class Data extends Lop
         * method to check if this data lop represents a literal.
         * @return true if data lop is a literal
         */
-       
-       public boolean isLiteral()
-       {
+       public boolean isLiteral() {
                return literal_var;
-
        }
        
        public boolean getBooleanValue() throws LopsException {

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/DataPartition.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/DataPartition.java 
b/src/main/java/org/apache/sysml/lops/DataPartition.java
index 537dbaa..81599db 100644
--- a/src/main/java/org/apache/sysml/lops/DataPartition.java
+++ b/src/main/java/org/apache/sysml/lops/DataPartition.java
@@ -61,11 +61,8 @@ public class DataPartition extends Lop
                return "DataPartition";
        }
 
-       //CP instruction generation
        @Override
-       public String getInstructions(String input_index, String output_index) 
-               throws LopsException
-       {
+       public String getInstructions(String input_index, String output_index) {
                StringBuilder sb = new StringBuilder();
                sb.append( getExecType() );
                sb.append( Lop.OPERAND_DELIMITOR );
@@ -88,30 +85,8 @@ public class DataPartition extends Lop
                return sb.toString();
        }
        
-       //MR instruction generation
        @Override
-       public String getInstructions(int input_index, int output_index) 
-               throws LopsException
-       {
-               StringBuilder sb = new StringBuilder();
-               sb.append( getExecType() );
-               sb.append( Lop.OPERAND_DELIMITOR );
-               sb.append( OPCODE );
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( input_index );
-               sb.append( DATATYPE_PREFIX );
-               sb.append( getInputs().get(0).getDataType() );
-               sb.append( VALUETYPE_PREFIX );
-               sb.append( getInputs().get(0).getValueType() );
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( output_index );
-               sb.append( DATATYPE_PREFIX );
-               sb.append( getDataType() );
-               sb.append( VALUETYPE_PREFIX );
-               sb.append( getValueType() );
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( _pformat.toString() );
-               
-               return sb.toString();
+       public String getInstructions(int input_index, int output_index) {
+               return getInstructions(String.valueOf(input_index), 
String.valueOf(output_index));
        }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/Group.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/Group.java 
b/src/main/java/org/apache/sysml/lops/Group.java
index 15a470f..7fe238b 100644
--- a/src/main/java/org/apache/sysml/lops/Group.java
+++ b/src/main/java/org/apache/sysml/lops/Group.java
@@ -30,9 +30,6 @@ import org.apache.sysml.parser.Expression.*;
 
 public class Group extends Lop  
 {
-
-       
-       
        public enum OperationTypes {Sort};
        
        OperationTypes operation;
@@ -67,11 +64,7 @@ public class Group extends Lop
        }
 
        @Override
-       public String toString() 
-       {
-               //return "Group " + "Operation: " + operation;
+       public String toString() {
                return "Operation: " + operation;
-       
        }
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/GroupedAggregateM.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/GroupedAggregateM.java 
b/src/main/java/org/apache/sysml/lops/GroupedAggregateM.java
index a8f9cf2..ff0f2a2 100644
--- a/src/main/java/org/apache/sysml/lops/GroupedAggregateM.java
+++ b/src/main/java/org/apache/sysml/lops/GroupedAggregateM.java
@@ -88,8 +88,7 @@ public class GroupedAggregateM extends Lop
        }
        
        @Override
-       public String getInstructions(int input1, int input2, int output) 
-       {
+       public String getInstructions(int input1, int input2, int output) {
                return getInstructions(
                        String.valueOf(input1),
                        String.valueOf(input2),
@@ -126,20 +125,13 @@ public class GroupedAggregateM extends Lop
        }
        
        @Override
-       public boolean usesDistributedCache() 
-       {
-               if( getExecType()==ExecType.MR )
-                       return true;
-               else
-                       return false;
+       public boolean usesDistributedCache() {
+               return (getExecType()==ExecType.MR);
        }
        
        @Override
-       public int[] distributedCacheInputIndex() 
-       {
-               if( getExecType()==ExecType.MR )
-                       return new int[]{2};
-               else
-                       return new int[]{-1};
+       public int[] distributedCacheInputIndex() {
+               return (getExecType()==ExecType.MR) ?
+                       new int[]{2} : new int[]{-1};
        }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/Lop.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/Lop.java 
b/src/main/java/org/apache/sysml/lops/Lop.java
index 24f7ba3..c92fb57 100644
--- a/src/main/java/org/apache/sysml/lops/Lop.java
+++ b/src/main/java/org/apache/sysml/lops/Lop.java
@@ -721,7 +721,7 @@ public abstract class Lop
        }
        
        public String prepOutputOperand(int index) {
-               return prepOperand(index+"");
+               return prepOperand(String.valueOf(index));
        }
        public String prepOutputOperand(String label) {
                return prepOperand(label);
@@ -804,7 +804,7 @@ public abstract class Lop
        }
 
        public String prepInputOperand(int index) {
-               return prepInputOperand(index+"");
+               return prepInputOperand(String.valueOf(index));
        }
 
        public String prepInputOperand(String label) {

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/MMCJ.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/MMCJ.java 
b/src/main/java/org/apache/sysml/lops/MMCJ.java
index 3d3fc8e..429520e 100644
--- a/src/main/java/org/apache/sysml/lops/MMCJ.java
+++ b/src/main/java/org/apache/sysml/lops/MMCJ.java
@@ -31,8 +31,6 @@ import org.apache.sysml.parser.Expression.*;
  */
 public class MMCJ extends Lop 
 {
-
-               
        public enum MMCJType {
                AGG,
                NO_AGG,
@@ -83,41 +81,21 @@ public class MMCJ extends Lop
                }
        }
 
-       public MMCJ(Lop input1, Lop input2, DataType dt, ValueType vt, 
SparkAggType aggtype, ExecType et) 
-       {
+       public MMCJ(Lop input1, Lop input2, DataType dt, ValueType vt, 
SparkAggType aggtype, ExecType et) {
                this(input1, input2, dt, vt, MMCJType.NO_AGG, et);
-               
                _aggtype = aggtype;
        }
        
        
        @Override
        public String toString() {
-       
                return "Operation = MMCJ";
        }
 
-       //MR instruction generation
        @Override
-       public String getInstructions(int input_index1, int input_index2, int 
output_index)
-       {
-               StringBuilder sb = new StringBuilder();
-               sb.append( getExecType() );
-               sb.append( Lop.OPERAND_DELIMITOR );
-               sb.append( "cpmm" );
-               sb.append( OPERAND_DELIMITOR );
-               
-               sb.append( getInputs().get(0).prepInputOperand(input_index1));
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( getInputs().get(1).prepInputOperand(input_index2));
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( this.prepOutputOperand(output_index));
-               
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( _type );
-               
-               
-               return sb.toString();
+       public String getInstructions(int input_index1, int input_index2, int 
output_index) {
+               return getInstructions(String.valueOf(input_index1), 
+                               String.valueOf(input_index2), 
String.valueOf(output_index));
        }
 
        //SPARK instruction generation
@@ -126,19 +104,25 @@ public class MMCJ extends Lop
        {
                StringBuilder sb = new StringBuilder();
                sb.append( getExecType() );
+               
                sb.append( Lop.OPERAND_DELIMITOR );
                sb.append( "cpmm" );
-               sb.append( OPERAND_DELIMITOR );
                
+               sb.append( OPERAND_DELIMITOR );
                sb.append( getInputs().get(0).prepInputOperand(input1) );
+               
                sb.append( OPERAND_DELIMITOR );
                sb.append( getInputs().get(1).prepInputOperand(input2) );
+               
                sb.append( OPERAND_DELIMITOR );
-               sb.append( this.prepOutputOperand(output) );
+               sb.append( prepOutputOperand(output) );
                
                sb.append( OPERAND_DELIMITOR );
-               sb.append( _aggtype );
-                               
+               if( getExecType() == ExecType.SPARK )
+                       sb.append(_aggtype.name());
+               else
+                       sb.append(_type.name());
+               
                return sb.toString();
        }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/MMRJ.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/MMRJ.java 
b/src/main/java/org/apache/sysml/lops/MMRJ.java
index 550960a..0ded233 100644
--- a/src/main/java/org/apache/sysml/lops/MMRJ.java
+++ b/src/main/java/org/apache/sysml/lops/MMRJ.java
@@ -30,8 +30,6 @@ import org.apache.sysml.parser.Expression.*;
  */
 public class MMRJ extends Lop 
 {
-
-               
        /**
         * Constructor to perform a cross product operation.
         * 
@@ -71,25 +69,13 @@ public class MMRJ extends Lop
 
        @Override
        public String toString() {
-       
                return "Operation = MMRJ";
        }
 
        @Override
-       public String getInstructions(int input_index1, int input_index2, int 
output_index)
-       {
-               StringBuilder sb = new StringBuilder();
-               sb.append( getExecType() );
-               sb.append( Lop.OPERAND_DELIMITOR );
-               sb.append( "rmm" );
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( getInputs().get(0).prepInputOperand(input_index1));
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( getInputs().get(1).prepInputOperand(input_index2));
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( this.prepOutputOperand(output_index));
-               
-               return sb.toString();
+       public String getInstructions(int input_index1, int input_index2, int 
output_index) {
+               return getInstructions(String.valueOf(input_index1), 
+                               String.valueOf(input_index2), 
String.valueOf(output_index));
        }
 
        @Override
@@ -108,4 +94,4 @@ public class MMRJ extends Lop
                
                return sb.toString();
        }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/MMTSJ.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/MMTSJ.java 
b/src/main/java/org/apache/sysml/lops/MMTSJ.java
index c6fd535..fd5fbe3 100644
--- a/src/main/java/org/apache/sysml/lops/MMTSJ.java
+++ b/src/main/java/org/apache/sysml/lops/MMTSJ.java
@@ -79,31 +79,13 @@ public class MMTSJ extends Lop
                return "Operation = MMTSJ";
        }
 
-       /**
-        * MR instruction generation.
-        */
        @Override
-       public String getInstructions(int input_index1, int output_index)
-       {
-               StringBuilder sb = new StringBuilder();
-               sb.append( getExecType() );
-               sb.append( Lop.OPERAND_DELIMITOR );
-               sb.append( "tsmm" );
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( getInputs().get(0).prepInputOperand(input_index1));
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( this.prepOutputOperand(output_index));
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( _type );
-               
-               return sb.toString();
+       public String getInstructions(int input_index1, int output_index) {
+               return getInstructions(String.valueOf(input_index1), 
String.valueOf(output_index));
        }
 
-       /**
-        * CP and Spark instruction generation.
-        */
        @Override
-       public String getInstructions(String input_index1, String output_index) 
throws LopsException
+       public String getInstructions(String input_index1, String output_index)
        {       
                StringBuilder sb = new StringBuilder();
                sb.append( getExecType() );
@@ -112,7 +94,7 @@ public class MMTSJ extends Lop
                sb.append( OPERAND_DELIMITOR );
                sb.append( getInputs().get(0).prepInputOperand(input_index1));
                sb.append( OPERAND_DELIMITOR );
-               sb.append( this.prepOutputOperand(output_index));
+               sb.append( prepOutputOperand(output_index));
                sb.append( OPERAND_DELIMITOR );
                sb.append( _type );
                
@@ -124,6 +106,4 @@ public class MMTSJ extends Lop
                
                return sb.toString();
        }
- 
- 
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/MMZip.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/MMZip.java 
b/src/main/java/org/apache/sysml/lops/MMZip.java
index 40382d2..9353b8f 100644
--- a/src/main/java/org/apache/sysml/lops/MMZip.java
+++ b/src/main/java/org/apache/sysml/lops/MMZip.java
@@ -55,7 +55,6 @@ public class MMZip extends Lop
 
        @Override
        public String toString() {
-       
                return "Operation = MMZip";
        }
 
@@ -77,4 +76,4 @@ public class MMZip extends Lop
                
                return sb.toString();
        }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/MapMult.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/MapMult.java 
b/src/main/java/org/apache/sysml/lops/MapMult.java
index 6597136..d4919bc 100644
--- a/src/main/java/org/apache/sysml/lops/MapMult.java
+++ b/src/main/java/org/apache/sysml/lops/MapMult.java
@@ -29,7 +29,6 @@ import org.apache.sysml.parser.Expression.ValueType;
 
 public class MapMult extends Lop 
 {
-       
        public static final String OPCODE = "mapmm";
        
        public enum CacheType {
@@ -139,91 +138,52 @@ public class MapMult extends Lop
        }
        
        @Override
-       public String getInstructions(int input_index1, int input_index2, int 
output_index)
-       {
-               //MR instruction generation
-               
-               StringBuilder sb = new StringBuilder();
-               
-               sb.append(getExecType());
-               sb.append(Lop.OPERAND_DELIMITOR);
-               
-               sb.append(OPCODE);
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( getInputs().get(0).prepInputOperand(input_index1));
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( getInputs().get(1).prepInputOperand(input_index2));
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( this.prepOutputOperand(output_index));
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append(_cacheType);
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append(_outputEmptyBlocks);
-               
-               return sb.toString();
+       public String getInstructions(int input_index1, int input_index2, int 
output_index) {
+               return getInstructions(String.valueOf(input_index1), 
+                       String.valueOf(input_index2), 
String.valueOf(output_index));
        }
        
        @Override
        public String getInstructions(String input1, String input2, String 
output)
        {
-               //Spark instruction generation
-               
                StringBuilder sb = new StringBuilder();
                
                sb.append(getExecType());
-               sb.append(Lop.OPERAND_DELIMITOR);
                
-               sb.append(OPCODE);
                sb.append(Lop.OPERAND_DELIMITOR);
+               sb.append(OPCODE);
                
-               sb.append( getInputs().get(0).prepInputOperand(input1));
                sb.append(Lop.OPERAND_DELIMITOR);
+               sb.append( getInputs().get(0).prepInputOperand(input1));
                
-               
-               sb.append( getInputs().get(1).prepInputOperand(input2));
                sb.append(Lop.OPERAND_DELIMITOR);
+               sb.append( getInputs().get(1).prepInputOperand(input2));
                
-               sb.append( this.prepOutputOperand(output));
                sb.append(Lop.OPERAND_DELIMITOR);
+               sb.append(prepOutputOperand(output));
                
-               sb.append(_cacheType);
                sb.append(Lop.OPERAND_DELIMITOR);
+               sb.append(_cacheType);
                
-               sb.append(_outputEmptyBlocks);
                sb.append(Lop.OPERAND_DELIMITOR);
+               sb.append(_outputEmptyBlocks);
                
-               sb.append(_aggtype.toString());
+               if( getExecType() == ExecType.SPARK ) {
+                       sb.append(Lop.OPERAND_DELIMITOR);
+                       sb.append(_aggtype.toString());
+               }
                
                return sb.toString();
        }
 
        @Override
-       public boolean usesDistributedCache() 
-       {
+       public boolean usesDistributedCache() {
                return true;
        }
        
        @Override
-       public int[] distributedCacheInputIndex() 
-       {       
-               switch( _cacheType )
-               {
-                       // first input is from distributed cache
-                       case LEFT:
-                       case LEFT_PART: 
-                               return new int[]{1};
-                       
-                       // second input is from distributed cache
-                       case RIGHT:
-                       case RIGHT_PART: 
-                               return new int[]{2};
-               }
-                               
-               return new int[]{-1}; //error
+       public int[] distributedCacheInputIndex() {     
+               return _cacheType.isRight() ?
+                       new int[]{2} : new int[]{1};
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/MapMultChain.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/MapMultChain.java 
b/src/main/java/org/apache/sysml/lops/MapMultChain.java
index 163fa6d..f3eb6b5 100644
--- a/src/main/java/org/apache/sysml/lops/MapMultChain.java
+++ b/src/main/java/org/apache/sysml/lops/MapMultChain.java
@@ -28,7 +28,6 @@ import org.apache.sysml.parser.Expression.ValueType;
 
 public class MapMultChain extends Lop 
 {
-       
        public static final String OPCODE = "mapmmchain";
        public static final String OPCODE_CP = "mmchain";
 
@@ -126,93 +125,20 @@ public class MapMultChain extends Lop
        }
        
        @Override
-       public String getInstructions(int input_index1, int input_index2, int 
output_index)
-       {
-               //MR instruction XtXv
-               StringBuilder sb = new StringBuilder();
-               
-               sb.append(getExecType());
-               sb.append(Lop.OPERAND_DELIMITOR);
-               
-               sb.append(OPCODE);
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( getInputs().get(0).prepInputOperand(input_index1));
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( getInputs().get(1).prepInputOperand(input_index2));
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( this.prepOutputOperand(output_index));
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append(_chainType);
-               
-               return sb.toString();
+       public String getInstructions(int input_index1, int input_index2, int 
output_index) {
+               return getInstructions(String.valueOf(input_index1), 
String.valueOf(input_index2), 
+                               null, String.valueOf(output_index));
        }
        
        @Override
-       public String getInstructions(int input_index1, int input_index2, int 
input_index3, int output_index)
-       {
-               //MR instruction XtwXv
-               StringBuilder sb = new StringBuilder();
-               
-               sb.append(getExecType());
-               sb.append(Lop.OPERAND_DELIMITOR);
-               
-               sb.append(OPCODE);
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( getInputs().get(0).prepInputOperand(input_index1));
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( getInputs().get(1).prepInputOperand(input_index2));
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( getInputs().get(2).prepInputOperand(input_index3));
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( this.prepOutputOperand(output_index));
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append(_chainType);
-               
-               return sb.toString();
+       public String getInstructions(int input_index1, int input_index2, int 
input_index3, int output_index) {
+               return getInstructions(String.valueOf(input_index1), 
String.valueOf(input_index2), 
+                               String.valueOf(input_index3), 
String.valueOf(output_index));
        }
 
        @Override
-       public String getInstructions(String input1, String input2, String 
output)
-       {
-               //Spark instruction XtXv
-               StringBuilder sb = new StringBuilder();
-               
-               sb.append(getExecType());
-               sb.append(Lop.OPERAND_DELIMITOR);
-               
-               if( getExecType()==ExecType.CP )
-                       sb.append(OPCODE_CP);
-               else
-                       sb.append(OPCODE);
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( getInputs().get(0).prepInputOperand(input1));
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( getInputs().get(1).prepInputOperand(input2));
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( this.prepOutputOperand(output));
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append(_chainType);
-               
-               //append degree of parallelism for matrix multiplications
-               if( getExecType()==ExecType.CP ) {
-                       sb.append( OPERAND_DELIMITOR );
-                       sb.append( _numThreads );
-               }
-               
-               return sb.toString();
+       public String getInstructions(String input1, String input2, String 
output) {
+               return getInstructions(input1, input2, null, output);
        }
        
        @Override
@@ -235,11 +161,13 @@ public class MapMultChain extends Lop
                sb.append(Lop.OPERAND_DELIMITOR);
                sb.append( getInputs().get(1).prepInputOperand(input2));
                
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( getInputs().get(2).prepInputOperand(input3));
+               if( input3 != null ) {
+                       sb.append(Lop.OPERAND_DELIMITOR);
+                       sb.append( getInputs().get(2).prepInputOperand(input3));
+               }
                
                sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( this.prepOutputOperand(output));
+               sb.append(prepOutputOperand(output));
                
                sb.append(Lop.OPERAND_DELIMITOR);
                sb.append(_chainType);
@@ -254,20 +182,13 @@ public class MapMultChain extends Lop
        }
        
        @Override
-       public boolean usesDistributedCache() 
-       {
+       public boolean usesDistributedCache() {
                return true;
        }
        
        @Override
-       public int[] distributedCacheInputIndex() 
-       {
-               if( _chainType == ChainType.XtXv )
-                       return new int[]{2};
-               else if( _chainType == ChainType.XtwXv || _chainType == 
ChainType.XtXvy )
-                       return new int[]{2,3};
-               
-               //error
-               return new int[]{-1};
+       public int[] distributedCacheInputIndex() {
+               return (_chainType == ChainType.XtXv) ?
+                       new int[]{2} : new int[]{2,3};
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/PMMJ.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/PMMJ.java 
b/src/main/java/org/apache/sysml/lops/PMMJ.java
index c371049..0f4e9c3 100644
--- a/src/main/java/org/apache/sysml/lops/PMMJ.java
+++ b/src/main/java/org/apache/sysml/lops/PMMJ.java
@@ -82,39 +82,13 @@ public class PMMJ extends Lop
        }
        
        @Override
-       public String getInstructions(int input_index1, int input_index2, int 
input_index3, int output_index)
-       {
-               StringBuilder sb = new StringBuilder();
-               
-               sb.append(getExecType());
-               sb.append(Lop.OPERAND_DELIMITOR);
-               
-               sb.append(OPCODE);
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( getInputs().get(0).prepInputOperand(input_index1));
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( getInputs().get(1).prepInputOperand(input_index2));
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( getInputs().get(2).prepScalarLabel() );
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( this.prepOutputOperand(output_index));
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append(_cacheType);
-               
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append(_outputEmptyBlocks);
-               
-               return sb.toString();
+       public String getInstructions(int input_index1, int input_index2, int 
input_index3, int output_index) {
+               return getInstructions(String.valueOf(input_index1), 
String.valueOf(input_index2), 
+                               String.valueOf(input_index3), 
String.valueOf(output_index));
        }
        
        @Override
        public String getInstructions(String input_index1, String input_index2, 
String input_index3, String output_index) 
-               throws LopsException
        {       
                StringBuilder sb = new StringBuilder();
                
@@ -130,18 +104,25 @@ public class PMMJ extends Lop
                sb.append( getInputs().get(1).prepInputOperand(input_index2));
                
                sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( getInputs().get(2).prepInputOperand(input_index3));
+               if( getExecType() == ExecType.MR )
+                       sb.append( getInputs().get(2).prepScalarLabel() );
+               else
+                       sb.append( 
getInputs().get(2).prepInputOperand(input_index3));
                
                sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( this.prepOutputOperand(output_index));
+               sb.append( prepOutputOperand(output_index));
                
-               if( getExecType() == ExecType.SPARK ) 
-               {
+               if( getExecType() == ExecType.SPARK ) {
                        sb.append(Lop.OPERAND_DELIMITOR);
                        sb.append(_cacheType);
                }
-               else if( getExecType()==ExecType.CP ) {
-                       //append degree of parallelism
+               else if( getExecType() == ExecType.MR ) {
+                       sb.append(Lop.OPERAND_DELIMITOR);
+                       sb.append(_cacheType);
+                       sb.append(Lop.OPERAND_DELIMITOR);
+                       sb.append(_outputEmptyBlocks);
+               }
+               else if( getExecType() == ExecType.CP ) {
                        sb.append( OPERAND_DELIMITOR );
                        sb.append( _numThreads );
                }
@@ -150,15 +131,12 @@ public class PMMJ extends Lop
        }
 
        @Override
-       public boolean usesDistributedCache() 
-       {
+       public boolean usesDistributedCache() {
                return true;
        }
        
        @Override
-       public int[] distributedCacheInputIndex() 
-       {       
-               //always left cached selection vector
+       public int[] distributedCacheInputIndex() {     
                return new int[]{1};
        }
        

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/PartialAggregate.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/PartialAggregate.java 
b/src/main/java/org/apache/sysml/lops/PartialAggregate.java
index ce54655..512c7f1 100644
--- a/src/main/java/org/apache/sysml/lops/PartialAggregate.java
+++ b/src/main/java/org/apache/sysml/lops/PartialAggregate.java
@@ -283,48 +283,34 @@ public class PartialAggregate extends Lop
         */
        @Override
        public String getInstructions(String input1, String output) 
-               throws LopsException 
        {
                StringBuilder sb = new StringBuilder();
                sb.append( getExecType() );
+               
                sb.append( OPERAND_DELIMITOR );
                sb.append( getOpcode() );
+               
                sb.append( OPERAND_DELIMITOR );
                sb.append( getInputs().get(0).prepInputOperand(input1) );
+               
                sb.append( OPERAND_DELIMITOR );
-               sb.append( this.prepOutputOperand(output) );
+               sb.append( prepOutputOperand(output) );
                
-               //in case of spark, we also compile the optional aggregate flag 
into the instruction.
-               if( getExecType() == ExecType.SPARK ) {
-                       sb.append( OPERAND_DELIMITOR );
+               //exec-type specific attributes
+               sb.append( OPERAND_DELIMITOR );
+               if( getExecType() == ExecType.SPARK )
                        sb.append( _aggtype );  
-               }
-               
-               //in case of cp, we also compile the number of threads into the 
instruction
-               if( getExecType() == ExecType.CP ){
-                       sb.append( OPERAND_DELIMITOR );
+               else if( getExecType() == ExecType.MR )
+                       sb.append( _dropCorr );
+               else if( getExecType() == ExecType.CP )
                        sb.append( _numThreads );       
-               }
                
                return sb.toString();
        }
        
        @Override
-       public String getInstructions(int input_index, int output_index)
-               throws LopsException 
-       {
-               StringBuilder sb = new StringBuilder();
-               sb.append( getExecType() );
-               sb.append( Lop.OPERAND_DELIMITOR );
-               sb.append( getOpcode() );
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( getInputs().get(0).prepInputOperand(input_index) );
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( this.prepOutputOperand(output_index) );
-               sb.append( OPERAND_DELIMITOR );
-               sb.append( _dropCorr );
-
-               return sb.toString();
+       public String getInstructions(int input_index, int output_index) {
+               return getInstructions(String.valueOf(input_index), 
String.valueOf(output_index));
        }
 
        public static String getOpcode(Aggregate.OperationTypes op, 
DirectionTypes dir) 

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/PlusMult.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/PlusMult.java 
b/src/main/java/org/apache/sysml/lops/PlusMult.java
index 7052185..0649f49 100644
--- a/src/main/java/org/apache/sysml/lops/PlusMult.java
+++ b/src/main/java/org/apache/sysml/lops/PlusMult.java
@@ -32,7 +32,13 @@ import org.apache.sysml.parser.Expression.ValueType;
  */
 public class PlusMult extends Lop 
 {
-       
+       public PlusMult(Lop input1, Lop input2, Lop input3, OpOp3 op, DataType 
dt, ValueType vt, ExecType et) {
+               super(Lop.Type.PlusMult, dt, vt);
+               if(op == OpOp3.MINUS_MULT)
+                       type=Lop.Type.MinusMult;
+               init(input1, input2, input3, et);
+       }
+
        private void init(Lop input1, Lop input2, Lop input3, ExecType et) {
                addInput(input1);
                addInput(input2);
@@ -57,13 +63,6 @@ public class PlusMult extends Lop
                }
        }
        
-       public PlusMult(Lop input1, Lop input2, Lop input3, OpOp3 op, DataType 
dt, ValueType vt, ExecType et) {
-               super(Lop.Type.PlusMult, dt, vt);
-               if(op == OpOp3.MINUS_MULT)
-                       type=Lop.Type.MinusMult;
-               init(input1, input2, input3, et);
-       }
-
        @Override
        public String toString() {
                return "Operation = PlusMult";
@@ -81,58 +80,39 @@ public class PlusMult extends Lop
         * input3: matrix2
         */
        @Override
-       public String getInstructions(String input1, String input2, String 
input3, String output) {
+       public String getInstructions(String input1, String input2, String 
input3, String output) 
+       {
                StringBuilder sb = new StringBuilder();
                
                sb.append( getExecType() );
-               sb.append( OPERAND_DELIMITOR );
                
-               sb.append(getOpString());
                sb.append( OPERAND_DELIMITOR );
+               sb.append( getOpString() );
                
-               // Matrix1
-               sb.append( getInputs().get(0).prepInputOperand(input1) );
+               //matrix 1
                sb.append( OPERAND_DELIMITOR );
+               sb.append( getInputs().get(0).prepInputOperand(input1) );
                
-               // Scalar
-               sb.append( getInputs().get(1).prepScalarInputOperand(input2) );
+               //scalar
                sb.append( OPERAND_DELIMITOR );
+               if( getExecType()==ExecType.MR )
+                       sb.append( getInputs().get(1).prepScalarLabel() );
+               else
+                       sb.append( 
getInputs().get(1).prepScalarInputOperand(input2) );
                
-               // Matrix2
-               sb.append( getInputs().get(2).prepInputOperand(input3));
+               //matrix 2
                sb.append( OPERAND_DELIMITOR );
+               sb.append( getInputs().get(2).prepInputOperand(input3) );
                
-               sb.append( prepOutputOperand(output));
+               sb.append( OPERAND_DELIMITOR );
+               sb.append( prepOutputOperand(output) );
                
                return sb.toString();
        }
        
        @Override
-       public String getInstructions(int input1, int input2, int input3, int 
output) 
-               throws LopsException 
-       {
-               StringBuilder sb = new StringBuilder();
-               
-               sb.append( getExecType() );
-               sb.append( OPERAND_DELIMITOR );
-               
-               sb.append(getOpString());
-               sb.append( OPERAND_DELIMITOR );
-               
-               // Matrix1
-               sb.append( getInputs().get(0).prepInputOperand(input1) );
-               sb.append( OPERAND_DELIMITOR );
-               
-               // Scalar
-               sb.append( getInputs().get(1).prepScalarLabel() );
-               sb.append( OPERAND_DELIMITOR );
-               
-               // Matrix2
-               sb.append( getInputs().get(2).prepInputOperand(input3));
-               sb.append( OPERAND_DELIMITOR );
-               
-               sb.append( prepOutputOperand(output));
-               
-               return sb.toString();
+       public String getInstructions(int input1, int input2, int input3, int 
output) {
+               return getInstructions(String.valueOf(input1), 
String.valueOf(input2), 
+                               String.valueOf(input3), String.valueOf(output));
        }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/ReBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/ReBlock.java 
b/src/main/java/org/apache/sysml/lops/ReBlock.java
index ec3d647..b8d4e14 100644
--- a/src/main/java/org/apache/sysml/lops/ReBlock.java
+++ b/src/main/java/org/apache/sysml/lops/ReBlock.java
@@ -32,7 +32,6 @@ import org.apache.sysml.parser.Expression.ValueType;
  */
 public class ReBlock extends Lop 
 {
-       
        public static final String OPCODE = "rblk"; 
        
        private boolean _outputEmptyBlocks = true;
@@ -72,19 +71,23 @@ public class ReBlock extends Lop
        }
 
        @Override
-       public String getInstructions(int input_index, int output_index) throws 
LopsException
-       {
+       public String getInstructions(int input_index, int output_index) {
+               return getInstructions(String.valueOf(input_index), 
String.valueOf(output_index));
+       }
+       
+       @Override
+       public String getInstructions(String input1, String output) {
                StringBuilder sb = new StringBuilder();
                sb.append( getExecType() );
                
                sb.append( Lop.OPERAND_DELIMITOR );
-               sb.append( OPCODE );
+               sb.append( "rblk" );
                
                sb.append( OPERAND_DELIMITOR );
-               sb.append( getInputs().get(0).prepInputOperand(input_index));
+               sb.append( getInputs().get(0).prepInputOperand(input1) );
                
                sb.append( OPERAND_DELIMITOR );
-               sb.append ( this.prepOutputOperand(output_index));
+               sb.append( prepOutputOperand(output) );
                
                sb.append( OPERAND_DELIMITOR );
                sb.append( _rows_per_block );
@@ -98,37 +101,6 @@ public class ReBlock extends Lop
                return sb.toString();
        }
        
-       @Override
-       public String getInstructions(String input1, String output) throws 
LopsException {
-               if(getExecType() != ExecType.SPARK) {
-                       throw new LopsException("The method 
getInstructions(String,String) for Reblock should be called only for Spark 
execution type");
-               }
-               
-               if (this.getInputs().size() == 1) {
-                       
-                       StringBuilder sb = new StringBuilder();
-                       sb.append( getExecType() );
-                       sb.append( Lop.OPERAND_DELIMITOR );
-                       sb.append( "rblk" );
-                       sb.append( OPERAND_DELIMITOR );
-                       sb.append( getInputs().get(0).prepInputOperand(input1));
-                       sb.append( OPERAND_DELIMITOR );
-                       sb.append( this.prepOutputOperand(output));
-                       sb.append( OPERAND_DELIMITOR );
-                       sb.append( _rows_per_block );
-                       sb.append( OPERAND_DELIMITOR );
-                       sb.append( _cols_per_block );
-                       sb.append( OPERAND_DELIMITOR );
-                       sb.append(_outputEmptyBlocks);
-                       
-                       return sb.toString();
-
-               } else {
-                       throw new LopsException(this.printErrorLocation() + 
"Invalid number of operands ("
-                                       + this.getInputs().size() + ") for 
Reblock operation");
-               }
-       }
-       
        // This function is replicated in Dag.java
        @SuppressWarnings("unused")
        private Format getChildFormat(Lop node) throws LopsException {
@@ -157,8 +129,5 @@ public class ReBlock extends Lop
                        // return getChildFormat(node.getInputs().get(0));
                        return 
node.getInputs().get(0).getOutputParameters().getFormat();               }
                
-       }
-
- 
- 
+       } 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/RepMat.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/RepMat.java 
b/src/main/java/org/apache/sysml/lops/RepMat.java
index 42adfac..0303cd9 100644
--- a/src/main/java/org/apache/sysml/lops/RepMat.java
+++ b/src/main/java/org/apache/sysml/lops/RepMat.java
@@ -28,7 +28,6 @@ import org.apache.sysml.parser.Expression.ValueType;
 
 public class RepMat extends Lop 
 {
-       
        public static final String OPCODE = "rep";
        
        private boolean _repCols = true;
@@ -88,7 +87,7 @@ public class RepMat extends Lop
                sb.append( 
getInputs().get(1).prepScalarInputOperand(getExecType()));
                
                sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( this.prepOutputOperand(output_index));
+               sb.append( prepOutputOperand(output_index));
                
                return sb.toString();
        }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/UAggOuterChain.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/UAggOuterChain.java 
b/src/main/java/org/apache/sysml/lops/UAggOuterChain.java
index db693e2..6885043 100644
--- a/src/main/java/org/apache/sysml/lops/UAggOuterChain.java
+++ b/src/main/java/org/apache/sysml/lops/UAggOuterChain.java
@@ -101,34 +101,9 @@ public class UAggOuterChain extends Lop
        }
        
        @Override
-       public String getInstructions(int input_index1, int input_index2, int 
output_index)
-       {
-               StringBuilder sb = new StringBuilder();
-               
-               //exec type
-               sb.append(getExecType());
-               sb.append(Lop.OPERAND_DELIMITOR);
-               
-               //inst op code
-               sb.append(OPCODE);
-               sb.append(Lop.OPERAND_DELIMITOR);
-
-               //outer operation op code
-               sb.append(PartialAggregate.getOpcode(_uaggOp, _uaggDir));       
        
-               sb.append(Lop.OPERAND_DELIMITOR);
-
-               //inner operation op code
-               sb.append(Binary.getOpcode(_binOp));
-               sb.append(Lop.OPERAND_DELIMITOR);
-                               
-               //inputs and outputs
-               sb.append( getInputs().get(0).prepInputOperand(input_index1));
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( getInputs().get(1).prepInputOperand(input_index2));
-               sb.append(Lop.OPERAND_DELIMITOR);
-               sb.append( this.prepOutputOperand(output_index));
-                               
-               return sb.toString();
+       public String getInstructions(int input_index1, int input_index2, int 
output_index) {
+               return getInstructions(String.valueOf(input_index1), 
+                               String.valueOf(input_index2), 
String.valueOf(output_index));
        }
        
        @Override
@@ -164,14 +139,12 @@ public class UAggOuterChain extends Lop
        
        
        @Override
-       public boolean usesDistributedCache() 
-       {
+       public boolean usesDistributedCache() {
                return true;
        }
        
        @Override
-       public int[] distributedCacheInputIndex() 
-       {
+       public int[] distributedCacheInputIndex() {
                return new int[]{2};
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/Unary.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/Unary.java 
b/src/main/java/org/apache/sysml/lops/Unary.java
index df2e994..087ffc4 100644
--- a/src/main/java/org/apache/sysml/lops/Unary.java
+++ b/src/main/java/org/apache/sysml/lops/Unary.java
@@ -360,9 +360,8 @@ public class Unary extends Lop
        }
        
        @Override
-       public String getInstructions(int input_index, int output_index)
-                       throws LopsException {
-               return getInstructions(""+input_index, ""+output_index);
+       public String getInstructions(int input_index, int output_index) throws 
LopsException {
+               return getInstructions(String.valueOf(input_index), 
String.valueOf(output_index));
        }
 
        @Override
@@ -371,26 +370,23 @@ public class Unary extends Lop
        {
                StringBuilder sb = new StringBuilder();
                sb.append( getExecType() );
+               
                sb.append( Lop.OPERAND_DELIMITOR );
                sb.append( getOpcode() );
-               sb.append( OPERAND_DELIMITOR );
                
-               if ( getInputs().get(0).getDataType() == DataType.SCALAR ) {
+               sb.append( OPERAND_DELIMITOR );
+               if ( getInputs().get(0).getDataType() == DataType.SCALAR )
                        sb.append( 
getInputs().get(0).prepScalarInputOperand(getExecType()));
-               }
-               else {
+               else
                        sb.append( getInputs().get(0).prepInputOperand(input1));
-               }
-               sb.append( OPERAND_DELIMITOR );
                
-               if ( getInputs().get(1).getDataType() == DataType.SCALAR ) {
+               sb.append( OPERAND_DELIMITOR );
+               if ( getInputs().get(1).getDataType() == DataType.SCALAR )
                        sb.append( 
getInputs().get(1).prepScalarInputOperand(getExecType()));
-               }
-               else {
+               else 
                        sb.append( getInputs().get(1).prepInputOperand(input2));
-               }
-               sb.append( OPERAND_DELIMITOR );
                
+               sb.append( OPERAND_DELIMITOR );
                sb.append( this.prepOutputOperand(output));
                
                return sb.toString();
@@ -455,7 +451,7 @@ public class Unary extends Lop
                                sb.append( 
getInputs().get(scalarIndex).prepScalarInputOperand(getExecType()));
                                sb.append( OPERAND_DELIMITOR );
                        }
-                       sb.append( this.prepOutputOperand(outputIndex+""));
+                       sb.append( prepOutputOperand(outputIndex) );
                        
                        return sb.toString();
                        

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/WeightedCrossEntropy.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/WeightedCrossEntropy.java 
b/src/main/java/org/apache/sysml/lops/WeightedCrossEntropy.java
index cffacd6..a18de2d 100644
--- a/src/main/java/org/apache/sysml/lops/WeightedCrossEntropy.java
+++ b/src/main/java/org/apache/sysml/lops/WeightedCrossEntropy.java
@@ -144,21 +144,14 @@ public class WeightedCrossEntropy extends Lop
        }
        
        @Override
-       public boolean usesDistributedCache() 
-       {
-               if( getExecType()==ExecType.MR )
-                       return true;
-               else
-                       return false;
+       public boolean usesDistributedCache() {
+               return (getExecType()==ExecType.MR);
        }
        
        @Override
-       public int[] distributedCacheInputIndex() 
-       {
-               if( getExecType()==ExecType.MR )
-                       return new int[]{2,3};
-               else
-                       return new int[]{-1};
+       public int[] distributedCacheInputIndex() {
+               return (getExecType()==ExecType.MR) ?
+                       new int[]{2,3} : new int[]{-1};
        }
        
        public void setNumThreads(int k) {

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/WeightedCrossEntropyR.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/WeightedCrossEntropyR.java 
b/src/main/java/org/apache/sysml/lops/WeightedCrossEntropyR.java
index 174236f..b05beaf 100644
--- a/src/main/java/org/apache/sysml/lops/WeightedCrossEntropyR.java
+++ b/src/main/java/org/apache/sysml/lops/WeightedCrossEntropyR.java
@@ -140,12 +140,8 @@ public class WeightedCrossEntropyR extends Lop
        }
        
        @Override
-       public boolean usesDistributedCache() 
-       {
-               if( _cacheU || _cacheV )
-                       return true;
-               else
-                       return false;
+       public boolean usesDistributedCache() {
+               return (_cacheU || _cacheV);
        }
        
        @Override

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/WeightedDivMM.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/WeightedDivMM.java 
b/src/main/java/org/apache/sysml/lops/WeightedDivMM.java
index 5eb1d04..cd6a311 100644
--- a/src/main/java/org/apache/sysml/lops/WeightedDivMM.java
+++ b/src/main/java/org/apache/sysml/lops/WeightedDivMM.java
@@ -187,21 +187,14 @@ public class WeightedDivMM extends Lop
        }
        
        @Override
-       public boolean usesDistributedCache() 
-       {
-               if( getExecType()==ExecType.MR )
-                       return true;
-               else
-                       return false;
+       public boolean usesDistributedCache() {
+               return (getExecType()==ExecType.MR);
        }
        
        @Override
-       public int[] distributedCacheInputIndex() 
-       {
-               if( getExecType()==ExecType.MR )
-                       return new int[]{2,3};
-               else
-                       return new int[]{-1};
+       public int[] distributedCacheInputIndex() {
+               return (getExecType()==ExecType.MR) ?
+                       new int[]{2,3} : new int[]{-1};
        }
        
        public void setNumThreads(int k) {

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/WeightedDivMMR.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/WeightedDivMMR.java 
b/src/main/java/org/apache/sysml/lops/WeightedDivMMR.java
index 2379b30..7da8b3c 100644
--- a/src/main/java/org/apache/sysml/lops/WeightedDivMMR.java
+++ b/src/main/java/org/apache/sysml/lops/WeightedDivMMR.java
@@ -139,12 +139,8 @@ public class WeightedDivMMR extends Lop
        }
        
        @Override
-       public boolean usesDistributedCache() 
-       {
-               if( _cacheU || _cacheV )
-                       return true;
-               else
-                       return false;
+       public boolean usesDistributedCache() {
+               return (_cacheU || _cacheV);
        }
        
        @Override

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/WeightedSigmoid.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/WeightedSigmoid.java 
b/src/main/java/org/apache/sysml/lops/WeightedSigmoid.java
index 8b50c74..df6a081 100644
--- a/src/main/java/org/apache/sysml/lops/WeightedSigmoid.java
+++ b/src/main/java/org/apache/sysml/lops/WeightedSigmoid.java
@@ -132,21 +132,14 @@ public class WeightedSigmoid extends Lop
        }
        
        @Override
-       public boolean usesDistributedCache() 
-       {
-               if( getExecType()==ExecType.MR )
-                       return true;
-               else
-                       return false;
+       public boolean usesDistributedCache() {
+               return (getExecType()==ExecType.MR);
        }
        
        @Override
-       public int[] distributedCacheInputIndex() 
-       {
-               if( getExecType()==ExecType.MR )
-                       return new int[]{2,3};
-               else
-                       return new int[]{-1};
+       public int[] distributedCacheInputIndex() {
+               return (getExecType()==ExecType.MR) ?
+                       new int[]{2,3} : new int[]{-1};
        }
        
        public void setNumThreads(int k) {

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/WeightedSigmoidR.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/WeightedSigmoidR.java 
b/src/main/java/org/apache/sysml/lops/WeightedSigmoidR.java
index b46c243..da9efd1 100644
--- a/src/main/java/org/apache/sysml/lops/WeightedSigmoidR.java
+++ b/src/main/java/org/apache/sysml/lops/WeightedSigmoidR.java
@@ -28,7 +28,6 @@ import org.apache.sysml.parser.Expression.ValueType;
 
 public class WeightedSigmoidR extends Lop 
 {
-
        public static final String OPCODE = "redwsigmoid";
        
        private WSigmoidType _wsType = null;
@@ -127,12 +126,8 @@ public class WeightedSigmoidR extends Lop
        }
        
        @Override
-       public boolean usesDistributedCache() 
-       {
-               if( _cacheU || _cacheV )
-                       return true;
-               else
-                       return false;
+       public boolean usesDistributedCache() {
+               return (_cacheU || _cacheV);
        }
        
        @Override

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/WeightedSquaredLoss.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/WeightedSquaredLoss.java 
b/src/main/java/org/apache/sysml/lops/WeightedSquaredLoss.java
index b34b3a0..c58a804 100644
--- a/src/main/java/org/apache/sysml/lops/WeightedSquaredLoss.java
+++ b/src/main/java/org/apache/sysml/lops/WeightedSquaredLoss.java
@@ -141,21 +141,14 @@ public class WeightedSquaredLoss extends Lop
        }
        
        @Override
-       public boolean usesDistributedCache() 
-       {
-               if( getExecType()==ExecType.MR )
-                       return true;
-               else
-                       return false;
+       public boolean usesDistributedCache() {
+               return (getExecType()==ExecType.MR);
        }
        
        @Override
-       public int[] distributedCacheInputIndex() 
-       {
-               if( getExecType()==ExecType.MR )
-                       return new int[]{2,3};
-               else
-                       return new int[]{-1};
+       public int[] distributedCacheInputIndex() {
+               return (getExecType()==ExecType.MR) ?
+                       new int[]{2,3} : new int[]{-1};
        }
        
        public void setNumThreads(int k) {

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/WeightedSquaredLossR.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/WeightedSquaredLossR.java 
b/src/main/java/org/apache/sysml/lops/WeightedSquaredLossR.java
index d5d5a28..f55d12c 100644
--- a/src/main/java/org/apache/sysml/lops/WeightedSquaredLossR.java
+++ b/src/main/java/org/apache/sysml/lops/WeightedSquaredLossR.java
@@ -131,12 +131,8 @@ public class WeightedSquaredLossR extends Lop
        }
        
        @Override
-       public boolean usesDistributedCache() 
-       {
-               if( _cacheU || _cacheV )
-                       return true;
-               else
-                       return false;
+       public boolean usesDistributedCache() {
+               return (_cacheU || _cacheV);
        }
        
        @Override

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/WeightedUnaryMM.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/WeightedUnaryMM.java 
b/src/main/java/org/apache/sysml/lops/WeightedUnaryMM.java
index 96007da..97e3cc8 100644
--- a/src/main/java/org/apache/sysml/lops/WeightedUnaryMM.java
+++ b/src/main/java/org/apache/sysml/lops/WeightedUnaryMM.java
@@ -137,21 +137,14 @@ public class WeightedUnaryMM extends Lop
        }
        
        @Override
-       public boolean usesDistributedCache() 
-       {
-               if( getExecType()==ExecType.MR )
-                       return true;
-               else
-                       return false;
+       public boolean usesDistributedCache() {
+               return (getExecType()==ExecType.MR);
        }
        
        @Override
-       public int[] distributedCacheInputIndex() 
-       {
-               if( getExecType()==ExecType.MR )
-                       return new int[]{2,3};
-               else
-                       return new int[]{-1};
+       public int[] distributedCacheInputIndex() {
+               return (getExecType()==ExecType.MR) ?
+                       new int[]{2,3} : new int[]{-1};
        }
        
        public void setNumThreads(int k) {

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/WeightedUnaryMMR.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/WeightedUnaryMMR.java 
b/src/main/java/org/apache/sysml/lops/WeightedUnaryMMR.java
index aee0ff5..36e4343 100644
--- a/src/main/java/org/apache/sysml/lops/WeightedUnaryMMR.java
+++ b/src/main/java/org/apache/sysml/lops/WeightedUnaryMMR.java
@@ -133,12 +133,8 @@ public class WeightedUnaryMMR extends Lop
        }
        
        @Override
-       public boolean usesDistributedCache() 
-       {
-               if( _cacheU || _cacheV )
-                       return true;
-               else
-                       return false;
+       public boolean usesDistributedCache() {
+               return (_cacheU || _cacheV);
        }
        
        @Override

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/ZeroOut.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/ZeroOut.java 
b/src/main/java/org/apache/sysml/lops/ZeroOut.java
index 086e3dc..45cb7f9 100644
--- a/src/main/java/org/apache/sysml/lops/ZeroOut.java
+++ b/src/main/java/org/apache/sysml/lops/ZeroOut.java
@@ -117,7 +117,10 @@ public class ZeroOut  extends Lop
                 * be derived from input lops.
                 */
                
-               return getInstructions(Integer.toString(input_index1), 
input_index2+"", input_index3+"", input_index4+"", input_index5+"", 
Integer.toString(output_index));
+               return getInstructions(
+                               String.valueOf(input_index1), 
String.valueOf(input_index2), 
+                               String.valueOf(input_index3), 
String.valueOf(input_index4), 
+                               String.valueOf(input_index5), 
String.valueOf(output_index));
        }
 
        @Override

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/compile/Dag.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/compile/Dag.java 
b/src/main/java/org/apache/sysml/lops/compile/Dag.java
index 5b10677..71171d0 100644
--- a/src/main/java/org/apache/sysml/lops/compile/Dag.java
+++ b/src/main/java/org/apache/sysml/lops/compile/Dag.java
@@ -717,10 +717,8 @@ public class Dag<N extends Lop>
                //send write lop to MR if (1) it is marked with exec type MR 
(based on its memory estimate), or
                //(2) if the input lop is in MR and the write format allows to 
pack it into the same job (this does
                //not apply to csv write because MR csvwrite is a separate MR 
job type)
-               if( node.getExecType() == ExecType.MR || (in.getExecType() == 
ExecType.MR && nodeFormat != Format.CSV ) )
-                       return true;
-               else
-                       return false;
+               return (node.getExecType() == ExecType.MR 
+                       || (in.getExecType() == ExecType.MR && nodeFormat != 
Format.CSV));
        }
        
        /**
@@ -1868,11 +1866,7 @@ public class Dag<N extends Lop>
                        }
                }
                
-               if( (tmpNode.getCompatibleJobs() & node.getCompatibleJobs()) > 
0)
-                       return true;
-               else
-                       return false;
-                       
+               return ( (tmpNode.getCompatibleJobs() & 
node.getCompatibleJobs()) > 0);
        }
          
        /**

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/86a8e148/src/main/java/org/apache/sysml/lops/compile/JobType.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/compile/JobType.java 
b/src/main/java/org/apache/sysml/lops/compile/JobType.java
index 8403497..0ca5b49 100644
--- a/src/main/java/org/apache/sysml/lops/compile/JobType.java
+++ b/src/main/java/org/apache/sysml/lops/compile/JobType.java
@@ -213,10 +213,7 @@ public enum JobType
        }
        
        public boolean allowsRecordReaderInstructions() {
-               if ( getName().equals("GMR") ) 
-                       return true;
-               else
-                       return false;
+               return getName().equals("GMR"); 
        }
        
        public int getBase() {

Reply via email to