📄 iqmathlib.h
字号:
#define _IQtoIQ5(A) ((GLOBAL_Q >= 5) ? ((long) A >> (GLOBAL_Q - 5)):((long) A << (5 - GLOBAL_Q)))
#define _IQ5toIQ(A) ((GLOBAL_Q >= 5) ? ((long) A << (GLOBAL_Q - 5)):((long) A >> (5 - GLOBAL_Q)))
#define _IQtoIQ4(A) ((GLOBAL_Q >= 4) ? ((long) A >> (GLOBAL_Q - 4)):((long) A << (4 - GLOBAL_Q)))
#define _IQ4toIQ(A) ((GLOBAL_Q >= 4) ? ((long) A << (GLOBAL_Q - 4)):((long) A >> (4 - GLOBAL_Q)))
#define _IQtoIQ3(A) ((GLOBAL_Q >= 3) ? ((long) A >> (GLOBAL_Q - 3)):((long) A << (3 - GLOBAL_Q)))
#define _IQ3toIQ(A) ((GLOBAL_Q >= 3) ? ((long) A << (GLOBAL_Q - 3)):((long) A >> (3 - GLOBAL_Q)))
#define _IQtoIQ2(A) ((GLOBAL_Q >= 2) ? ((long) A >> (GLOBAL_Q - 2)):((long) A << (2 - GLOBAL_Q)))
#define _IQ2toIQ(A) ((GLOBAL_Q >= 2) ? ((long) A << (GLOBAL_Q - 2)):((long) A >> (2 - GLOBAL_Q)))
#define _IQtoIQ1(A) ((long) A >> (GLOBAL_Q - 1))
#define _IQ1toIQ(A) ((long) A << (GLOBAL_Q - 1))
//---------------------------------------------------------------------------
#define _IQtoQ15(A) ((GLOBAL_Q >= 15) ? ((long) A >> (GLOBAL_Q - 15)):((long) A << (15 - GLOBAL_Q)))
#define _Q15toIQ(A) ((GLOBAL_Q >= 15) ? ((long) A << (GLOBAL_Q - 15)):((long) A >> (15 - GLOBAL_Q)))
#define _IQtoQ14(A) ((GLOBAL_Q >= 14) ? ((long) A >> (GLOBAL_Q - 14)):((long) A << (14 - GLOBAL_Q)))
#define _Q14toIQ(A) ((GLOBAL_Q >= 14) ? ((long) A << (GLOBAL_Q - 14)):((long) A >> (14 - GLOBAL_Q)))
#define _IQtoQ13(A) ((GLOBAL_Q >= 13) ? ((long) A >> (GLOBAL_Q - 13)):((long) A << (13 - GLOBAL_Q)))
#define _Q13toIQ(A) ((GLOBAL_Q >= 13) ? ((long) A << (GLOBAL_Q - 13)):((long) A >> (13 - GLOBAL_Q)))
#define _IQtoQ12(A) ((GLOBAL_Q >= 12) ? ((long) A >> (GLOBAL_Q - 12)):((long) A << (12 - GLOBAL_Q)))
#define _Q12toIQ(A) ((GLOBAL_Q >= 12) ? ((long) A << (GLOBAL_Q - 12)):((long) A >> (12 - GLOBAL_Q)))
#define _IQtoQ11(A) ((GLOBAL_Q >= 11) ? ((long) A >> (GLOBAL_Q - 11)):((long) A << (11 - GLOBAL_Q)))
#define _Q11toIQ(A) ((GLOBAL_Q >= 11) ? ((long) A << (GLOBAL_Q - 11)):((long) A >> (11 - GLOBAL_Q)))
#define _IQtoQ10(A) ((GLOBAL_Q >= 10) ? ((long) A >> (GLOBAL_Q - 10)):((long) A << (10 - GLOBAL_Q)))
#define _Q10toIQ(A) ((GLOBAL_Q >= 10) ? ((long) A << (GLOBAL_Q - 10)):((long) A >> (10 - GLOBAL_Q)))
#define _IQtoQ9(A) ((GLOBAL_Q >= 9) ? ((long) A >> (GLOBAL_Q - 9)):((long) A << (9 - GLOBAL_Q)))
#define _Q9toIQ(A) ((GLOBAL_Q >= 9) ? ((long) A << (GLOBAL_Q - 9)):((long) A >> (9 - GLOBAL_Q)))
#define _IQtoQ8(A) ((GLOBAL_Q >= 8) ? ((long) A >> (GLOBAL_Q - 8)):((long) A << (8 - GLOBAL_Q)))
#define _Q8toIQ(A) ((GLOBAL_Q >= 8) ? ((long) A << (GLOBAL_Q - 8)):((long) A >> (8 - GLOBAL_Q)))
#define _IQtoQ7(A) ((GLOBAL_Q >= 7) ? ((long) A >> (GLOBAL_Q - 7)):((long) A << (7 - GLOBAL_Q)))
#define _Q7toIQ(A) ((GLOBAL_Q >= 7) ? ((long) A << (GLOBAL_Q - 7)):((long) A >> (7 - GLOBAL_Q)))
#define _IQtoQ6(A) ((GLOBAL_Q >= 6) ? ((long) A >> (GLOBAL_Q - 6)):((long) A << (6 - GLOBAL_Q)))
#define _Q6toIQ(A) ((GLOBAL_Q >= 6) ? ((long) A << (GLOBAL_Q - 6)):((long) A >> (6 - GLOBAL_Q)))
#define _IQtoQ5(A) ((GLOBAL_Q >= 5) ? ((long) A >> (GLOBAL_Q - 5)):((long) A << (5 - GLOBAL_Q)))
#define _Q5toIQ(A) ((GLOBAL_Q >= 5) ? ((long) A << (GLOBAL_Q - 5)):((long) A >> (5 - GLOBAL_Q)))
#define _IQtoQ5(A) ((GLOBAL_Q >= 5) ? ((long) A >> (GLOBAL_Q - 5)):((long) A << (5 - GLOBAL_Q)))
#define _Q5toIQ(A) ((GLOBAL_Q >= 5) ? ((long) A << (GLOBAL_Q - 5)):((long) A >> (5 - GLOBAL_Q)))
#define _IQtoQ4(A) ((GLOBAL_Q >= 4) ? ((long) A >> (GLOBAL_Q - 4)):((long) A << (4 - GLOBAL_Q)))
#define _Q4toIQ(A) ((GLOBAL_Q >= 4) ? ((long) A << (GLOBAL_Q - 4)):((long) A >> (4 - GLOBAL_Q)))
#define _IQtoQ3(A) ((GLOBAL_Q >= 3) ? ((long) A >> (GLOBAL_Q - 3)):((long) A << (3 - GLOBAL_Q)))
#define _Q3toIQ(A) ((GLOBAL_Q >= 3) ? ((long) A << (GLOBAL_Q - 3)):((long) A >> (3 - GLOBAL_Q)))
#define _IQtoQ2(A) ((GLOBAL_Q >= 2) ? ((long) A >> (GLOBAL_Q - 2)):((long) A << (2 - GLOBAL_Q)))
#define _Q2toIQ(A) ((GLOBAL_Q >= 2) ? ((long) A << (GLOBAL_Q - 2)):((long) A >> (2 - GLOBAL_Q)))
#define _IQtoQ1(A) ((GLOBAL_Q >= 1) ? ((long) A >> (GLOBAL_Q - 1)):((long) A << (1 - GLOBAL_Q)))
#define _Q1toIQ(A) ((GLOBAL_Q >= 1) ? ((long) A << (GLOBAL_Q - 1)):((long) A >> (1 - GLOBAL_Q)))
//---------------------------------------------------------------------------
#define _IQmpy(A,B) __IQmpy(A,B,GLOBAL_Q)
#define _IQ30mpy(A,B) __IQmpy(A,B,30)
#define _IQ29mpy(A,B) __IQmpy(A,B,29)
#define _IQ28mpy(A,B) __IQmpy(A,B,28)
#define _IQ27mpy(A,B) __IQmpy(A,B,27)
#define _IQ26mpy(A,B) __IQmpy(A,B,26)
#define _IQ25mpy(A,B) __IQmpy(A,B,25)
#define _IQ24mpy(A,B) __IQmpy(A,B,24)
#define _IQ23mpy(A,B) __IQmpy(A,B,23)
#define _IQ22mpy(A,B) __IQmpy(A,B,22)
#define _IQ21mpy(A,B) __IQmpy(A,B,21)
#define _IQ20mpy(A,B) __IQmpy(A,B,20)
#define _IQ19mpy(A,B) __IQmpy(A,B,19)
#define _IQ18mpy(A,B) __IQmpy(A,B,18)
#define _IQ17mpy(A,B) __IQmpy(A,B,17)
#define _IQ16mpy(A,B) __IQmpy(A,B,16)
#define _IQ15mpy(A,B) __IQmpy(A,B,15)
#define _IQ14mpy(A,B) __IQmpy(A,B,14)
#define _IQ13mpy(A,B) __IQmpy(A,B,13)
#define _IQ12mpy(A,B) __IQmpy(A,B,12)
#define _IQ11mpy(A,B) __IQmpy(A,B,11)
#define _IQ10mpy(A,B) __IQmpy(A,B,10)
#define _IQ9mpy(A,B) __IQmpy(A,B,9)
#define _IQ8mpy(A,B) __IQmpy(A,B,8)
#define _IQ7mpy(A,B) __IQmpy(A,B,7)
#define _IQ6mpy(A,B) __IQmpy(A,B,6)
#define _IQ5mpy(A,B) __IQmpy(A,B,5)
#define _IQ4mpy(A,B) __IQmpy(A,B,4)
#define _IQ3mpy(A,B) __IQmpy(A,B,3)
#define _IQ2mpy(A,B) __IQmpy(A,B,2)
#define _IQ1mpy(A,B) __IQmpy(A,B,1)
//---------------------------------------------------------------------------
extern long _IQ30rmpy(long A, long B);
extern long _IQ29rmpy(long A, long B);
extern long _IQ28rmpy(long A, long B);
extern long _IQ27rmpy(long A, long B);
extern long _IQ26rmpy(long A, long B);
extern long _IQ25rmpy(long A, long B);
extern long _IQ24rmpy(long A, long B);
extern long _IQ23rmpy(long A, long B);
extern long _IQ22rmpy(long A, long B);
extern long _IQ21rmpy(long A, long B);
extern long _IQ20rmpy(long A, long B);
extern long _IQ19rmpy(long A, long B);
extern long _IQ18rmpy(long A, long B);
extern long _IQ17rmpy(long A, long B);
extern long _IQ16rmpy(long A, long B);
extern long _IQ15rmpy(long A, long B);
extern long _IQ14rmpy(long A, long B);
extern long _IQ13rmpy(long A, long B);
extern long _IQ12rmpy(long A, long B);
extern long _IQ11rmpy(long A, long B);
extern long _IQ10rmpy(long A, long B);
extern long _IQ9rmpy(long A, long B);
extern long _IQ8rmpy(long A, long B);
extern long _IQ7rmpy(long A, long B);
extern long _IQ6rmpy(long A, long B);
extern long _IQ5rmpy(long A, long B);
extern long _IQ4rmpy(long A, long B);
extern long _IQ3rmpy(long A, long B);
extern long _IQ2rmpy(long A, long B);
extern long _IQ1rmpy(long A, long B);
#if GLOBAL_Q == 30
#define _IQrmpy(A,B) _IQ30rmpy(A,B)
#endif
#if GLOBAL_Q == 29
#define _IQrmpy(A,B) _IQ29rmpy(A,B)
#endif
#if GLOBAL_Q == 28
#define _IQrmpy(A,B) _IQ28rmpy(A,B)
#endif
#if GLOBAL_Q == 27
#define _IQrmpy(A,B) _IQ27rmpy(A,B)
#endif
#if GLOBAL_Q == 26
#define _IQrmpy(A,B) _IQ26rmpy(A,B)
#endif
#if GLOBAL_Q == 25
#define _IQrmpy(A,B) _IQ25rmpy(A,B)
#endif
#if GLOBAL_Q == 24
#define _IQrmpy(A,B) _IQ24rmpy(A,B)
#endif
#if GLOBAL_Q == 23
#define _IQrmpy(A,B) _IQ23rmpy(A,B)
#endif
#if GLOBAL_Q == 22
#define _IQrmpy(A,B) _IQ22rmpy(A,B)
#endif
#if GLOBAL_Q == 21
#define _IQrmpy(A,B) _IQ21rmpy(A,B)
#endif
#if GLOBAL_Q == 20
#define _IQrmpy(A,B) _IQ20rmpy(A,B)
#endif
#if GLOBAL_Q == 19
#define _IQrmpy(A,B) _IQ19rmpy(A,B)
#endif
#if GLOBAL_Q == 18
#define _IQrmpy(A,B) _IQ18rmpy(A,B)
#endif
#if GLOBAL_Q == 17
#define _IQrmpy(A,B) _IQ17rmpy(A,B)
#endif
#if GLOBAL_Q == 16
#define _IQrmpy(A,B) _IQ16rmpy(A,B)
#endif
#if GLOBAL_Q == 15
#define _IQrmpy(A,B) _IQ15rmpy(A,B)
#endif
#if GLOBAL_Q == 14
#define _IQrmpy(A,B) _IQ14rmpy(A,B)
#endif
#if GLOBAL_Q == 13
#define _IQrmpy(A,B) _IQ13rmpy(A,B)
#endif
#if GLOBAL_Q == 12
#define _IQrmpy(A,B) _IQ12rmpy(A,B)
#endif
#if GLOBAL_Q == 11
#define _IQrmpy(A,B) _IQ11rmpy(A,B)
#endif
#if GLOBAL_Q == 10
#define _IQrmpy(A,B) _IQ10rmpy(A,B)
#endif
#if GLOBAL_Q == 9
#define _IQrmpy(A,B) _IQ9rmpy(A,B)
#endif
#if GLOBAL_Q == 8
#define _IQrmpy(A,B) _IQ8rmpy(A,B)
#endif
#if GLOBAL_Q == 7
#define _IQrmpy(A,B) _IQ7rmpy(A,B)
#endif
#if GLOBAL_Q == 6
#define _IQrmpy(A,B) _IQ6rmpy(A,B)
#endif
#if GLOBAL_Q == 5
#define _IQrmpy(A,B) _IQ5rmpy(A,B)
#endif
#if GLOBAL_Q == 4
#define _IQrmpy(A,B) _IQ4rmpy(A,B)
#endif
#if GLOBAL_Q == 3
#define _IQrmpy(A,B) _IQ3rmpy(A,B)
#endif
#if GLOBAL_Q == 2
#define _IQrmpy(A,B) _IQ2rmpy(A,B)
#endif
#if GLOBAL_Q == 1
#define _IQrmpy(A,B) _IQ1rmpy(A,B)
#endif
//---------------------------------------------------------------------------
extern long _IQ30rsmpy(long A, long B);
extern long _IQ29rsmpy(long A, long B);
extern long _IQ28rsmpy(long A, long B);
extern long _IQ27rsmpy(long A, long B);
extern long _IQ26rsmpy(long A, long B);
extern long _IQ25rsmpy(long A, long B);
extern long _IQ24rsmpy(long A, long B);
extern long _IQ23rsmpy(long A, long B);
extern long _IQ22rsmpy(long A, long B);
extern long _IQ21rsmpy(long A, long B);
extern long _IQ20rsmpy(long A, long B);
extern long _IQ19rsmpy(long A, long B);
extern long _IQ18rsmpy(long A, long B);
extern long _IQ17rsmpy(long A, long B);
extern long _IQ16rsmpy(long A, long B);
extern long _IQ15rsmpy(long A, long B);
extern long _IQ14rsmpy(long A, long B);
extern long _IQ13rsmpy(long A, long B);
extern long _IQ12rsmpy(long A, long B);
extern long _IQ11rsmpy(long A, long B);
extern long _IQ10rsmpy(long A, long B);
extern long _IQ9rsmpy(long A, long B);
extern long _IQ8rsmpy(long A, long B);
extern long _IQ7rsmpy(long A, long B);
extern long _IQ6rsmpy(long A, long B);
extern long _IQ5rsmpy(long A, long B);
extern long _IQ4rsmpy(long A, long B);
extern long _IQ3rsmpy(long A, long B);
extern long _IQ2rsmpy(long A, long B);
extern long _IQ1rsmpy(long A, long B);
#if GLOBAL_Q == 30
#define _IQrsmpy(A,B) _IQ30rsmpy(A,B)
#endif
#if GLOBAL_Q == 29
#define _IQrsmpy(A,B) _IQ29rsmpy(A,B)
#endif
#if GLOBAL_Q == 28
#define _IQrsmpy(A,B) _IQ28rsmpy(A,B)
#endif
#if GLOBAL_Q == 27
#define _IQrsmpy(A,B) _IQ27rsmpy(A,B)
#endif
#if GLOBAL_Q == 26
#define _IQrsmpy(A,B) _IQ26rsmpy(A,B)
#endif
#if GLOBAL_Q == 25
#define _IQrsmpy(A,B) _IQ25rsmpy(A,B)
#endif
#if GLOBAL_Q == 24
#define _IQrsmpy(A,B) _IQ24rsmpy(A,B)
#endif
#if GLOBAL_Q == 23
#define _IQrsmpy(A,B) _IQ23rsmpy(A,B)
#endif
#if GLOBAL_Q == 22
#define _IQrsmpy(A,B) _IQ22rsmpy(A,B)
#endif
#if GLOBAL_Q == 21
#define _IQrsmpy(A,B) _IQ21rsmpy(A,B)
#endif
#if GLOBAL_Q == 20
#define _IQrsmpy(A,B) _IQ20rsmpy(A,B)
#endif
#if GLOBAL_Q == 19
#define _IQrsmpy(A,B) _IQ19rsmpy(A,B)
#endif
#if GLOBAL_Q == 18
#define _IQrsmpy(A,B) _IQ18rsmpy(A,B)
#endif
#if GLOBAL_Q == 17
#define _IQrsmpy(A,B) _IQ17rsmpy(A,B)
#endif
#if GLOBAL_Q == 16
#define _IQrsmpy(A,B) _IQ16rsmpy(A,B)
#endif
#if GLOBAL_Q == 15
#define _IQrsmpy(A,B) _IQ15rsmpy(A,B)
#endif
#if GLOBAL_Q == 14
#define _IQrsmpy(A,B) _IQ14rsmpy(A,B)
#endif
#if GLOBAL_Q == 13
#define _IQrsmpy(A,B) _IQ13rsmpy(A,B)
#endif
#if GLOBAL_Q == 12
#define _IQrsmpy(A,B) _IQ12rsmpy(A,B)
#endif
#if GLOBAL_Q == 11
#define _IQrsmpy(A,B) _IQ11rsmpy(A,B)
#endif
#if GLOBAL_Q == 10
#define _IQrsmpy(A,B) _IQ10rsmpy(A,B)
#endif
#if GLOBAL_Q == 9
#define _IQrsmpy(A,B) _IQ9rsmpy(A,B)
#endif
#if GLOBAL_Q == 8
#define _IQrsmpy(A,B) _IQ8rsmpy(A,B)
#endif
#if GLOBAL_Q == 7
#define _IQrsmpy(A,B) _IQ7rsmpy(A,B)
#endif
#if GLOBAL_Q == 6
#define _IQrsmpy(A,B) _IQ6rsmpy(A,B)
#endif
#if GLOBAL_Q == 5
#define _IQrsmpy(A,B) _IQ5rsmpy(A,B)
#endif
#if GLOBAL_Q == 4
#define _IQrsmpy(A,B) _IQ4rsmpy(A,B)
#endif
#if GLOBAL_Q == 3
#define _IQrsmpy(A,B) _IQ3rsmpy(A,B)
#endif
#if GLOBAL_Q == 2
#define _IQrsmpy(A,B) _IQ2rsmpy(A,B)
#endif
#if GLOBAL_Q == 1
#define _IQrsmpy(A,B) _IQ1rsmpy(A,B)
#endif
//---------------------------------------------------------------------------
extern long _IQ30div(long A, long B);
extern long _IQ29div(long A, long B);
extern long _IQ28div(long A, long B);
extern long _IQ27div(long A, long B);
extern long _IQ26div(long A, long B);
extern long _IQ25div(long A, long B);
extern long _IQ24div(long A, long B);
extern long _IQ23div(long A, long B);
extern long _IQ22div(long A, long B);
extern long _IQ21div(long A, long B);
extern long _IQ20div(long A, long B);
extern long _IQ19div(long A, long B);
extern long _IQ18div(long A, long B);
extern long _IQ17div(long A, long B);
extern long _IQ16div(long A, long B);
extern long _IQ15div(long A, long B);
extern long _IQ14div(long A, long B);
extern long _IQ13div(long A, long B);
extern long _IQ12div(long A, long B);
extern long _IQ11div(long A, long B);
extern long _IQ10div(long A, long B);
extern long _IQ9div(long A, long B);
extern long _IQ8div(long A, long B);
extern long _IQ7div(long A, long B);
extern long _IQ6div(long A, long B);
extern long _IQ5div(long A, long B);
extern long _IQ4div(long A, long B);
extern long _IQ3div(long A, long B);
extern long _IQ2div(long A, long B);
extern long _IQ1div(long A, long B);
#if GLOBAL_Q == 30
#define _IQdiv(A,B) _IQ30div(A,B)
#endif
#if GLOBAL_Q == 29
#define _IQdiv(A,B) _IQ29div(A,B)
#endif
#if GLOBAL_Q == 28
#define _IQdiv(A,B) _IQ28div(A,B)
#endif
#if GLOBAL_Q == 27
#define _IQdiv(A,B) _IQ27div(A,B)
#endif
#if GLOBAL_Q == 26
#define _IQdiv(A,B) _IQ26div(A,B)
#endif
#if GLOBAL_Q == 25
#define _IQdiv(A,B) _IQ25div(A,B)
#endif
#if GLOBAL_Q == 24
#define _IQdiv(A,B) _IQ24div(A,B)
#endif
#if GLOBAL_Q == 23
#define _IQdiv(A,B) _IQ23div(A,B)
#endif
#if GLOBAL_Q == 22
#define _IQdiv(A,B) _IQ22div(A,B)
#endif
#if GLOBAL_Q == 21
#define _IQdiv(A,B) _IQ21div(A,B)
#endif
#if GLOBAL_Q == 20
#define _IQdiv(A,B) _IQ20div(A,B)
#endif
#if GLOBAL_Q == 19
#define _IQdiv(A,B) _IQ19div(A,B)
#endif
#if GLOBAL_Q == 18
#define _IQdiv(A,B) _IQ18div(A,B)
#endif
#if GLOBAL_Q == 17
#define _IQdiv(A,B) _IQ17div(A,B)
#endif
#if GLOBAL_Q == 16
#define _IQdiv(A,B) _IQ16div(A,B)
#endif
#if GLOBAL_Q == 15
#define _IQdiv(A,B) _IQ15div(A,B)
#endif
#if GLOBAL_Q == 14
#define _IQdiv(A,B) _IQ14div(A,B)
#endif
#if GLOBAL_Q == 13
#define _IQdiv(A,B) _IQ13div(A,B)
#endif
#if GLOBAL_Q == 12
#define _IQdiv(A,B) _IQ12div(A,B)
#endif
#if GLOBAL_Q == 11
#define _IQdiv(A,B) _IQ11div(A,B)
#endif
#if GLOBAL_Q == 10
#define _IQdiv(A,B) _IQ10div(A,B)
#endif
#if GLOBAL_Q == 9
#define _IQdiv(A,B) _IQ9div(A,B)
#endif
#if GLOBAL_Q == 8
#define _IQdiv(A,B) _IQ8div(A,B)
#endif
#if GLOBAL_Q == 7
#define _IQdiv(A,B) _IQ7div(A,B)
#endif
#if GLOBAL_Q == 6
#define _IQdiv(A,B) _IQ6div(A,B)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -