123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /// \file cmFloatTypes.h
- /// \brief Declare the types cmReal_t and cmSample_t and define some useful limits.
- ///
- /// For signal processing functions the cm library uses the types cmSample_t to indicate an audio
- /// sample value and cmReal_t to specify a general purpose floating point value. The library
- /// is designed in such a way that the actual type, float or double, for these two types may
- /// be set at compilation time. Set the preprocessor variable CM_FLOAT_SMP to 1 to indicate
- /// that cmSample_t will be of type 'float' otherwise it will be of type 'double'.
- /// Set the preprocessor variable CM_FLOAT_REAL to 1 to indicate
- /// that cmSample_t will be of type 'float' otherwise it will be of type 'double'.
- /// By default cmSample_t is float nad cmReal_t is double.
- ///
-
- #ifndef cmFloatTypes_h
- #define cmFloatTypes_h
-
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- //-----------------------------------------------------------------
- #ifndef CM_FLOAT_SMP
- #define CM_FLOAT_SMP 1
- #endif
-
- #if CM_FLOAT_SMP == 1
-
- typedef float cmSample_t; ///< cmSample_t is a float
- typedef float _Complex cmComplexS_t;///< cmComplexS_t is single precision.
-
- #define cmSample_EPSILON FLT_EPSILON ///< Minimum increment between 1.0 and the next greaterv value. (1E-5)
- #define cmSample_MAX FLT_MAX ///< Maximum representable number (1E+37).
- #define cmSample_MIN FLT_MIN ///< Minimum representable number (1E-37).
-
- #else
-
- typedef double cmSample_t; ///< cmSample_t is a double
- typedef double _Complex cmComplexS_t; ///< cmComplexS_t is doulbe precision.
-
- #define cmSample_EPSILON DBL_EPSILON ///< Minimum increment between 1.0 and the next greaterv value. (1E-9)
- #define cmSample_MAX DBL_MAX ///< Maximum representable number (1E+37).
- #define cmSample_MIN DBL_MIN ///< Minimum representable number (1E-37).
-
- #endif
-
- //-----------------------------------------------------------------
- //-----------------------------------------------------------------
- //-----------------------------------------------------------------
-
- #ifndef CM_FLOAT_REAL
- #define CM_FLOAT_REAL 0
- #endif
-
- #if CM_FLOAT_REAL == 1
-
- typedef float cmReal_t; ///< cmReal_t is a float
- typedef float _Complex cmComplexR_t; ///< cmComplexR_t is single precision.
-
- #define cmReal_EPSILON FLT_EPSILON ///< Minimum increment between 1.0 and the next greaterv value. (1E-5)
- #define cmReal_MAX FLT_MAX ///< Maximum representable number (1E+37).
- #define cmReal_MIN FLT_MIN ///< Minimum representable number (1E-37).
-
- #else
-
- typedef double cmReal_t; ///< cmReal_t is a double.
- typedef double _Complex cmComplexR_t; ///< cmComplexR_t is double precision.
-
- #define cmReal_EPSILON DBL_EPSILON ///< Minimum increment between 1.0 and the next greaterv value (1E-9).
- #define cmReal_MAX DBL_MAX ///< Maximum representable number (1E+37).
- #define cmReal_MIN DBL_MIN ///< Minimum representable number (1E-37).
-
-
- #endif
-
- #ifdef __cplusplus
- }
- #endif
-
-
- #endif
|