ML Reference
MeVis/Foundation/Sources/MLUtilities/mlTypeDefTraits.h File Reference

Some traits and template support for types and constants from mlTypeDefs project. More...

#include "mlTypeDefs.h"
#include "mlSystemWarningsDisable.h"
#include <float.h>
#include <limits>
#include <boost/static_assert.hpp>
#include "mlSystemWarningsRestore.h"

Go to the source code of this file.

Namespaces

namespace  ml
 

Define the namespace name like in the ML. Default is ml.


Defines

#define __ML_1ST_WINDOWS_2ND_UNIX_FUNCTION(__ml_win_func, __ml_unix_func)   __ml_win_func
 Include system independent file and project settings.

Functions

int MLisfinite (MLdouble v)
 Returns a non-zero value if and only if its argument has a finite value.
int MLisnan (MLdouble v)
 Returns a non-zero value if and only if its argument is NaN.
template<typename DT >
DT MLAbs (const DT val)
 Defines templated MLAbs version to circumvent fabs ambiguities on different platforms.
template<>
MLuint8 MLAbs (const MLuint8 val)
 avoid warnings for unsigned types:
template<>
MLuint16 MLAbs (const MLuint16 val)
template<>
MLuint32 MLAbs (const MLuint32 val)
template<>
MLuint64 MLAbs (const MLuint64 val)
template<typename DT >
DT ml::abs (DT val)
template<typename T >
bool MLFloatValuesEqual (const T a, const T b, const T m)
 Returns true if floating point numbers a and b differ less or equal than their technically availably precision, and false otherwise.
MLint8 MLTypeRangeMax (MLint8)
 Returns maximum range of the data type of any passed standard data type value.
MLuint8 MLTypeRangeMax (MLuint8)
MLint16 MLTypeRangeMax (MLint16)
MLuint16 MLTypeRangeMax (MLuint16)
MLint32 MLTypeRangeMax (MLint32)
MLuint32 MLTypeRangeMax (MLuint32)
MLfloat MLTypeRangeMax (MLfloat)
MLdouble MLTypeRangeMax (MLdouble)
MLldouble MLTypeRangeMax (MLldouble)
MLuint64 MLTypeRangeMax (MLuint64)
MLint64 MLTypeRangeMax (MLint64)
MLint8 MLTypeRangeMin (MLint8)
 Returns minimum range of the data type of any passed standard data type value.
MLuint8 MLTypeRangeMin (MLuint8)
MLint16 MLTypeRangeMin (MLint16)
MLuint16 MLTypeRangeMin (MLuint16)
MLint32 MLTypeRangeMin (MLint32)
MLuint32 MLTypeRangeMin (MLuint32)
MLfloat MLTypeRangeMin (MLfloat)
MLdouble MLTypeRangeMin (MLdouble)
MLldouble MLTypeRangeMin (MLldouble)
MLuint64 MLTypeRangeMin (MLuint64)
MLint64 MLTypeRangeMin (MLint64)
MLint8 MLTypeMinDifference (MLint8)
 Returns minimum range between two values which should be considered significant.
MLuint8 MLTypeMinDifference (MLuint8)
MLint16 MLTypeMinDifference (MLint16)
MLuint16 MLTypeMinDifference (MLuint16)
MLint32 MLTypeMinDifference (MLint32)
MLuint32 MLTypeMinDifference (MLuint32)
MLfloat MLTypeMinDifference (MLfloat)
MLdouble MLTypeMinDifference (MLdouble)
MLldouble MLTypeMinDifference (MLldouble)
MLuint64 MLTypeMinDifference (MLuint64)
MLint64 MLTypeMinDifference (MLint64)
MLfloat MLfabs (MLfloat v)
 fabs functions to implement type and platform independent MLabs function.
MLdouble MLfabs (MLdouble v)
MLldouble MLfabs (MLldouble v)
bool MLValuesAreEqual (MLint8 a, MLint8 b, MLint8)
 Returns true if values are equal (numerically safely compared), otherwise false.
bool MLValuesAreEqual (MLuint8 a, MLuint8 b, MLuint8)
bool MLValuesAreEqual (MLint16 a, MLint16 b, MLint16)
bool MLValuesAreEqual (MLuint16 a, MLuint16 b, MLuint16)
bool MLValuesAreEqual (MLint32 a, MLint32 b, MLint32)
bool MLValuesAreEqual (MLuint32 a, MLuint32 b, MLuint32)
bool MLValuesAreEqual (MLfloat a, MLfloat b, MLfloat m)
bool MLValuesAreEqual (MLdouble a, MLdouble b, MLdouble m)
bool MLValuesAreEqual (MLldouble a, MLldouble b, MLldouble m)
bool MLValuesAreEqual (MLuint64 a, MLuint64 b, MLuint64)
bool MLValuesAreEqual (MLint64 a, MLint64 b, MLint64)
template<typename T1 , typename T2 >
bool MLValuesAreEqual (T1 a, T2 b, MLint64)
bool MLValuesDiffer (MLint8 a, MLint8 b, MLint8)
 Returns true if values differ (numerically safely compared), otherwise false.
