"L. Spiro Engine"

F:/My Projects/LSEngine/Modules/LSMathLib/Src/LSMConstants.h

00001 
00017 #ifndef __LSM_CONSTANTS_H__
00018 #define __LSM_CONSTANTS_H__
00019 
00020 
00021 // LSM_PI.
00022 #define LSM_PI_DOUBLE           (3.14159265358979323846)
00023 #define LSM_PI                          (static_cast<LSREAL>(LSM_PI_DOUBLE))
00024 #define LSM_HALFPI                      (static_cast<LSREAL>(LSM_PI_DOUBLE * 0.5))
00025 #define LSM_DOUBLEPI            (static_cast<LSREAL>(LSM_PI_DOUBLE * 2.0))
00026 #define LSM_ONEFOURTHPI         (static_cast<LSREAL>(LSM_PI_DOUBLE * 0.25))
00027 #define LSM_E                           (static_cast<LSREAL>(2.71828182845904523536))
00028 #define LSM_SQRT_TWO            (static_cast<LSREAL>(1.41421356237309504880))
00029 #define LSM_SQRT_THREE          (static_cast<LSREAL>(1.73205080756887729352))
00030 #define LSM_SQRT_1OVER2         (static_cast<LSREAL>(0.70710678118654752440))
00031 #define LSM_SQRT_1OVER3         (static_cast<LSREAL>(0.57735026918962576450))
00032 #define LSM_M_DEG2RAD           (static_cast<LSREAL>(LSM_PI_DOUBLE / 180.0))
00033 #define LSM_M_RAD2DEG           (static_cast<LSREAL>(180.0 / LSM_PI_DOUBLE))
00034 #define LSM_M_SEC2MS            (static_cast<LSREAL>(1000.0))
00035 #define LSM_M_MS2SEC            (static_cast<LSREAL>(0.001))
00036 #if LSM_BASETYPE == LSM_FIXED
00037 #define LSM_INFINITY            (LSREAL::DigitMask())
00038 #define LSM_REAL_EPSILON        LSREAL( LSREAL::CFixedRawType( 1 ) )
00039 #else
00040 #define LSM_INFINITY            (static_cast<LSREAL>(1e30))
00041 #define LSM_REAL_EPSILON        (static_cast<LSREAL>(1.192092896e-07))
00042 #endif  // LSM_BASETYPE == LSM_FIXED
00043 #define LSM_FLT_EPSILON         1.192092896e-07f
00044 #define LSM_DBL_EPSILON         2.2204460492503131e-016
00045 
00046 #define LSM_MAT_EPSILON         LSM_REAL_EPSILON
00047 #define LSM_TWO                         (static_cast<LSREAL>(2.0))
00048 #define LSM_ONE                         (static_cast<LSREAL>(1.0))
00049 #define LSM_HALF                        (static_cast<LSREAL>(0.5))
00050 #define LSM_FOURTH                      (static_cast<LSREAL>(0.25))
00051 #define LSM_ZERO                        (static_cast<LSREAL>(0.0))
00052 #define LSM_PLANE_THICKNESS     (static_cast<LSREAL>(0.00005))
00053 
00054 
00055 #define LSM_FLT_LOOKUP_BITS     8
00056 #define LSM_FLT_EXP_POS         23
00057 #define LSM_FLT_EXP_BIAS        127
00058 
00059 #define LSM_DBL_LOOKUP_BITS     11
00060 #define LSM_DBL_EXP_POS         52
00061 #define LSM_DBL_EXP_BIAS        1023
00062 
00063 #define LSM_FLT_MAX                     3.402823466e+38F
00064 #define LSM_DBL_MAX                     1.7976931348623158e+308
00065 
00066 #if LSM_BASETYPE == LSM_FLOAT
00067 #define LSM_LOOKUP_BITS         LSM_FLT_LOOKUP_BITS
00068 #define LSM_EXP_POS                     LSM_FLT_EXP_POS
00069 #define LSM_EXP_BIAS            LSM_FLT_EXP_BIAS
00070 #elif LSM_BASETYPE == LSM_DOUBLE
00071 #define LSM_LOOKUP_BITS         LSM_DBL_LOOKUP_BITS
00072 #define LSM_EXP_POS                     LSM_DBL_EXP_POS
00073 #define LSM_EXP_BIAS            LSM_DBL_EXP_BIAS
00074 #endif  // LSM_BASETYPE
00075 
00076 #define LSM_LOOKUP_POS          (LSM_EXP_POS - LSM_LOOKUP_BITS)
00077 #define LSM_SEED_POS            (LSM_EXP_POS - 8)
00078 #define LSM_SQRT_TABLE_SIZE     (2 << LSM_LOOKUP_BITS)
00079 #define LSM_LOOKUP_MASK         (LSM_SQRT_TABLE_SIZE - 1)
00080 
00081 #endif  // __LSM_CONSTANTS_H__
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator