ltl::ExprUnopNode< A, Op, N > Class Template Reference
[MArray Expression Template Internals]

Unary operation node in the expression parse tree. More...

Inherits ltl::_et_parse_base.

List of all members.

Public Types

Public Member Functions


Detailed Description

template<class A, class Op, int N>
class ltl::ExprUnopNode< A, Op, N >

Unary operation node in the expression parse tree.

This class represents a unary operation in the parse tree of an expression. It captures the operrand of the operation (of type ExprNode<>) and the operation itself, 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 operand, and when dereferenced, evaluates the operation passing the operand as the parameter.


Member Typedef Documentation

template<class A, class Op, int N>
typedef Op::value_type ltl::ExprUnopNode< A, Op, N >::value_type

the result data type is the value_type of the operation


Member Enumeration Documentation

template<class A, class Op, int N>
anonymous enum

The number of dimensions.

Enumerator:
dims 

template<class A, class Op, int N>
anonymous enum

The number of ltl::IndexIter index iterators in the operand.

Enumerator:
numIndexIter 

template<class A, class Op, int N>
anonymous enum

Vectorizable if the operand is vectorizable and if the the operation is vectorizable.

Enumerator:
isVectorizable 


Constructor & Destructor Documentation

template<class A, class Op, int N>
ltl::ExprUnopNode< A, Op, N >::ExprUnopNode ( const A &  a  )  [inline]

Constructor.


Member Function Documentation

template<class A, class Op, int N>
void ltl::ExprUnopNode< A, Op, N >::operator++ (  )  [inline]

Implement the iterator interface forwarding all operations to the operand.

template<class A, class Op, int N>
void ltl::ExprUnopNode< A, Op, N >::advance (  )  [inline]

template<class A, class Op, int N>
void ltl::ExprUnopNode< A, Op, N >::advanceN ( const int  i  )  [inline]

template<class A, class Op, int N>
void ltl::ExprUnopNode< A, Op, N >::advanceN ( const int  i,
const int  dim 
) [inline]

template<class A, class Op, int N>
void ltl::ExprUnopNode< A, Op, N >::advanceWithStride1 (  )  [inline]

template<class A, class Op, int N>
void ltl::ExprUnopNode< A, Op, N >::advanceDim (  )  [inline]

template<class A, class Op, int N>
void ltl::ExprUnopNode< A, Op, N >::advanceDim ( const int  cutDim  )  [inline]

template<class A, class Op, int N>
value_type ltl::ExprUnopNode< A, Op, N >::operator * (  )  const [inline]

Evaluate by passing the values of the operand to the operation.

template<class A, class Op, int N>
value_type ltl::ExprUnopNode< A, Op, N >::readWithoutStride ( const int  i  )  const [inline]

template<class A, class Op, int N>
value_type ltl::ExprUnopNode< A, Op, N >::readWithStride ( const int  i  )  const [inline]

template<class A, class Op, int N>
value_type ltl::ExprUnopNode< A, Op, N >::readWithStride ( const int  i,
const int  dim 
) const [inline]

template<class A, class Op, int N>
bool ltl::ExprUnopNode< A, Op, N >::isStorageContiguous (  )  const [inline]

template<class A, class Op, int N>
bool ltl::ExprUnopNode< A, Op, N >::isStride1 (  )  const [inline]

template<class A, class Op, int N>
bool ltl::ExprUnopNode< A, Op, N >::isConformable ( const Shape< N > &  other  )  const [inline]

template<class A, class Op, int N>
void ltl::ExprUnopNode< A, Op, N >::reset (  )  [inline]

template<class A, class Op, int N>
const Shape<N>* ltl::ExprUnopNode< A, Op, N >::shape (  )  const [inline]

Return a shape object from the operand parse tree.


Generated on Wed Mar 11 17:44:36 2009 for LTL by  doxygen 1.5.3