org.apache.sysds.hops.rewrite

## Class RewriteIndexingVectorization

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

    public class RewriteIndexingVectorization
    extends HopRewriteRule

Rule: Indexing vectorization. This rewrite rule set simplifies multiple right / left indexing accesses within a DAG into row/column index accesses, which is beneficial for two reasons: (1) it is an enabler for later row/column partitioning, and (2) it reduces the number of operations over potentially large data (i.e., prevents unnecessary MR operations and reduces pressure on the buffer pool due to copy on write on left indexing).

### Constructor Summary

Constructors
Constructor and Description
`RewriteIndexingVectorization()`

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

#### RewriteIndexingVectorization

    public RewriteIndexingVectorization()

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