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

include/tvmet/BinaryFunctionals.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_assign< T1, T2 >
 Binary operator for assign operations. More...
class  tvmet::Fcnl_add_eq< T1, T2 >
class  tvmet::Fcnl_sub_eq< T1, T2 >
class  tvmet::Fcnl_mul_eq< T1, T2 >
class  tvmet::Fcnl_div_eq< T1, T2 >
class  tvmet::Fcnl_mod_eq< T1, T2 >
class  tvmet::Fcnl_xor_eq< T1, T2 >
class  tvmet::Fcnl_and_eq< T1, T2 >
class  tvmet::Fcnl_or_eq< T1, T2 >
class  tvmet::Fcnl_shl_eq< T1, T2 >
class  tvmet::Fcnl_shr_eq< T1, T2 >
class  tvmet::Fcnl_add< T1, T2 >
class  tvmet::Fcnl_sub< T1, T2 >
class  tvmet::Fcnl_mul< T1, T2 >
class  tvmet::Fcnl_div< T1, T2 >
class  tvmet::Fcnl_mod< T1, T2 >
class  tvmet::Fcnl_bitxor< T1, T2 >
class  tvmet::Fcnl_bitand< T1, T2 >
class  tvmet::Fcnl_bitor< T1, T2 >
class  tvmet::Fcnl_shl< T1, T2 >
class  tvmet::Fcnl_shr< T1, T2 >
class  tvmet::Fcnl_greater< T1, T2 >
class  tvmet::Fcnl_less< T1, T2 >
class  tvmet::Fcnl_greater_eq< T1, T2 >
class  tvmet::Fcnl_less_eq< T1, T2 >
class  tvmet::Fcnl_eq< T1, T2 >
class  tvmet::Fcnl_not_eq< T1, T2 >
class  tvmet::Fcnl_and< T1, T2 >
class  tvmet::Fcnl_or< T1, T2 >
class  tvmet::Fcnl_atan2< T1, T2 >
class  tvmet::Fcnl_fmod< T1, T2 >
class  tvmet::Fcnl_pow< T1, T2 >
class  tvmet::Fcnl_drem< T1, T2 >
class  tvmet::Fcnl_hypot< T1, T2 >
class  tvmet::Fcnl_jn< T1, T2 >
class  tvmet::Fcnl_yn< T1, T2 >
class  tvmet::Fcnl_polar< T1, T2 >
 Functional for polar. More...
struct  tvmet::Fcnl_polar< T, T >
class  tvmet::Fcnl_swap< T1, T2 >
 Binary operator for swapping values using temporaries. More...

Defines

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


Define Documentation

#define TVMET_IMPLEMENT_MACRO ( NAME   ) 

Value:

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

#define TVMET_IMPLEMENT_MACRO ( NAME   ) 

Value:

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

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

Value:

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

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

Value:

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

#define TVMET_IMPLEMENT_MACRO ( NAME,
OP   ) 

Value:

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


Author: