oryx.core.interpreters.inverse.core.InverseAndILDJ

Propagates inverse value slices and their ILDJs.

Inherits From: Cell

An InverseAndILDJ instance keeps track of a set of slices of a value. In the simplest case, the slice's indices capture the entire value, in which case the cell is "top". Partial information is represented with slices that do not capture the entire value. No information, i.e. "bottom', is represented with a cell that has no slices.

Joining two cells creates set of slices, and if we detect that the slices can be concatenated, we combine them into a single slice. As propagation progresses, we hope to accumulate enough slices to concatenate them all into this cell's val. ILDJs are also kept track of in the same way, except we keep track of the diagonal of the Jacobian since split operations may also split up the Jacobian.

ildj

ndim

shape

val

Methods

bottom

View source

Returns if this cell represents the bottom of the slice lattice.

An InverseAndILDJ is at the bottom if we have no slices.

flatten

View source

is_unknown

View source

join

View source

new

View source

Creates a new instance of a Cell from a value.

top

View source

Returns if this cell represents the top of the slice lattice.

An InverseAndILDJ is at the top if its slice represents the entire array.

unflatten

View source

unknown

View source

Creates an unknown Cell from an abstract value.

__eq__

View source

Return self==value.

__lt__

View source

Return self<value.