Class TemplateUtils
- java.lang.Object
-
- org.apache.sysds.hops.codegen.template.TemplateUtils
-
public class TemplateUtils extends Object
-
-
Field Summary
Fields Modifier and Type Field Description static TemplateBase[]
TEMPLATES
-
Constructor Summary
Constructors Constructor Description TemplateUtils()
-
Method Summary
-
-
-
Field Detail
-
TEMPLATES
public static final TemplateBase[] TEMPLATES
-
-
Method Detail
-
isVector
public static boolean isVector(Hop hop)
-
isColVector
public static boolean isColVector(Hop hop)
-
isColVector
public static boolean isColVector(CNode hop)
-
isRowVector
public static boolean isRowVector(CNode hop)
-
isMatrix
public static boolean isMatrix(CNode hop)
-
wrapLookupIfNecessary
public static CNode wrapLookupIfNecessary(CNode node, Hop hop, boolean rowTpl)
-
isMatrix
public static boolean isMatrix(Hop hop)
-
isVectorOrScalar
public static boolean isVectorOrScalar(Hop hop)
-
isBinaryMatrixRowVector
public static boolean isBinaryMatrixRowVector(Hop hop)
-
isBinaryMatrixColVector
public static boolean isBinaryMatrixColVector(Hop hop)
-
hasMatrixInput
public static boolean hasMatrixInput(Hop hop)
-
isOperationSupported
public static boolean isOperationSupported(Hop h)
-
createTemplate
public static TemplateBase createTemplate(TemplateBase.TemplateType type)
-
createTemplate
public static TemplateBase createTemplate(TemplateBase.TemplateType type, TemplateBase.CloseType ctype)
-
createCompatibleTemplates
public static TemplateBase[] createCompatibleTemplates(TemplateBase.TemplateType type, TemplateBase.CloseType ctype)
-
getCellType
public static SpoofCellwise.CellType getCellType(Hop hop)
-
getRowType
public static SpoofRowwise.RowType getRowType(Hop output, Hop... inputs)
-
getAggOp
public static Types.AggOp getAggOp(Hop hop)
-
getOuterProductType
public static SpoofOuterProduct.OutProdType getOuterProductType(Hop X, Hop U, Hop V, Hop out)
-
isLiteral
public static boolean isLiteral(CNode node)
-
isLookup
public static boolean isLookup(CNode node, boolean includeRC1)
-
isUnary
public static boolean isUnary(CNode node, CNodeUnary.UnaryType... types)
-
isUnaryRowAgg
public static boolean isUnaryRowAgg(CNode node)
-
isBinary
public static boolean isBinary(CNode node, CNodeBinary.BinType... types)
-
rIsSparseSafeOnly
public static boolean rIsSparseSafeOnly(CNode node, CNodeBinary.BinType... types)
-
rContainsInput
public static boolean rContainsInput(CNode node, long hopID)
-
isTernary
public static boolean isTernary(CNode node, CNodeTernary.TernaryType... types)
-
skipTranspose
public static CNode skipTranspose(CNode cdataOrig, Hop hop, HashMap<Long,CNode> tmp, boolean compileLiterals)
-
findRemovableConditionalPatternInOuterProduct
public static LinkedList<Long> findRemovableConditionalPatternInOuterProduct(Hop hop)
-
skipConditionalInOuterProduct
public static long skipConditionalInOuterProduct(Hop hop, HashMap<Long,CNode> tmp, HashSet<Hop> inHops)
-
hasTransposeParentUnderOuterProduct
public static boolean hasTransposeParentUnderOuterProduct(Hop hop)
-
hasSingleOperation
public static boolean hasSingleOperation(CNodeTpl tpl)
-
isValidSingleOperation
public static boolean isValidSingleOperation(Hop hop)
-
hasNoOperation
public static boolean hasNoOperation(CNodeTpl tpl)
-
hasOnlyDataNodeOrLookupInputs
public static boolean hasOnlyDataNodeOrLookupInputs(CNode node)
-
determineMinVectorIntermediates
public static int determineMinVectorIntermediates(CNode node, CNode main)
-
isUnaryOperatorPipeline
public static boolean isUnaryOperatorPipeline(CNode node)
-
getMaxVectorIntermediates
public static int getMaxVectorIntermediates(CNode node)
-
countVectorIntermediates
public static int countVectorIntermediates(CNode node)
-
getMaxLiveVectorIntermediates
public static int getMaxLiveVectorIntermediates(CNode node, CNode main, Map<Long,Set<Long>> parents, Set<org.apache.commons.lang3.tuple.Pair<Long,Long>> stack)
-
isValidNumVectorIntermediates
public static boolean isValidNumVectorIntermediates(CNode node, CNode main, Map<Long,Set<Long>> parents, Map<Long,org.apache.commons.lang3.tuple.Pair<Long,org.apache.commons.lang3.mutable.MutableInt>> inUse, Set<Long> inUse2, int count)
-
rIsValidNumVectorIntermediates
public static boolean rIsValidNumVectorIntermediates(CNode node, CNode main, Map<Long,Set<Long>> parents, Map<Long,org.apache.commons.lang3.tuple.Pair<Long,org.apache.commons.lang3.mutable.MutableInt>> inUse, Set<Long> inUse2, IDSequence buff)
-
isType
public static boolean isType(TemplateBase.TemplateType type, TemplateBase.TemplateType... validTypes)
-
hasCommonRowTemplateMatrixInput
public static boolean hasCommonRowTemplateMatrixInput(Hop input1, Hop input2, CPlanMemoTable memo)
-
getRowTemplateMatrixInput
public static long getRowTemplateMatrixInput(Hop current, CPlanMemoTable memo)
-
containsBinary
public static boolean containsBinary(CNode node, CNodeBinary.BinType type)
-
rContainsBinary
public static boolean rContainsBinary(CNode node, CNodeBinary.BinType type)
-
containsOuterProduct
public static boolean containsOuterProduct(Hop hop)
-
rFlipVectorLookups
public static void rFlipVectorLookups(CNode current)
-
containsFusedRowVecAgg
public static boolean containsFusedRowVecAgg(CNodeTpl tpl)
-
-