MeVisLab Toolbox Reference
|
Data types available in the ML. More...
Macros | |
#define | ML_NUM_STANDARD_TYPES 10 |
Number of available compiler/scalar datatypes. More... | |
#define | ML_MAX_COMPONENTS_EXTENDED_TYPE 512 |
Maximum number of components for extended types. More... | |
#define | ML_INVALID_DATA_TYPE -1 |
Defines an invalid MLDataType. More... | |
Typedefs | |
typedef MLint32 | MLDataType |
MLDataType. More... | |
Functions | |
int | MLisfinite (MLdouble v) |
Returns a non-zero value if and only if its argument has a finite value. More... | |
int | MLisnan (MLdouble v) |
Returns a non-zero value if and only if its argument is NaN. More... | |
template<typename DT > | |
DT | MLAbs (const DT val) |
Defines a templated MLAbs version to circumvent fabs ambiguities on different platforms. More... | |
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. More... | |
DATA TYPE MANAGEMENT. | |
Thread-safety: These functions are thread-safe, as long as no new datatypes are registered after startup. | |
MLEXPORT const char *const * | MLDataTypeNames () |
Function that returns the table of C-strings of all scalar and registered datatypes. More... | |
MLEXPORT size_t | MLNumDataTypes () |
Returns the current number of ML datatypes. More... | |
MLEXPORT const char * | MLNameFromDataType (MLDataType dataType) |
Function that returns the NULL-terminated string name for data type dataType or "" in case of error or for an invalid data type. More... | |
MLEXPORT MLDataType | MLDataTypeFromName (const char *const name) |
Returns the ID of the data type with name name. More... | |
MLEXPORT MLdouble | MLDataTypeMax (MLDataType dataType) |
Returns the maximum value of data type dataType or 0 if dataType is invalid. More... | |
MLEXPORT MLdouble | MLDataTypeMin (MLDataType dataType) |
Returns the minimum value of data type dataType or 0 if dataType is invalid. More... | |
MLEXPORT size_t | MLSizeOf (MLDataType dataType) |
Returns the size of the data type dataType in bytes. More... | |
MLEXPORT MLint32 | MLRangeOrder (MLDataType dataType) |
Returns the order value for a data type ranges. More... | |
MLEXPORT MLint32 | MLIsValidType (MLDataType dataType) |
Returns true (=1) if data type dataType seems to be valid, otherwise 0 (=false). More... | |
MLEXPORT MLint32 | MLIsSigned (MLDataType dataType) |
Returns true (=1) if data type dataType is signed, otherwise 0 (=false). More... | |
MLEXPORT MLint32 | MLIsIntType (MLDataType dataType) |
Returns true (=1) if data type dataType is an integer data type, otherwise false (=0). More... | |
MLEXPORT MLint32 | MLIsFloatType (MLDataType dataType) |
Returns true (=1) if data type dataType is a floating point data type, otherwise false (=0). More... | |
MLEXPORT MLint32 | MLIsStandardType (MLDataType dataType) |
Returns true (=1) if data type dataType is a standard (scalar) type, otherwise return false (=0). More... | |
MLEXPORT MLint32 | MLIsScalarType (MLDataType dataType) |
Alternative name for MLIsStandardType. More... | |
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. More... | |
MLEXPORT MLint32 | MLHolds (MLDataType datatype1, MLDataType datatype2) |
Returns true (=1) if data type \ datatype1 can hold data type datatype2 without precision or sign loss. More... | |
MLEXPORT MLDataType | MLGetPromotedType (MLDataType datatype1, MLDataType datatype2) |
Returns a data type that can hold the value ranges from datatype1 and datatype2 (including both). More... | |
MLEXPORT MLDataType | MLGetDataTypeForRange (MLdouble *min, MLdouble *max, MLint32 preferUnsigned) |
Corrects the order of *min and *max and returns an adequate standard data type. More... | |
MLEXPORT MLDataType | MLGetDataTypeForUncorrectedRange (MLdouble min, MLdouble max, MLint32 preferUnsigned) |
Like getMLDataTypeForRange with the following differences: More... | |
MLEXPORT MLDataType | MLGetRangeAndPrecisionEquivalent (MLDataType dataType) |
Returns a standard data type for dataType that has comparable precision and range behavior. More... | |
MLEXPORT MLDataType | MLGetPromotedPrecision (MLDataType datatype1, MLDataType datatype2) |
Returns one of datatype1 and datatype2 that has higher precision. More... | |
MLEXPORT MLErrorCode | MLClampIntervalToDataTypeRange (double intervalMin, double intervalMax, MLDataType dataType, double *resultIntervalMin, double *resultIntervalMax) |
Clamps the given lower/upper interval to the data type's range and checks whether the interval is completely outside of data type's range. More... | |
MLEXPORT size_t | MLSizeOfRegisteredType (MLDataType dataType) |
Compatibility function - obsolete, use MLSizeOf instead! More... | |
MLEXPORT MLTypeGroup | MLGetTypeGroup (MLDataType dataType) |
Get the type group to which the given type belongs. More... | |
MLEXPORT MLDataType | MLGetPromotedTypeWithRange (const MLDataType *inputTypes, size_t numTypes, double rangeMin, double rangeMax) |
Routine for type promotion that takes a list of input types and the target value range to find a resulting data type. More... | |
MLEXPORT MLDataType | MLGetPromotedTypeWithRange1Input (MLDataType inputType1, double rangeMin, double rangeMax) |
Convenience function for MLGetPromotedTypeWithRange with one input. More... | |
MLEXPORT MLDataType | MLGetPromotedTypeWithRange2Inputs (MLDataType inputType1, MLDataType inputType2, double rangeMin, double rangeMax) |
Convenience function for MLGetPromotedTypeWithRange with two inputs. More... | |
MLEXPORT MLDataType | MLGetPromotedTypeWithRange3Inputs (MLDataType inputType1, MLDataType inputType2, MLDataType inputType3, double rangeMin, double rangeMax) |
Convenience function for MLGetPromotedTypeWithRange with three inputs. More... | |
MLEXPORT MLDataType | MLGetIntegerDataTypeForRange (double rangeMin, double rangeMax) |
Returns the minimal integer type that can hold the given range. More... | |
MLEXPORT size_t | MLTypeGetNumComponents (MLDataType dataType) |
Returns the number of components of the data type data type or 0 in case of an invalid data type. More... | |
MLEXPORT const char * | MLTypeGetStructInfoString (MLDataType dataType) |
Returns the components codes of the data type dataType or "" in case of an invalid data type. More... | |
MLEXPORT MLDataType | MLTypeGetBestScalarTypeForTypeComponentChars (const char *charCodes, int suppressML64BitInts, int suppressMLldouble) |
Returns a standard data type that is able to hold the precisions of each of the type component characters passed as charCodes . More... | |
MLEXPORT MLDataType | MLTypeGetBestScalarTypeForTypeComponents (MLDataType dataType, int suppressML64BitInts, int suppressMLldouble) |
Returns a standard data type that is able to hold the precisions of each of the components of the type dataType . More... | |
MLint8 | MLTypeRangeMax (MLint8) |
Returns the maximum range of the data type of any passed standard data type value. More... | |
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 the minimum range of the data type of any passed standard data type value. More... | |
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 the minimum range between two values that should be considered significant. More... | |
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. More... | |
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, it returns false . More... | |
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, it returns false . More... | |
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, it returns false . More... | |
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, it returns false . More... | |
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, it returns false . More... | |
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 613 of file mlTypeDefs.h.
#define ML_MAX_COMPONENTS_EXTENDED_TYPE 512 |
Maximum number of components for extended types.
Definition at line 253 of file mlTypeDefs.h.
#define ML_NUM_STANDARD_TYPES 10 |
Number of available compiler/scalar datatypes.
Definition at line 247 of file mlTypeDefs.h.
typedef MLint32 MLDataType |
MLDataType.
An enum for all datatypes, predefined compiler (scalar) types, and registered types.
Definition at line 596 of file mlTypeDefs.h.
enum MLDataTypeIds |
MLDataType identifiers.
Defines enumerations for all datatypes used by the ML by default.
Definition at line 619 of file mlTypeDefs.h.
|
inline |
Defines a templated MLAbs version to circumvent fabs ambiguities on different platforms.
Definition at line 104 of file mlTypeDefTraits.h.
Referenced by ml::FloatingPointVector< T, size, DataContainer >::compAbs(), ml::FloatingPointMatrix< VectorT, size >::compAbsSum(), ml::FloatingPointVector< T, size, DataContainer >::compMaxAbs(), ml::PCLSupportTools::doPCLPointNonDataMembersDiffer(), ml::PCLSupportTools::fourFloatsDiffer(), ml::MLInverseMatHelper(), ml::MLTStdTypeInfos< VTYP >::MLTYPE_isEqualToTypeWithEpsilon(), ml::PCLSupportTools::setPointFromFields(), and ml::PCLSupportTools::setPointFromScalar().
MLEXPORT MLErrorCode MLClampIntervalToDataTypeRange | ( | double | intervalMin, |
double | intervalMax, | ||
MLDataType | dataType, | ||
double * | resultIntervalMin, | ||
double * | resultIntervalMax | ||
) |
Clamps the given lower/upper interval to the data type's range and checks whether the interval is completely outside of data type's range.
If the data type is an integer type, ceil is applied to intervalMin and floor is applied to intervalMax. If the resulting range is not empty and at least partially inside of the data type's range, ML_RESULT_OK is returned.
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* const* MLDataTypeNames | ( | ) |
Function that returns the table of C-strings of all scalar and registered datatypes.
The returned array is usually stable unless new datatypes are registered.
Referenced by ml::MultiFileVolumeListImageOutput::OutputImageProperties::readAndSetFromPagedImage().
Definition at line 88 of file mlTypeDefTraits.h.
fabs functions to implement type and platform independent MLabs function.
Definition at line 87 of file mlTypeDefTraits.h.
Referenced by MLFloatValuesEqual(), MLValueIs0WOM(), MLValuesAreEqualWOM(), and MLValuesDifferWOM().
Definition at line 89 of file mlTypeDefTraits.h.
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 understandable by considering 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 that 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 144 of file mlTypeDefTraits.h.
References MLfabs(), and MLTypeMinDifference().
Referenced by MLValuesAreEqual(), and MLValuesDiffer().
MLEXPORT MLDataType MLGetDataTypeForRange | ( | MLdouble * | min, |
MLdouble * | max, | ||
MLint32 | preferUnsigned | ||
) |
Corrects the order of *min
and *max
and returns an adequate standard data type.
If *min
== *max
, *max
= *min+1
is returned. If preferUnsigned
is true (not 0), unsigned datatypes are preferred instead of signed types if both are sensible responses for the range given by [*min
, *max
]. Float values are chosen if
min
and max
is smaller or equal 1.NOTE: Since the float behavior is a bit unusual for ranges < 1 (not to call it strange), please consider using MLGetIntegerDataTypeForRange or MLGetPromotedTypeWithRange1Input instead.
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 MLGetIntegerDataTypeForRange | ( | double | rangeMin, |
double | rangeMax | ||
) |
Returns the minimal integer type that can hold the given range.
It prefers unsigned integer types but will use signed types if needed.
MLEXPORT MLDataType MLGetPromotedPrecision | ( | MLDataType | datatype1, |
MLDataType | datatype2 | ||
) |
Returns one of datatype1
and datatype2
that has higher precision.
On equal precisions, the one with higher range is returned. On equal precisions and equal ranges, datatype1
is returned. For registered datatypes, the MLPrecisionEquivalent is used for comparison.
MLEXPORT MLDataType MLGetPromotedType | ( | MLDataType | datatype1, |
MLDataType | datatype2 | ||
) |
Returns a data type that 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 that could be used instead.)
MLEXPORT MLDataType MLGetPromotedTypeWithRange | ( | const MLDataType * | inputTypes, |
size_t | numTypes, | ||
double | rangeMin, | ||
double | rangeMax | ||
) |
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 two or three 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 largest 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., if mixing complex and vec2 the first one wins, if 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 one input.
MLEXPORT MLDataType MLGetPromotedTypeWithRange2Inputs | ( | MLDataType | inputType1, |
MLDataType | inputType2, | ||
double | rangeMin, | ||
double | rangeMax | ||
) |
Convenience function for MLGetPromotedTypeWithRange with two inputs.
MLEXPORT MLDataType MLGetPromotedTypeWithRange3Inputs | ( | MLDataType | inputType1, |
MLDataType | inputType2, | ||
MLDataType | inputType3, | ||
double | rangeMin, | ||
double | rangeMax | ||
) |
Convenience function for MLGetPromotedTypeWithRange with three inputs.
MLEXPORT MLDataType MLGetRangeAndPrecisionEquivalent | ( | MLDataType | dataType | ) |
Returns a standard data type for dataType
that has comparable precision and range behavior.
If dataType
is a standard data type, then dataType
is returned. For invalid datatypes 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).
|
inline |
Returns a non-zero value if and only if its argument has a finite value.
Definition at line 94 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< DT >::setFromMinMaxToMinMax().
|
inline |
Returns a non-zero value if and only if its argument is NaN.
Definition at line 98 of file mlTypeDefTraits.h.
References __ML_1ST_WINDOWS_2ND_UNIX_FUNCTION.
MLEXPORT MLint32 MLIsScalarType | ( | MLDataType | dataType | ) |
Alternative name for MLIsStandardType.
Referenced by ml::PCLMLTools::appendSubImageVoxelsToPointCloud().
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 (scalar) 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 that 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< BaseClass, Derived, NumberOfInputImages >::verifyProperties().
MLEXPORT size_t MLNumDataTypes | ( | ) |
Returns the current number of ML datatypes.
The returned value changes when new datatypes are registered.
MLEXPORT MLint32 MLRangeOrder | ( | MLDataType | dataType | ) |
Returns the 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. This way, 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(), ml::ClusterAlgorithm< CLUSTERVOXELTYPE, DerivedAlgorithm >::processSlice(), and ml::SubImage::setDataType().
MLEXPORT size_t MLSizeOfRegisteredType | ( | MLDataType | dataType | ) |
Compatibility function - obsolete, use MLSizeOf instead!
MLEXPORT MLDataType MLTypeGetBestScalarTypeForTypeComponentChars | ( | const char * | charCodes, |
int | suppressML64BitInts, | ||
int | suppressMLldouble | ||
) |
Returns a standard data type that is able to hold the precisions of each of the type component characters passed as charCodes
.
The routine returns the smallest possible data type that fulfills the criteria. If suppressML64BitInts
is passed as true (!=0), a potential return value of ML(u)int64Type will be replaced by MLdoubleType; otherwise, it is not changed. If suppressMLldouble
is passed as true (!= 0), a potential return value of MLldoubleType will be replaced by MLdoubleType; otherwise, it is not changed. Note that passing suppressML64BitInts
and/or suppressMLldouble
as true may result in return types that might not hold the precision or ranges of all components of the type. For NULL pointers as typeComps, a string containing invalid components chars, or empty strings ML_INVALID_DATA_TYPE is returned. See also MLTypeGetBestScalarTypeForTypeComponents().
MLEXPORT MLDataType MLTypeGetBestScalarTypeForTypeComponents | ( | MLDataType | dataType, |
int | suppressML64BitInts, | ||
int | suppressMLldouble | ||
) |
Returns a standard data type that is able to hold the precisions of each of the components of the type dataType
.
The routine returns the smallest possible data type that fulfills the criteria. If suppressML64BitInts
is passed as true (!=0), a potential return value of ML(u)int64Type will be replaced by MLdoubleType; otherwise, it is not changed. If suppressMLldouble
is passed as true (!= 0), a potential return value of MLldoubleType will be replaced by MLdoubleType; otherwise, it is not changed. Note that passing suppressML64BitInts
and/or suppressMLldouble
as true
may result in return types that might not hold the precision or ranges of all components of the type. For invalid datatypes, ML_INVALID_DATA_TYPE is returned. See also MLTypeGetBestScalarTypeForTypeComponentChars().
MLEXPORT size_t MLTypeGetNumComponents | ( | MLDataType | dataType | ) |
Returns the number of components of the data type data
type or 0 in case of an invalid data type.
Referenced by ml::ITKFiniteDifferenceFunctionWrapper::isFiniteDifferenceFunctionValid().
MLEXPORT const char* MLTypeGetStructInfoString | ( | MLDataType | dataType | ) |
Returns the components codes of the data type dataType
or "" in case of an invalid data type.
The returned pointer is always a valid, non-NULL pointer to a NULL-terminated string.
Definition at line 78 of file mlTypeDefTraits.h.
References ML_DOUBLE_EPSILON.
Definition at line 77 of file mlTypeDefTraits.h.
References ML_FLOAT_EPSILON.
Definition at line 73 of file mlTypeDefTraits.h.
Definition at line 75 of file mlTypeDefTraits.h.
Definition at line 81 of file mlTypeDefTraits.h.
Returns the minimum range between two values that should be considered significant.
Definition at line 71 of file mlTypeDefTraits.h.
Referenced by MLFloatValuesEqual().
Definition at line 79 of file mlTypeDefTraits.h.
References ML_LDOUBLE_EPSILON.
Definition at line 74 of file mlTypeDefTraits.h.
Definition at line 76 of file mlTypeDefTraits.h.
Definition at line 80 of file mlTypeDefTraits.h.
Definition at line 72 of file mlTypeDefTraits.h.
Definition at line 46 of file mlTypeDefTraits.h.
References ML_DOUBLE_MAX.
Definition at line 45 of file mlTypeDefTraits.h.
References ML_FLOAT_MAX.
Definition at line 41 of file mlTypeDefTraits.h.
References ML_INT16_MAX.
Definition at line 43 of file mlTypeDefTraits.h.
References ML_INT32_MAX.
Definition at line 49 of file mlTypeDefTraits.h.
References ML_INT64_MAX.
Returns the maximum range of the data type of any passed standard data type value.
Definition at line 39 of file mlTypeDefTraits.h.
References ML_INT8_MAX.
Definition at line 47 of file mlTypeDefTraits.h.
References ML_LDOUBLE_MAX.
Definition at line 42 of file mlTypeDefTraits.h.
References ML_UINT16_MAX.
Definition at line 44 of file mlTypeDefTraits.h.
References ML_UINT32_MAX.
Definition at line 48 of file mlTypeDefTraits.h.
References ML_UINT64_MAX.
Definition at line 40 of file mlTypeDefTraits.h.
References ML_UINT8_MAX.
Definition at line 62 of file mlTypeDefTraits.h.
References ML_DOUBLE_MAX.
Definition at line 61 of file mlTypeDefTraits.h.
References ML_FLOAT_MAX.
Definition at line 57 of file mlTypeDefTraits.h.
References ML_INT16_MIN.
Definition at line 59 of file mlTypeDefTraits.h.
References ML_INT32_MIN.
Definition at line 65 of file mlTypeDefTraits.h.
References ML_INT64_MIN.
Returns the minimum range of the data type of any passed standard data type value.
Definition at line 55 of file mlTypeDefTraits.h.
References ML_INT8_MIN.
Definition at line 63 of file mlTypeDefTraits.h.
References ML_LDOUBLE_MAX.
Definition at line 58 of file mlTypeDefTraits.h.
References ML_UINT16_MIN.
Definition at line 60 of file mlTypeDefTraits.h.
References ML_UINT32_MIN.
Definition at line 64 of file mlTypeDefTraits.h.
References ML_UINT64_MIN.
Definition at line 56 of file mlTypeDefTraits.h.
References ML_UINT8_MIN.
|
inline |
Definition at line 239 of file mlTypeDefTraits.h.
References ML_DOUBLE_MIN, and MLfabs().
|
inline |
Definition at line 238 of file mlTypeDefTraits.h.
References ML_FLOAT_MIN, and MLfabs().
|
inline |
Definition at line 234 of file mlTypeDefTraits.h.
|
inline |
Definition at line 236 of file mlTypeDefTraits.h.
|
inline |
Definition at line 242 of file mlTypeDefTraits.h.
|
inline |
Returns true
if value is 0; otherwise, it returns false
.
Warning free implementation.
Definition at line 232 of file mlTypeDefTraits.h.
Referenced by ml::TQuaternion< DT >::arg(), ml::TQuaternion< DT >::cos(), ml::TQuaternion< DT >::cosh(), ml::TQuaternion< DT >::exp(), ml::Tmat2< DT >::inverse(), ml::TQuaternion< DT >::inverse(), ml::TQuaternion< DT >::ln(), ml::TKernel< KDATATYPE >::manipulateKernelElements(), ml::MLInverseMatHelper(), ml::MLKernelToolsCorrelateLineWithImageAndKernelInterval(), ml::MLKernelToolsCorrelateLineWithKernelInterval(), ml::FloatingPointVector< T, size, DataContainer >::normalize(), ml::TQuaternion< DT >::normalize(), ml::Tmat6< DT >::operator/=(), ml::setITKWorldFromMedicalImageProperty(), ml::TQuaternion< DT >::sin(), ml::TQuaternion< DT >::sinh(), and ml::TQuaternion< DT >::sqrt().
|
inline |
Definition at line 240 of file mlTypeDefTraits.h.
References ML_LDOUBLE_MIN, and MLfabs().
|
inline |
Definition at line 235 of file mlTypeDefTraits.h.
|
inline |
Definition at line 237 of file mlTypeDefTraits.h.
|
inline |
Definition at line 241 of file mlTypeDefTraits.h.
|
inline |
Definition at line 233 of file mlTypeDefTraits.h.
|
inline |
Definition at line 246 of file mlTypeDefTraits.h.
Definition at line 159 of file mlTypeDefTraits.h.
References MLFloatValuesEqual().
Definition at line 158 of file mlTypeDefTraits.h.
References MLFloatValuesEqual().
Definition at line 154 of file mlTypeDefTraits.h.
Definition at line 156 of file mlTypeDefTraits.h.
Definition at line 162 of file mlTypeDefTraits.h.
Returns true
if values are equal (numerically safely compared); otherwise, it returns false
.
For parameters see MLFloatValuesAreEqual.
Definition at line 152 of file mlTypeDefTraits.h.
Referenced by ml::TSubImage< DATATYPE >::copySubImageReorderColorPlanesToInterleaved(), and ml::TSubImage< DATATYPE >::copySubImageTyped().
Definition at line 160 of file mlTypeDefTraits.h.
References MLFloatValuesEqual().
Definition at line 155 of file mlTypeDefTraits.h.
Definition at line 157 of file mlTypeDefTraits.h.
Definition at line 161 of file mlTypeDefTraits.h.
Definition at line 153 of file mlTypeDefTraits.h.
|
inline |
Definition at line 166 of file mlTypeDefTraits.h.
Definition at line 199 of file mlTypeDefTraits.h.
References ML_DOUBLE_MIN, and MLfabs().
Definition at line 198 of file mlTypeDefTraits.h.
References ML_FLOAT_MIN, and MLfabs().
Definition at line 194 of file mlTypeDefTraits.h.
Definition at line 196 of file mlTypeDefTraits.h.
Definition at line 202 of file mlTypeDefTraits.h.
Returns true
if values a
and b
are equal; otherwise, it returns false
.
Comparison is performed warn free without order of magnitude, i.e., also numerically unsafe.
Definition at line 192 of file mlTypeDefTraits.h.
Referenced by ml::MLTStdTypeInfos< VTYP >::MLTYPE_isEqualToType(), ml::TQuaternion< DT >::operator==(), and ml::TScaleShiftData< DT >::operator==().
Definition at line 200 of file mlTypeDefTraits.h.
References ML_LDOUBLE_MIN, and MLfabs().
Definition at line 195 of file mlTypeDefTraits.h.
Definition at line 197 of file mlTypeDefTraits.h.
Definition at line 201 of file mlTypeDefTraits.h.
Definition at line 193 of file mlTypeDefTraits.h.
|
inline |
Definition at line 206 of file mlTypeDefTraits.h.
Definition at line 179 of file mlTypeDefTraits.h.
References MLFloatValuesEqual().
Definition at line 178 of file mlTypeDefTraits.h.
References MLFloatValuesEqual().
Definition at line 174 of file mlTypeDefTraits.h.
Definition at line 176 of file mlTypeDefTraits.h.
Definition at line 182 of file mlTypeDefTraits.h.
Returns true
if values differ (numerically safely compared); otherwise, it returns false
.
For parameters see MLFloatValuesAreEqual.
Definition at line 172 of file mlTypeDefTraits.h.
Definition at line 180 of file mlTypeDefTraits.h.
References MLFloatValuesEqual().
Definition at line 175 of file mlTypeDefTraits.h.
Definition at line 177 of file mlTypeDefTraits.h.
Definition at line 181 of file mlTypeDefTraits.h.
Definition at line 173 of file mlTypeDefTraits.h.
|
inline |
Definition at line 186 of file mlTypeDefTraits.h.
Definition at line 219 of file mlTypeDefTraits.h.
References ML_DOUBLE_MIN, and MLfabs().
Definition at line 218 of file mlTypeDefTraits.h.
References ML_FLOAT_MIN, and MLfabs().
Definition at line 214 of file mlTypeDefTraits.h.
Definition at line 216 of file mlTypeDefTraits.h.
Definition at line 222 of file mlTypeDefTraits.h.
Returns true
if values differ; otherwise, it returns false
.
Comparison is performed warn free without order of magnitude, i.e., also numerically unsafe.
Definition at line 212 of file mlTypeDefTraits.h.
Referenced by ml::TKernel< KDATATYPE >::manipulateKernelElements(), 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< DT >::Tvec3().
Definition at line 220 of file mlTypeDefTraits.h.
References ML_LDOUBLE_MIN, and MLfabs().
Definition at line 215 of file mlTypeDefTraits.h.
Definition at line 217 of file mlTypeDefTraits.h.
Definition at line 221 of file mlTypeDefTraits.h.
Definition at line 213 of file mlTypeDefTraits.h.
|
inline |
Definition at line 226 of file mlTypeDefTraits.h.