LTL
2.0.x
|
Binary operation node in the expression parse tree. More...
Inherits ltl::LTLIterator.
Public Types | |
typedef Op::value_type | value_type |
the result data type is the value_type of the operation More... | |
enum | { dims =N } |
The number of dimensions. More... | |
enum | { numIndexIter = A::numIndexIter + B::numIndexIter } |
The number of ltl::IndexIter index iterators in the LHS and the RHS. More... | |
enum | { numConvolution = A::numConvolution + B::numConvolution } |
The number of convolution operations. More... | |
enum | { isVectorizable = A::isVectorizable * B::isVectorizable * Op::isVectorizable } |
Vectorizable if the LHS and RHS are vectorizable and if the the operation is vectorizable. More... | |
Public Member Functions | |
ExprBinopNode (const A &a, const B &b) | |
Constructor. More... | |
bool | isStorageContiguous () const |
bool | isStride1 () const |
bool | isConformable (const Shape< N > &other) const |
void | reset () |
const Shape< N > * | shape () const |
Return a shape object from the parse tree. More... | |
void | operator++ () |
Implement the iterator interface forwarding all operations to both operands. More... | |
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 | operator* () const |
Evaluate by passing the values of the LHS and RHS to the operation. More... | |
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 |
Binary operation node in the expression parse tree.
This class represents a binary operation in the parse tree of an expression. It captures the LHS and the RHS of the operation (both of type ExprNode<>
) and the operation itself, which which is a functor that encapsulates the operation for the element type of the arrays/expressions involved.
Like all parse tree elements, this class implements the iterator interface. It forwards all iterator movements to the LHS and the RHS, and when dereferenced, evaluates the operation passing the LHS and RHS as parameters.
See the documentation of ExprNode for an anatomy of the iterator interface.
typedef Op::value_type ltl::ExprBinopNode< A, B, Op, N >::value_type |
the result data type is the value_type
of the operation
anonymous enum |
anonymous enum |
The number of ltl::IndexIter index iterators in the LHS and the RHS.
Enumerator | |
---|---|
numIndexIter |
anonymous enum |
anonymous enum |
|
inline |
Constructor.
|
inline |
Implement the iterator interface forwarding all operations to both operands.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Evaluate by passing the values of the LHS and RHS to the operation.
|
inline |
|
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.
References ltl::min().
|
inline |
References ltl::max().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Return a shape
object from the parse tree.
References ltl::_expr_getshape().