Package org.apache.sysds.hops.rewrite

## Class RewriteAlgebraicSimplificationDynamic

- java.lang.Object
- - org.apache.sysds.hops.rewrite.HopRewriteRule
  - - org.apache.sysds.hops.rewrite.RewriteAlgebraicSimplificationDynamic

    public class RewriteAlgebraicSimplificationDynamic
    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 Summary

Constructors
`RewriteAlgebraicSimplificationDynamic()`

### Method Summary

All Methods Instance Methods Concrete Methods
`Hop` `rewriteHopDAG​(Hop root, ProgramRewriteStatus state)` Handle a predicate hop DAG with exactly one root.
`ArrayList<Hop>` `rewriteHopDAGs​(ArrayList<Hop> roots, ProgramRewriteStatus state)` Handle a generic (last-level) hop DAG with multiple roots.

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### RewriteAlgebraicSimplificationDynamic

    public RewriteAlgebraicSimplificationDynamic()

### Method Detail

#### 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