LTL
2.0.x
|
Node in the expression parse tree. Every expression in ultimately represented by this class. More...
Inherits ltl::ExprBase< ExprNode< A, N >, N >, and ltl::LTLIterator.
Public Types | |
typedef A::value_type | value_type |
the result data type of the parse tree node More... | |
enum | |
enum | { dims =N } |
The number of dimensions. More... | |
enum | { numIndexIter = A::numIndexIter } |
The number of ltl::IndexIter index iterators in all the parse tree below this node. More... | |
enum | { numConvolution = A::numConvolution } |
The number of convolution operations in the parse tree below this node. More... | |
enum | { isVectorizable = A::isVectorizable } |
Is the whole parse tree below this node vectorizable. More... | |
Public Member Functions | |
ExprNode (const A &a) | |
Constructor. More... | |
void | operator++ () |
Move all iterators in the parse tree below us forward. Slowest, but works for all expressions. More... | |
value_type | operator* () const |
compute and return the value of the subexpression in the parse tree below us. More... | |
ExprNode< A, N > & | derived () |
const ExprNode< A, N > & | derived () const |
void | advance () |
void | advance (const int i) |
void | advance (const int i, const int dim) |
void | advanceWithStride1 () |
void | advanceDim () |
void | advanceDim (const int cutDim) |
value_type | readWithoutStride (const int i) const |
value_type | readWithStride (const int i) const |
value_type | readWithStride (const int i, const int dim) const |
value_type | readAtOffsetDim (const int i, const int dim) const |
value_type | readAtOffset (const int i) const |
value_type | readAtOffset (const int i, const int j) const |
value_type | readAtOffset (const int i, const int j, const int k) const |
int | boundary_l (const int dim) const |
int | boundary_u (const int dim) const |
bool | isStorageContiguous () const |
Storage geometry. More... | |
bool | isStride1 () const |
true if the innermost stride is unity More... | |
bool | isConformable (const Shape< N > &other) const |
true if we are conformable with another shape More... | |
void | reset () |
Reset the iterators in the parse tree below us. More... | |
const Shape< N > * | shape () const |
Return one of the shape objects from the parse tree. More... | |
ExprIter< A, N > | begin () |
Return an ExprIter . More... | |
ExprIter< A, N > | end () |
Return an end ExprIter . More... | |
Node in the expression parse tree. Every expression in ultimately represented by this class.
This class represents a node in the parse tree of an expression. Any operation or operand is captured as a type ExprNode<Op,N>
, where Op
represents the operation or operand and N the number of dimensions. This way, there is a single data type ExprNode<>
associated with any parse tree element.
The operation or operand Op
are of the types ExprLiteralNode
ExprBinopNode
ExprUnopNode
MArrayIter
MergeExpr
ApplyExpr
ApplyExprBin
ConvolveExpr
Like all parse tree elements, this class implements the iterator interface. It forwards all iterator calls to the operation or operand it wraps.
typedef A::value_type ltl::ExprNode< A, N >::value_type |
the result data type of the parse tree node
anonymous enum |
The number of ltl::IndexIter index iterators in all the parse tree below this node.
Enumerator | |
---|---|
numIndexIter |
anonymous enum |
anonymous enum |
|
inherited |
|
inline |
Constructor.
|
inline |
Move all iterators in the parse tree below us forward. Slowest, but works for all expressions.
|
inline |
compute and return the value of the subexpression in the parse tree below us.
|
inline |
Move all iterators in the parse tree below us forward. Used in unrolling/combining the expression evaluation loops when possible.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Compute and return the value of the subexpression in the parse tree below us. Used in unrolling/combining the expression evaluation loops when possible.
|
inline |
|
inline |
|
inline |
Compute and return the value of the subexpression in the parse tree below us at an offset in dimension 1, 2, and/or 3. Used for evaluating convolutions
|
inline |
|
inline |
|
inline |
|
inline |
Return the width of the lower/upper boundary in dimension dim
to be left unevaluated. Zero in most cases except for convolutions, which do require padding of the half-width of the kernel.
|
inline |
|
inline |
Storage geometry.
|
inline |
true if the innermost stride is unity
|
inline |
true if we are conformable with another shape
|
inline |
Reset the iterators in the parse tree below us.
Referenced by ltl::kappa_sigma_average(), and ltl::variance().
|
inline |
Return one of the shape
objects from the parse tree.
Referenced by ltl::kappa_sigma_average().
|
inline |
Return an ExprIter
.
Referenced by ltl::MArray< T, N >::operator<<().
|
inline |
Return an end ExprIter
.
|
inlineinherited |
|
inlineinherited |