## Uses of Class
org.apache.sysds.hops.codegen.cplan.CNode

Packages that use CNode
org.apache.sysds.hops.codegen.cplan
org.apache.sysds.hops.codegen.template
org.apache.sysds.utils

### Uses of CNode in org.apache.sysds.hops.codegen.cplan

Subclasses of CNode in org.apache.sysds.hops.codegen.cplan
`class` `CNodeBinary`
`class` `CNodeCell`
`class` `CNodeData`
`class` `CNodeMultiAgg`
`class` `CNodeNary`
`class` `CNodeOuterProduct`
`class` `CNodeRow`
`class` `CNodeTernary`
`class` `CNodeTpl`
`class` `CNodeUnary`

Methods in org.apache.sysds.hops.codegen.cplan that return CNode
`CNode` CNode.`getOutput()`

Methods in org.apache.sysds.hops.codegen.cplan that return types with arguments of type CNode
`ArrayList<CNode>` CNode.`getInput()`
`ArrayList<CNode>` CNodeMultiAgg.`getOutputs()`

Methods in org.apache.sysds.hops.codegen.cplan with parameters of type CNode
`void` CNodeTpl.`addInput(CNode in)`
`void` CNodeTpl.`rReorderCommutativeBinaryOps(CNode node, long mainHopID)`
`void` CNode.`setOutput(CNode output)`

Method parameters in org.apache.sysds.hops.codegen.cplan with type arguments of type CNode
`String` CNodeNary.NaryType.`getTemplate(boolean sparseGen, long len, ArrayList<CNode> inputs, SpoofCompiler.GeneratorAPI api)`
`static void` CNodeTpl.`resetVisitStatus(List<CNode> outputs)`

Constructors in org.apache.sysds.hops.codegen.cplan with parameters of type CNode
Constructor and Description
`CNodeBinary(CNode in1, CNode in2, CNodeBinary.BinType type)`
`CNodeCell(ArrayList<CNode> inputs, CNode output)`
`CNodeNary(CNode[] inputs, CNodeNary.NaryType type)`
`CNodeOuterProduct(ArrayList<CNode> inputs, CNode output, MMTSJ.MMTSJType mmtsj)`
`CNodeRow(ArrayList<CNode> inputs, CNode output)`
`CNodeTernary(CNode in1, CNode in2, CNode in3, CNodeTernary.TernaryType type)`
`CNodeTpl(ArrayList<CNode> inputs, CNode output)`
`CNodeUnary(CNode in1, CNodeUnary.UnaryType type)`

Constructor parameters in org.apache.sysds.hops.codegen.cplan with type arguments of type CNode
Constructor and Description
`CNodeCell(ArrayList<CNode> inputs, CNode output)`
`CNodeMultiAgg(ArrayList<CNode> inputs, ArrayList<CNode> outputs)`
`CNodeMultiAgg(ArrayList<CNode> inputs, ArrayList<CNode> outputs)`
`CNodeOuterProduct(ArrayList<CNode> inputs, CNode output, MMTSJ.MMTSJType mmtsj)`
`CNodeRow(ArrayList<CNode> inputs, CNode output)`
`CNodeTpl(ArrayList<CNode> inputs, CNode output)`

### Uses of CNode in org.apache.sysds.hops.codegen.template

Methods in org.apache.sysds.hops.codegen.template that return CNode
`static CNode` TemplateUtils.`skipTranspose(CNode cdataOrig, Hop hop, HashMap<Long,CNode> tmp, boolean compileLiterals)`
`static CNode` TemplateUtils.`wrapLookupIfNecessary(CNode node, Hop hop)`
`static CNode` TemplateUtils.`wrapLookupIfNecessary(CNode node, Hop hop, boolean rowTpl)`

Methods in org.apache.sysds.hops.codegen.template with parameters of type CNode
`static boolean` TemplateUtils.`containsBinary(CNode node, CNodeBinary.BinType type)`
`static int` TemplateUtils.`countVectorIntermediates(CNode node)`
`static int` TemplateUtils.`determineMinVectorIntermediates(CNode node, CNode main)`
`static Map<Long,Set<Long>>` TemplateUtils.`getAllParents(CNode node)`
`static void` TemplateUtils.`getAllParents(CNode node, Map<Long,Set<Long>> parents)`
`static CNodeData` TemplateUtils.`getLiteral(CNode node)`
`static int` TemplateUtils.`getMaxLiveVectorIntermediates(CNode node, CNode main, Map<Long,Set<Long>> parents, Set<org.apache.commons.lang3.tuple.Pair<Long,Long>> stack)`
`static int` TemplateUtils.`getMaxVectorIntermediates(CNode node)`
`static boolean` TemplateUtils.`hasOnlyDataNodeOrLookupInputs(CNode node)`
`static boolean` TemplateUtils.`isBinary(CNode node, CNodeBinary.BinType... types)`
`static boolean` TemplateUtils.`isColVector(CNode hop)`
`static boolean` TemplateUtils.`isLiteral(CNode node)`
`static boolean` TemplateUtils.`isLiteral(CNode node, String val)`
`static boolean` TemplateUtils.`isLookup(CNode node, boolean includeRC1)`
`static boolean` TemplateUtils.`isMatrix(CNode hop)`
`static boolean` TemplateUtils.`isRowVector(CNode hop)`
`static boolean` TemplateUtils.`isTernary(CNode node, CNodeTernary.TernaryType... types)`
`static boolean` TemplateUtils.`isUnary(CNode node, CNodeUnary.UnaryType... types)`
`static boolean` TemplateUtils.`isUnaryOperatorPipeline(CNode node)`
`static boolean` TemplateUtils.`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)`
`static boolean` TemplateUtils.`rContainsBinary(CNode node, CNodeBinary.BinType type)`
`static boolean` TemplateUtils.`rContainsInput(CNode node, long hopID)`
`static void` TemplateUtils.`rFlipVectorLookups(CNode current)`
`static boolean` TemplateUtils.`rIsSparseSafeOnly(CNode node, CNodeBinary.BinType... types)`
`static boolean` TemplateUtils.`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)`
`static CNode` TemplateUtils.`skipTranspose(CNode cdataOrig, Hop hop, HashMap<Long,CNode> tmp, boolean compileLiterals)`
`static CNode` TemplateUtils.`wrapLookupIfNecessary(CNode node, Hop hop)`
`static CNode` TemplateUtils.`wrapLookupIfNecessary(CNode node, Hop hop, boolean rowTpl)`

Method parameters in org.apache.sysds.hops.codegen.template with type arguments of type CNode
`static long` TemplateUtils.`skipConditionalInOuterProduct(Hop hop, HashMap<Long,CNode> tmp, HashSet<Hop> inHops)`
`static CNode` TemplateUtils.`skipTranspose(CNode cdataOrig, Hop hop, HashMap<Long,CNode> tmp, boolean compileLiterals)`

### Uses of CNode in org.apache.sysds.utils

Methods in org.apache.sysds.utils with parameters of type CNode
`static String` Explain.`explain(CNode node)`
`static String` Explain.`explain(CNode node, int level)`