SourceForge Logo Tiny Vector Matrix library using Expression Templates Sourceforge Project Page

include/tvmet/UnaryFunctionals.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  tvmet

Classes

class  tvmet::Fcnl_compl< T >
class  tvmet::Fcnl_neg< T >
class  tvmet::Fcnl_not< T >
class  tvmet::Fcnl_abs< T >
 UnaryFunctionals.h "tvmet/UnaryFunctionals.h". More...
class  tvmet::Fcnl_ceil< T >
class  tvmet::Fcnl_floor< T >
class  tvmet::Fcnl_sin< T >
class  tvmet::Fcnl_cos< T >
class  tvmet::Fcnl_tan< T >
class  tvmet::Fcnl_sinh< T >
class  tvmet::Fcnl_cosh< T >
class  tvmet::Fcnl_tanh< T >
class  tvmet::Fcnl_asin< T >
class  tvmet::Fcnl_acos< T >
class  tvmet::Fcnl_atan< T >
class  tvmet::Fcnl_exp< T >
class  tvmet::Fcnl_log< T >
class  tvmet::Fcnl_log10< T >
class  tvmet::Fcnl_sqrt< T >
class  tvmet::Fcnl_cbrt< T >
class  tvmet::Fcnl_rint< T >
class  tvmet::Fcnl_asinh< T >
class  tvmet::Fcnl_acosh< T >
class  tvmet::Fcnl_atanh< T >
class  tvmet::Fcnl_expm1< T >
class  tvmet::Fcnl_log1p< T >
class  tvmet::Fcnl_erf< T >
class  tvmet::Fcnl_erfc< T >
class  tvmet::Fcnl_j0< T >
class  tvmet::Fcnl_j1< T >
class  tvmet::Fcnl_y0< T >
class  tvmet::Fcnl_y1< T >
class  tvmet::Fcnl_lgamma< T >
struct  tvmet::Fcnl_labs< long int >
struct  tvmet::Fcnl_fabs< float >
struct  tvmet::Fcnl_fabs< double >
struct  tvmet::Fcnl_fabs< long double >
struct  tvmet::Fcnl_abs< std::complex< T > >
class  tvmet::Fcnl_conj< T >
 > UnaryFunctionals.h "tvmet/UnaryFunctionals.h" Functional for conj. More...
struct  tvmet::Fcnl_conj< std::complex< T > >
struct  tvmet::Fcnl_real< std::complex< T > >
struct  tvmet::Fcnl_imag< std::complex< T > >
struct  tvmet::Fcnl_arg< std::complex< T > >
struct  tvmet::Fcnl_norm< std::complex< T > >
class  tvmet::Fcnl_isnan< T >
class  tvmet::Fcnl_isinf< T >
class  tvmet::Fcnl_finite< T >

Defines

#define TVMET_IMPLEMENT_MACRO(NAME, OP)
#define TVMET_IMPLEMENT_MACRO(NAME)
#define TVMET_IMPLEMENT_MACRO(NAME)
#define TVMET_IMPLEMENT_MACRO(NAME)
#define TVMET_IMPLEMENT_MACRO(NAME, POD)
#define TVMET_IMPLEMENT_MACRO(NAME)
#define TVMET_IMPLEMENT_MACRO(NAME, POD)


Define Documentation

#define TVMET_IMPLEMENT_MACRO ( NAME,
POD   ) 

Value:

template <class T>              \
struct Fcnl_##NAME : public UnaryFunctional {       \
  typedef T           value_type; \
                  \
  static inline               \
  POD apply_on(T rhs) {             \
    return TVMET_GLOBAL_SCOPE(NAME)(rhs);       \
  }                 \
                    \
  static                \
  void print_xpr(std::ostream& os, std::size_t l=0) {     \
    os << IndentLevel(l) << "Fcnl_" << #NAME << "<T="     \
       << typeid(POD).name() << ">,"          \
       << std::endl;              \
  }                 \
};

