Package org.apache.sysds.hops.rewrite
Class HopRewriteUtils
- java.lang.Object
- 
- org.apache.sysds.hops.rewrite.HopRewriteUtils
 
- 
 public class HopRewriteUtils extends Object 
- 
- 
Constructor SummaryConstructors Constructor Description HopRewriteUtils()
 - 
Method SummaryAll Methods Static Methods Concrete Methods Modifier and Type Method Description static voidaddChildReference(Hop parent, Hop child)static voidaddChildReference(Hop parent, Hop child, int pos)static booleanalwaysRequiresReblock(Hop hop)static booleancheckAvgRowsGteCols(List<Hop> list)static booleancheckConsistentRows(List<Hop> list1, List<Hop> list2)static booleancheckInputDataTypes(Hop hop, Types.DataType... dt)static voidcleanupUnreferenced(Hop... inputs)static intcompareSize(Hop hop1, Hop hop2)Compares the size of outputs from hop1 and hop2, in terms of number of matrix cells.static booleancontainsInput(Hop current, Hop probe)static booleancontainsOp(ArrayList<Hop> candidates, Class<? extends Hop> clazz)static booleancontainsSecondOrderBuiltin(ArrayList<Hop> roots)static booleancontainsTransposeOperation(ArrayList<Hop> hops)static DataGenOpcopyDataGenOp(DataGenOp inputGen, double scale, double shift)Assumes that min and max are literal ops, needs to be checked from outside.static voidcopyLineNumbers(Hop src, Hop dest)static voidcopyLineNumbers(MatrixObject mo, Hop tread)static voidcopyLineNumbers(MatrixBlock mb, Hop tread)static AggUnaryOpcreateAggUnaryOp(Hop input, String op)static AggUnaryOpcreateAggUnaryOp(Hop input, Types.AggOp op, Types.Direction dir)static BinaryOpcreateBinary(Hop input1, Hop input2, String op)static BinaryOpcreateBinary(Hop input1, Hop input2, Types.OpOp2 op)static BinaryOpcreateBinary(Hop input1, Hop input2, Types.OpOp2 op, boolean outer)static BinaryOpcreateBinaryMinus(Hop input)static HopcreateComputeNnz(Hop input)static HopcreateDataGenOp(Hop rowInput, boolean tRowInput, Hop colInput, boolean tColInput, double value)static HopcreateDataGenOp(Hop input, double value)static HopcreateDataGenOp(Hop rowInput, Hop colInput, double value)static HopcreateDataGenOpByVal(ArrayList<LiteralOp> values, long rows, long cols)static HopcreateDataGenOpByVal(Hop rowInput, Hop colInput, Hop dimsInput, Types.DataType dt, Types.ValueType vt, double value)static DataOpcreateDataOp(String name, Hop in, Types.OpOpData type)static IndexingOpcreateIndexingOp(Hop input, long rix, long cix)static IndexingOpcreateIndexingOp(Hop input, long rl, long ru, long cl, long cu)static IndexingOpcreateIndexingOp(Hop input, Hop batchsize)static IndexingOpcreateIndexingOp(Hop input, Hop rl, Hop ru, Hop cl, Hop cu)static LeftIndexingOpcreateLeftIndexingOp(Hop lhs, Hop rhs, Hop rl, Hop ru, Hop cl, Hop cu)static AggBinaryOpcreateMatrixMultiply(Hop left, Hop right)static NaryOpcreateNary(Types.OpOpN op, Hop... inputs)static ParameterizedBuiltinOpcreateParameterizedBuiltinOp(Hop input, LinkedHashMap<String,Hop> args, Types.ParamBuiltinOp op)static HopcreatePartialTsmmCbind(Hop X, Hop deltaX, Hop tsmmIn1)static ReorgOpcreateReorg(ArrayList<Hop> inputs, Types.ReOrgOp rop)static ReorgOpcreateReorg(Hop input, String rop)static ReorgOpcreateReorg(Hop input, Types.ReOrgOp rop)static HopcreateScalarIndexing(Hop input, long rix, long cix)static DataGenOpcreateSeqDataGenOp(Hop input)static DataGenOpcreateSeqDataGenOp(Hop input, boolean asc)static DataGenOpcreateSeqDataGenOp(Hop proxy, Hop from, Hop to, Hop incr)static AggUnaryOpcreateSum(Hop input)static TernaryOpcreateTernary(Hop mleft, Hop smid, Hop mright, String opcode)static TernaryOpcreateTernary(Hop mleft, Hop smid, Hop mright, Types.OpOp3 op)static TernaryOpcreateTernary(Hop in1, Hop in2, Hop in3, Hop in4, Hop in5, Types.OpOp3 op)static DataOpcreateTransientRead(String name, Hop h)static DataOpcreateTransientRead(String name, MatrixObject mo)static DataOpcreateTransientRead(String name, MatrixBlock mb)static DataOpcreateTransientWrite(String name, Hop in)static ReorgOpcreateTranspose(Hop input)static AggBinaryOpcreateTsmm(Hop input, boolean left)static UnaryOpcreateUnary(Hop input, String type)static UnaryOpcreateUnary(Hop input, Types.OpOp1 type)static HopcreateValueHop(Hop hop, boolean row)static HopgetBasic1NSequenceMax(Hop hop)static booleangetBooleanValue(LiteralOp op)static booleangetBooleanValueSafe(LiteralOp op)static intgetChildReferencePos(Hop parent, Hop child)static HopgetDataGenOpConstantValue(Hop hop)static doublegetDoubleValue(LiteralOp op)static doublegetDoubleValueSafe(LiteralOp op)static longgetIntValue(LiteralOp op)Return the int value of a LiteralOp (as a long).static longgetIntValueSafe(Hop op)static longgetIntValueSafe(LiteralOp op)static HopgetLargestInput(Hop hop)static longgetMaxInputDim(Hop hop, boolean dim1)static longgetMaxInputDim(DataCharacteristics[] dc, boolean dim1)static longgetMaxNcolInput(Hop hop)static longgetMaxNrowInput(Hop hop)static HopgetOtherInput(Hop hop, Hop input)static ScalarObjectgetScalarObject(LiteralOp op)static longgetSumValidInputDims(Hop hop, boolean dim1)static longgetSumValidInputDims(DataCharacteristics[] mc, boolean dim1)static longgetSumValidInputNnz(Hop hop)static longgetSumValidInputNnz(DataCharacteristics[] mc, boolean worstcase)static intgetValidOpPos(Types.OpOp2 input, Types.OpOp2... validTab)static booleanhasListInputs(Hop hop)static booleanhasOnlyUnaryBinaryParents(Hop hop, boolean disallowLhs)static booleanhasOnlyWriteParents(Hop hop, boolean inclTransient, boolean inclPersistent)static booleanhasValidInputDims(Hop hop, boolean dim1)static booleanhasValidInputDims(DataCharacteristics[] mc, boolean dim1)static booleanhasValidInputNnz(Hop hop)static booleanhasValidInputNnz(DataCharacteristics[] mc, boolean worstcase)static booleanisAggUnaryOp(Hop hop, Types.AggOp... op)static booleanisAggUnaryOp(Hop hop, Types.AggOp op, Types.Direction dir)static booleanisBasic1NSequence(Hop hop)static booleanisBasic1NSequence(Hop seq, Hop input, boolean row)static booleanisBasicN1Sequence(Hop hop)static booleanisBinary(Hop hop, Types.OpOp2 type)static booleanisBinary(Hop hop, Types.OpOp2... types)static booleanisBinary(Hop hop, Types.OpOp2 type, int maxParents)static booleanisBinaryMatrixColVectorOperation(Hop hop)static booleanisBinaryMatrixMatrixOperation(Hop hop)static booleanisBinaryMatrixMatrixOperationWithSharedInput(Hop hop)static booleanisBinaryMatrixRowVectorOperation(Hop hop)static booleanisBinaryMatrixScalar(Hop hop, Types.OpOp2 type, double val)static booleanisBinaryMatrixScalarOperation(Hop hop)static booleanisBinaryPPred(Hop hop)static booleanisBinarySparseSafe(Hop hop)static booleanisColumnRangeIndexing(IndexingOp hop)static booleanisColumnRightIndexing(Hop hop)static booleanisConsecutiveIndex(Hop index, Hop index2)static booleanisData(Hop hop, Types.OpOpData type)static booleanisData(Hop hop, Types.OpOpData... types)static booleanisDataGenOp(Hop hop, Types.OpOpDG... ops)static booleanisDataGenOpWithConstantValue(Hop hop)static booleanisDataGenOpWithConstantValue(Hop hop, double value)static booleanisDataGenOpWithLiteralInputs(Hop hop, Types.OpOpDG... ops)static booleanisDataGenOpWithNonDeterminism(Hop hop)static booleanisDense(Hop hop)static booleanisDimsKnown(Hop hop)static booleanisDnn(Hop hop, Types.OpOpDnn type)static booleanisDnn(Hop hop, Types.OpOpDnn... types)static booleanisEmpty(Hop hop)static booleanisEqualMatrixSize(BinaryOp hop)static booleanisEqualSize(Hop hop1, Hop hop2)static booleanisEqualSize(Hop hop1, Hop... hops)static booleanisEqualValue(Hop hop1, Hop hop2)static booleanisEqualValue(LiteralOp hop1, LiteralOp hop2)static booleanisFullColumnIndexing(IndexingOp hop)static booleanisFullColumnIndexing(LeftIndexingOp hop)static booleanisFullRowIndexing(IndexingOp hop)static booleanisFullRowIndexing(LeftIndexingOp hop)static booleanisLastLevelStatementBlock(StatementBlock sb)static booleanisLiteralOfValue(Hop hop, boolean val)static booleanisLiteralOfValue(Hop hop, double val)static booleanisLiteralOfValue(Hop hop, Double... val)static booleanisLiteralOfValue(Hop hop, String val)static booleanisLoopStatementBlock(StatementBlock sb)static booleanisMatrixMultiply(Hop hop)static booleanisNary(Hop hop, Types.OpOpN type)static booleanisNary(Hop hop, Types.OpOpN... types)static booleanisNonZeroIndicator(Hop pred, Hop hop)static booleanisNotMatrixVectorBinaryOperation(Hop hop)static booleanisOuterBinary(Hop hop)static booleanisOuterProductLikeMM(Hop hop)static booleanisParameterBuiltinOp(Hop hop, Types.ParamBuiltinOp type)static booleanisRemoveEmpty(Hop hop)static booleanisRemoveEmpty(Hop hop, boolean rows)static booleanisReorg(Hop hop, Types.ReOrgOp type)static booleanisReorg(Hop hop, Types.ReOrgOp... types)static booleanisScalarMatrixBinaryMult(Hop hop)static booleanisSingleBlock(Hop hop)static booleanisSingleBlock(Hop hop, boolean cols)Checks our BLOCKSIZE CONSTRAINT, w/ awareness of forced single node execution mode.static booleanisSizeExpressionOf(Hop size, Hop input, boolean row)static booleanisSparse(Hop hop)static booleanisSparse(Hop hop, double threshold)static booleanisSum(Hop hop)static booleanisSumSq(Hop hop)static booleanisTerminalHop(Hop hop)Check if given hop is of a terminal type.static booleanisTernary(Hop hop, Types.OpOp3 type)static booleanisTernary(Hop hop, Types.OpOp3... types)static booleanisTransposeOfItself(Hop hop1, Hop hop2)static booleanisTransposeOperation(Hop hop)static booleanisTransposeOperation(Hop hop, int maxParents)static booleanisTsmm(Hop input)static booleanisTsmmInput(Hop input)static booleanisUnary(Hop hop, Types.OpOp1 type)static booleanisUnary(Hop hop, Types.OpOp1... types)static booleanisUnary(Hop hop, Types.OpOp1 type, int maxParents)static booleanisUnnecessaryRightIndexing(Hop hop)static booleanisValidOp(Types.AggOp input, Types.AggOp... validTab)static booleanisValidOp(Types.OpOp1 input, Types.OpOp1... validTab)static booleanisValidOp(Types.OpOp2 input, Types.OpOp2... validTab)static booleanisValidOp(Types.ParamBuiltinOp input, Types.ParamBuiltinOp... validTab)static booleanisValidOp(Types.ReOrgOp input, Types.ReOrgOp... validTab)static booleanisValidOuterBinaryOp(Types.OpOp2 op)static booleanisValueTypeCast(Types.OpOp1 op)static booleanknownParamservFunctions(Hop hop)static booleanknownParamservFunctions(Hop hop, DMLProgram prog)static booleanrContainsRead(Hop root, String var, boolean includeMetaOp)static voidrefreshOutputParameters(Hop hnew, Hop hold)static voidremoveAllChildReferences(Hop parent)static voidremoveChildReference(Hop parent, Hop child)static voidremoveChildReferenceByPos(Hop parent, Hop child, int posChild)static voidreplaceChildReference(Hop parent, Hop inOld, Hop inNew)static voidreplaceChildReference(Hop parent, Hop inOld, Hop inNew, int pos)static voidreplaceChildReference(Hop parent, Hop inOld, Hop inNew, int pos, boolean refresh)static HoprewireAllParentChildReferences(Hop hold, Hop hnew)Replace an old Hop with a replacement Hop.static booleanrHasSimpleReadChain(Hop root, String var)static voidsetOutputParameters(Hop hop, long rlen, long clen, int blen, long nnz)static voidsetOutputParametersForScalar(Hop hop)static voidsetUnoptimizedFunctionCalls(StatementBlock sb)static voidupdateHopCharacteristics(Hop hop, int blen, Hop src)static voidupdateHopCharacteristics(Hop hop, int blen, MemoTable memo, Hop src)
 
