Package org.apache.sysds.lops.compile.linearization

## Class IDagLinearizer

- java.lang.Object
- - org.apache.sysds.lops.compile.linearization.IDagLinearizer

Direct Known Subclasses:
  `LinearizerBreadthFirst`, `LinearizerCostBased`, `LinearizerDepthFirst`, `LinearizerMaxParallelism`, `LinearizerMinIntermediates`, `LinearizerPipelineAware`, `LinearizerResourceAwareFast`, `LinearizerResourceAwareOptimal`

    public abstract class IDagLinearizer
    extends Object

An interface for the linearization algorithms that order the DAG nodes into a sequence of instructions to execute.

### Constructor Summary

Constructors
`IDagLinearizer()`

### Method Summary

All Methods Instance Methods Abstract Methods
`abstract List<Lop>` `linearize​(List<Lop> v)` Linearized a DAG of lops into a sequence of lops that preserves all data dependencies.

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

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

### Constructor Detail

#### IDagLinearizer

    public IDagLinearizer()

### Method Detail

#### linearize

    public abstract List<Lop> linearize​(List<Lop> v)

Linearized a DAG of lops into a sequence of lops that preserves all data dependencies.

Parameters:
  `v` - roots (outputs) of a DAG of lops
Returns:
  list of lops (input, inner, and outputs)