| FX16_SHIFT | Defines the shift number (12) for fx16 types. |
| FX16_INT_SIZE | Defines the bit width of the integer portion (3) for fx16 types. |
| FX16_DEC_SIZE | Defines the bit width for the decimal portion (12) for fx16 types. |
| FX16_INT_MASK | Defines the mask (0x7000) for the integer portion of fx16 types. |
| FX16_DEC_MASK | Defines the mask (0x0fff) for the decimal portion of fx16 types. |
| FX16_SIGN_MASK | Defines the mask (0x8000) for the sign portion of fx16 types. |
| FX16_MAX | Defines the maximum value (0x7fff) that can be obtained with fx16 types. |
| FX16_MIN | Defines the minimum value (0x8000) that can be obtained with fx16 types. |
| FX_FX16_TO_F32 | Converts an fx16 type to an f32 type. |
| FX_F32_TO_FX16 FX16_CONST | Converts an f32 type to an fx16 type. |
#define FX16_SHIFT 12
#define FX16_INT_SIZE 3
#define FX16_DEC_SIZE 12
#define FX16_INT_MASK 0x7000
#define FX16_DEC_MASK 0x0fff
#define FX16_SIGN_MASK 0x8000
#define FX16_MAX (fx16)(0x7fff)
#define FX16_MIN (fx16)(0x8000)
#define FX_FX16_TO_F32(x) ((f32)((x) / (f32)(1 << FX16_SHIFT)))
#define FX_F32_TO_FX16(x) ((fx16)(((x) > 0) ?
(fx16)((x) * (1 << FX16_SHIFT) + 0.5f ) :
(fx16)((x) * (1 << FX16_SHIFT) - 0.5f )))
#define FX16_CONST(x) FX_F32_TO_FX16(x)
02/25/2004 Initial version.
CONFIDENTIAL