- 
- 
- 
Method Detail- 
isValueTypeCastpublic static boolean isValueTypeCast(Types.OpOp1 op) 
 - 
getBooleanValuepublic static boolean getBooleanValue(LiteralOp op) 
 - 
getBooleanValueSafepublic static boolean getBooleanValueSafe(LiteralOp op) 
 - 
getDoubleValuepublic static double getDoubleValue(LiteralOp op) 
 - 
getDoubleValueSafepublic static double getDoubleValueSafe(LiteralOp op) 
 - 
getIntValuepublic static long getIntValue(LiteralOp op) Return the int value of a LiteralOp (as a long). Note: For comparisons, this is *only* to be used in situations in which the value is absolutely guaranteed to be an integer. Otherwise, a safer alternative is `getDoubleValue`.- Parameters:
- op- literal operator
- Returns:
- long value of literal op
 
 - 
getIntValueSafepublic static long getIntValueSafe(Hop op) 
 - 
getIntValueSafepublic static long getIntValueSafe(LiteralOp op) 
 - 
isLiteralOfValuepublic static boolean isLiteralOfValue(Hop hop, double val) 
 - 
isLiteralOfValuepublic static boolean isLiteralOfValue(Hop hop, boolean val) 
 - 
getScalarObjectpublic static ScalarObject getScalarObject(LiteralOp op) 
 - 
