Class RewriteAlgebraicSimplificationStatic

java.lang.Object
org.apache.sysds.hops.rewrite.HopRewriteRule
org.apache.sysds.hops.rewrite.RewriteAlgebraicSimplificationStatic

public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
Rule: Algebraic Simplifications. Simplifies binary expressions in terms of two major purposes: (1) rewrite binary operations to unary operations when possible (in CP this reduces the memory estimate, in MR this allows map-only operations and hence prevents unnecessary shuffle and sort) and (2) remove binary operations that are in itself are unnecessary (e.g., *1 and /1).
  • Constructor Details

    • RewriteAlgebraicSimplificationStatic

      public RewriteAlgebraicSimplificationStatic()
  • Method Details

    • rewriteHopDAGs

      public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state)
      Description copied from class: HopRewriteRule
      Handle a generic (last-level) hop DAG with multiple roots.
      Specified by:
      rewriteHopDAGs in class HopRewriteRule
      Parameters:
      roots - high-level operator roots
      state - program rewrite status
      Returns:
      list of high-level operators
    • rewriteHopDAG

      public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state)
      Description copied from class: HopRewriteRule
      Handle a predicate hop DAG with exactly one root.
      Specified by:
      rewriteHopDAG in class HopRewriteRule
      Parameters:
      root - high-level operator root
      state - program rewrite status
      Returns:
      high-level operator
    • simplifyConstantConjunction

      public static Hop simplifyConstantConjunction(Hop parent, Hop hi, int pos)