## Uses of Class
org.apache.sysds.hops.codegen.template.CPlanMemoTable

- Packages that use CPlanMemoTable
  Package | Description
  --- | ---
  org.apache.sysds.hops.codegen.opt |
  org.apache.sysds.hops.codegen.template |

- - ### Uses of CPlanMemoTable in org.apache.sysds.hops.codegen.opt

    Methods in org.apache.sysds.hops.codegen.opt with parameters of type CPlanMemoTable
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Collection<PlanPartition>` | PlanAnalyzer.`analyzePlanPartitions​(CPlanMemoTable memo, ArrayList<Hop> roots, boolean ext)` |
    `abstract void` | PlanSelection.`selectPlans​(CPlanMemoTable memo, ArrayList<Hop> roots)` | Given a HOP DAG G, and a set of partial fusions plans P, find the set of optimal, non-conflicting fusion plans P' that applied to G minimizes costs C with P' = \argmin_{p \subseteq P} C(G, p) s.t.
    `void` | PlanSelectionFuseAll.`selectPlans​(CPlanMemoTable memo, ArrayList<Hop> roots)` |
    `void` | PlanSelectionFuseCostBased.`selectPlans​(CPlanMemoTable memo, ArrayList<Hop> roots)` |
    `void` | PlanSelectionFuseCostBasedV2.`selectPlans​(CPlanMemoTable memo, ArrayList<Hop> roots)` |
    `void` | PlanSelectionFuseNoRedundancy.`selectPlans​(CPlanMemoTable memo, ArrayList<Hop> roots)` |

    Constructors in org.apache.sysds.hops.codegen.opt with parameters of type CPlanMemoTable
    Constructor | Description
    --- | ---
    `ReachabilityGraph​(PlanPartition part, CPlanMemoTable memo)` |

  - ### Uses of CPlanMemoTable in org.apache.sysds.hops.codegen.template

    Methods in org.apache.sysds.hops.codegen.template with parameters of type CPlanMemoTable
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract Pair<Hop[],​CNodeTpl>` | TemplateBase.`constructCplan​(Hop hop, CPlanMemoTable memo, boolean compileLiterals)` | Constructs a single cplan rooted at the given hop, according to the plan given in the memo structure for this particular hop and its recursive inputs.
    `Pair<Hop[],​CNodeTpl>` | TemplateCell.`constructCplan​(Hop hop, CPlanMemoTable memo, boolean compileLiterals)` |
    `Pair<Hop[],​CNodeTpl>` | TemplateMultiAgg.`constructCplan​(Hop hop, CPlanMemoTable memo, boolean compileLiterals)` |
    `Pair<Hop[],​CNodeTpl>` | TemplateOuterProduct.`constructCplan​(Hop hop, CPlanMemoTable memo, boolean compileLiterals)` |
    `Pair<Hop[],​CNodeTpl>` | TemplateRow.`constructCplan​(Hop hop, CPlanMemoTable memo, boolean compileLiterals)` |
    `static CPlanMemoTable.MemoTableEntry` | TemplateOuterProduct.`dropAlternativePlan​(CPlanMemoTable memo, CPlanMemoTable.MemoTableEntry me1, CPlanMemoTable.MemoTableEntry me2)` |
    `static long` | TemplateUtils.`getRowTemplateMatrixInput​(Hop current, CPlanMemoTable memo)` |
    `static boolean` | TemplateUtils.`hasCommonRowTemplateMatrixInput​(Hop input1, Hop input2, CPlanMemoTable memo)` |