removeChildReferenceByPospublic static void removeChildReferenceByPos(Hop parent, Hop child, int posChild) 
 - 
removeAllChildReferencespublic static void removeAllChildReferences(Hop parent) 
 - 
rewireAllParentChildReferencespublic static Hop rewireAllParentChildReferences(Hop hold, Hop hnew) Replace an old Hop with a replacement Hop. If the old Hop has no parents, then return the replacement. Otherwise rewire each of the Hop's parents into the replacement and return the replacement.- Parameters:
- hold- To be replaced
- hnew- The replacement
- Returns:
- hnew
 
 - 
replaceChildReferencepublic static void replaceChildReference(Hop parent, Hop inOld, Hop inNew, int pos) 
 - 
replaceChildReferencepublic static void replaceChildReference(Hop parent, Hop inOld, Hop inNew, int pos, boolean refresh) 
 - 
cleanupUnreferencedpublic static void cleanupUnreferenced(Hop... inputs) 
 - 
copyDataGenOppublic static DataGenOp copyDataGenOp(DataGenOp inputGen, double scale, double shift) Assumes that min and max are literal ops, needs to be checked from outside.- Parameters:
- inputGen- input data gen op
- scale- the scale
- shift- the shift
- Returns:
- data gen op
 
 - 
createDataGenOppublic static Hop createDataGenOp(Hop rowInput, boolean tRowInput, Hop colInput, boolean tColInput, double value) 
 - 
createDataGenOpByValpublic static Hop createDataGenOpByVal(Hop rowInput, Hop colInput, Hop dimsInput, Types.DataType dt, Types.ValueType vt, double value) 
 - 
createDataGenOpByValpublic static Hop createDataGenOpByVal(ArrayList<LiteralOp> values, long rows, long cols) 
 - 
isDataGenOppublic static boolean isDataGenOp(Hop hop, Types.OpOpDG... ops) 
 - 
isDataGenOpWithLiteralInputspublic static boolean isDataGenOpWithLiteralInputs(Hop hop, Types.OpOpDG... ops) 
 - 
isDataGenOpWithConstantValuepublic static boolean isDataGenOpWithConstantValue(Hop hop) 
 - 
isDataGenOpWithConstantValuepublic static boolean isDataGenOpWithConstantValue(Hop hop, double value) 
 - 
isDataGenOpWithNonDeterminismpublic static boolean isDataGenOpWithNonDeterminism(Hop hop) 
 - 
createTransientReadpublic static DataOp createTransientRead(String name, MatrixBlock mb) 
 - 
createTransientReadpublic static DataOp createTransientRead(String name, MatrixObject mo) 
 - 
createDataOppublic static DataOp createDataOp(String name, Hop in, Types.OpOpData type) 
 - 
