Package org.apache.sysds.runtime.einsum

# Class EOpNodeFuse

java.lang.Object
org.apache.sysds.runtime.einsum.EOpNode
org.apache.sysds.runtime.einsum.EOpNodeFuse

public class EOpNodeFuse extends EOpNode

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`EOpNodeFuse.EinsumRewriteType`

## Field Summary

Fields
Modifier and Type
Field
Description
`List<EOpNode>`
`ABs`
`List<EOpNode>`
`As`
`List<EOpNode>`
`AZs`
`List<EOpNode>`
`BAs`
`List<EOpNode>`
`Bs`
`EOpNodeFuse.EinsumRewriteType`
`einsumRewriteType`

### Fields inherited from class org.apache.sysds.runtime.einsum.EOpNode

`c1, c2, dim1, dim2`

## Constructor Summary

Constructors
Constructor
Description
`EOpNodeFuse(EOpNodeFuse.EinsumRewriteType einsumRewriteType, List<EOpNode> ABs, List<EOpNode> BAs, List<EOpNode> Bs, List<EOpNode> As, List<EOpNode> AZs, List<org.apache.commons.lang3.tuple.Pair<List<EOpNode>,List<EOpNode>>> AXsAndXs)`

## Method Summary

Modifier and Type
Method
Description
`void`
`addScalarAsIntermediate(EOpNode scalar)`
`static MatrixBlock`
`compute(EOpNodeFuse.EinsumRewriteType rewriteType, List<MatrixBlock> ABsInput, List<MatrixBlock> mbBAs, List<MatrixBlock> mbBs, List<MatrixBlock> mbAs, List<MatrixBlock> mbAZs, Double scalar, int numThreads)`
`MatrixBlock`
`computeEOpNode(List<MatrixBlock> inputs, int numThreads, org.apache.commons.logging.Log LOG)`
`static List<EOpNodeFuse>`
`findFuseOps(List<EOpNode> operands, Character outChar1, Character outChar2, Map<Character,Integer> charToSize, Map<Character,Integer> charToOccurences, List<EOpNode> ret)`
`List<EOpNode>`
`getChildren()`
`EOpNode`
`reorderChildrenAndOptimize(EOpNode parent, Character outChar1, Character outChar2)`
`String`
`toString()`

### Methods inherited from class org.apache.sysds.runtime.einsum.EOpNode

`getOutputString, recursivePrintString`

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

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

## Field Details

### einsumRewriteType

public EOpNodeFuse.EinsumRewriteType einsumRewriteType

### ABs

public List<EOpNode> ABs

### BAs

public List<EOpNode> BAs

### Bs

public List<EOpNode> Bs

### As

public List<EOpNode> As

### AZs

public List<EOpNode> AZs

## Constructor Details

### EOpNodeFuse

public EOpNodeFuse(EOpNodeFuse.EinsumRewriteType einsumRewriteType, List<EOpNode> ABs, List<EOpNode> BAs, List<EOpNode> Bs, List<EOpNode> As, List<EOpNode> AZs, List<org.apache.commons.lang3.tuple.Pair<List<EOpNode>,List<EOpNode>>> AXsAndXs)

## Method Details

### getChildren

public List<EOpNode> getChildren()

Specified by:
  `getChildren` in class `EOpNode`

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### addScalarAsIntermediate

public void addScalarAsIntermediate(EOpNode scalar)

### findFuseOps

public static List<EOpNodeFuse> findFuseOps(List<EOpNode> operands, Character outChar1, Character outChar2, Map<Character,Integer> charToSize, Map<Character,Integer> charToOccurences, List<EOpNode> ret)

### compute

public static MatrixBlock compute(EOpNodeFuse.EinsumRewriteType rewriteType, List<MatrixBlock> ABsInput, List<MatrixBlock> mbBAs, List<MatrixBlock> mbBs, List<MatrixBlock> mbAs, List<MatrixBlock> mbAZs, Double scalar, int numThreads)

### computeEOpNode

public MatrixBlock computeEOpNode(List<MatrixBlock> inputs, int numThreads, org.apache.commons.logging.Log LOG)

Specified by:
  `computeEOpNode` in class `EOpNode`

### reorderChildrenAndOptimize

public EOpNode reorderChildrenAndOptimize(EOpNode parent, Character outChar1, Character outChar2)

Specified by:
  `reorderChildrenAndOptimize` in class `EOpNode`