13#ifndef ML_TYPE_DEF_TRAITS_H
14#define ML_TYPE_DEF_TRAITS_H
21#include <ThirdPartyWarningsDisable.h>
25# define __ML_1ST_WINDOWS_2ND_UNIX_FUNCTION(__ml_win_func,__ml_unix_func) __ml_win_func
28# define __ML_1ST_WINDOWS_2ND_UNIX_FUNCTION(__ml_win_func,__ml_unix_func) __ml_unix_func
32#include <boost/static_assert.hpp>
34#include <ThirdPartyWarningsRestore.h>
103 template <
typename DT>
104 inline DT
MLAbs(
const DT val){
return (val < 0) ? -val : val; }
118 namespace ML_NAMESPACE {
119 template <
typename DT>
123 BOOST_STATIC_ASSERT(std::numeric_limits<DT>::is_integer);
124 return (val < 0) ? -val : val;
143 template <
typename T>
165 template <
typename T1,
typename T2>
185 template <
typename T1,
typename T2>
205 template <
typename T1,
typename T2>
225 template <
typename T1,
typename T2>
245 template <
typename T1>
MLint8 MLTypeRangeMax(MLint8)
bool MLFloatValuesEqual(const T a, const T b, const T m)
MLint8 MLTypeRangeMin(MLint8)
bool MLValuesAreEqual(MLint8 a, MLint8 b, MLint8)
bool MLValuesDiffer(MLint8 a, MLint8 b, MLint8)
MLfloat MLfabs(MLfloat v)
bool MLValueIs0WOM(MLint8 a)
bool MLValuesDifferWOM(MLint8 a, MLint8 b)
int MLisfinite(MLdouble v)
bool MLValuesAreEqualWOM(MLint8 a, MLint8 b)
MLint8 MLTypeMinDifference(MLint8)
#define __ML_1ST_WINDOWS_2ND_UNIX_FUNCTION(__ml_win_func, __ml_unix_func)
Some traits and template support for types and constants from mlTypeDefs project.
UINT64 MLuint64
Introduce platform-independent 64-bit unsigned integer type.
#define ML_LDOUBLE_EPSILON
INT64 MLint64
Include 64-bit integer support for Windows or Unix.
#define ML_DOUBLE_EPSILON
unsigned __int64 abs(unsigned __int64 i)
long double fabs(__int64 i)