createReorgpublic static ReorgOp createReorg(Hop input, Types.ReOrgOp rop) 
 - 
createReorgpublic static ReorgOp createReorg(ArrayList<Hop> inputs, Types.ReOrgOp rop) 
 - 
createUnarypublic static UnaryOp createUnary(Hop input, Types.OpOp1 type) 
 - 
createBinarypublic static BinaryOp createBinary(Hop input1, Hop input2, Types.OpOp2 op) 
 - 
createBinarypublic static BinaryOp createBinary(Hop input1, Hop input2, Types.OpOp2 op, boolean outer) 
 - 
createSumpublic static AggUnaryOp createSum(Hop input) 
 - 
createAggUnaryOppublic static AggUnaryOp createAggUnaryOp(Hop input, String op) 
 - 
createAggUnaryOppublic static AggUnaryOp createAggUnaryOp(Hop input, Types.AggOp op, Types.Direction dir) 
 - 
createTsmmpublic static AggBinaryOp createTsmm(Hop input, boolean left) 
 - 
createMatrixMultiplypublic static AggBinaryOp createMatrixMultiply(Hop left, Hop right) 
 - 
createParameterizedBuiltinOppublic static ParameterizedBuiltinOp createParameterizedBuiltinOp(Hop input, LinkedHashMap<String,Hop> args, Types.ParamBuiltinOp op) 
 - 
createIndexingOppublic static IndexingOp createIndexingOp(Hop input, Hop batchsize) 
 - 
createIndexingOppublic static IndexingOp createIndexingOp(Hop input, long rix, long cix) 
 - 
