## Uses of Class
org.apache.sysds.hops.rewrite.HopRewriteRule

- Packages that use HopRewriteRule
  Package | Description
  --- | ---
  org.apache.sysds.hops.rewrite |

- - ### Uses of HopRewriteRule in org.apache.sysds.hops.rewrite

    Subclasses of HopRewriteRule in org.apache.sysds.hops.rewrite
    Modifier and Type | Class and Description
    --- | ---
    `class` | `RewriteAlgebraicSimplificationDynamic` Rule: Algebraic Simplifications.
    `class` | `RewriteAlgebraicSimplificationStatic` Rule: Algebraic Simplifications.
    `class` | `RewriteBlockSizeAndReblock` Rule: BlockSizeAndReblock.
    `class` | `RewriteCommonSubexpressionElimination` Rule: CommonSubexpressionElimination.
    `class` | `RewriteConstantFolding` Rule: Constant Folding.
    `class` | `RewriteElementwiseMultChainOptimization` Prerequisite: RewriteCommonSubexpressionElimination must run before this rule.
    `class` | `RewriteGPUSpecificOps`
    `class` | `RewriteIndexingVectorization` Rule: Indexing vectorization.
    `class` | `RewriteInjectSparkPReadCheckpointing` Rule: BlockSizeAndReblock.
    `class` | `RewriteMatrixMultChainOptimization` Rule: Determine the optimal order of execution for a chain of matrix multiplications Solution: Classic Dynamic Programming Approach: Currently, the approach based only on matrix dimensions Goal: To reduce the number of computations in the run-time (map-reduce) layer
    `class` | `RewriteMatrixMultChainOptimizationSparse` Rule: Determine the optimal order of execution for a chain of matrix multiplications Solution: Classic Dynamic Programming Approach: Currently, the approach based only on matrix dimensions and sparsity estimates using the MNC sketch Goal: To reduce the number of computations in the run-time (map-reduce) layer
    `class` | `RewriteRemoveDanglingParentReferences` This rewrite is a general-purpose cleanup pass that removes any dangling parent references in one pass through the hop DAG.
    `class` | `RewriteRemovePersistentReadWrite` This rewrite is a custom rewrite for JMLC in order to replace all persistent reads and writes with transient reads and writes from the symbol table.
    `class` | `RewriteRemoveReadAfterWrite` Rule: RemoveReadAfterWrite.
    `class` | `RewriteRemoveUnnecessaryCasts` Rule: RemoveUnnecessaryCasts.
    `class` | `RewriteTransientWriteParentHandling` Rule: Eliminate for Transient Write DataHops to have no parents Solution: Move parent edges of Transient Write Hop to parent of its child Reason: Transient Write not being a root messes up analysis for Lop's to Instruction translation (according to Amol)

    Methods in org.apache.sysds.hops.rewrite with parameters of type HopRewriteRule
    Modifier and Type | Method and Description
    --- | ---
    `static void` | HopDagValidator.`validateHopDag(ArrayList<Hop> roots, HopRewriteRule rule)`
    `static void` | HopDagValidator.`validateHopDag(Hop root, HopRewriteRule rule)`

    Method parameters in org.apache.sysds.hops.rewrite with type arguments of type HopRewriteRule
    Modifier and Type | Method and Description
    --- | ---
    `void` | ProgramRewriter.`removeHopRewrite(Class<? extends HopRewriteRule> clazz)`

    Constructors in org.apache.sysds.hops.rewrite with parameters of type HopRewriteRule
    Constructor and Description
    `ProgramRewriter(HopRewriteRule... rewrites)` Construct a program rewriter for a given rewrite which is passed from outside.

    Constructor parameters in org.apache.sysds.hops.rewrite with type arguments of type HopRewriteRule
    Constructor and Description
    `ProgramRewriter(ArrayList<HopRewriteRule> hRewrites, ArrayList<StatementBlockRewriteRule> sbRewrites)` Construct a program rewriter for the given rewrite sets which are passed from outside.

Copyright © 2020 The Apache Software Foundation. All rights reserved.