aboutsummaryrefslogtreecommitdiffhomepage
path: root/tvmet-1.7.1/include/tvmet/UnaryFunctionals.h
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2007-06-05 08:44:53 +0000
committerGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2007-06-05 08:44:53 +0000
commit6fe6a81839a7f881d810ccea5253e3d1928b53ca (patch)
tree8429c0b78e633c49acd2b47bbc5238f2c9ae2531 /tvmet-1.7.1/include/tvmet/UnaryFunctionals.h
parente3a45173b50f698591071fdd38e511bd5a8d2ea8 (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.h247
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