createIndexingOppublic static IndexingOp createIndexingOp(Hop input, long rl, long ru, long cl, long cu) 
 - 
createIndexingOppublic static IndexingOp createIndexingOp(Hop input, Hop rl, Hop ru, Hop cl, Hop cu) 
 - 
createLeftIndexingOppublic static LeftIndexingOp createLeftIndexingOp(Hop lhs, Hop rhs, Hop rl, Hop ru, Hop cl, Hop cu) 
 - 
createNarypublic static NaryOp createNary(Types.OpOpN op, Hop... inputs) 
 - 
createSeqDataGenOppublic static DataGenOp createSeqDataGenOp(Hop proxy, Hop from, Hop to, Hop incr) 
 - 
createTernarypublic static TernaryOp createTernary(Hop mleft, Hop smid, Hop mright, String opcode) 
 - 
createTernarypublic static TernaryOp createTernary(Hop mleft, Hop smid, Hop mright, Types.OpOp3 op) 
 - 
createTernarypublic static TernaryOp createTernary(Hop in1, Hop in2, Hop in3, Hop in4, Hop in5, Types.OpOp3 op) 
 - 
setOutputParameterspublic static void setOutputParameters(Hop hop, long rlen, long clen, int blen, long nnz) 
 - 
setOutputParametersForScalarpublic static void setOutputParametersForScalar(Hop hop) 
 - 
copyLineNumberspublic static void copyLineNumbers(MatrixBlock mb, Hop tread) 
 - 
copyLineNumberspublic static void copyLineNumbers(MatrixObject mo, Hop tread) 
 - 
updateHopCharacteristicspublic static void updateHopCharacteristics(Hop hop, int blen, MemoTable memo, Hop src) 
 - 
isDimsKnownpublic static boolean isDimsKnown(Hop hop) 
 - 
isEmptypublic static boolean isEmpty(Hop hop) 
 - 
isEqualMatrixSizepublic static boolean isEqualMatrixSize(BinaryOp hop) 
 - 
isSingleBlockpublic static boolean isSingleBlock(Hop hop) 
 - 
isSingleBlockpublic static boolean isSingleBlock(Hop hop, boolean cols) Checks our BLOCKSIZE CONSTRAINT, w/ awareness of forced single node execution mode.- Parameters:
- hop- high-level operator
- cols- true if cols
- Returns:
- true if single block
 
 - 
isOuterProductLikeMMpublic static boolean isOuterProductLikeMM(Hop hop) 
 - 
isOuterBinarypublic static boolean isOuterBinary(Hop hop) 
 - 
isValidOuterBinaryOppublic static boolean isValidOuterBinaryOp(Types.OpOp2 op) 
 - 
isSparsepublic static boolean isSparse(Hop hop) 
 - 
isDensepublic static boolean isDense(Hop hop) 
 - 
isSparsepublic static boolean isSparse(Hop hop, double threshold) 
 - 
isNotMatrixVectorBinaryOperationpublic static boolean isNotMatrixVectorBinaryOperation(Hop hop) 
 - 
isReorgpublic static boolean isReorg(Hop hop, Types.ReOrgOp type) 
 - 
isReorgpublic static boolean isReorg(Hop hop, Types.ReOrgOp... types) 
 - 
isTransposeOperationpublic static boolean isTransposeOperation(Hop hop) 
 - 
isTransposeOperationpublic static boolean isTransposeOperation(Hop hop, int maxParents) 
 - 
isTsmmpublic static boolean isTsmm(Hop input) 
 - 
isTsmmInputpublic static boolean isTsmmInput(Hop input) 
 - 
isBinarypublic static boolean isBinary(Hop hop, Types.OpOp2 type) 
 - 
isBinarypublic static boolean isBinary(Hop hop, Types.OpOp2... types) 
 - 
isBinarypublic static boolean isBinary(Hop hop, Types.OpOp2 type, int maxParents) 
 - 