#define TVMET_IMPLEMENT_MACRO ( NAME   ) 

Value:

template <class T> struct Fcnl_##NAME;          \
template <class T>              \
struct Fcnl_##NAME< std::complex<T> > : public UnaryFunctional {  \
  typedef T           value_type; \
                  \
  static inline               \
  value_type apply_on(const std::complex<T>& rhs) {     \
    return TVMET_STD_SCOPE(NAME)(rhs);          \
  }                 \
                    \
  static                \
  void print_xpr(std::ostream& os, std::size_t l=0) {     \
    os << IndentLevel(l) << "Fcnl_" << #NAME << "<T="     \
       << typeid(std::complex<T>).name() << ">,"      \
       << std::endl;              \
  }                 \
};

#define TVMET_IMPLEMENT_MACRO ( NAME,
POD   ) 

Value:

template <class T> struct Fcnl_##NAME;          \
template <>               \
struct Fcnl_##NAME< POD > : public UnaryFunctional {      \
  typedef POD           value_type; \
                  \
  static inline               \
  value_type apply_on(value_type rhs) {         \
    return TVMET_STD_SCOPE(NAME)(rhs);          \
  }                 \
                    \
  static                \
  void print_xpr(std::ostream& os, std::size_t l=0) {     \
    os << IndentLevel(l) << "Fcnl_" << #NAME << "<T="     \
       << typeid(value_type).name() << ">,"       \
       << std::endl;              \
  }                 \
};

#define TVMET_IMPLEMENT_MACRO ( NAME   ) 

Value:

template <class T>              \
struct Fcnl_##NAME : public UnaryFunctional {       \
  typedef T           value_type; \
                  \
  static inline               \
  value_type apply_on(value_type rhs) {         \
    return TVMET_GLOBAL_SCOPE(NAME)(rhs);       \
  }                 \
                    \
  static                \
  void print_xpr(std::ostream& os, std::size_t l=0) {     \
    os << IndentLevel(l) << "Fcnl_" << #NAME << "<T="     \
       << typeid(value_type).name() << ">,"       \
       << std::endl;              \
  }                 \
};

#define TVMET_IMPLEMENT_MACRO ( NAME   ) 

Value:

template <class T>              \
struct Fcnl_##NAME : public UnaryFunctional {       \
  typedef T           value_type; \
                  \
  static inline               \
  value_type apply_on(value_type rhs) {         \
    return TVMET_GLOBAL_SCOPE(NAME)(rhs);       \
  }                 \
                  \
 static                 \
 void print_xpr(std::ostream& os, std::size_t l=0) {      \
    os << IndentLevel(l) << "Fcnl_" << #NAME << "<T="     \
       << typeid(value_type).name() << ">,"       \
       << std::endl;              \
  }                 \
};

#define TVMET_IMPLEMENT_MACRO ( NAME   ) 

Value:

template <class T>              \
struct Fcnl_##NAME : public UnaryFunctional {       \
  typedef T           value_type; \
                    \
  static inline               \
  value_type apply_on(value_type rhs) {         \
    return TVMET_STD_SCOPE(NAME)(rhs);          \
  }                 \
                    \
 static                 \
 void print_xpr(std::ostream& os, std::size_t l=0) {      \
    os << IndentLevel(l) << "Fcnl_" << #NAME << "<T="     \
       << typeid(value_type).name() << ">,"       \
       << std::endl;              \
  }                 \
};

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

Value:

template <class T>              \
struct Fcnl_##NAME : public UnaryFunctional {       \
  typedef T           value_type; \
                  \
  static inline               \
  value_type apply_on(value_type rhs) {         \
    return OP rhs;              \
  }                 \
                    \
  static                \
  void print_xpr(std::ostream& os, std::size_t l=0) {     \
    os << IndentLevel(l) << "Fcnl_" << #NAME << "<T="     \
       << typeid(T).name() << ">,"          \
       << std::endl;              \
  }                 \
};


Author: