![](/media/cache/profiles/8b0dc65f996f98fd178a9defd0efa077.jpg.50x50_q85.jpg)
For Terrance
Headers/FixedMath.h
- Committer:
- emh203
- Date:
- 2012-06-13
- Revision:
- 0:085749c8446f
File content as of revision 0:085749c8446f:
#include "DataTypes.h" #ifndef FIXEDMATH_H_ #define FIXEDMATH_H_ typedef SIGNED_WORD FIXED_7_8; typedef SIGNED_WORD FIXED_9_6; typedef SIGNED_WORD FIXED_0_15; typedef SIGNED_WORD FIXED_1_14; extern const FIXED_1_14 Fixed_1_14_SineTable [256]; extern const FIXED_7_8 Fixed_7_8_SineTable [256]; #define FMul_15_0(A,B) (FIXED_0_15)(((FIXED_0_15)(A) * (FIXED_0_15 )(B))>>15) #define FMul_7_8to0_15(A,B) (FIXED_7_8)(((FIXED_7_8)(A) * (FIXED_0_15)(B))>>15) #define FMul_15_0to7_8(A,B) (SIGNED_WORD)(((SIGNED_WORD)(A) * (FIXED_7_8)(B))>>8) #define INT_7_8(A) (SIGNED_WORD)(A>>8) #define INT_TO_7_8(A) ((FIXED_7_8)(A)<<8) #define FRAC_7_8(A) (FIXED_7_8)(A&0xFF) #define INT_9_6(A) (SIGNED_WORD)(A>>6) #define INT_TO_9_6(A) ((FIXED_9_6)(A)<<6) #define FRAC_6_9(A) (FIXED_9_6)(A&0x3F) //#define FMul_15_0to0_15 (SIGNED_WORD)(((SIGNED_WORD)(A) * (FIXED_0_15)(B))>>16) inline SIGNED_WORD FMul_15_0to0_15(SIGNED_WORD A,SIGNED_WORD B) { return (((long)(A) * (long)(B))>>15); } inline SIGNED_WORD FMul_15_0to1_14(SIGNED_WORD A,SIGNED_WORD B) { long temp; temp = (((long)(A) * (long)(B))>>13); if(temp&0x01) { temp = temp>>1; temp = temp +1; } else { temp = temp>>1; } return temp; } //inline SIGNED_WORD ABS(A) //{ //if(A<0) //return -A; //else //return A; //} #endif /*FIXEDMATH_H_*/