isBinaryPPredpublic static boolean isBinaryPPred(Hop hop) 
 - 
isBinarySparseSafepublic static boolean isBinarySparseSafe(Hop hop) 
 - 
isBinaryMatrixScalarOperationpublic static boolean isBinaryMatrixScalarOperation(Hop hop) 
 - 
isBinaryMatrixMatrixOperationpublic static boolean isBinaryMatrixMatrixOperation(Hop hop) 
 - 
isBinaryMatrixMatrixOperationWithSharedInputpublic static boolean isBinaryMatrixMatrixOperationWithSharedInput(Hop hop) 
 - 
isBinaryMatrixScalarpublic static boolean isBinaryMatrixScalar(Hop hop, Types.OpOp2 type, double val) 
 - 
isTernarypublic static boolean isTernary(Hop hop, Types.OpOp3 type) 
 - 
isTernarypublic static boolean isTernary(Hop hop, Types.OpOp3... types) 
 - 
isDatapublic static boolean isData(Hop hop, Types.OpOpData... types) 
 - 
isDatapublic static boolean isData(Hop hop, Types.OpOpData type) 
 - 
isBinaryMatrixColVectorOperationpublic static boolean isBinaryMatrixColVectorOperation(Hop hop) 
 - 
isBinaryMatrixRowVectorOperationpublic static boolean isBinaryMatrixRowVectorOperation(Hop hop) 
 - 
isUnarypublic static boolean isUnary(Hop hop, Types.OpOp1 type) 
 - 
isUnarypublic static boolean isUnary(Hop hop, Types.OpOp1 type, int maxParents) 
 - 
isUnarypublic static boolean isUnary(Hop hop, Types.OpOp1... types) 
 - 
isTerminalHoppublic static boolean isTerminalHop(Hop hop) Check if given hop is of a terminal type. Terminal hops are either of type print or write.- Parameters:
- hop- for which the type is checked
- Returns:
- true if hop is terminal
 
 - 
isMatrixMultiplypublic static boolean isMatrixMultiply(Hop hop) 
 - 
isAggUnaryOppublic static boolean isAggUnaryOp(Hop hop, Types.AggOp op, Types.Direction dir) 
 - 
isAggUnaryOppublic static boolean isAggUnaryOp(Hop hop, Types.AggOp... op) 
 - 
isSumpublic static boolean isSum(Hop hop) 
 - 
isSumSqpublic static boolean isSumSq(Hop hop) 
 - 
isParameterBuiltinOppublic static boolean isParameterBuiltinOp(Hop hop, Types.ParamBuiltinOp type) 
 - 
isRemoveEmptypublic static boolean isRemoveEmpty(Hop hop, boolean rows) 
 - 
isRemoveEmptypublic static boolean isRemoveEmpty(Hop hop) 
 - 
isNarypublic static boolean isNary(Hop hop, Types.OpOpN type) 
 - 
isNarypublic static boolean isNary(Hop hop, Types.OpOpN... types) 
 - 
isDnnpublic static boolean isDnn(Hop hop, Types.OpOpDnn type) 
 - 
isDnnpublic static boolean isDnn(Hop hop, Types.OpOpDnn... types) 
 - 
checkInputDataTypespublic static boolean checkInputDataTypes(Hop hop, Types.DataType... dt) 
 - 
isColumnRightIndexingpublic static boolean isColumnRightIndexing(Hop hop) 
 - 
isFullColumnIndexingpublic static boolean isFullColumnIndexing(LeftIndexingOp hop) 
 - 
isFullColumnIndexingpublic static boolean isFullColumnIndexing(IndexingOp hop) 
 - 
isFullRowIndexingpublic static boolean isFullRowIndexing(LeftIndexingOp hop) 
 - 
isFullRowIndexingpublic static boolean isFullRowIndexing(IndexingOp hop) 
 - 
isColumnRangeIndexingpublic static boolean isColumnRangeIndexing(IndexingOp hop) 
 - 
