ML Reference
|
Data types available in the ML. More...
Defines | |
#define | ML_NUM_STANDARD_TYPES 10 |
Number of available compiler/scalar data types. | |
#define | ML_MAX_COMPONENTS_EXTENDED_TYPE 512 |
Maximum number of components for extended types. | |
#define | ML_SIZE_OF_MAX_CARRIER_TYPE ML_MAX_COMPONENTS_EXTENDED_TYPE |
#define | ML_INVALID_DATA_TYPE -1 |
Defines an invalid MLDataType. | |
Typedefs | |
typedef MLint32 | MLDataType |
MLDataType. | |
typedef MLint32 | MLPhysicalDataType |
Enumerations | |
enum | MLDataTypeIds { MLint8Type = 0, MLuint8Type = 1, MLint16Type = 2, MLuint16Type = 3, MLint32Type = 4, MLuint32Type = 5, MLfloatType = 6, MLdoubleType = 7, MLint64Type = 8, MLuint64Type = 9, MLComplexfType, MLComplexdType, MLQuaternionfType, MLQuaterniondType, MLVector2fType, MLVector2dType, MLVector3fType, MLVector3dType, MLVector4fType, MLVector4dType, MLVector5fType, MLVector5dType, MLVector6fType, MLVector6dType, MLVector7fType, MLVector7dType, MLVector8fType, MLVector8dType, MLVector9fType, MLVector9dType, MLVector10fType, MLVector10dType, MLVector16fType, MLVector16dType, MLVector32fType, MLVector32dType, MLVector64fType, MLVector64dType, MLMatrix2fType, MLMatrix2dType, MLMatrix3fType, MLMatrix3dType, MLMatrix4fType, MLMatrix4dType, MLMatrix5fType, MLMatrix5dType, MLMatrix6fType, MLMatrix6dType, MLVector2i8Type, MLVector2i16Type, MLVector2i32Type, MLVector2i64Type, MLVector3i8Type, MLVector3i16Type, MLVector3i32Type, MLVector3i64Type, MLVector4i8Type, MLVector4i16Type, MLVector4i32Type, MLVector4i64Type, MLVector5i8Type, MLVector5i16Type, MLVector5i32Type, MLVector5i64Type, MLVector6i8Type, MLVector6i16Type, MLVector6i32Type, MLVector6i64Type, MLVector7i8Type, MLVector7i16Type, MLVector7i32Type, MLVector7i64Type, MLVector8i8Type, MLVector8i16Type, MLVector8i32Type, MLVector8i64Type, MLVector9i8Type, MLVector9i16Type, MLVector9i32Type, MLVector9i64Type, MLVector10i8Type, MLVector10i16Type, MLVector10i32Type, MLVector10i64Type, MLVector16i8Type, MLVector16i16Type, MLVector16i32Type, MLVector16i64Type, MLVector32i8Type, MLVector32i16Type, MLVector32i32Type, MLVector32i64Type, MLVector64i8Type, MLVector64i16Type, MLVector64i32Type, MLVector64i64Type, MLldoubleType } |
MLDataType identifiers. More... | |
Functions | |
MLEXPORT MLDataType | MLGetDataTypeForRange (MLdouble *min, MLdouble *max, MLint32 preferUnsigned) |
Corrects order of *min and *max and return adequate standard data type. | |
MLEXPORT MLDataType | MLGetDataTypeForUncorrectedRange (MLdouble min, MLdouble max, MLint32 preferUnsigned) |
Like getMLDataTypeForRange with the following differences: | |
MLEXPORT MLDataType | MLGetRangeAndPrecisionEquivalent (MLDataType dataType) |
Returns a standard data type for dataType which has a comparable precision and range behavior. | |
MLEXPORT MLDataType | MLGetPromotedPrecision (MLDataType datatype1, MLDataType datatype2) |
Returns one of datatype1 and datatype2 which has a higher precision. | |
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<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. | |
DATA TYPE MANAGEMENT. | |
MLEXPORT const char ** | MLDataTypeNames () |
Thread-safety: These functions are thread-safe, as long as no new datatypes are registered after startup. | |
MLEXPORT size_t | MLNumDataTypes () |
Returns the current number of ML data types. | |
MLEXPORT const char * | MLNameFromDataType (MLDataType dataType) |
Function which returns the null-terminated string name for data type dataType or "" in case of error or for an invalid data type. | |
MLEXPORT MLDataType | MLDataTypeFromName (const char *const name) |
Returns the id of the data type with name name. | |
MLEXPORT MLdouble | MLDataTypeMax (MLDataType dataType) |
Returns the maximum value of data type dataType or 0 if dataType is invalid. | |
MLEXPORT MLdouble | MLDataTypeMin (MLDataType dataType) |
Returns the minimum value of data type dataType or 0 if dataType is invalid. | |
MLEXPORT size_t | MLSizeOf (MLDataType dataType) |
Returns the size of the data type dataType in bytes. | |
MLEXPORT MLint32 | MLRangeOrder (MLDataType dataType) |
Returns order value for a data type ranges. | |
MLEXPORT MLint32 | MLIsValidType (MLDataType dataType) |
Returns true(=1) if data type dataType seems to be valid, otherwise 0(=false). | |
MLEXPORT MLint32 | MLIsSigned (MLDataType dataType) |
Returns true(=1) if data type dataType is signed, otherwise 0(=false). | |
MLEXPORT MLint32 | MLIsIntType (MLDataType dataType) |
Returns true(=1) if data type dataType is an integer data type, otherwise false(=0). | |
MLEXPORT MLint32 | MLIsFloatType (MLDataType dataType) |
Returns true(=1) if data type dataType is a floating point data type, otherwise false(=0). | |
MLEXPORT MLint32 | MLIsStandardType (MLDataType dataType) |
Returns true(=1) if data type dataType is a standard type, otherwise return false(=0). | |
MLEXPORT MLint32 | MLIsDefaultExtendedType (MLDataType dataType) |
Returns true(=1) if data type dataType is one of the extended types that should be support out of the box, otherwise return false(=0). | |
MLEXPORT MLint32 | MLHolds (MLDataType datatype1, MLDataType datatype2) |
Returns true(=1) if data type \ datatype1 can hold data type datatype2 without precision or sign loss. | |
MLEXPORT MLDataType | MLGetPromotedType (MLDataType datatype1, MLDataType datatype2) |
Returns a data type which can hold the value ranges from datatype1 and datatype2 (including both). | |
MLEXPORT size_t | MLSizeOfRegisteredType (MLDataType dataType) |
Compatibility function - obsolete, use MLSizeOf instead! | |
MLEXPORT MLTypeGroup | MLGetTypeGroup (MLDataType dataType) |
Get the type group to which the given type belongs. | |
MLEXPORT MLDataType | MLGetPromotedTypeWithRange (const MLDataType *inputTypes, size_t numTypes, double rangeMin, double rangeMax) |
New routine for type promotion that takes a list of input types and the target value range to find a resulting data type. | |
MLEXPORT MLDataType | MLGetPromotedTypeWithRange1Input (MLDataType inputType1, double rangeMin, double rangeMax) |
Convenience function for MLGetPromotedTypeWithRange with 1 input. | |
MLEXPORT MLDataType | MLGetPromotedTypeWithRange2Inputs (MLDataType inputType1, MLDataType inputType2, double rangeMin, double rangeMax) |
Convenience function for MLGetPromotedTypeWithRange with 2 inputs. | |
MLEXPORT MLDataType | MLGetPromotedTypeWithRange3Inputs (MLDataType inputType1, MLDataType inputType2, MLDataType inputType3, double rangeMin, double rangeMax) |
Convenience function for MLGetPromotedTypeWithRange with 3 inputs. | |
Physical data type management | |
MLEXPORT size_t | MLSizeOfPhysicalType (MLDataType physicalDataType) |
MLEXPORT MLDataType | MLGetPhysicalDataType (MLDataType dataType) |
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) |
Data types available in the ML.
#define ML_INVALID_DATA_TYPE -1 |
Defines an invalid MLDataType.
Definition at line 739 of file mlTypeDefs.h.
Referenced by ml::TSubImage< DATATYPE >::TSubImage().
#define ML_MAX_COMPONENTS_EXTENDED_TYPE 512 |
Maximum number of components for extended types.
Definition at line 281 of file mlTypeDefs.h.
#define ML_NUM_STANDARD_TYPES 10 |
Number of available compiler/scalar data types.
Definition at line 275 of file mlTypeDefs.h.
#define ML_SIZE_OF_MAX_CARRIER_TYPE ML_MAX_COMPONENTS_EXTENDED_TYPE |
Definition at line 289 of file mlTypeDefs.h.
typedef MLint32 MLDataType |
MLDataType.
An enum for all data types, predefined compiler (scalar) types and registered types.
Definition at line 708 of file mlTypeDefs.h.
typedef MLint32 MLPhysicalDataType |
Definition at line 716 of file mlTypeDefs.h.
enum MLDataTypeIds |
MLDataType identifiers.
Defines enumerations for all data types used by the ML by default.
Definition at line 745 of file mlTypeDefs.h.
DT MLAbs | ( | const DT | val | ) | [inline] |
Defines templated MLAbs version to circumvent fabs ambiguities on different platforms.
Definition at line 101 of file mlTypeDefTraits.h.
Referenced by ml::FloatingPointVector< T, size, DataContainer >::compAbs(), ml::FloatingPointMatrix< VectorT, size >::compAbsSum(), ml::FloatingPointVector< T, size, DataContainer >::compMaxAbs(), ml::MLInverseMatHelper(), and ml::MLTStdTypeInfos< VTYP >::MLTYPE_isEqualToTypeWithEpsilon().
MLEXPORT MLDataType MLDataTypeFromName | ( | const char *const | name | ) |
Returns the id of the data type with name name.
If name
is not valid then ML_INVALID_DATA_TYPE is returned.
MLEXPORT MLdouble MLDataTypeMax | ( | MLDataType | dataType | ) |
Returns the maximum value of data type dataType
or 0 if dataType
is invalid.
MLEXPORT MLdouble MLDataTypeMin | ( | MLDataType | dataType | ) |
Returns the minimum value of data type dataType
or 0 if dataType
is invalid.
MLEXPORT const char** MLDataTypeNames | ( | ) |
Thread-safety: These functions are thread-safe, as long as no new datatypes are registered after startup.
Function which returns the table of c-strings of all scalar and registered data types. The returned array is usually stable unless new data types are registered.
Definition at line 85 of file mlTypeDefTraits.h.
Definition at line 86 of file mlTypeDefTraits.h.
fabs functions to implement type and platform independent MLabs function.
Definition at line 84 of file mlTypeDefTraits.h.
Referenced by MLFloatValuesEqual(), MLValueIs0WOM(), MLValuesAreEqualWOM(), and MLValuesDifferWOM().
bool MLFloatValuesEqual | ( | const T | a, |
const T | b, | ||
const T | m | ||
) | [inline] |
Returns true
if floating point numbers a
and b
differ less or equal than their technically availably precision, and false
otherwise.
For a sensible comparison the available precision of the floating point number needs to be scaled to the order of magnitude m
in which the two compared numbers reside. This becomes understandably when looking to the following example: The minimal technically difference between two double numbers near 1 are given by the constant DBL_EPSILON which is about 10e-16 in many systems. The technically available difference between numbers around 10e200 is DBL_EPSILON * 10e200 which is about 10e-16 * 10e200 = 10e184. Thus numbers which differ less than 10e184 are technically equal. This concept also holds for very small numbers. Thus m
should be a value from the range in which a
and b
normally occur.
Definition at line 141 of file mlTypeDefTraits.h.
References MLfabs(), and MLTypeMinDifference().
Referenced by MLValuesAreEqual(), and MLValuesDiffer().
MLEXPORT MLDataType MLGetDataTypeForRange | ( | MLdouble * | min, |
MLdouble * | max, | ||
MLint32 | preferUnsigned | ||
) |
Corrects order of *min
and *max
and return adequate standard data type.
If *min
== *max
, *max
= *min+1
is returned. If preferUnsigned
is true (not 0), unsigned data types are preferred instead of signed types if both are sensible responses for the range given by [*min
, *max
]. Float values are chosen if -integer ranges are not sufficient or -difference between min
and max
is smaller or equal 1. Examples: [min,max]=[3, 5] : 8 bit (unsigned) integer [min,max]=[3.1, 5] : 8 bit (unsigned) integer [min,max]=[1,2] : Float [min,max]=[1,3] : 8 bit (unsigned) integer [min,max]=[10,2000] : 16 bit (unsigned) integer [min,max]=[10,1831.1] : 16 bit (unsigned) integer [min,max]=[-1,1] : 8 bit signed integer [min,max]=[0,0] : 8 bit signed integer where max becomes 1. If min or max pointer is invalid then MLdoubleType is returned.
MLEXPORT MLDataType MLGetDataTypeForUncorrectedRange | ( | MLdouble | min, |
MLdouble | max, | ||
MLint32 | preferUnsigned | ||
) |
Like getMLDataTypeForRange with the following differences:
min
/ max
is not changed even if invalid.min
/ max
order is corrected only internally but max
is not incremented even if min
and max
are equal. MLEXPORT MLDataType MLGetPhysicalDataType | ( | MLDataType | dataType | ) |
MLEXPORT MLDataType MLGetPromotedPrecision | ( | MLDataType | datatype1, |
MLDataType | datatype2 | ||
) |
Returns one of datatype1
and datatype2
which has a higher precision.
On equal precisions, the one with higher range is returned. On equal precisions and equal ranges, datatype1
is returned. For registered data types, the MLPrecisionEquivalent is used for comparison.
MLEXPORT MLDataType MLGetPromotedType | ( | MLDataType | datatype1, |
MLDataType | datatype2 | ||
) |
Returns a data type which can hold the value ranges from datatype1
and datatype2
(including both).
If the resulting type cannot be determined or one of the parameters is invalid then ML_INVALID_DATA_TYPE is returned. (This happens e.g., if MLdoubleType and complex<float> shall be merged but complex<float> cannot hold double and double cannot hold complex<float> and both have no conversion types which could be used instead.)
MLEXPORT MLDataType MLGetPromotedTypeWithRange | ( | const MLDataType * | inputTypes, |
size_t | numTypes, | ||
double | rangeMin, | ||
double | rangeMax | ||
) |
New routine for type promotion that takes a list of input types and the target value range to find a resulting data type.
It does so in 2-3 steps:
Step1: Find a common base type for the input types. (For extended types the component types are regarded separately.)
Rules: If all input types are integer, use an integer type, else a float type. Use a signed integer if at least one input integer type is signed. Use a type with the byte size of the type with the biggest byte size. (This means that int32 and float will give float, but int64 and float will give double).
Step2: Promote the common base type to cover the target value range.
Rules: If the common base type is integer, try to stay integer. If the common base type is unsigned, try to stay unsigned, otherwise use signed.
If the common base type was a scalar type this is the result, else there follows
Step3: Select an extended type to cover the common component types. Rules: The type must have the same number of components and the same type group as the first type that had the maximum number of components (e.g. when mixing complex and vec2 the first one wins, when mixing complex and vec3 the second wins - because it had more components). Select the "smallest" possible type that can hold the components as determined with step 1 and 2. If no such type can be found, fall back to the first input type that had the maximum number of components).
MLEXPORT MLDataType MLGetPromotedTypeWithRange1Input | ( | MLDataType | inputType1, |
double | rangeMin, | ||
double | rangeMax | ||
) |
Convenience function for MLGetPromotedTypeWithRange with 1 input.
MLEXPORT MLDataType MLGetPromotedTypeWithRange2Inputs | ( | MLDataType | inputType1, |
MLDataType | inputType2, | ||
double | rangeMin, | ||
double | rangeMax | ||
) |
Convenience function for MLGetPromotedTypeWithRange with 2 inputs.
MLEXPORT MLDataType MLGetPromotedTypeWithRange3Inputs | ( | MLDataType | inputType1, |
MLDataType | inputType2, | ||
MLDataType | inputType3, | ||
double | rangeMin, | ||
double | rangeMax | ||
) |
Convenience function for MLGetPromotedTypeWithRange with 3 inputs.
MLEXPORT MLDataType MLGetRangeAndPrecisionEquivalent | ( | MLDataType | dataType | ) |
Returns a standard data type for dataType
which has a comparable precision and range behavior.
If dataType
is a standard data type then dataType
is returned. For invalid data types ML_INVALID_DATA_TYPE is returned.
MLEXPORT MLTypeGroup MLGetTypeGroup | ( | MLDataType | dataType | ) |
Get the type group to which the given type belongs.
Different type groups usually have different semantics.
MLEXPORT MLint32 MLHolds | ( | MLDataType | datatype1, |
MLDataType | datatype2 | ||
) |
Returns true(=1) if data type \ datatype1 can hold data type datatype2
without precision or sign loss.
It is assumed that all float types can hold any integer type. Note: This is not really correct for 32/64 bit integers and float!
MLEXPORT MLint32 MLIsDefaultExtendedType | ( | MLDataType | dataType | ) |
Returns true(=1) if data type dataType
is one of the extended types that should be support out of the box, otherwise return false(=0).
int MLisfinite | ( | MLdouble | v | ) | [inline] |
Returns a non-zero value if and only if its argument has a finite value.
Definition at line 91 of file mlTypeDefTraits.h.
References __ML_1ST_WINDOWS_2ND_UNIX_FUNCTION.
MLEXPORT MLint32 MLIsFloatType | ( | MLDataType | dataType | ) |
Returns true(=1) if data type dataType
is a floating point data type, otherwise false(=0).
MLEXPORT MLint32 MLIsIntType | ( | MLDataType | dataType | ) |
Returns true(=1) if data type dataType
is an integer data type, otherwise false(=0).
Referenced by ml::TScaleShiftData< MLdouble >::setFromMinMaxToMinMax().
int MLisnan | ( | MLdouble | v | ) | [inline] |
Returns a non-zero value if and only if its argument is NaN.
Definition at line 95 of file mlTypeDefTraits.h.
References __ML_1ST_WINDOWS_2ND_UNIX_FUNCTION.
MLEXPORT MLint32 MLIsSigned | ( | MLDataType | dataType | ) |
Returns true(=1) if data type dataType
is signed, otherwise 0(=false).
MLEXPORT MLint32 MLIsStandardType | ( | MLDataType | dataType | ) |
Returns true(=1) if data type dataType
is a standard type, otherwise return false(=0).
MLEXPORT MLint32 MLIsValidType | ( | MLDataType | dataType | ) |
Returns true(=1) if data type dataType
seems to be valid, otherwise 0(=false).
MLEXPORT const char* MLNameFromDataType | ( | MLDataType | dataType | ) |
Function which returns the null-terminated string name for data type dataType
or "" in case of error or for an invalid data type.
Referenced by ml::internal::TypedHandlerBase< ProcessAllPagesHandler, Derived, NumberOfInputImages >::verifyProperties().
MLEXPORT size_t MLNumDataTypes | ( | ) |
Returns the current number of ML data types.
The returned value changes when new data types are registered.
MLEXPORT MLint32 MLRangeOrder | ( | MLDataType | dataType | ) |
Returns order value for a data type ranges.
They are useful for precision comparison. Low ranges return low values, same ranges return same values, large ranges return large values. So e.g., ML_RANGE_ORDER(MLint8Type)==ML_RANGE_ORDER(MLuint8Type) (both 256) are identical, but ML_RANGE_ORDER(MLint8Type) < ML_RANGE_ORDER(MLfloatType) (256 <-> about 10e35). If dataType
is a registered data type, its MLGetRangeAndPrecisionEquivalent is used for range order determination. If an invalid data type is passed, -1 is returned.
MLEXPORT size_t MLSizeOf | ( | MLDataType | dataType | ) |
Returns the size of the data type dataType
in bytes.
On invalid types 0 is returned.
Referenced by ml::TSubImage< DATATYPE >::copySubImageTyped(), ml::ImageProperties::getSizeInBytes(), and ml::SubImage::setDataType().
MLEXPORT size_t MLSizeOfPhysicalType | ( | MLDataType | physicalDataType | ) |
MLEXPORT size_t MLSizeOfRegisteredType | ( | MLDataType | dataType | ) |
Compatibility function - obsolete, use MLSizeOf instead!
Definition at line 71 of file mlTypeDefTraits.h.
Definition at line 72 of file mlTypeDefTraits.h.
Definition at line 73 of file mlTypeDefTraits.h.
Definition at line 74 of file mlTypeDefTraits.h.
References ML_FLOAT_EPSILON.
Definition at line 75 of file mlTypeDefTraits.h.
References ML_DOUBLE_EPSILON.
Definition at line 76 of file mlTypeDefTraits.h.
References ML_LDOUBLE_EPSILON.
Definition at line 77 of file mlTypeDefTraits.h.
Definition at line 78 of file mlTypeDefTraits.h.
Returns minimum range between two values which should be considered significant.
Definition at line 68 of file mlTypeDefTraits.h.
Referenced by MLFloatValuesEqual().
Definition at line 69 of file mlTypeDefTraits.h.
Definition at line 70 of file mlTypeDefTraits.h.
Definition at line 37 of file mlTypeDefTraits.h.
References ML_UINT8_MAX.
Definition at line 38 of file mlTypeDefTraits.h.
References ML_INT16_MAX.
Definition at line 39 of file mlTypeDefTraits.h.
References ML_UINT16_MAX.
Definition at line 40 of file mlTypeDefTraits.h.
References ML_INT32_MAX.
Returns maximum range of the data type of any passed standard data type value.
Definition at line 36 of file mlTypeDefTraits.h.
References ML_INT8_MAX.
Definition at line 41 of file mlTypeDefTraits.h.
References ML_UINT32_MAX.
Definition at line 42 of file mlTypeDefTraits.h.
References ML_FLOAT_MAX.
Definition at line 43 of file mlTypeDefTraits.h.
References ML_DOUBLE_MAX.
Definition at line 44 of file mlTypeDefTraits.h.
References ML_LDOUBLE_MAX.
Definition at line 45 of file mlTypeDefTraits.h.
References ML_UINT64_MAX.
Definition at line 46 of file mlTypeDefTraits.h.
References ML_INT64_MAX.
Returns minimum range of the data type of any passed standard data type value.
Definition at line 52 of file mlTypeDefTraits.h.
References ML_INT8_MIN.
Definition at line 53 of file mlTypeDefTraits.h.
References ML_UINT8_MIN.
Definition at line 54 of file mlTypeDefTraits.h.
References ML_INT16_MIN.
Definition at line 55 of file mlTypeDefTraits.h.
References ML_UINT16_MIN.
Definition at line 56 of file mlTypeDefTraits.h.
References ML_INT32_MIN.
Definition at line 57 of file mlTypeDefTraits.h.
References ML_UINT32_MIN.
Definition at line 58 of file mlTypeDefTraits.h.
References ML_FLOAT_MAX.
Definition at line 59 of file mlTypeDefTraits.h.
References ML_DOUBLE_MAX.
Definition at line 60 of file mlTypeDefTraits.h.
References ML_LDOUBLE_MAX.
Definition at line 61 of file mlTypeDefTraits.h.
References ML_UINT64_MIN.
Definition at line 62 of file mlTypeDefTraits.h.
References ML_INT64_MIN.
bool MLValueIs0WOM | ( | T1 | a | ) | [inline] |
Definition at line 243 of file mlTypeDefTraits.h.
bool MLValueIs0WOM | ( | MLint8 | a | ) | [inline] |
Returns true
if value is 0, otherwise false
.
Warn free implementation.
Definition at line 229 of file mlTypeDefTraits.h.
Referenced by ml::TQuaternion< DT >::arg(), ml::TQuaternion< DT >::cos(), ml::TQuaternion< DT >::cosh(), ml::TQuaternion< DT >::exp(), ml::TQuaternion< DT >::inverse(), ml::Tmat2< DT >::inverse(), ml::TQuaternion< DT >::ln(), ml::MLInverseMatHelper(), ml::TQuaternion< DT >::normalize(), ml::FloatingPointVector< T, size, DataContainer >::normalize(), ml::Tmat6< DT >::operator/=(), ml::TQuaternion< DT >::sin(), ml::TQuaternion< DT >::sinh(), and ml::TQuaternion< DT >::sqrt().
bool MLValueIs0WOM | ( | MLldouble | a | ) | [inline] |
Definition at line 237 of file mlTypeDefTraits.h.
References ML_LDOUBLE_MIN, and MLfabs().
bool MLValueIs0WOM | ( | MLfloat | a | ) | [inline] |
Definition at line 235 of file mlTypeDefTraits.h.
References ML_FLOAT_MIN, and MLfabs().
bool MLValueIs0WOM | ( | MLuint8 | a | ) | [inline] |
Definition at line 230 of file mlTypeDefTraits.h.
bool MLValueIs0WOM | ( | MLint16 | a | ) | [inline] |
Definition at line 231 of file mlTypeDefTraits.h.
bool MLValueIs0WOM | ( | MLint64 | a | ) | [inline] |
Definition at line 239 of file mlTypeDefTraits.h.
bool MLValueIs0WOM | ( | MLuint64 | a | ) | [inline] |
Definition at line 238 of file mlTypeDefTraits.h.
bool MLValueIs0WOM | ( | MLint32 | a | ) | [inline] |
Definition at line 233 of file mlTypeDefTraits.h.
bool MLValueIs0WOM | ( | MLuint32 | a | ) | [inline] |
Definition at line 234 of file mlTypeDefTraits.h.
bool MLValueIs0WOM | ( | MLuint16 | a | ) | [inline] |
Definition at line 232 of file mlTypeDefTraits.h.
bool MLValueIs0WOM | ( | MLdouble | a | ) | [inline] |
Definition at line 236 of file mlTypeDefTraits.h.
References ML_DOUBLE_MIN, and MLfabs().
Definition at line 153 of file mlTypeDefTraits.h.
Returns true
if values are equal (numerically safely compared), otherwise false
.
For parameters see MLFloatValuesAreEqual.
Definition at line 149 of file mlTypeDefTraits.h.
Referenced by ml::TSubImage< DATATYPE >::copySubImageReorderColorPlanesToInterleaved(), and ml::TSubImage< DATATYPE >::copySubImageTyped().
Definition at line 150 of file mlTypeDefTraits.h.
Definition at line 152 of file mlTypeDefTraits.h.
Definition at line 154 of file mlTypeDefTraits.h.
Definition at line 156 of file mlTypeDefTraits.h.
References MLFloatValuesEqual().
Definition at line 158 of file mlTypeDefTraits.h.
bool MLValuesAreEqual | ( | T1 | a, |
T2 | b, | ||
MLint64 | |||
) | [inline] |
Definition at line 163 of file mlTypeDefTraits.h.
Definition at line 155 of file mlTypeDefTraits.h.
References MLFloatValuesEqual().
Definition at line 159 of file mlTypeDefTraits.h.
Definition at line 157 of file mlTypeDefTraits.h.
References MLFloatValuesEqual().
Definition at line 151 of file mlTypeDefTraits.h.
Definition at line 195 of file mlTypeDefTraits.h.
References ML_FLOAT_MIN, and MLfabs().
Returns true
if values a
and b
are equal, otherwise false
.
Comparison is done warn free without order of magnitude, i.e., also numerically unsafe.
Definition at line 189 of file mlTypeDefTraits.h.
Referenced by ml::MLTStdTypeInfos< VTYP >::MLTYPE_isEqualToType(), ml::TQuaternion< DT >::operator==(), and ml::TScaleShiftData< MLdouble >::operator==().
Definition at line 193 of file mlTypeDefTraits.h.
Definition at line 192 of file mlTypeDefTraits.h.
Definition at line 199 of file mlTypeDefTraits.h.
Definition at line 191 of file mlTypeDefTraits.h.
Definition at line 196 of file mlTypeDefTraits.h.
References ML_DOUBLE_MIN, and MLfabs().
Definition at line 194 of file mlTypeDefTraits.h.
Definition at line 198 of file mlTypeDefTraits.h.
bool MLValuesAreEqualWOM | ( | T1 | a, |
T2 | b | ||
) | [inline] |
Definition at line 203 of file mlTypeDefTraits.h.
Definition at line 197 of file mlTypeDefTraits.h.
References ML_LDOUBLE_MIN, and MLfabs().
Definition at line 190 of file mlTypeDefTraits.h.
Definition at line 172 of file mlTypeDefTraits.h.
Definition at line 174 of file mlTypeDefTraits.h.
Definition at line 173 of file mlTypeDefTraits.h.
Definition at line 171 of file mlTypeDefTraits.h.
Definition at line 178 of file mlTypeDefTraits.h.
Definition at line 176 of file mlTypeDefTraits.h.
References MLFloatValuesEqual().
bool MLValuesDiffer | ( | T1 | a, |
T2 | b, | ||
MLint64 | |||
) | [inline] |
Definition at line 183 of file mlTypeDefTraits.h.
Definition at line 175 of file mlTypeDefTraits.h.
References MLFloatValuesEqual().
Definition at line 177 of file mlTypeDefTraits.h.
References MLFloatValuesEqual().
Returns true
if values differ (numerically safely compared), otherwise false
.
For parameters see MLFloatValuesAreEqual.
Definition at line 169 of file mlTypeDefTraits.h.
Definition at line 170 of file mlTypeDefTraits.h.
Definition at line 179 of file mlTypeDefTraits.h.
Definition at line 213 of file mlTypeDefTraits.h.
Definition at line 211 of file mlTypeDefTraits.h.
Definition at line 210 of file mlTypeDefTraits.h.
Definition at line 219 of file mlTypeDefTraits.h.
bool MLValuesDifferWOM | ( | T1 | a, |
T2 | b | ||
) | [inline] |
Definition at line 223 of file mlTypeDefTraits.h.
Definition at line 218 of file mlTypeDefTraits.h.
Definition at line 216 of file mlTypeDefTraits.h.
References ML_DOUBLE_MIN, and MLfabs().
Returns true
if values differ, otherwise false
.
Comparison is done warn free without order of magnitude, i.e., also numerically unsafe.
Definition at line 209 of file mlTypeDefTraits.h.
Referenced by ml::MLTStdTypeInfos< VTYP >::MLTYPE_castToBool(), ml::FloatingPointVector< T, size, DataContainer >::operator!=(), ml::FloatingPointVector< T, size, DataContainer >::operator<(), ml::FloatingPointVector< T, size, DataContainer >::operator==(), and ml::Tvec3< MLdouble >::Tvec3().
Definition at line 214 of file mlTypeDefTraits.h.
Definition at line 212 of file mlTypeDefTraits.h.
Definition at line 215 of file mlTypeDefTraits.h.
References ML_FLOAT_MIN, and MLfabs().
Definition at line 217 of file mlTypeDefTraits.h.
References ML_LDOUBLE_MIN, and MLfabs().