bool MLValuesDiffer (MLuint8 a, MLuint8 b, MLuint8)
bool MLValuesDiffer (MLint16 a, MLint16 b, MLint16)
bool MLValuesDiffer (MLuint16 a, MLuint16 b, MLuint16)
bool MLValuesDiffer (MLint32 a, MLint32 b, MLint32)
bool MLValuesDiffer (MLuint32 a, MLuint32 b, MLuint32)
bool MLValuesDiffer (MLfloat a, MLfloat b, MLfloat m)
bool MLValuesDiffer (MLdouble a, MLdouble b, MLdouble m)
bool MLValuesDiffer (MLldouble a, MLldouble b, MLldouble m)
bool MLValuesDiffer (MLuint64 a, MLuint64 b, MLuint64)
bool MLValuesDiffer (MLint64 a, MLint64 b, MLint64)
template<typename T1 , typename T2 >
bool MLValuesDiffer (T1 a, T2 b, MLint64)
bool MLValuesAreEqualWOM (MLint8 a, MLint8 b)
 Returns true if values a and b are equal, otherwise false.
bool MLValuesAreEqualWOM (MLuint8 a, MLuint8 b)
bool MLValuesAreEqualWOM (MLint16 a, MLint16 b)
bool MLValuesAreEqualWOM (MLuint16 a, MLuint16 b)
bool MLValuesAreEqualWOM (MLint32 a, MLint32 b)
bool MLValuesAreEqualWOM (MLuint32 a, MLuint32 b)
bool MLValuesAreEqualWOM (MLfloat a, MLfloat b)
bool MLValuesAreEqualWOM (MLdouble a, MLdouble b)
bool MLValuesAreEqualWOM (MLldouble a, MLldouble b)
bool MLValuesAreEqualWOM (MLuint64 a, MLuint64 b)
bool MLValuesAreEqualWOM (MLint64 a, MLint64 b)
template<typename T1 , typename T2 >
bool MLValuesAreEqualWOM (T1 a, T2 b)
bool MLValuesDifferWOM (MLint8 a, MLint8 b)
 Returns true if values differ, otherwise false.
bool MLValuesDifferWOM (MLuint8 a, MLuint8 b)
bool MLValuesDifferWOM (MLint16 a, MLint16 b)
bool MLValuesDifferWOM (MLuint16 a, MLuint16 b)
bool MLValuesDifferWOM (MLint32 a, MLint32 b)
bool MLValuesDifferWOM (MLuint32 a, MLuint32 b)
bool MLValuesDifferWOM (MLfloat a, MLfloat b)
bool MLValuesDifferWOM (MLdouble a, MLdouble b)
bool MLValuesDifferWOM (MLldouble a, MLldouble b)
bool MLValuesDifferWOM (MLuint64 a, MLuint64 b)
bool MLValuesDifferWOM (MLint64 a, MLint64 b)
template<typename T1 , typename T2 >
bool MLValuesDifferWOM (T1 a, T2 b)
bool MLValueIs0WOM (MLint8 a)
 Returns true if value is 0, otherwise false.
bool MLValueIs0WOM (MLuint8 a)
bool MLValueIs0WOM (MLint16 a)
bool MLValueIs0WOM (MLuint16 a)
bool MLValueIs0WOM (MLint32 a)
bool MLValueIs0WOM (MLuint32 a)
bool MLValueIs0WOM (MLfloat a)
bool MLValueIs0WOM (MLdouble a)
bool MLValueIs0WOM (MLldouble a)
bool MLValueIs0WOM (MLuint64 a)
bool MLValueIs0WOM (MLint64 a)
template<typename T1 >
bool MLValueIs0WOM (T1 a)

Detailed Description

Some traits and template support for types and constants from mlTypeDefs project.

Author:
Wolf Spindler
Date:
06/2006

Definition in file mlTypeDefTraits.h.


Define Documentation

#define __ML_1ST_WINDOWS_2ND_UNIX_FUNCTION (   __ml_win_func,
  __ml_unix_func 
)    __ml_win_func

Include system independent file and project settings.

Definition at line 22 of file mlTypeDefTraits.h.

Referenced by MLisfinite(), and MLisnan().


Function Documentation

template<>
MLuint8 MLAbs ( const MLuint8  val) [inline]

avoid warnings for unsigned types:

Definition at line 105 of file mlTypeDefTraits.h.

template<>
MLuint32 MLAbs ( const MLuint32  val) [inline]

Definition at line 109 of file mlTypeDefTraits.h.

template<>
MLuint64 MLAbs ( const MLuint64  val) [inline]

Definition at line 111 of file mlTypeDefTraits.h.

template<>
MLuint16 MLAbs ( const MLuint16  val) [inline]

Definition at line 107 of file mlTypeDefTraits.h.