remove long long, long double, unsigned, short, char, bool types.

Keep only int, float, double, complex<T>.
This commit is contained in:
Benoit Jacob 2007-06-18 05:59:19 +00:00
parent b155789aa7
commit 152e09a14d
21 changed files with 0 additions and 1283 deletions

View File

@ -1,25 +0,0 @@
INCLUDE(CheckCXXSourceCompiles)
MACRO (CHECK_LONG_DOUBLE _RESULT)
SET(_CHECK_LONG_DOUBLE_SOURCE_CODE "
#include <cmath>
int main(int argc, char *argv[])
{
long double ld = static_cast<long double>(1);
sqrt(ld);
cos(ld);
sin(ld);
exp(ld);
log(ld);
fabs(ld);
return 0;
}
")
CHECK_CXX_SOURCE_COMPILES("${_CHECK_LONG_DOUBLE_SOURCE_CODE}" ${_RESULT})
ENDMACRO (CHECK_LONG_DOUBLE)

View File

@ -1,18 +0,0 @@
INCLUDE(CheckCXXSourceCompiles)
MACRO (CHECK_LONG_LONG _RESULT)
SET(_CHECK_LONG_LONG_SOURCE_CODE "
int main(int argc, char *argv[])
{
long long ll = static_cast<long long>(0);
long long int lli = static_cast<long long int>(0);
return 0;
}
")
CHECK_CXX_SOURCE_COMPILES("${_CHECK_LONG_LONG_SOURCE_CODE}" ${_RESULT})
ENDMACRO (CHECK_LONG_LONG)

View File

@ -4,8 +4,6 @@ INCLUDE (CheckComplexMath1)
INCLUDE (CheckComplexMath2) INCLUDE (CheckComplexMath2)
INCLUDE (CheckIeeeMath) INCLUDE (CheckIeeeMath)
INCLUDE (CheckSysvMath) INCLUDE (CheckSysvMath)
INCLUDE (CheckLongDouble)
INCLUDE (CheckLongLong)
INCLUDE (CheckRestrictKeyword) INCLUDE (CheckRestrictKeyword)
INCLUDE (CheckAlwaysInline) INCLUDE (CheckAlwaysInline)
@ -18,8 +16,6 @@ CHECK_COMPLEX_MATH1 (TVMET_HAVE_COMPLEX_MATH1)
CHECK_COMPLEX_MATH2 (TVMET_HAVE_COMPLEX_MATH2) CHECK_COMPLEX_MATH2 (TVMET_HAVE_COMPLEX_MATH2)
CHECK_IEEE_MATH (TVMET_HAVE_IEEE_MATH) CHECK_IEEE_MATH (TVMET_HAVE_IEEE_MATH)
CHECK_SYSV_MATH (TVMET_HAVE_SYSV_MATH) CHECK_SYSV_MATH (TVMET_HAVE_SYSV_MATH)
CHECK_LONG_DOUBLE (TVMET_HAVE_LONG_DOUBLE)
CHECK_LONG_DOUBLE (TVMET_HAVE_LONG_LONG)
CHECK_RESTRICT_KEYWORD (TVMET_RESTRICT_KEYWORD) CHECK_RESTRICT_KEYWORD (TVMET_RESTRICT_KEYWORD)
CHECK_ALWAYS_INLINE (TVMET_ALWAYS_INLINE) CHECK_ALWAYS_INLINE (TVMET_ALWAYS_INLINE)

View File

@ -109,16 +109,6 @@ TVMET_DECLARE_MACRO(jn, int)
TVMET_DECLARE_MACRO(yn, int) TVMET_DECLARE_MACRO(yn, int)
TVMET_DECLARE_MACRO(pow, int) TVMET_DECLARE_MACRO(pow, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(atan2, long long int)
TVMET_DECLARE_MACRO(drem, long long int)
TVMET_DECLARE_MACRO(fmod, long long int)
TVMET_DECLARE_MACRO(hypot, long long int)
TVMET_DECLARE_MACRO(jn, long long int)
TVMET_DECLARE_MACRO(yn, long long int)
TVMET_DECLARE_MACRO(pow, long long int)
#endif // defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(atan2, float) TVMET_DECLARE_MACRO(atan2, float)
TVMET_DECLARE_MACRO(drem, float) TVMET_DECLARE_MACRO(drem, float)
TVMET_DECLARE_MACRO(fmod, float) TVMET_DECLARE_MACRO(fmod, float)
@ -135,16 +125,6 @@ TVMET_DECLARE_MACRO(jn, double)
TVMET_DECLARE_MACRO(yn, double) TVMET_DECLARE_MACRO(yn, double)
TVMET_DECLARE_MACRO(pow, double) TVMET_DECLARE_MACRO(pow, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_DECLARE_MACRO(atan2, long double)
TVMET_DECLARE_MACRO(drem, long double)
TVMET_DECLARE_MACRO(fmod, long double)
TVMET_DECLARE_MACRO(hypot, long double)
TVMET_DECLARE_MACRO(jn, long double)
TVMET_DECLARE_MACRO(yn, long double)
TVMET_DECLARE_MACRO(pow, long double)
#endif // defined(TVMET_HAVE_LONG_DOUBLE)
#undef TVMET_DECLARE_MACRO #undef TVMET_DECLARE_MACRO
@ -348,16 +328,6 @@ TVMET_IMPLEMENT_MACRO(jn, int)
TVMET_IMPLEMENT_MACRO(yn, int) TVMET_IMPLEMENT_MACRO(yn, int)
TVMET_IMPLEMENT_MACRO(pow, int) TVMET_IMPLEMENT_MACRO(pow, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(atan2, long long int)
TVMET_IMPLEMENT_MACRO(drem, long long int)
TVMET_IMPLEMENT_MACRO(fmod, long long int)
TVMET_IMPLEMENT_MACRO(hypot, long long int)
TVMET_IMPLEMENT_MACRO(jn, long long int)
TVMET_IMPLEMENT_MACRO(yn, long long int)
TVMET_IMPLEMENT_MACRO(pow, long long int)
#endif // defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(atan2, float) TVMET_IMPLEMENT_MACRO(atan2, float)
TVMET_IMPLEMENT_MACRO(drem, float) TVMET_IMPLEMENT_MACRO(drem, float)
TVMET_IMPLEMENT_MACRO(fmod, float) TVMET_IMPLEMENT_MACRO(fmod, float)
@ -374,16 +344,6 @@ TVMET_IMPLEMENT_MACRO(jn, double)
TVMET_IMPLEMENT_MACRO(yn, double) TVMET_IMPLEMENT_MACRO(yn, double)
TVMET_IMPLEMENT_MACRO(pow, double) TVMET_IMPLEMENT_MACRO(pow, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_IMPLEMENT_MACRO(atan2, long double)
TVMET_IMPLEMENT_MACRO(drem, long double)
TVMET_IMPLEMENT_MACRO(fmod, long double)
TVMET_IMPLEMENT_MACRO(hypot, long double)
TVMET_IMPLEMENT_MACRO(jn, long double)
TVMET_IMPLEMENT_MACRO(yn, long double)
TVMET_IMPLEMENT_MACRO(pow, long double)
#endif // defined(TVMET_HAVE_LONG_DOUBLE)
#undef TVMET_IMPLEMENT_MACRO #undef TVMET_IMPLEMENT_MACRO

View File

@ -269,17 +269,9 @@ eval(const XprMatrix<E1, Rows, Cols>& e1, const XprMatrix<E2, Rows, Cols>& e2, P
TVMET_IMPLEMENT_MACRO(int) TVMET_IMPLEMENT_MACRO(int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(long long int)
#endif
TVMET_IMPLEMENT_MACRO(float) TVMET_IMPLEMENT_MACRO(float)
TVMET_IMPLEMENT_MACRO(double) TVMET_IMPLEMENT_MACRO(double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_IMPLEMENT_MACRO(long double)
#endif
#undef TVMET_IMPLEMENT_MACRO #undef TVMET_IMPLEMENT_MACRO

View File

@ -130,13 +130,6 @@ TVMET_DECLARE_MACRO(sub, int)
TVMET_DECLARE_MACRO(mul, int) TVMET_DECLARE_MACRO(mul, int)
TVMET_DECLARE_MACRO(div, int) TVMET_DECLARE_MACRO(div, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(add, long long int)
TVMET_DECLARE_MACRO(sub, long long int)
TVMET_DECLARE_MACRO(mul, long long int)
TVMET_DECLARE_MACRO(div, long long int)
#endif
TVMET_DECLARE_MACRO(add, float) TVMET_DECLARE_MACRO(add, float)
TVMET_DECLARE_MACRO(sub, float) TVMET_DECLARE_MACRO(sub, float)
TVMET_DECLARE_MACRO(mul, float) TVMET_DECLARE_MACRO(mul, float)
@ -147,13 +140,6 @@ TVMET_DECLARE_MACRO(sub, double)
TVMET_DECLARE_MACRO(mul, double) TVMET_DECLARE_MACRO(mul, double)
TVMET_DECLARE_MACRO(div, double) TVMET_DECLARE_MACRO(div, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_DECLARE_MACRO(add, long double)
TVMET_DECLARE_MACRO(sub, long double)
TVMET_DECLARE_MACRO(mul, long double)
TVMET_DECLARE_MACRO(div, long double)
#endif
#undef TVMET_DECLARE_MACRO #undef TVMET_DECLARE_MACRO
@ -601,13 +587,6 @@ TVMET_IMPLEMENT_MACRO(sub, int)
TVMET_IMPLEMENT_MACRO(mul, int) TVMET_IMPLEMENT_MACRO(mul, int)
TVMET_IMPLEMENT_MACRO(div, int) TVMET_IMPLEMENT_MACRO(div, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(add, long long int)
TVMET_IMPLEMENT_MACRO(sub, long long int)
TVMET_IMPLEMENT_MACRO(mul, long long int)
TVMET_IMPLEMENT_MACRO(div, long long int)
#endif
TVMET_IMPLEMENT_MACRO(add, float) TVMET_IMPLEMENT_MACRO(add, float)
TVMET_IMPLEMENT_MACRO(sub, float) TVMET_IMPLEMENT_MACRO(sub, float)
TVMET_IMPLEMENT_MACRO(mul, float) TVMET_IMPLEMENT_MACRO(mul, float)
@ -618,13 +597,6 @@ TVMET_IMPLEMENT_MACRO(sub, double)
TVMET_IMPLEMENT_MACRO(mul, double) TVMET_IMPLEMENT_MACRO(mul, double)
TVMET_IMPLEMENT_MACRO(div, double) TVMET_IMPLEMENT_MACRO(div, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_IMPLEMENT_MACRO(add, long double)
TVMET_IMPLEMENT_MACRO(sub, long double)
TVMET_IMPLEMENT_MACRO(mul, long double)
TVMET_IMPLEMENT_MACRO(div, long double)
#endif
#undef TVMET_IMPLEMENT_MACRO #undef TVMET_IMPLEMENT_MACRO

View File

@ -162,13 +162,6 @@ TVMET_DECLARE_MACRO(sub, -, int)
TVMET_DECLARE_MACRO(mul, *, int) TVMET_DECLARE_MACRO(mul, *, int)
TVMET_DECLARE_MACRO(div, /, int) TVMET_DECLARE_MACRO(div, /, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(add, +, long long int)
TVMET_DECLARE_MACRO(sub, -, long long int)
TVMET_DECLARE_MACRO(mul, *, long long int)
TVMET_DECLARE_MACRO(div, /, long long int)
#endif // defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(add, +, float) TVMET_DECLARE_MACRO(add, +, float)
TVMET_DECLARE_MACRO(sub, -, float) TVMET_DECLARE_MACRO(sub, -, float)
TVMET_DECLARE_MACRO(mul, *, float) TVMET_DECLARE_MACRO(mul, *, float)
@ -179,13 +172,6 @@ TVMET_DECLARE_MACRO(sub, -, double)
TVMET_DECLARE_MACRO(mul, *, double) TVMET_DECLARE_MACRO(mul, *, double)
TVMET_DECLARE_MACRO(div, /, double) TVMET_DECLARE_MACRO(div, /, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_DECLARE_MACRO(add, +, long double)
TVMET_DECLARE_MACRO(sub, -, long double)
TVMET_DECLARE_MACRO(mul, *, long double)
TVMET_DECLARE_MACRO(div, /, long double)
#endif // defined(TVMET_HAVE_LONG_DOUBLE)
#undef TVMET_DECLARE_MACRO #undef TVMET_DECLARE_MACRO
@ -496,13 +482,6 @@ TVMET_IMPLEMENT_MACRO(sub, -, int)
TVMET_IMPLEMENT_MACRO(mul, *, int) TVMET_IMPLEMENT_MACRO(mul, *, int)
TVMET_IMPLEMENT_MACRO(div, /, int) TVMET_IMPLEMENT_MACRO(div, /, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(add, +, long long int)
TVMET_IMPLEMENT_MACRO(sub, -, long long int)
TVMET_IMPLEMENT_MACRO(mul, *, long long int)
TVMET_IMPLEMENT_MACRO(div, /, long long int)
#endif // defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(add, +, float) TVMET_IMPLEMENT_MACRO(add, +, float)
TVMET_IMPLEMENT_MACRO(sub, -, float) TVMET_IMPLEMENT_MACRO(sub, -, float)
TVMET_IMPLEMENT_MACRO(mul, *, float) TVMET_IMPLEMENT_MACRO(mul, *, float)
@ -513,13 +492,6 @@ TVMET_IMPLEMENT_MACRO(sub, -, double)
TVMET_IMPLEMENT_MACRO(mul, *, double) TVMET_IMPLEMENT_MACRO(mul, *, double)
TVMET_IMPLEMENT_MACRO(div, /, double) TVMET_IMPLEMENT_MACRO(div, /, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_IMPLEMENT_MACRO(add, +, long double)
TVMET_IMPLEMENT_MACRO(sub, -, long double)
TVMET_IMPLEMENT_MACRO(mul, *, long double)
TVMET_IMPLEMENT_MACRO(div, /, long double)
#endif // defined(TVMET_HAVE_LONG_DOUBLE)
#undef TVMET_IMPLEMENT_MACRO #undef TVMET_IMPLEMENT_MACRO

View File

@ -170,183 +170,6 @@ struct NumericTraits<char> {
}; };
/**
* \class NumericTraits<unsigned char> NumericTraits.h "tvmet/NumericTraits.h"
* \brief Traits specialized for unsigned char.
*
* \note Normally it doesn't make sense to call <tt>conj</tt>
* for an unsigned type! An unary minus operator
* applied to unsigned type will result unsigned. Therefore
* this function is missing here.
*/
template<>
struct NumericTraits<unsigned char> {
typedef unsigned char value_type;
typedef value_type base_type;
typedef unsigned long sum_type;
typedef int diff_type;
typedef float float_type;
typedef int signed_type;
typedef NumericTraits<value_type> traits_type;
typedef value_type argument_type;
static inline
base_type real(argument_type x) { return x; }
static inline
base_type imag(argument_type x) { TVMET_UNUSED(x); return 0; }
static inline
base_type abs(argument_type x) { return std::abs(x); }
static inline
value_type sqrt(argument_type x) {
return static_cast<value_type>(std::sqrt(static_cast<float_type>(x)));
}
static inline
base_type norm_1(argument_type x) { return traits_type::abs(x); }
static inline
base_type norm_2(argument_type x) { return traits_type::abs(x); }
static inline
base_type norm_inf(argument_type x) { return traits_type::abs(x); }
static inline
bool equals(argument_type lhs, argument_type rhs) { return lhs == rhs; }
enum { is_complex = false };
/** Complexity on operations. */
enum {
ops_plus = 1, /**< Complexity on plus/minus ops. */
ops_muls = 1 /**< Complexity on multiplications. */
};
};
/**
* \class NumericTraits<short int> NumericTraits.h "tvmet/NumericTraits.h"
* \brief Traits specialized for short int.
*/
template<>
struct NumericTraits<short int> {
typedef short int value_type;
typedef value_type base_type;
#if defined(TVMET_HAVE_LONG_LONG)
typedef long long sum_type;
#else
typedef long sum_type;
#endif
typedef int diff_type;
typedef float float_type;
typedef short int signed_type;
typedef NumericTraits<value_type> traits_type;
typedef value_type argument_type;
static inline
base_type real(argument_type x) { return x; }
static inline
base_type imag(argument_type x) { TVMET_UNUSED(x); return 0; }
static inline
value_type conj(argument_type x) { return x; }
static inline
base_type abs(argument_type x) { return std::abs(x); }
static inline
value_type sqrt(argument_type x) {
return static_cast<value_type>(std::sqrt(static_cast<float_type>(x)));
}
static inline
base_type norm_1(argument_type x) { return traits_type::abs(x); }
static inline
base_type norm_2(argument_type x) { return traits_type::abs(x); }
static inline
base_type norm_inf(argument_type x) { return traits_type::abs(x); }
static inline
bool equals(argument_type lhs, argument_type rhs) { return lhs == rhs; }
enum { is_complex = false };
/** Complexity on operations. */
enum {
ops_plus = 1, /**< Complexity on plus/minus ops. */
ops_muls = 1 /**< Complexity on multiplications. */
};
};
/**
* \class NumericTraits<short unsigned int> NumericTraits.h "tvmet/NumericTraits.h"
* \brief Traits specialized for short unsigned int.
*
* \note Normally it doesn't make sense to call <tt>conj</tt>
* for an unsigned type! An unary minus operator
* applied to unsigned type will result unsigned. Therefore
* this function is missing here.
*/
template<>
struct NumericTraits<short unsigned int> {
typedef short unsigned int value_type;
typedef value_type base_type;
#if defined(TVMET_HAVE_LONG_LONG)
typedef unsigned long long sum_type;
#else
typedef unsigned long sum_type;
#endif
typedef int diff_type;
typedef float float_type;
typedef int signed_type;
typedef NumericTraits<value_type> traits_type;
typedef value_type argument_type;
static inline
base_type real(argument_type x) { return x; }
static inline
base_type imag(argument_type x) { TVMET_UNUSED(x); return 0; }
static inline
base_type abs(argument_type x) { return std::abs(x); }
static inline
value_type sqrt(argument_type x) {
return static_cast<value_type>(std::sqrt(static_cast<float_type>(x)));
}
static inline
base_type norm_1(argument_type x) { return traits_type::abs(x); }
static inline
base_type norm_2(argument_type x) { return traits_type::abs(x); }
static inline
base_type norm_inf(argument_type x) { return traits_type::abs(x); }
static inline
bool equals(argument_type lhs, argument_type rhs) { return lhs == rhs; }
enum { is_complex = false };
/** Complexity on operations. */
enum {
ops_plus = 1, /**< Complexity on plus/minus ops. */
ops_muls = 1 /**< Complexity on multiplications. */
};
};
/** /**
* \class NumericTraits<int> NumericTraits.h "tvmet/NumericTraits.h" * \class NumericTraits<int> NumericTraits.h "tvmet/NumericTraits.h"
* \brief Traits specialized for int. * \brief Traits specialized for int.
@ -355,11 +178,7 @@ template<>
struct NumericTraits<int> { struct NumericTraits<int> {
typedef int value_type; typedef int value_type;
typedef value_type base_type; typedef value_type base_type;
#if defined(TVMET_HAVE_LONG_LONG)
typedef long long sum_type;
#else
typedef long sum_type; typedef long sum_type;
#endif
typedef int diff_type; typedef int diff_type;
typedef double float_type; typedef double float_type;
typedef int signed_type; typedef int signed_type;
@ -406,187 +225,6 @@ struct NumericTraits<int> {
}; };
/**
* \class NumericTraits<unsigned int> NumericTraits.h "tvmet/NumericTraits.h"
* \brief Traits specialized for unsigned int.
*
* \note Normally it doesn't make sense to call <tt>conj</tt>
* for an unsigned type! An unary minus operator
* applied to unsigned type will result unsigned. Therefore
* this function is missing here.
*/
template<>
struct NumericTraits<unsigned int> {
typedef unsigned int value_type;
typedef value_type base_type;
#if defined(TVMET_HAVE_LONG_LONG)
typedef unsigned long long sum_type;
#else
typedef unsigned long sum_type;
#endif
typedef int diff_type;
typedef double float_type;
typedef long signed_type;
typedef NumericTraits<value_type> traits_type;
typedef value_type argument_type;
static inline
base_type real(argument_type x) { return x; }
static inline
base_type imag(argument_type x) { TVMET_UNUSED(x); return 0; }
static inline
base_type abs(argument_type x) { return x; }
static inline
value_type sqrt(argument_type x) {
return static_cast<value_type>(std::sqrt(static_cast<float_type>(x)));
}
static inline
base_type norm_1(argument_type x) { return traits_type::abs(x); }
static inline
base_type norm_2(argument_type x) { return traits_type::abs(x); }
static inline
base_type norm_inf(argument_type x) { return traits_type::abs(x); }
static inline
bool equals(argument_type lhs, argument_type rhs) { return lhs == rhs; }
enum { is_complex = false };
/** Complexity on operations. */
enum {
ops_plus = 1, /**< Complexity on plus/minus ops. */
ops_muls = 1 /**< Complexity on multiplications. */
};
};
/**
* \class NumericTraits<long> NumericTraits.h "tvmet/NumericTraits.h"
* \brief Traits specialized for long.
*/
template<>
struct NumericTraits<long> {
typedef long value_type;
typedef value_type base_type;
#if defined(TVMET_HAVE_LONG_LONG)
typedef long long sum_type;
#else
typedef long sum_type;
#endif
typedef long diff_type;
typedef double float_type;
typedef long signed_type;
typedef NumericTraits<value_type> traits_type;
typedef value_type argument_type;
static inline
base_type real(argument_type x) { return x; }
static inline
base_type imag(argument_type x) { TVMET_UNUSED(x); return 0; }
static inline
value_type conj(argument_type x) { return x; }
static inline
base_type abs(argument_type x) { return std::abs(x); }
static inline
value_type sqrt(argument_type x) {
return static_cast<value_type>(std::sqrt(static_cast<float_type>(x)));
}
static inline
base_type norm_1(argument_type x) { return traits_type::abs(x); }
static inline
base_type norm_2(argument_type x) { return traits_type::abs(x); }
static inline
base_type norm_inf(argument_type x) { return traits_type::abs(x); }
static inline
bool equals(argument_type lhs, argument_type rhs) { return lhs == rhs; }
enum { is_complex = false };
/** Complexity on operations. */
enum {
ops_plus = 1, /**< Complexity on plus/minus ops. */
ops_muls = 1 /**< Complexity on multiplications. */
};
};
/**
* \class NumericTraits<unsigned long> NumericTraits.h "tvmet/NumericTraits.h"
* \brief Traits specialized for unsigned long.
*
* \note Normally it doesn't make sense to call <tt>conj</tt>
* for an unsigned type! An unary minus operator
* applied to unsigned type will result unsigned. Therefore
* this function is missing here.
*/
template<>
struct NumericTraits<unsigned long> {
typedef unsigned long value_type;
typedef value_type base_type;
#if defined(TVMET_HAVE_LONG_LONG)
typedef unsigned long long sum_type;
#else
typedef unsigned long sum_type;
#endif
typedef unsigned long diff_type;
typedef double float_type;
typedef long signed_type;
typedef NumericTraits<value_type> traits_type;
typedef value_type argument_type;
static inline
base_type real(argument_type x) { return x; }
static inline
base_type imag(argument_type x) { TVMET_UNUSED(x); return 0; }
static inline
base_type abs(argument_type x) { return x; }
static inline
value_type sqrt(argument_type x) {
return static_cast<value_type>(std::sqrt(static_cast<float_type>(x)));
}
static inline
base_type norm_1(argument_type x) { return traits_type::abs(x); }
static inline
base_type norm_2(argument_type x) { return traits_type::abs(x); }
static inline
base_type norm_inf(argument_type x) { return traits_type::abs(x); }
static inline
bool equals(argument_type lhs, argument_type rhs) { return lhs == rhs; }
enum { is_complex = false };
/** Complexity on operations. */
enum {
ops_plus = 1, /**< Complexity on plus/minus ops. */
ops_muls = 1 /**< Complexity on multiplications. */
};
};
/** /**
* \class NumericTraits<float> NumericTraits.h "tvmet/NumericTraits.h" * \class NumericTraits<float> NumericTraits.h "tvmet/NumericTraits.h"
* \brief Traits specialized for float. * \brief Traits specialized for float.
@ -657,11 +295,7 @@ template<>
struct NumericTraits<double> { struct NumericTraits<double> {
typedef double value_type; typedef double value_type;
typedef value_type base_type; typedef value_type base_type;
#if defined(TVMET_HAVE_LONG_DOUBLE)
typedef long double sum_type;
#else
typedef double sum_type; typedef double sum_type;
#endif
typedef double diff_type; typedef double diff_type;
typedef double float_type; typedef double float_type;
typedef double signed_type; typedef double signed_type;
@ -715,70 +349,6 @@ struct NumericTraits<double> {
}; };
#if defined(TVMET_HAVE_LONG_DOUBLE)
/**
* \class NumericTraits<long double> NumericTraits.h "tvmet/NumericTraits.h"
* \brief Traits specialized for long double.
*/
template<>
struct NumericTraits<long double> {
typedef long double value_type;
typedef value_type base_type;
typedef long double sum_type;
typedef long double diff_type;
typedef long double float_type;
typedef long double signed_type;
typedef NumericTraits<value_type> traits_type;
typedef value_type argument_type;
static inline
base_type real(argument_type x) { return x; }
static inline
base_type imag(argument_type x) { TVMET_UNUSED(x); return 0; }
static inline
value_type conj(argument_type x) { return x; }
static inline
base_type abs(argument_type x) { return std::abs(x); }
static inline
value_type sqrt(argument_type x) { return std::sqrt(x); }
static inline
base_type norm_1(argument_type x) { return traits_type::abs(x); }
static inline
base_type norm_2(argument_type x) { return traits_type::abs(x); }
static inline
base_type norm_inf(argument_type x) { return traits_type::abs(x); }
static inline
bool equals(argument_type lhs, argument_type rhs) {
static base_type sqrt_epsilon(
NumericTraits<base_type>::sqrt(
std::numeric_limits<base_type>::epsilon()));
return traits_type::norm_inf(lhs - rhs) < sqrt_epsilon *
std::max(std::max(traits_type::norm_inf(lhs),
traits_type::norm_inf(rhs)),
std::numeric_limits<base_type>::min());
}
enum { is_complex = false };
/** Complexity on operations. */
enum {
ops_plus = 1, /**< Complexity on plus/minus ops. */
ops_muls = 1 /**< Complexity on multiplications. */
};
};
#endif // TVMET_HAVE_LONG_DOUBLE
/* /*
* numeric traits for complex types * numeric traits for complex types
*/ */
@ -871,273 +441,6 @@ struct NumericTraits< std::complex<int> > {
}; };
/**
* \class NumericTraits< std::complex<unsigned int> > NumericTraits.h "tvmet/NumericTraits.h"
* \brief Traits specialized for std::complex<unsigned int>.
*
* \note Normally it doesn't make sense to call <tt>conj</tt>
* for an unsigned type! An unary minus operator
* applied to unsigned type will result unsigned. Therefore
* this function is missing here.
*/
template<>
struct NumericTraits< std::complex<unsigned int> > {
typedef unsigned int base_type;
typedef std::complex<unsigned int> value_type;
typedef std::complex<unsigned long> sum_type;
typedef std::complex<int> diff_type;
typedef std::complex<float> float_type;
typedef std::complex<int> signed_type;
typedef NumericTraits<value_type> traits_type;
typedef const value_type& argument_type;
static inline
base_type real(argument_type z) { return std::real(z); }
static inline
base_type imag(argument_type z) { return std::imag(z); }
static inline
base_type abs(argument_type z) {
base_type x = z.real();
base_type y = z.imag();
// XXX probably case of overrun; header complex uses scaling
return static_cast<base_type>(NumericTraits<base_type>::sqrt(x * x + y * y));
}
static /* inline */
value_type sqrt(argument_type z) {
// borrowed and adapted from header complex
base_type x = z.real();
base_type y = z.imag();
if(x == base_type()) {
base_type t = NumericTraits<base_type>::sqrt(
NumericTraits<base_type>::abs(y) / 2);
return value_type(t, t);
}
else {
base_type t = NumericTraits<base_type>::sqrt(
2 * (traits_type::abs(z)
+ NumericTraits<base_type>::abs(x)));
return value_type(t / 2, y / t);
}
}
static inline
base_type norm_1(argument_type z) {
return NumericTraits<base_type>::abs((traits_type::real(z)))
+ NumericTraits<base_type>::abs((traits_type::imag(z)));
}
static inline
base_type norm_2(argument_type z) { return traits_type::abs(z); }
static inline
base_type norm_inf(argument_type z) {
return std::max(NumericTraits<base_type>::abs(traits_type::real(z)),
NumericTraits<base_type>::abs(traits_type::imag(z)));
}
static inline
bool equals(argument_type lhs, argument_type rhs) {
return (traits_type::real(lhs) == traits_type::real(rhs))
&& (traits_type::imag(lhs) == traits_type::imag(rhs));
}
enum { is_complex = true };
/** Complexity on operations. */
enum {
ops_plus = 2, /**< Complexity on plus/minus ops. */
ops_muls = 6 /**< Complexity on multiplications. */
};
};
/**
* \class NumericTraits< std::complex<long> > NumericTraits.h "tvmet/NumericTraits.h"
* \brief Traits specialized for std::complex<long>.
*/
template<>
struct NumericTraits< std::complex<long> > {
typedef long base_type;
typedef std::complex<long> value_type;
#if defined(TVMET_HAVE_LONG_LONG)
typedef std::complex<long long> sum_type;
#else
typedef std::complex<long> sum_type;
#endif
typedef std::complex<int> diff_type;
typedef std::complex<float> float_type;
typedef std::complex<int> signed_type;
typedef NumericTraits<value_type> traits_type;
typedef const value_type& argument_type;
static inline
base_type real(argument_type z) { return std::real(z); }
static inline
base_type imag(argument_type z) { return std::imag(z); }
static inline
value_type conj(argument_type z) { return std::conj(z); }
static inline
base_type abs(argument_type z) {
base_type x = z.real();
base_type y = z.imag();
// XXX probably case of overrun; header complex uses scaling
return static_cast<base_type>(NumericTraits<base_type>::sqrt(x * x + y * y));
}
static /* inline */
value_type sqrt(argument_type z) {
// borrowed and adapted from header complex
base_type x = z.real();
base_type y = z.imag();
if(x == base_type()) {
base_type t = NumericTraits<base_type>::sqrt(
NumericTraits<base_type>::abs(y) / 2);
return value_type(t, y < base_type() ? -t : t);
}
else {
base_type t = NumericTraits<base_type>::sqrt(
2 * (traits_type::abs(z)
+ NumericTraits<base_type>::abs(x)));
base_type u = t / 2;
return x > base_type()
? value_type(u, y / t)
: value_type(NumericTraits<base_type>::abs(y) / t, y < base_type() ? -u : u);
}
}
static inline
base_type norm_1(argument_type z) {
return NumericTraits<base_type>::abs((traits_type::real(z)))
+ NumericTraits<base_type>::abs((traits_type::imag(z)));
}
static inline
base_type norm_2(argument_type z) { return traits_type::abs(z); }
static inline
base_type norm_inf(argument_type z) {
return std::max(NumericTraits<base_type>::abs(traits_type::real(z)),
NumericTraits<base_type>::abs(traits_type::imag(z)));
}
static inline
bool equals(argument_type lhs, argument_type rhs) {
return (traits_type::real(lhs) == traits_type::real(rhs))
&& (traits_type::imag(lhs) == traits_type::imag(rhs));
}
enum { is_complex = true };
/** Complexity on operations. */
enum {
ops_plus = 2, /**< Complexity on plus/minus ops. */
ops_muls = 6 /**< Complexity on multiplications. */
};
};
/**
* \class NumericTraits< std::complex<unsigned long> > NumericTraits.h "tvmet/NumericTraits.h"
* \brief Traits specialized for std::complex<unsigned long>.
*
* \note Normally it doesn't make sense to call <tt>conj</tt>
* for an unsigned type! An unary minus operator
* applied to unsigned type will result unsigned. Therefore
* this function is missing here.
*/
template<>
struct NumericTraits< std::complex<unsigned long> > {
typedef unsigned long base_type;
typedef std::complex<unsigned long> value_type;
#if defined(TVMET_HAVE_LONG_LONG)
typedef std::complex<unsigned long long> sum_type;
#else
typedef std::complex<unsigned long> sum_type;
#endif
typedef std::complex<long> diff_type;
typedef std::complex<float> float_type;
typedef std::complex<long> signed_type;
typedef NumericTraits<value_type> traits_type;
typedef const value_type& argument_type;
static inline
base_type real(argument_type z) { return std::real(z); }
static inline
base_type imag(argument_type z) { return std::imag(z); }
static inline
base_type abs(argument_type z) {
base_type x = z.real();
base_type y = z.imag();
// XXX probably case of overrun; header complex uses scaling
return static_cast<base_type>(NumericTraits<base_type>::sqrt(x * x + y * y));
}
static /* inline */
value_type sqrt(argument_type z) {
// borrowed and adapted from header complex
base_type x = z.real();
base_type y = z.imag();
if(x == base_type()) {
base_type t = NumericTraits<base_type>::sqrt(
NumericTraits<base_type>::abs(y) / 2);
return value_type(t, t);
}
else {
base_type t = NumericTraits<base_type>::sqrt(
2 * (traits_type::abs(z)
+ NumericTraits<base_type>::abs(x)));
return value_type(t / 2, y / t);
}
}
static inline
base_type norm_1(argument_type z) {
return NumericTraits<base_type>::abs((traits_type::real(z)))
+ NumericTraits<base_type>::abs((traits_type::imag(z)));
}
static inline
base_type norm_2(argument_type z) { return traits_type::abs(z); }
static inline
base_type norm_inf(argument_type z) {
return std::max(NumericTraits<base_type>::abs(traits_type::real(z)),
NumericTraits<base_type>::abs(traits_type::imag(z)));
}
static inline
bool equals(argument_type lhs, argument_type rhs) {
return (traits_type::real(lhs) == traits_type::real(rhs))
&& (traits_type::imag(lhs) == traits_type::imag(rhs));
}
enum { is_complex = true };
/** Complexity on operations.*/
enum {
ops_plus = 2, /**< Complexity on plus/minus ops. */
ops_muls = 6 /**< Complexity on multiplications. */
};
};
/** /**
* \class NumericTraits< std::complex<float> > NumericTraits.h "tvmet/NumericTraits.h" * \class NumericTraits< std::complex<float> > NumericTraits.h "tvmet/NumericTraits.h"
* \brief Traits specialized for std::complex<float>. * \brief Traits specialized for std::complex<float>.
@ -1214,11 +517,7 @@ template<>
struct NumericTraits< std::complex<double> > { struct NumericTraits< std::complex<double> > {
typedef double base_type; typedef double base_type;
typedef std::complex<double> value_type; typedef std::complex<double> value_type;
#if defined(TVMET_HAVE_LONG_DOUBLE)
typedef std::complex<long double> sum_type;
#else
typedef std::complex<double> sum_type; typedef std::complex<double> sum_type;
#endif
typedef std::complex<double> diff_type; typedef std::complex<double> diff_type;
typedef std::complex<double> float_type; typedef std::complex<double> float_type;
typedef std::complex<double> signed_type; typedef std::complex<double> signed_type;
@ -1278,76 +577,6 @@ struct NumericTraits< std::complex<double> > {
}; };
#if defined(TVMET_HAVE_LONG_DOUBLE)
/**
* \class NumericTraits< std::complex<long double> > NumericTraits.h "tvmet/NumericTraits.h"
* \brief Traits specialized for std::complex<double>.
*/
template<>
struct NumericTraits< std::complex<long double> > {
typedef long double base_type;
typedef std::complex<long double> value_type;
typedef std::complex<long double> sum_type;
typedef std::complex<long double> diff_type;
typedef std::complex<long double> float_type;
typedef std::complex<long double> signed_type;
typedef NumericTraits<value_type> traits_type;
typedef const value_type& argument_type;
static inline
base_type real(argument_type z) { return std::real(z); }
static inline
base_type imag(argument_type z) { return std::imag(z); }
static inline
value_type conj(argument_type z) { return std::conj(z); }
static inline
base_type abs(argument_type z) { return std::abs(z); }
static inline
value_type sqrt(argument_type z) { return std::sqrt(z); }
static inline
base_type norm_1(argument_type z) {
return NumericTraits<base_type>::abs((traits_type::real(z)))
+ NumericTraits<base_type>::abs((traits_type::imag(z)));
}
static inline
base_type norm_2(argument_type z) { return traits_type::abs(z); }
static inline
base_type norm_inf(argument_type z) {
return std::max(NumericTraits<base_type>::abs(traits_type::real(z)),
NumericTraits<base_type>::abs(traits_type::imag(z)));
}
static inline
bool equals(argument_type lhs, argument_type rhs) {
static base_type sqrt_epsilon(
NumericTraits<base_type>::sqrt(
std::numeric_limits<base_type>::epsilon()));
return traits_type::norm_inf(lhs - rhs) < sqrt_epsilon *
std::max(std::max(traits_type::norm_inf(lhs),
traits_type::norm_inf(rhs)),
std::numeric_limits<base_type>::min());
}
enum { is_complex = true };
/** Complexity on operations. */
enum {
ops_plus = 2, /**< Complexity on plus/minus ops. */
ops_muls = 6 /**< Complexity on multiplications. */
};
};
#endif // defined(TVMET_HAVE_LONG_DOUBLE)
#endif // defined(TVMET_HAVE_COMPLEX) #endif // defined(TVMET_HAVE_COMPLEX)

View File

@ -61,44 +61,16 @@ struct PrecisionTraits< T > { \
* pod types * pod types
*/ */
TVMET_PRECISION(int, 100) TVMET_PRECISION(int, 100)
TVMET_PRECISION(unsigned int, 200)
TVMET_PRECISION(long, 300)
TVMET_PRECISION(unsigned long, 400)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_PRECISION(long long, 500)
TVMET_PRECISION(unsigned long long, 600)
#endif // defined(TVMET_HAVE_LONG_LONG)
TVMET_PRECISION(float, 700) TVMET_PRECISION(float, 700)
TVMET_PRECISION(double, 800) TVMET_PRECISION(double, 800)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_PRECISION(long double, 900)
#endif // defined(TVMET_HAVE_LONG_DOUBLE)
/* /*
* complex types * complex types
*/ */
#if defined(TVMET_HAVE_COMPLEX) #if defined(TVMET_HAVE_COMPLEX)
TVMET_PRECISION(std::complex<int>, 1000) TVMET_PRECISION(std::complex<int>, 1000)
TVMET_PRECISION(std::complex<unsigned int>, 1100)
TVMET_PRECISION(std::complex<long>, 1200)
TVMET_PRECISION(std::complex<unsigned long>, 1300)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_PRECISION(std::complex<long long>, 1400)
TVMET_PRECISION(std::complex<unsigned long long>, 1500)
#endif // defined(TVMET_HAVE_LONG_LONG)
TVMET_PRECISION(std::complex<float>, 1600) TVMET_PRECISION(std::complex<float>, 1600)
TVMET_PRECISION(std::complex<double>, 1700) TVMET_PRECISION(std::complex<double>, 1700)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_PRECISION(std::complex<long double>, 1800)
#endif // defined(TVMET_HAVE_LONG_DOUBLE)
#endif // defined(TVMET_HAVE_COMPLEX) #endif // defined(TVMET_HAVE_COMPLEX)
@ -133,33 +105,6 @@ struct AutopromoteTraits {
typedef T value_type; typedef T value_type;
}; };
/*
* Defines a macro for specializing/defining
* the promotion traits. bool, char, unsigned char, short int, etc. will
* be autopromote to int, as in C and C++.
*/
#define TVMET_AUTOPROMOTE(T1,T2) \
template<> \
struct AutopromoteTraits<T1> { \
typedef T2 value_type; \
};
TVMET_AUTOPROMOTE(bool, int)
TVMET_AUTOPROMOTE(char, int)
TVMET_AUTOPROMOTE(unsigned char, int)
TVMET_AUTOPROMOTE(short int, int)
TVMET_AUTOPROMOTE(short unsigned int, unsigned int)
/** \class AutopromoteTraits<bool> TypePromotion.h "tvmet/TypePromotion.h" */
/** \class AutopromoteTraits<char> TypePromotion.h "tvmet/TypePromotion.h" */
/** \class AutopromoteTraits<unsigned char> TypePromotion.h "tvmet/TypePromotion.h" */
/** \class AutopromoteTraits<short int> TypePromotion.h "tvmet/TypePromotion.h" */
/** \class AutopromoteTraits<short unsigned int> TypePromotion.h "tvmet/TypePromotion.h" */
#undef TVMET_AUTOPROMOTE
/** /**
* \class promoteTo TypePromotion.h "tvmet/TypePromotion.h" * \class promoteTo TypePromotion.h "tvmet/TypePromotion.h"
* \brief Promote to T1. * \brief Promote to T1.

View File

@ -117,16 +117,6 @@ TVMET_DECLARE_MACRO(jn, int)
TVMET_DECLARE_MACRO(yn, int) TVMET_DECLARE_MACRO(yn, int)
TVMET_DECLARE_MACRO(pow, int) TVMET_DECLARE_MACRO(pow, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(atan2, long long int)
TVMET_DECLARE_MACRO(drem, long long int)
TVMET_DECLARE_MACRO(fmod, long long int)
TVMET_DECLARE_MACRO(hypot, long long int)
TVMET_DECLARE_MACRO(jn, long long int)
TVMET_DECLARE_MACRO(yn, long long int)
TVMET_DECLARE_MACRO(pow, long long int)
#endif // defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(atan2, float) TVMET_DECLARE_MACRO(atan2, float)
TVMET_DECLARE_MACRO(drem, float) TVMET_DECLARE_MACRO(drem, float)
TVMET_DECLARE_MACRO(fmod, float) TVMET_DECLARE_MACRO(fmod, float)
@ -143,16 +133,6 @@ TVMET_DECLARE_MACRO(jn, double)
TVMET_DECLARE_MACRO(yn, double) TVMET_DECLARE_MACRO(yn, double)
TVMET_DECLARE_MACRO(pow, double) TVMET_DECLARE_MACRO(pow, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_DECLARE_MACRO(atan2, long double)
TVMET_DECLARE_MACRO(drem, long double)
TVMET_DECLARE_MACRO(fmod, long double)
TVMET_DECLARE_MACRO(hypot, long double)
TVMET_DECLARE_MACRO(jn, long double)
TVMET_DECLARE_MACRO(yn, long double)
TVMET_DECLARE_MACRO(pow, long double)
#endif // defined(TVMET_HAVE_LONG_DOUBLE)
#undef TVMET_DECLARE_MACRO #undef TVMET_DECLARE_MACRO
@ -347,16 +327,6 @@ TVMET_IMPLEMENT_MACRO(jn, int)
TVMET_IMPLEMENT_MACRO(yn, int) TVMET_IMPLEMENT_MACRO(yn, int)
TVMET_IMPLEMENT_MACRO(pow, int) TVMET_IMPLEMENT_MACRO(pow, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(atan2, long long int)
TVMET_IMPLEMENT_MACRO(drem, long long int)
TVMET_IMPLEMENT_MACRO(fmod, long long int)
TVMET_IMPLEMENT_MACRO(hypot, long long int)
TVMET_IMPLEMENT_MACRO(jn, long long int)
TVMET_IMPLEMENT_MACRO(yn, long long int)
TVMET_IMPLEMENT_MACRO(pow, long long int)
#endif // defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(atan2, float) TVMET_IMPLEMENT_MACRO(atan2, float)
TVMET_IMPLEMENT_MACRO(drem, float) TVMET_IMPLEMENT_MACRO(drem, float)
TVMET_IMPLEMENT_MACRO(fmod, float) TVMET_IMPLEMENT_MACRO(fmod, float)
@ -373,16 +343,6 @@ TVMET_IMPLEMENT_MACRO(jn, double)
TVMET_IMPLEMENT_MACRO(yn, double) TVMET_IMPLEMENT_MACRO(yn, double)
TVMET_IMPLEMENT_MACRO(pow, double) TVMET_IMPLEMENT_MACRO(pow, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_IMPLEMENT_MACRO(atan2, long double)
TVMET_IMPLEMENT_MACRO(drem, long double)
TVMET_IMPLEMENT_MACRO(fmod, long double)
TVMET_IMPLEMENT_MACRO(hypot, long double)
TVMET_IMPLEMENT_MACRO(jn, long double)
TVMET_IMPLEMENT_MACRO(yn, long double)
TVMET_IMPLEMENT_MACRO(pow, long double)
#endif // defined(TVMET_HAVE_LONG_DOUBLE)
#undef TVMET_IMPLEMENT_MACRO #undef TVMET_IMPLEMENT_MACRO

View File

@ -265,17 +265,9 @@ eval(const XprVector<E1, Sz>& e1, const XprVector<E2, Sz>& e2, POD x3) { \
TVMET_IMPLEMENT_MACRO(int) TVMET_IMPLEMENT_MACRO(int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(long long int)
#endif // defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(float) TVMET_IMPLEMENT_MACRO(float)
TVMET_IMPLEMENT_MACRO(double) TVMET_IMPLEMENT_MACRO(double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_IMPLEMENT_MACRO(long double)
#endif // defined(TVMET_HAVE_LONG_DOUBLE)
#undef TVMET_IMPLEMENT_MACRO #undef TVMET_IMPLEMENT_MACRO

View File

@ -126,13 +126,6 @@ TVMET_DECLARE_MACRO(sub, int)
TVMET_DECLARE_MACRO(mul, int) TVMET_DECLARE_MACRO(mul, int)
TVMET_DECLARE_MACRO(div, int) TVMET_DECLARE_MACRO(div, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(add, long long int)
TVMET_DECLARE_MACRO(sub, long long int)
TVMET_DECLARE_MACRO(mul, long long int)
TVMET_DECLARE_MACRO(div, long long int)
#endif
TVMET_DECLARE_MACRO(add, float) TVMET_DECLARE_MACRO(add, float)
TVMET_DECLARE_MACRO(sub, float) TVMET_DECLARE_MACRO(sub, float)
TVMET_DECLARE_MACRO(mul, float) TVMET_DECLARE_MACRO(mul, float)
@ -143,13 +136,6 @@ TVMET_DECLARE_MACRO(sub, double)
TVMET_DECLARE_MACRO(mul, double) TVMET_DECLARE_MACRO(mul, double)
TVMET_DECLARE_MACRO(div, double) TVMET_DECLARE_MACRO(div, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_DECLARE_MACRO(add, long double)
TVMET_DECLARE_MACRO(sub, long double)
TVMET_DECLARE_MACRO(mul, long double)
TVMET_DECLARE_MACRO(div, long double)
#endif
#undef TVMET_DECLARE_MACRO #undef TVMET_DECLARE_MACRO
@ -431,13 +417,6 @@ TVMET_IMPLEMENT_MACRO(sub, int)
TVMET_IMPLEMENT_MACRO(mul, int) TVMET_IMPLEMENT_MACRO(mul, int)
TVMET_IMPLEMENT_MACRO(div, int) TVMET_IMPLEMENT_MACRO(div, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(add, long long int)
TVMET_IMPLEMENT_MACRO(sub, long long int)
TVMET_IMPLEMENT_MACRO(mul, long long int)
TVMET_IMPLEMENT_MACRO(div, long long int)
#endif
TVMET_IMPLEMENT_MACRO(add, float) TVMET_IMPLEMENT_MACRO(add, float)
TVMET_IMPLEMENT_MACRO(sub, float) TVMET_IMPLEMENT_MACRO(sub, float)
TVMET_IMPLEMENT_MACRO(mul, float) TVMET_IMPLEMENT_MACRO(mul, float)
@ -448,13 +427,6 @@ TVMET_IMPLEMENT_MACRO(sub, double)
TVMET_IMPLEMENT_MACRO(mul, double) TVMET_IMPLEMENT_MACRO(mul, double)
TVMET_IMPLEMENT_MACRO(div, double) TVMET_IMPLEMENT_MACRO(div, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_IMPLEMENT_MACRO(add, long double)
TVMET_IMPLEMENT_MACRO(sub, long double)
TVMET_IMPLEMENT_MACRO(mul, long double)
TVMET_IMPLEMENT_MACRO(div, long double)
#endif
#undef TVMET_IMPLEMENT_MACRO #undef TVMET_IMPLEMENT_MACRO

View File

@ -162,13 +162,6 @@ TVMET_DECLARE_MACRO(sub, -, int)
TVMET_DECLARE_MACRO(mul, *, int) TVMET_DECLARE_MACRO(mul, *, int)
TVMET_DECLARE_MACRO(div, /, int) TVMET_DECLARE_MACRO(div, /, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(add, +, long long int)
TVMET_DECLARE_MACRO(sub, -, long long int)
TVMET_DECLARE_MACRO(mul, *, long long int)
TVMET_DECLARE_MACRO(div, /, long long int)
#endif
TVMET_DECLARE_MACRO(add, +, float) TVMET_DECLARE_MACRO(add, +, float)
TVMET_DECLARE_MACRO(sub, -, float) TVMET_DECLARE_MACRO(sub, -, float)
TVMET_DECLARE_MACRO(mul, *, float) TVMET_DECLARE_MACRO(mul, *, float)
@ -179,13 +172,6 @@ TVMET_DECLARE_MACRO(sub, -, double)
TVMET_DECLARE_MACRO(mul, *, double) TVMET_DECLARE_MACRO(mul, *, double)
TVMET_DECLARE_MACRO(div, /, double) TVMET_DECLARE_MACRO(div, /, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_DECLARE_MACRO(add, +, long double)
TVMET_DECLARE_MACRO(sub, -, long double)
TVMET_DECLARE_MACRO(mul, *, long double)
TVMET_DECLARE_MACRO(div, /, long double)
#endif
#undef TVMET_DECLARE_MACRO #undef TVMET_DECLARE_MACRO
@ -408,13 +394,6 @@ TVMET_IMPLEMENT_MACRO(sub, -, int)
TVMET_IMPLEMENT_MACRO(mul, *, int) TVMET_IMPLEMENT_MACRO(mul, *, int)
TVMET_IMPLEMENT_MACRO(div, /, int) TVMET_IMPLEMENT_MACRO(div, /, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(add, +, long long int)
TVMET_IMPLEMENT_MACRO(sub, -, long long int)
TVMET_IMPLEMENT_MACRO(mul, *, long long int)
TVMET_IMPLEMENT_MACRO(div, /, long long int)
#endif
TVMET_IMPLEMENT_MACRO(add, +, float) TVMET_IMPLEMENT_MACRO(add, +, float)
TVMET_IMPLEMENT_MACRO(sub, -, float) TVMET_IMPLEMENT_MACRO(sub, -, float)
TVMET_IMPLEMENT_MACRO(mul, *, float) TVMET_IMPLEMENT_MACRO(mul, *, float)
@ -425,13 +404,6 @@ TVMET_IMPLEMENT_MACRO(sub, -, double)
TVMET_IMPLEMENT_MACRO(mul, *, double) TVMET_IMPLEMENT_MACRO(mul, *, double)
TVMET_IMPLEMENT_MACRO(div, /, double) TVMET_IMPLEMENT_MACRO(div, /, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_IMPLEMENT_MACRO(add, +, long double)
TVMET_IMPLEMENT_MACRO(sub, -, long double)
TVMET_IMPLEMENT_MACRO(mul, *, long double)
TVMET_IMPLEMENT_MACRO(div, /, long double)
#endif
#undef TVMET_IMPLEMENT_MACRO #undef TVMET_IMPLEMENT_MACRO

View File

@ -13,14 +13,6 @@
/* Define if the compiler supports IEEE math library */ /* Define if the compiler supports IEEE math library */
#cmakedefine TVMET_HAVE_IEEE_MATH #cmakedefine TVMET_HAVE_IEEE_MATH
/* Define to 1 if the long double type is supported and the
* standard math library provides math functions for this type
*/
#cmakedefine TVMET_HAVE_LONG_DOUBLE 1
/* Define if the compiler supports the long_long type */
#cmakedefine TVMET_HAVE_LONG_LONG
/* Define if the compiler supports SYSV math library */ /* Define if the compiler supports SYSV math library */
#cmakedefine TVMET_HAVE_SYSV_MATH #cmakedefine TVMET_HAVE_SYSV_MATH

View File

@ -85,16 +85,6 @@ TVMET_DECLARE_MACRO(jn, int)
TVMET_DECLARE_MACRO(yn, int) TVMET_DECLARE_MACRO(yn, int)
TVMET_DECLARE_MACRO(pow, int) TVMET_DECLARE_MACRO(pow, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(atan2, long long int)
TVMET_DECLARE_MACRO(drem, long long int)
TVMET_DECLARE_MACRO(fmod, long long int)
TVMET_DECLARE_MACRO(hypot, long long int)
TVMET_DECLARE_MACRO(jn, long long int)
TVMET_DECLARE_MACRO(yn,long long int)
TVMET_DECLARE_MACRO(pow, long long int)
#endif // defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(atan2, float) TVMET_DECLARE_MACRO(atan2, float)
TVMET_DECLARE_MACRO(drem, float) TVMET_DECLARE_MACRO(drem, float)
TVMET_DECLARE_MACRO(fmod, float) TVMET_DECLARE_MACRO(fmod, float)
@ -111,16 +101,6 @@ TVMET_DECLARE_MACRO(jn, double)
TVMET_DECLARE_MACRO(yn, double) TVMET_DECLARE_MACRO(yn, double)
TVMET_DECLARE_MACRO(pow, double) TVMET_DECLARE_MACRO(pow, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_DECLARE_MACRO(atan2, long double)
TVMET_DECLARE_MACRO(drem, long double)
TVMET_DECLARE_MACRO(fmod, long double)
TVMET_DECLARE_MACRO(hypot, long double)
TVMET_DECLARE_MACRO(jn, long double)
TVMET_DECLARE_MACRO(yn, long double)
TVMET_DECLARE_MACRO(pow, long double)
#endif // defined(TVMET_HAVE_LONG_DOUBLE)
#undef TVMET_DECLARE_MACRO #undef TVMET_DECLARE_MACRO
@ -230,16 +210,6 @@ TVMET_IMPLEMENT_MACRO(jn, int)
TVMET_IMPLEMENT_MACRO(yn, int) TVMET_IMPLEMENT_MACRO(yn, int)
TVMET_IMPLEMENT_MACRO(pow, int) TVMET_IMPLEMENT_MACRO(pow, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(atan2, long long int)
TVMET_IMPLEMENT_MACRO(drem, long long int)
TVMET_IMPLEMENT_MACRO(fmod, long long int)
TVMET_IMPLEMENT_MACRO(hypot, long long int)
TVMET_IMPLEMENT_MACRO(jn, long long int)
TVMET_IMPLEMENT_MACRO(yn,long long int)
TVMET_IMPLEMENT_MACRO(pow, long long int)
#endif // defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(atan2, float) TVMET_IMPLEMENT_MACRO(atan2, float)
TVMET_IMPLEMENT_MACRO(drem, float) TVMET_IMPLEMENT_MACRO(drem, float)
TVMET_IMPLEMENT_MACRO(fmod, float) TVMET_IMPLEMENT_MACRO(fmod, float)
@ -256,16 +226,6 @@ TVMET_IMPLEMENT_MACRO(jn, double)
TVMET_IMPLEMENT_MACRO(yn, double) TVMET_IMPLEMENT_MACRO(yn, double)
TVMET_IMPLEMENT_MACRO(pow, double) TVMET_IMPLEMENT_MACRO(pow, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_IMPLEMENT_MACRO(atan2, long double)
TVMET_IMPLEMENT_MACRO(drem, long double)
TVMET_IMPLEMENT_MACRO(fmod, long double)
TVMET_IMPLEMENT_MACRO(hypot, long double)
TVMET_IMPLEMENT_MACRO(jn, long double)
TVMET_IMPLEMENT_MACRO(yn, long double)
TVMET_IMPLEMENT_MACRO(pow, long double)
#endif // defined(TVMET_HAVE_LONG_DOUBLE)
#undef TVMET_IMPLEMENT_MACRO #undef TVMET_IMPLEMENT_MACRO

View File

@ -108,13 +108,6 @@ TVMET_DECLARE_MACRO(sub, int)
TVMET_DECLARE_MACRO(mul, int) TVMET_DECLARE_MACRO(mul, int)
TVMET_DECLARE_MACRO(div, int) TVMET_DECLARE_MACRO(div, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(add, long long int)
TVMET_DECLARE_MACRO(sub, long long int)
TVMET_DECLARE_MACRO(mul, long long int)
TVMET_DECLARE_MACRO(div, long long int)
#endif
TVMET_DECLARE_MACRO(add, float) TVMET_DECLARE_MACRO(add, float)
TVMET_DECLARE_MACRO(sub, float) TVMET_DECLARE_MACRO(sub, float)
TVMET_DECLARE_MACRO(mul, float) TVMET_DECLARE_MACRO(mul, float)
@ -125,13 +118,6 @@ TVMET_DECLARE_MACRO(sub, double)
TVMET_DECLARE_MACRO(mul, double) TVMET_DECLARE_MACRO(mul, double)
TVMET_DECLARE_MACRO(div, double) TVMET_DECLARE_MACRO(div, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_DECLARE_MACRO(add, long double)
TVMET_DECLARE_MACRO(sub, long double)
TVMET_DECLARE_MACRO(mul, long double)
TVMET_DECLARE_MACRO(div, long double)
#endif
#undef TVMET_DECLARE_MACRO #undef TVMET_DECLARE_MACRO
@ -403,13 +389,6 @@ TVMET_IMPLEMENT_MACRO(sub, int)
TVMET_IMPLEMENT_MACRO(mul, int) TVMET_IMPLEMENT_MACRO(mul, int)
TVMET_IMPLEMENT_MACRO(div, int) TVMET_IMPLEMENT_MACRO(div, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(add, long long int)
TVMET_IMPLEMENT_MACRO(sub, long long int)
TVMET_IMPLEMENT_MACRO(mul, long long int)
TVMET_IMPLEMENT_MACRO(div, long long int)
#endif
TVMET_IMPLEMENT_MACRO(add, float) TVMET_IMPLEMENT_MACRO(add, float)
TVMET_IMPLEMENT_MACRO(sub, float) TVMET_IMPLEMENT_MACRO(sub, float)
TVMET_IMPLEMENT_MACRO(mul, float) TVMET_IMPLEMENT_MACRO(mul, float)
@ -420,13 +399,6 @@ TVMET_IMPLEMENT_MACRO(sub, double)
TVMET_IMPLEMENT_MACRO(mul, double) TVMET_IMPLEMENT_MACRO(mul, double)
TVMET_IMPLEMENT_MACRO(div, double) TVMET_IMPLEMENT_MACRO(div, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_IMPLEMENT_MACRO(add, long double)
TVMET_IMPLEMENT_MACRO(sub, long double)
TVMET_IMPLEMENT_MACRO(mul, long double)
TVMET_IMPLEMENT_MACRO(div, long double)
#endif
#undef TVMET_IMPLEMENT_MACRO #undef TVMET_IMPLEMENT_MACRO

View File

@ -103,13 +103,6 @@ TVMET_DECLARE_MACRO(sub, -, int)
TVMET_DECLARE_MACRO(mul, *, int) TVMET_DECLARE_MACRO(mul, *, int)
TVMET_DECLARE_MACRO(div, /, int) TVMET_DECLARE_MACRO(div, /, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(add, +, long long int)
TVMET_DECLARE_MACRO(sub, -, long long int)
TVMET_DECLARE_MACRO(mul, *, long long int)
TVMET_DECLARE_MACRO(div, /, long long int)
#endif // defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(add, +, float) TVMET_DECLARE_MACRO(add, +, float)
TVMET_DECLARE_MACRO(sub, -, float) TVMET_DECLARE_MACRO(sub, -, float)
TVMET_DECLARE_MACRO(mul, *, float) TVMET_DECLARE_MACRO(mul, *, float)
@ -120,13 +113,6 @@ TVMET_DECLARE_MACRO(sub, -, double)
TVMET_DECLARE_MACRO(mul, *, double) TVMET_DECLARE_MACRO(mul, *, double)
TVMET_DECLARE_MACRO(div, /, double) TVMET_DECLARE_MACRO(div, /, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_DECLARE_MACRO(add, +, long double)
TVMET_DECLARE_MACRO(sub, -, long double)
TVMET_DECLARE_MACRO(mul, *, long double)
TVMET_DECLARE_MACRO(div, /, long double)
#endif // defined(TVMET_HAVE_LONG_DOUBLE)
#undef TVMET_DECLARE_MACRO #undef TVMET_DECLARE_MACRO
@ -330,13 +316,6 @@ TVMET_IMPLEMENT_MACRO(sub, -, int)
TVMET_IMPLEMENT_MACRO(mul, *, int) TVMET_IMPLEMENT_MACRO(mul, *, int)
TVMET_IMPLEMENT_MACRO(div, /, int) TVMET_IMPLEMENT_MACRO(div, /, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(add, +, long long int)
TVMET_IMPLEMENT_MACRO(sub, -, long long int)
TVMET_IMPLEMENT_MACRO(mul, *, long long int)
TVMET_IMPLEMENT_MACRO(div, /, long long int)
#endif // defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(add, +, float) TVMET_IMPLEMENT_MACRO(add, +, float)
TVMET_IMPLEMENT_MACRO(sub, -, float) TVMET_IMPLEMENT_MACRO(sub, -, float)
TVMET_IMPLEMENT_MACRO(mul, *, float) TVMET_IMPLEMENT_MACRO(mul, *, float)
@ -347,13 +326,6 @@ TVMET_IMPLEMENT_MACRO(sub, -, double)
TVMET_IMPLEMENT_MACRO(mul, *, double) TVMET_IMPLEMENT_MACRO(mul, *, double)
TVMET_IMPLEMENT_MACRO(div, /, double) TVMET_IMPLEMENT_MACRO(div, /, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_IMPLEMENT_MACRO(add, +, long double)
TVMET_IMPLEMENT_MACRO(sub, -, long double)
TVMET_IMPLEMENT_MACRO(mul, *, long double)
TVMET_IMPLEMENT_MACRO(div, /, long double)
#endif // defined(TVMET_HAVE_LONG_DOUBLE)
#undef TVMET_IMPLEMENT_MACRO #undef TVMET_IMPLEMENT_MACRO

View File

@ -88,16 +88,6 @@ TVMET_DECLARE_MACRO(jn, int)
TVMET_DECLARE_MACRO(yn, int) TVMET_DECLARE_MACRO(yn, int)
TVMET_DECLARE_MACRO(pow, int) TVMET_DECLARE_MACRO(pow, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(atan2, long long int)
TVMET_DECLARE_MACRO(drem, long long int)
TVMET_DECLARE_MACRO(fmod, long long int)
TVMET_DECLARE_MACRO(hypot, long long int)
TVMET_DECLARE_MACRO(jn, long long int)
TVMET_DECLARE_MACRO(yn, long long int)
TVMET_DECLARE_MACRO(pow, long long int)
#endif // defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(atan2, float) TVMET_DECLARE_MACRO(atan2, float)
TVMET_DECLARE_MACRO(drem, float) TVMET_DECLARE_MACRO(drem, float)
TVMET_DECLARE_MACRO(fmod, float) TVMET_DECLARE_MACRO(fmod, float)
@ -114,16 +104,6 @@ TVMET_DECLARE_MACRO(jn, double)
TVMET_DECLARE_MACRO(yn, double) TVMET_DECLARE_MACRO(yn, double)
TVMET_DECLARE_MACRO(pow, double) TVMET_DECLARE_MACRO(pow, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_DECLARE_MACRO(atan2, long double)
TVMET_DECLARE_MACRO(drem, long double)
TVMET_DECLARE_MACRO(fmod, long double)
TVMET_DECLARE_MACRO(hypot, long double)
TVMET_DECLARE_MACRO(jn, long double)
TVMET_DECLARE_MACRO(yn, long double)
TVMET_DECLARE_MACRO(pow, long double)
#endif // defined(TVMET_HAVE_LONG_DOUBLE)
#undef TVMET_DECLARE_MACRO #undef TVMET_DECLARE_MACRO
@ -233,16 +213,6 @@ TVMET_IMPLEMENT_MACRO(jn, int)
TVMET_IMPLEMENT_MACRO(yn, int) TVMET_IMPLEMENT_MACRO(yn, int)
TVMET_IMPLEMENT_MACRO(pow, int) TVMET_IMPLEMENT_MACRO(pow, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(atan2, long long int)
TVMET_IMPLEMENT_MACRO(drem, long long int)
TVMET_IMPLEMENT_MACRO(fmod, long long int)
TVMET_IMPLEMENT_MACRO(hypot, long long int)
TVMET_IMPLEMENT_MACRO(jn, long long int)
TVMET_IMPLEMENT_MACRO(yn, long long int)
TVMET_IMPLEMENT_MACRO(pow, long long int)
#endif // defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(atan2, float) TVMET_IMPLEMENT_MACRO(atan2, float)
TVMET_IMPLEMENT_MACRO(drem, float) TVMET_IMPLEMENT_MACRO(drem, float)
TVMET_IMPLEMENT_MACRO(fmod, float) TVMET_IMPLEMENT_MACRO(fmod, float)
@ -259,16 +229,6 @@ TVMET_IMPLEMENT_MACRO(jn, double)
TVMET_IMPLEMENT_MACRO(yn, double) TVMET_IMPLEMENT_MACRO(yn, double)
TVMET_IMPLEMENT_MACRO(pow, double) TVMET_IMPLEMENT_MACRO(pow, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_IMPLEMENT_MACRO(atan2, long double)
TVMET_IMPLEMENT_MACRO(drem, long double)
TVMET_IMPLEMENT_MACRO(fmod, long double)
TVMET_IMPLEMENT_MACRO(hypot, long double)
TVMET_IMPLEMENT_MACRO(jn, long double)
TVMET_IMPLEMENT_MACRO(yn, long double)
TVMET_IMPLEMENT_MACRO(pow, long double)
#endif // defined(TVMET_HAVE_LONG_DOUBLE)
#undef TVMET_IMPLEMENT_MACRO #undef TVMET_IMPLEMENT_MACRO

View File

@ -102,13 +102,6 @@ TVMET_DECLARE_MACRO(sub, int)
TVMET_DECLARE_MACRO(mul, int) TVMET_DECLARE_MACRO(mul, int)
TVMET_DECLARE_MACRO(div, int) TVMET_DECLARE_MACRO(div, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(add, long long int)
TVMET_DECLARE_MACRO(sub, long long int)
TVMET_DECLARE_MACRO(mul, long long int)
TVMET_DECLARE_MACRO(div, long long int)
#endif
TVMET_DECLARE_MACRO(add, float) TVMET_DECLARE_MACRO(add, float)
TVMET_DECLARE_MACRO(sub, float) TVMET_DECLARE_MACRO(sub, float)
TVMET_DECLARE_MACRO(mul, float) TVMET_DECLARE_MACRO(mul, float)
@ -119,13 +112,6 @@ TVMET_DECLARE_MACRO(sub, double)
TVMET_DECLARE_MACRO(mul, double) TVMET_DECLARE_MACRO(mul, double)
TVMET_DECLARE_MACRO(div, double) TVMET_DECLARE_MACRO(div, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_DECLARE_MACRO(add, long double)
TVMET_DECLARE_MACRO(sub, long double)
TVMET_DECLARE_MACRO(mul, long double)
TVMET_DECLARE_MACRO(div, long double)
#endif
#undef TVMET_DECLARE_MACRO #undef TVMET_DECLARE_MACRO
@ -344,13 +330,6 @@ TVMET_IMPLEMENT_MACRO(sub, int)
TVMET_IMPLEMENT_MACRO(mul, int) TVMET_IMPLEMENT_MACRO(mul, int)
TVMET_IMPLEMENT_MACRO(div, int) TVMET_IMPLEMENT_MACRO(div, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(add, long long int)
TVMET_IMPLEMENT_MACRO(sub, long long int)
TVMET_IMPLEMENT_MACRO(mul, long long int)
TVMET_IMPLEMENT_MACRO(div, long long int)
#endif
TVMET_IMPLEMENT_MACRO(add, float) TVMET_IMPLEMENT_MACRO(add, float)
TVMET_IMPLEMENT_MACRO(sub, float) TVMET_IMPLEMENT_MACRO(sub, float)
TVMET_IMPLEMENT_MACRO(mul, float) TVMET_IMPLEMENT_MACRO(mul, float)
@ -361,13 +340,6 @@ TVMET_IMPLEMENT_MACRO(sub, double)
TVMET_IMPLEMENT_MACRO(mul, double) TVMET_IMPLEMENT_MACRO(mul, double)
TVMET_IMPLEMENT_MACRO(div, double) TVMET_IMPLEMENT_MACRO(div, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_IMPLEMENT_MACRO(add, long double)
TVMET_IMPLEMENT_MACRO(sub, long double)
TVMET_IMPLEMENT_MACRO(mul, long double)
TVMET_IMPLEMENT_MACRO(div, long double)
#endif
#undef TVMET_IMPLEMENT_MACRO #undef TVMET_IMPLEMENT_MACRO

View File

@ -102,13 +102,6 @@ TVMET_DECLARE_MACRO(sub, -, int)
TVMET_DECLARE_MACRO(mul, *, int) TVMET_DECLARE_MACRO(mul, *, int)
TVMET_DECLARE_MACRO(div, /, int) TVMET_DECLARE_MACRO(div, /, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_DECLARE_MACRO(add, +, long long int)
TVMET_DECLARE_MACRO(sub, -, long long int)
TVMET_DECLARE_MACRO(mul, *, long long int)
TVMET_DECLARE_MACRO(div, /, long long int)
#endif
TVMET_DECLARE_MACRO(add, +, float) TVMET_DECLARE_MACRO(add, +, float)
TVMET_DECLARE_MACRO(sub, -, float) TVMET_DECLARE_MACRO(sub, -, float)
TVMET_DECLARE_MACRO(mul, *, float) TVMET_DECLARE_MACRO(mul, *, float)
@ -119,13 +112,6 @@ TVMET_DECLARE_MACRO(sub, -, double)
TVMET_DECLARE_MACRO(mul, *, double) TVMET_DECLARE_MACRO(mul, *, double)
TVMET_DECLARE_MACRO(div, /, double) TVMET_DECLARE_MACRO(div, /, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_DECLARE_MACRO(add, +, long double)
TVMET_DECLARE_MACRO(sub, -, long double)
TVMET_DECLARE_MACRO(mul, *, long double)
TVMET_DECLARE_MACRO(div, /, long double)
#endif
#undef TVMET_DECLARE_MACRO #undef TVMET_DECLARE_MACRO
@ -276,13 +262,6 @@ TVMET_IMPLEMENT_MACRO(sub, -, int)
TVMET_IMPLEMENT_MACRO(mul, *, int) TVMET_IMPLEMENT_MACRO(mul, *, int)
TVMET_IMPLEMENT_MACRO(div, /, int) TVMET_IMPLEMENT_MACRO(div, /, int)
#if defined(TVMET_HAVE_LONG_LONG)
TVMET_IMPLEMENT_MACRO(add, +, long long int)
TVMET_IMPLEMENT_MACRO(sub, -, long long int)
TVMET_IMPLEMENT_MACRO(mul, *, long long int)
TVMET_IMPLEMENT_MACRO(div, /, long long int)
#endif
TVMET_IMPLEMENT_MACRO(add, +, float) TVMET_IMPLEMENT_MACRO(add, +, float)
TVMET_IMPLEMENT_MACRO(sub, -, float) TVMET_IMPLEMENT_MACRO(sub, -, float)
TVMET_IMPLEMENT_MACRO(mul, *, float) TVMET_IMPLEMENT_MACRO(mul, *, float)
@ -293,13 +272,6 @@ TVMET_IMPLEMENT_MACRO(sub, -, double)
TVMET_IMPLEMENT_MACRO(mul, *, double) TVMET_IMPLEMENT_MACRO(mul, *, double)
TVMET_IMPLEMENT_MACRO(div, /, double) TVMET_IMPLEMENT_MACRO(div, /, double)
#if defined(TVMET_HAVE_LONG_DOUBLE)
TVMET_IMPLEMENT_MACRO(add, +, long double)
TVMET_IMPLEMENT_MACRO(sub, -, long double)
TVMET_IMPLEMENT_MACRO(mul, *, long double)
TVMET_IMPLEMENT_MACRO(div, /, long double)
#endif
#undef TVMET_IMPLEMENT_MACRO #undef TVMET_IMPLEMENT_MACRO

View File

@ -53,10 +53,8 @@ template<typename T> static void basics2()
2,5,8, 2,5,8,
3,6,9; 3,6,9;
// all elements of v1 should increase
assert(v1(0) == T(1) && v1(1) == T(2) && v1(2) == T(3)); assert(v1(0) == T(1) && v1(1) == T(2) && v1(2) == T(3));
// all elements of m1 should increase column-wise
assert(m1(0,0) == T(1) && m1(0,1) == T(4) && m1(0,2) == T(7) && assert(m1(0,0) == T(1) && m1(0,1) == T(4) && m1(0,2) == T(7) &&
m1(1,0) == T(2) && m1(1,1) == T(5) && m1(1,2) == T(8) && m1(1,0) == T(2) && m1(1,1) == T(5) && m1(1,2) == T(8) &&
m1(2,0) == T(3) && m1(2,1) == T(6) && m1(2,2) == T(9)); m1(2,0) == T(3) && m1(2,1) == T(6) && m1(2,2) == T(9));