diff options
author | Benoit Jacob <jacob.benoit.1@gmail.com> | 2007-06-05 08:44:53 +0000 |
---|---|---|
committer | Benoit Jacob <jacob.benoit.1@gmail.com> | 2007-06-05 08:44:53 +0000 |
commit | 6fe6a81839a7f881d810ccea5253e3d1928b53ca (patch) | |
tree | 8429c0b78e633c49acd2b47bbc5238f2c9ae2531 /tvmet-1.7.1/include/tvmet/UnaryFunctionals.h | |
parent | e3a45173b50f698591071fdd38e511bd5a8d2ea8 (diff) |
Fix enough stuff, and remove enough dead stuff, to make a simple test program compile
Diffstat (limited to 'tvmet-1.7.1/include/tvmet/UnaryFunctionals.h')
-rw-r--r-- | tvmet-1.7.1/include/tvmet/UnaryFunctionals.h | 247 |
1 files changed, 1 insertions, 246 deletions
diff --git a/tvmet-1.7.1/include/tvmet/UnaryFunctionals.h b/tvmet-1.7.1/include/tvmet/UnaryFunctionals.h index fa3176496..4772cc34a 100644 --- a/tvmet-1.7.1/include/tvmet/UnaryFunctionals.h +++ b/tvmet-1.7.1/include/tvmet/UnaryFunctionals.h @@ -26,27 +26,6 @@ namespace tvmet { - -/** - * \class Fcnl_not UnaryFunctionals.h "tvmet/UnaryFunctionals.h" - * \brief unary functional for logical not. - */ -template <class T> -struct Fcnl_not : public UnaryFunctional { - static inline - bool apply_on(T rhs) { - return !rhs; - } - - static - void print_xpr(std::ostream& os, int l=0) { - os << IndentLevel(l) << "Fcnl_not<T=" - << typeid(T).name() << ">," - << std::endl; - } -}; - - /** \class Fcnl_compl UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ /** \class Fcnl_neg UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ #define TVMET_IMPLEMENT_MACRO(NAME, OP) \ @@ -67,206 +46,15 @@ struct Fcnl_##NAME : public UnaryFunctional { \ } \ }; -TVMET_IMPLEMENT_MACRO(compl, ~) TVMET_IMPLEMENT_MACRO(neg, -) #undef TVMET_IMPLEMENT_MACRO - -/** \class Fcnl_abs UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_ceil UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_floor UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_sin UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_cos UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_tan UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_sinh UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_cosh UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_tanh UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_asin UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_acos UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_atan UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_exp UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_log UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_log10 UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_sqrt UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -#define TVMET_IMPLEMENT_MACRO(NAME) \ -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, int l=0) { \ - os << IndentLevel(l) << "Fcnl_" << #NAME << "<T=" \ - << typeid(value_type).name() << ">," \ - << std::endl; \ - } \ -}; - -TVMET_IMPLEMENT_MACRO(abs) // specialized later, see below -TVMET_IMPLEMENT_MACRO(ceil) -TVMET_IMPLEMENT_MACRO(floor) -TVMET_IMPLEMENT_MACRO(sin) -TVMET_IMPLEMENT_MACRO(cos) -TVMET_IMPLEMENT_MACRO(tan) -TVMET_IMPLEMENT_MACRO(sinh) -TVMET_IMPLEMENT_MACRO(cosh) -TVMET_IMPLEMENT_MACRO(tanh) -TVMET_IMPLEMENT_MACRO(asin) -TVMET_IMPLEMENT_MACRO(acos) -TVMET_IMPLEMENT_MACRO(atan) -TVMET_IMPLEMENT_MACRO(exp) -TVMET_IMPLEMENT_MACRO(log) -TVMET_IMPLEMENT_MACRO(log10) -TVMET_IMPLEMENT_MACRO(sqrt) - -#undef TVMET_IMPLEMENT_MACRO - - -/** \class Fcnl_cbrt UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_rint UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -#define TVMET_IMPLEMENT_MACRO(NAME) \ -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, int l=0) { \ - os << IndentLevel(l) << "Fcnl_" << #NAME << "<T=" \ - << typeid(value_type).name() << ">," \ - << std::endl; \ - } \ -}; - -TVMET_IMPLEMENT_MACRO(cbrt) -TVMET_IMPLEMENT_MACRO(rint) - -#undef TVMET_IMPLEMENT_MACRO - - -#if defined(TVMET_HAVE_IEEE_MATH) - -/** \class Fcnl_asinh UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_acosh UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_atanh UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_expm1 UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_log1p UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_erf UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_erfc UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_j0 UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_j1 UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_y0 UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_y1 UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_lgamma UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -#define TVMET_IMPLEMENT_MACRO(NAME) \ -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, int l=0) { \ - os << IndentLevel(l) << "Fcnl_" << #NAME << "<T=" \ - << typeid(value_type).name() << ">," \ - << std::endl; \ - } \ -}; - -TVMET_IMPLEMENT_MACRO(asinh) -TVMET_IMPLEMENT_MACRO(acosh) -TVMET_IMPLEMENT_MACRO(atanh) -TVMET_IMPLEMENT_MACRO(expm1) -TVMET_IMPLEMENT_MACRO(log1p) -TVMET_IMPLEMENT_MACRO(erf) -TVMET_IMPLEMENT_MACRO(erfc) -TVMET_IMPLEMENT_MACRO(j0) -TVMET_IMPLEMENT_MACRO(j1) -TVMET_IMPLEMENT_MACRO(y0) -TVMET_IMPLEMENT_MACRO(y1) -TVMET_IMPLEMENT_MACRO(lgamma) - -#undef TVMET_IMPLEMENT_MACRO - -#endif // defined(TVMET_HAVE_IEEE_MATH) - - -/** \class Fcnl_abs<long int> UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_abs<long long int> UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_abs<float> UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_abs<double> UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_abs<long double> UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -#define TVMET_IMPLEMENT_MACRO(NAME, POD) \ -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, int l=0) { \ - os << IndentLevel(l) << "Fcnl_" << #NAME << "<T=" \ - << typeid(value_type).name() << ">," \ - << std::endl; \ - } \ -}; - -TVMET_IMPLEMENT_MACRO(labs, long int) - -#if defined(TVMET_HAVE_LONG_LONG) -TVMET_IMPLEMENT_MACRO(labs, long long int) -#endif - -TVMET_IMPLEMENT_MACRO(fabs, float) -TVMET_IMPLEMENT_MACRO(fabs, double) - -#if defined(TVMET_HAVE_LONG_DOUBLE) -TVMET_IMPLEMENT_MACRO(fabs, long double) -#endif - -#undef TVMET_IMPLEMENT_MACRO - - /* * complex support */ -#if defined(TVMET_HAVE_COMPLEX) -/** - * \class Fcnl_abs< std::complex<T> > UnaryFunctionals.h "tvmet/UnaryFunctionals.h" - */ -template <class T> -struct Fcnl_abs< std::complex<T> > : public UnaryFunctional { - typedef T value_type; - - static inline - value_type apply_on(const std::complex<T>& rhs) { - return std::abs(rhs); - } - - static - void print_xpr(std::ostream& os, int l=0) { - os << IndentLevel(l) << "Fcnl_abs<T=" - << typeid(std::complex<T>).name() << ">," - << std::endl; - } -}; +#if defined(TVMET_HAVE_COMPLEX) /** * \class Fcnl_conj< std::complex<T> > UnaryFunctionals.h "tvmet/UnaryFunctionals.h" @@ -296,8 +84,6 @@ struct Fcnl_conj< std::complex<T> > : public UnaryFunctional { /** \class Fcnl_real< std::complex<T> > UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ /** \class Fcnl_imag< std::complex<T> > UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_arg< std::complex<T> > UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_norm< std::complex<T> > UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ #define TVMET_IMPLEMENT_MACRO(NAME) \ template <class T> struct Fcnl_##NAME; \ template <class T> \ @@ -319,42 +105,11 @@ struct Fcnl_##NAME< std::complex<T> > : public UnaryFunctional { \ TVMET_IMPLEMENT_MACRO(real) TVMET_IMPLEMENT_MACRO(imag) -TVMET_IMPLEMENT_MACRO(arg) -TVMET_IMPLEMENT_MACRO(norm) #undef TVMET_IMPLEMENT_MACRO #endif // defined(TVMET_HAVE_COMPLEX) - -/** \class Fcnl_isnan UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_isinf UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -/** \class Fcnl_finite UnaryFunctionals.h "tvmet/UnaryFunctionals.h" */ -#define TVMET_IMPLEMENT_MACRO(NAME, POD) \ -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, int l=0) { \ - os << IndentLevel(l) << "Fcnl_" << #NAME << "<T=" \ - << typeid(POD).name() << ">," \ - << std::endl; \ - } \ -}; - -TVMET_IMPLEMENT_MACRO(isnan, int) -TVMET_IMPLEMENT_MACRO(isinf, int) -TVMET_IMPLEMENT_MACRO(finite, int) - -#undef TVMET_IMPLEMENT_MACRO - - } // namespace tvmet #endif // TVMET_UNARY_FUNCTIONAL_H |