aimstil  5.0.5
TExpr.h File Reference

This file contains all the material a library user should need to use template expressions. More...

#include <algorithm>
#include <functional>
#include "til/til_common.h"
#include "til/templateTools.h"
#include "til/TExprBasicFunctors.h"
#include "til/TExprConcatenation.h"
#include "til/TExprPlaceHolders.h"
#include "til/TExprMacros.h"
#include "til/TExprOperators.h"
#include "til/TExprFunctions.h"
Include dependency graph for TExpr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  til::expr::TExprConstant< T >
 A template expression class for constant values. More...
 
class  til::expr::TExpr< Expr >
 A wrapper class of a template expression. More...
 
class  til::expr::TExprValue< N, T >
 Represent a constant in template expression. More...
 
struct  til::expr::TExprValue< N, T >::TypeStruct< Iterator1, Iterator2, Iterator3 >
 
class  til::expr::TExprLValue< T >
 A template expression class for left-values. More...
 
class  til::expr::TExprFunctorHelper< TFunctor >
 

Namespaces

 til
 Belongs to package Box Do not include directly, include til/Box.h instead.
 
 til::expr
 namespace for template expressions.
 
 til::detail
 Multiply an image with another object.
 

Macros

#define TIL_DEFINE_TEXPR_ARITHMETIC_OPERATOR(name, functor)
 
#define TIL_DEFINE_TEXPR_ARITHMETIC_OPERATOR_EXPR(name, functor)
 
#define TIL_DEFINE_TEXPR_ARITHMETIC_OPERATOR_VALUE(name, functor)
 

Functions

template<typename Functor , typename TIterator >
void til::floop (Functor &functor, TIterator iIm)
 
template<typename Functor , typename TIterator >
void til::floop (Functor functor, TIterator iIm)
 
template<typename Functor , typename TIterator >
void til::floop2 (TIterator iIm)
 
template<typename Expr , typename TIterator1 >
void til::loop (expr::TExpr< Expr > &expr, TIterator1 iIm1)
 
template<typename Expr , typename TIterator1 >
void til::loop (expr::TExpr< Expr > expr, TIterator1 iIm1)
 
template<typename Expr , typename TIterator >
void til::detail::loop_c (expr::TExpr< Expr > expr, TIterator start, const TIterator &end)
 
template<typename Expr , typename TContainer >
void til::detail::loop_x (expr::TExpr< Expr > expr, TContainer &c)
 
template<typename Expr , typename TIterator1 , typename TIterator2 , typename TIterator3 >
void til::detail::loop_xxx (expr::TExpr< Expr > expr, TIterator1 start1, const TIterator1 end1, TIterator2 start2, TIterator3 start3)
 
template<typename Expr , typename TContainer1 , typename TContainer2 , typename TContainer3 >
void til::detail::loop_xxx (expr::TExpr< Expr > expr, TContainer1 &c1, TContainer2 &c2, TContainer3 &c3)
 
template<typename Expr , typename TIterator1 , typename TIterator2 >
void til::detail::loop_xx (expr::TExpr< Expr > expr, TIterator1 start1, const TIterator1 end1, TIterator2 start2)
 
template<typename Expr , typename TContainer1 , typename TContainer2 >
void til::detail::loop_xx (expr::TExpr< Expr > expr, TContainer1 &c1, TContainer2 &c2)
 
template<int N, typename Expr , typename TIterator1 , typename TIterator2 >
void til::depth_loop (expr::TExpr< Expr > expr, TIterator1 begin1, TIterator1 end1, TIterator2 begin2)
 
template<int N, typename Expr , typename TContainer1 , typename TContainer2 >
void til::depth_loop (expr::TExpr< Expr > expr, TContainer1 &c1, TContainer2 &c2)
 
template<typename Functor , typename TIterator >
void til::loopboost (Functor &functor, TIterator iIm)
 
template<typename Expr , typename TIterator1 >
void til::loop2 (expr::TExpr< Expr > &expr, TIterator1 iIm1)
 
template<typename Expr , typename TIterator1 >
void til::loop2 (expr::TExpr< Expr > expr, TIterator1 iIm1)
 
template<typename Expr , typename TIterator1 , typename TIterator2 >
enable_if_c< is_ImageIterator< TIterator1 >::value &&is_ImageIterator< TIterator2 >::value, expr::TExpr< Expr > >::type til::loop (expr::TExpr< Expr > expr, TIterator1 iIm1, TIterator2 iIm2)
 
template<typename TFunctor , typename TRange >
void til::loop_r (TFunctor f, TRange r)
 
template<typename Expr , typename TIterator1 , typename TIterator2 , typename TIterator3 >
enable_if_c< is_ImageIterator< TIterator1 >::value &&is_ImageIterator< TIterator2 >::value &&is_ImageIterator< TIterator3 >::value, expr::TExpr< Expr > >::type til::loop (expr::TExpr< Expr > expr, TIterator1 iIm1, TIterator2 iIm2, TIterator3 iIm3)
 

Variables

const TExpr< expr::FirstArgument > til::expr::_1 = TExpr<FirstArgument>()
 Placeholder for the first argument. More...
 
const TExpr< expr::SecondArgument > til::expr::_2 = TExpr<SecondArgument>()
 Placeholder for the second argument. More...
 
const TExpr< expr::ThirdArgument > til::expr::_3 = TExpr<ThirdArgument>()
 Placeholder for the third argument. More...
 

Detailed Description

This file contains all the material a library user should need to use template expressions.

This mainly comprises placeholders (_1, _2, _3) and the loop functions

Definition in file TExpr.h.

Macro Definition Documentation

◆ TIL_DEFINE_TEXPR_ARITHMETIC_OPERATOR

#define TIL_DEFINE_TEXPR_ARITHMETIC_OPERATOR (   name,
  functor 
)
Value:
TIL_DEFINE_TEXPR_ARITHMETIC_OPERATOR_VALUE(name, functor) \
#define TIL_DEFINE_TEXPR_ARITHMETIC_OPERATOR_EXPR(name, functor)
Definition: TExpr.h:103

Definition at line 98 of file TExpr.h.

Referenced by til::expr::TExpr< Expr >::operator()().

◆ TIL_DEFINE_TEXPR_ARITHMETIC_OPERATOR_EXPR

#define TIL_DEFINE_TEXPR_ARITHMETIC_OPERATOR_EXPR (   name,
  functor 
)
Value:
template < typename Expr2 > \
TExpr<TExprBinaryOperator_NoRes<Expr, Expr2, functor> > \
name (const TExpr<Expr2> &e) const \
{ \
typedef TExprBinaryOperator_NoRes< Expr, Expr2, functor > TExprRet; \
return TExpr<TExprRet>(TExprRet(this->getExpr(), e.getExpr(), functor ())); \
} \

Definition at line 103 of file TExpr.h.

◆ TIL_DEFINE_TEXPR_ARITHMETIC_OPERATOR_VALUE

#define TIL_DEFINE_TEXPR_ARITHMETIC_OPERATOR_VALUE (   name,
  functor 
)
Value:
template < typename T > \
TExpr<TExprBinaryOperator_NoRes<Expr, TExprConstant<T>, functor> > \
name (const T & value) const \
{ \
typedef TExprBinaryOperator_NoRes< Expr, TExprConstant<T>, functor > TExprRet; \
return TExpr<TExprRet>(TExprRet(this->getExpr(), TExprConstant<T>(value), functor ())); \
} \

Definition at line 113 of file TExpr.h.