isUnnecessaryRightIndexingpublic static boolean isUnnecessaryRightIndexing(Hop hop) 
 - 
isScalarMatrixBinaryMultpublic static boolean isScalarMatrixBinaryMult(Hop hop) 
 - 
isBasic1NSequencepublic static boolean isBasic1NSequence(Hop hop) 
 - 
isBasicN1Sequencepublic static boolean isBasicN1Sequence(Hop hop) 
 - 
hasOnlyWriteParentspublic static boolean hasOnlyWriteParents(Hop hop, boolean inclTransient, boolean inclPersistent) 
 - 
hasOnlyUnaryBinaryParentspublic static boolean hasOnlyUnaryBinaryParents(Hop hop, boolean disallowLhs) 
 - 
alwaysRequiresReblockpublic static boolean alwaysRequiresReblock(Hop hop) 
 - 
isValidOppublic static boolean isValidOp(Types.AggOp input, Types.AggOp... validTab) 
 - 
isValidOppublic static boolean isValidOp(Types.OpOp1 input, Types.OpOp1... validTab) 
 - 
isValidOppublic static boolean isValidOp(Types.OpOp2 input, Types.OpOp2... validTab) 
 - 
isValidOppublic static boolean isValidOp(Types.ReOrgOp input, Types.ReOrgOp... validTab) 
 - 
isValidOppublic static boolean isValidOp(Types.ParamBuiltinOp input, Types.ParamBuiltinOp... validTab) 
 - 
getValidOpPospublic static int getValidOpPos(Types.OpOp2 input, Types.OpOp2... validTab) 
 - 
compareSizepublic static int compareSize(Hop hop1, Hop hop2) Compares the size of outputs from hop1 and hop2, in terms of number of matrix cells.- Parameters:
- hop1- high-level operator 1
- hop2- high-level operator 2
- Returns:
- 0 if sizes are equal, <0 for hop1<hop2, >0 for hop1>hop2.
 
 - 
isLastLevelStatementBlockpublic static boolean isLastLevelStatementBlock(StatementBlock sb) 
 - 
isLoopStatementBlockpublic static boolean isLoopStatementBlock(StatementBlock sb) 
 - 
getMaxNrowInputpublic static long getMaxNrowInput(Hop hop) 
 - 
getMaxNcolInputpublic static long getMaxNcolInput(Hop hop) 
 - 
getMaxInputDimpublic static long getMaxInputDim(Hop hop, boolean dim1) 
 - 
getSumValidInputDimspublic static long getSumValidInputDims(Hop hop, boolean dim1) 
 - 
hasValidInputDimspublic static boolean hasValidInputDims(Hop hop, boolean dim1) 
 - 
getSumValidInputNnzpublic static long getSumValidInputNnz(Hop hop) 
 - 
hasValidInputNnzpublic static boolean hasValidInputNnz(Hop hop) 
 - 
getMaxInputDimpublic static long getMaxInputDim(DataCharacteristics[] dc, boolean dim1) 
 - 
getSumValidInputDimspublic static long getSumValidInputDims(DataCharacteristics[] mc, boolean dim1) 
 - 
hasValidInputDimspublic static boolean hasValidInputDims(DataCharacteristics[] mc, boolean dim1) 
 - 
getSumValidInputNnzpublic static long getSumValidInputNnz(DataCharacteristics[] mc, boolean worstcase) 
 - 
hasValidInputNnzpublic static boolean hasValidInputNnz(DataCharacteristics[] mc, boolean worstcase) 
 - 
hasListInputspublic static boolean hasListInputs(Hop hop) 
 - 
knownParamservFunctionspublic static boolean knownParamservFunctions(Hop hop) 
 - 
knownParamservFunctionspublic static boolean knownParamservFunctions(Hop hop, DMLProgram prog) 
 - 
setUnoptimizedFunctionCallspublic static void setUnoptimizedFunctionCalls(StatementBlock sb) 
 
- 
 
-