IQmathLib.h
上传用户:qingfan3
上传日期:2014-10-27
资源大小:31439k
文件大小:123k
源码类别:

DSP编程

开发平台:

C/C++

  1. //###########################################################################
  2. //
  3. // FILE: IQmathLib.h
  4. //
  5. // TITLE: IQ Math library functions definitions.
  6. //
  7. //###########################################################################
  8. //
  9. // Ver  | dd-mmm-yyyy |  Who  | Description of changes
  10. // =====|=============|=======|==============================================
  11. //  1.3 | 19 Nov 2001 | A. T. | Original Release.
  12. // -----|-------------|-------|----------------------------------------------
  13. //  1.4 | 17 May 2002 | A. T. | Added new functions and support for
  14. //      |             |       | intrinsics IQmpy, IQxmpy, IQsat.
  15. // -----|-------------|-------|----------------------------------------------
  16. //  1.4a| 12 Jun 2002 | A. T. | Fixed problem with _IQ() operation on
  17. //      |             |       | variables.
  18. // -----|-------------|-------|----------------------------------------------
  19. //  1.4b| 18 Jun 2002 | A. T. | Fixed bug with _IQtoIQN() and _IQNtoIQ()
  20. //      |             |       | operations.
  21. // -----|-------------|-------|----------------------------------------------
  22. //  1.4d| 30 Mar 2003 | DA/SD | 1. Added macro parameters in parentheses 
  23. //      |             |       |    in number of places where it matters
  24. //      |             |       | 2. Added macro definition to include header 
  25. //      |             |       |    file multiple times in the program.     
  26. // -----|-------------|-------|----------------------------------------------
  27. //
  28. //###########################################################################
  29. // 
  30. // User needs to configure "MATH_TYPE" and "GLOBAL_Q" values:
  31. //
  32. //---------------------------------------------------------------------------
  33. // Select math type, IQ_MATH or FLOAT_MATH:
  34. //
  35. #ifndef __IQMATHLIB_H_INCLUDED__
  36. #define __IQMATHLIB_H_INCLUDED__
  37. #define   FLOAT_MATH     1
  38. #define   IQ_MATH        0
  39. #ifndef   MATH_TYPE
  40. #define   MATH_TYPE      IQ_MATH
  41. #endif
  42. //---------------------------------------------------------------------------
  43. // Select global Q value and scaling. The Q value is limited to the 
  44. // following range for all functions:
  45. //
  46. //        30 <= GLOBAL_Q <=  1
  47. //
  48. #ifndef   GLOBAL_Q
  49. #define   GLOBAL_Q       24
  50. #endif
  51. //---------------------------------------------------------------------------
  52. // Various Usefull Constant Definitions:
  53. //
  54. #define   QG          GLOBAL_Q
  55. #define   Q30         30
  56. #define   Q29         29
  57. #define   Q28         28
  58. #define   Q27         27
  59. #define   Q26         26
  60. #define   Q25         25
  61. #define   Q24         24
  62. #define   Q23         23
  63. #define   Q22         22
  64. #define   Q21         21
  65. #define   Q20         20
  66. #define   Q19         19
  67. #define   Q18         18
  68. #define   Q17         17
  69. #define   Q16         16
  70. #define   Q15         15
  71. #define   Q14         14
  72. #define   Q13         13
  73. #define   Q12         12
  74. #define   Q11         11
  75. #define   Q10         10
  76. #define   Q9          9
  77. #define   Q8          8
  78. #define   Q7          7
  79. #define   Q6          6
  80. #define   Q5          5
  81. #define   Q4          4
  82. #define   Q3          3
  83. #define   Q2          2
  84. #define   Q1          1
  85. #define   MAX_IQ_POS  2147483647 
  86. #define   MAX_IQ_NEG  -2147483648
  87. #define   MIN_IQ_POS  1
  88. #define   MIN_IQ_NEG  -1
  89. //###########################################################################
  90. #if MATH_TYPE == IQ_MATH
  91. //###########################################################################
  92. // If IQ_MATH is used, the following IQmath library function definitions
  93. // are used:
  94. //===========================================================================
  95. typedef   long    _iq;
  96. typedef   long    _iq30;
  97. typedef   long    _iq29;
  98. typedef   long    _iq28;
  99. typedef   long    _iq27;
  100. typedef   long    _iq26;
  101. typedef   long    _iq25;
  102. typedef   long    _iq24;
  103. typedef   long    _iq23;
  104. typedef   long    _iq22;
  105. typedef   long    _iq21;
  106. typedef   long    _iq20;
  107. typedef   long    _iq19;
  108. typedef   long    _iq18;
  109. typedef   long    _iq17;
  110. typedef   long    _iq16;
  111. typedef   long    _iq15;
  112. typedef   long    _iq14;
  113. typedef   long    _iq13;
  114. typedef   long    _iq12;
  115. typedef   long    _iq11;
  116. typedef   long    _iq10;
  117. typedef   long    _iq9;
  118. typedef   long    _iq8;
  119. typedef   long    _iq7;
  120. typedef   long    _iq6;
  121. typedef   long    _iq5;
  122. typedef   long    _iq4;
  123. typedef   long    _iq3;
  124. typedef   long    _iq2;
  125. typedef   long    _iq1;
  126. //---------------------------------------------------------------------------
  127. #define   _IQ30(A)      (long) ((A) * 1073741824.0L)
  128. #define   _IQ29(A)      (long) ((A) * 536870912.0L)
  129. #define   _IQ28(A)      (long) ((A) * 268435456.0L)
  130. #define   _IQ27(A)      (long) ((A) * 134217728.0L)
  131. #define   _IQ26(A)      (long) ((A) * 67108864.0L)
  132. #define   _IQ25(A)      (long) ((A) * 33554432.0L)
  133. #define   _IQ24(A)      (long) ((A) * 16777216.0L)
  134. #define   _IQ23(A)      (long) ((A) * 8388608.0L)
  135. #define   _IQ22(A)      (long) ((A) * 4194304.0L)
  136. #define   _IQ21(A)      (long) ((A) * 2097152.0L)
  137. #define   _IQ20(A)      (long) ((A) * 1048576.0L)
  138. #define   _IQ19(A)      (long) ((A) * 524288.0L)
  139. #define   _IQ18(A)      (long) ((A) * 262144.0L)
  140. #define   _IQ17(A)      (long) ((A) * 131072.0L)
  141. #define   _IQ16(A)      (long) ((A) * 65536.0L)
  142. #define   _IQ15(A)      (long) ((A) * 32768.0L)
  143. #define   _IQ14(A)      (long) ((A) * 16384.0L)
  144. #define   _IQ13(A)      (long) ((A) * 8192.0L)
  145. #define   _IQ12(A)      (long) ((A) * 4096.0L)
  146. #define   _IQ11(A)      (long) ((A) * 2048.0L)
  147. #define   _IQ10(A)      (long) ((A) * 1024.0L)
  148. #define   _IQ9(A)       (long) ((A) * 512.0L)
  149. #define   _IQ8(A)       (long) ((A) * 256.0L)
  150. #define   _IQ7(A)       (long) ((A) * 128.0L)
  151. #define   _IQ6(A)       (long) ((A) * 64.0L)
  152. #define   _IQ5(A)       (long) ((A) * 32.0L)
  153. #define   _IQ4(A)       (long) ((A) * 16.0L)
  154. #define   _IQ3(A)       (long) ((A) * 8.0L)
  155. #define   _IQ2(A)       (long) ((A) * 4.0L)
  156. #define   _IQ1(A)       (long) ((A) * 2.0L)
  157. #if GLOBAL_Q == 30
  158. #define   _IQ(A)  _IQ30(A)
  159. #endif
  160. #if GLOBAL_Q == 29
  161. #define   _IQ(A)  _IQ29(A)
  162. #endif
  163. #if GLOBAL_Q == 28
  164. #define   _IQ(A)  _IQ28(A)
  165. #endif
  166. #if GLOBAL_Q == 27
  167. #define   _IQ(A)  _IQ27(A)
  168. #endif
  169. #if GLOBAL_Q == 26
  170. #define   _IQ(A)  _IQ26(A)
  171. #endif
  172. #if GLOBAL_Q == 25
  173. #define   _IQ(A)  _IQ25(A)
  174. #endif
  175. #if GLOBAL_Q == 24
  176. #define   _IQ(A)  _IQ24(A)
  177. #endif
  178. #if GLOBAL_Q == 23
  179. #define   _IQ(A)  _IQ23(A)
  180. #endif
  181. #if GLOBAL_Q == 22
  182. #define   _IQ(A)  _IQ22(A)
  183. #endif
  184. #if GLOBAL_Q == 21
  185. #define   _IQ(A)  _IQ21(A)
  186. #endif
  187. #if GLOBAL_Q == 20
  188. #define   _IQ(A)  _IQ20(A)
  189. #endif
  190. #if GLOBAL_Q == 19
  191. #define   _IQ(A)  _IQ19(A)
  192. #endif
  193. #if GLOBAL_Q == 18
  194. #define   _IQ(A)  _IQ18(A)
  195. #endif
  196. #if GLOBAL_Q == 17
  197. #define   _IQ(A)  _IQ17(A)
  198. #endif
  199. #if GLOBAL_Q == 16
  200. #define   _IQ(A)  _IQ16(A)
  201. #endif
  202. #if GLOBAL_Q == 15
  203. #define   _IQ(A)  _IQ15(A)
  204. #endif
  205. #if GLOBAL_Q == 14
  206. #define   _IQ(A)  _IQ14(A)
  207. #endif
  208. #if GLOBAL_Q == 13
  209. #define   _IQ(A)  _IQ13(A)
  210. #endif
  211. #if GLOBAL_Q == 12
  212. #define   _IQ(A)  _IQ12(A)
  213. #endif
  214. #if GLOBAL_Q == 11
  215. #define   _IQ(A)  _IQ11(A)
  216. #endif
  217. #if GLOBAL_Q == 10
  218. #define   _IQ(A)  _IQ10(A)
  219. #endif
  220. #if GLOBAL_Q == 9
  221. #define   _IQ(A)  _IQ9(A)
  222. #endif
  223. #if GLOBAL_Q == 8
  224. #define   _IQ(A)  _IQ8(A)
  225. #endif
  226. #if GLOBAL_Q == 7
  227. #define   _IQ(A)  _IQ7(A)
  228. #endif
  229. #if GLOBAL_Q == 6
  230. #define   _IQ(A)  _IQ6(A)
  231. #endif
  232. #if GLOBAL_Q == 5
  233. #define   _IQ(A)  _IQ5(A)
  234. #endif
  235. #if GLOBAL_Q == 4
  236. #define   _IQ(A)  _IQ4(A)
  237. #endif
  238. #if GLOBAL_Q == 3
  239. #define   _IQ(A)  _IQ3(A)
  240. #endif
  241. #if GLOBAL_Q == 2
  242. #define   _IQ(A)  _IQ2(A)
  243. #endif
  244. #if GLOBAL_Q == 1
  245. #define   _IQ(A)  _IQ1(A)
  246. #endif
  247. //---------------------------------------------------------------------------
  248. extern    float _IQ30toF(long A);
  249. extern    float _IQ29toF(long A);
  250. extern    float _IQ28toF(long A);
  251. extern    float _IQ27toF(long A);
  252. extern    float _IQ26toF(long A);
  253. extern    float _IQ25toF(long A);
  254. extern    float _IQ24toF(long A);
  255. extern    float _IQ23toF(long A);
  256. extern    float _IQ22toF(long A);
  257. extern    float _IQ21toF(long A);
  258. extern    float _IQ20toF(long A);
  259. extern    float _IQ19toF(long A);
  260. extern    float _IQ18toF(long A);
  261. extern    float _IQ17toF(long A);
  262. extern    float _IQ16toF(long A);
  263. extern    float _IQ15toF(long A);
  264. extern    float _IQ14toF(long A);
  265. extern    float _IQ13toF(long A);
  266. extern    float _IQ12toF(long A);
  267. extern    float _IQ11toF(long A);
  268. extern    float _IQ10toF(long A);
  269. extern    float _IQ9toF(long A);
  270. extern    float _IQ8toF(long A);
  271. extern    float _IQ7toF(long A);
  272. extern    float _IQ6toF(long A);
  273. extern    float _IQ5toF(long A);
  274. extern    float _IQ4toF(long A);
  275. extern    float _IQ3toF(long A);
  276. extern    float _IQ2toF(long A);
  277. extern    float _IQ1toF(long A);
  278. #if GLOBAL_Q == 30
  279. #define   _IQtoF(A)  _IQ30toF(A)
  280. #endif
  281. #if GLOBAL_Q == 29
  282. #define   _IQtoF(A)  _IQ29toF(A)
  283. #endif
  284. #if GLOBAL_Q == 28
  285. #define   _IQtoF(A)  _IQ28toF(A)
  286. #endif
  287. #if GLOBAL_Q == 27
  288. #define   _IQtoF(A)  _IQ27toF(A)
  289. #endif
  290. #if GLOBAL_Q == 26
  291. #define   _IQtoF(A)  _IQ26toF(A)
  292. #endif
  293. #if GLOBAL_Q == 25
  294. #define   _IQtoF(A)  _IQ25toF(A)
  295. #endif
  296. #if GLOBAL_Q == 24
  297. #define   _IQtoF(A)  _IQ24toF(A)
  298. #endif
  299. #if GLOBAL_Q == 23
  300. #define   _IQtoF(A)  _IQ23toF(A)
  301. #endif
  302. #if GLOBAL_Q == 22
  303. #define   _IQtoF(A)  _IQ22toF(A)
  304. #endif
  305. #if GLOBAL_Q == 21
  306. #define   _IQtoF(A)  _IQ21toF(A)
  307. #endif
  308. #if GLOBAL_Q == 20
  309. #define   _IQtoF(A)  _IQ20toF(A)
  310. #endif
  311. #if GLOBAL_Q == 19
  312. #define   _IQtoF(A)  _IQ19toF(A)
  313. #endif
  314. #if GLOBAL_Q == 18
  315. #define   _IQtoF(A)  _IQ18toF(A)
  316. #endif
  317. #if GLOBAL_Q == 17
  318. #define   _IQtoF(A)  _IQ17toF(A)
  319. #endif
  320. #if GLOBAL_Q == 16
  321. #define   _IQtoF(A)  _IQ16toF(A)
  322. #endif
  323. #if GLOBAL_Q == 15
  324. #define   _IQtoF(A)  _IQ15toF(A)
  325. #endif
  326. #if GLOBAL_Q == 14
  327. #define   _IQtoF(A)  _IQ14toF(A)
  328. #endif
  329. #if GLOBAL_Q == 13
  330. #define   _IQtoF(A)  _IQ13toF(A)
  331. #endif
  332. #if GLOBAL_Q == 12
  333. #define   _IQtoF(A)  _IQ12toF(A)
  334. #endif
  335. #if GLOBAL_Q == 11
  336. #define   _IQtoF(A)  _IQ11toF(A)
  337. #endif
  338. #if GLOBAL_Q == 10
  339. #define   _IQtoF(A)  _IQ10toF(A)
  340. #endif
  341. #if GLOBAL_Q == 9
  342. #define   _IQtoF(A)  _IQ9toF(A)
  343. #endif
  344. #if GLOBAL_Q == 8
  345. #define   _IQtoF(A)  _IQ8toF(A)
  346. #endif
  347. #if GLOBAL_Q == 7
  348. #define   _IQtoF(A)  _IQ7toF(A)
  349. #endif
  350. #if GLOBAL_Q == 6
  351. #define   _IQtoF(A)  _IQ6toF(A)
  352. #endif
  353. #if GLOBAL_Q == 5
  354. #define   _IQtoF(A)  _IQ5toF(A)
  355. #endif
  356. #if GLOBAL_Q == 4
  357. #define   _IQtoF(A)  _IQ4toF(A)
  358. #endif
  359. #if GLOBAL_Q == 3
  360. #define   _IQtoF(A)  _IQ3toF(A)
  361. #endif
  362. #if GLOBAL_Q == 2
  363. #define   _IQtoF(A)  _IQ2toF(A)
  364. #endif
  365. #if GLOBAL_Q == 1
  366. #define   _IQtoF(A)  _IQ1toF(A)
  367. #endif
  368. //---------------------------------------------------------------------------
  369. #define   _IQsat(A, Pos, Neg)  __IQsat(A, Pos, Neg)
  370. //---------------------------------------------------------------------------
  371. #define   _IQtoIQ30(A)  ((long) (A) << (30 - GLOBAL_Q))
  372. #define   _IQ30toIQ(A)  ((long) (A) >> (30 - GLOBAL_Q))
  373. #define   _IQtoIQ29(A)  ((GLOBAL_Q >= 29) ? ((long) (A) >> (GLOBAL_Q - 29)):((long) (A) << (29 - GLOBAL_Q)))
  374. #define   _IQ29toIQ(A)  ((GLOBAL_Q >= 29) ? ((long) (A) << (GLOBAL_Q - 29)):((long) (A) >> (29 - GLOBAL_Q)))
  375. #define   _IQtoIQ28(A)  ((GLOBAL_Q >= 28) ? ((long) (A) >> (GLOBAL_Q - 28)):((long) (A) << (28 - GLOBAL_Q)))
  376. #define   _IQ28toIQ(A)  ((GLOBAL_Q >= 28) ? ((long) (A) << (GLOBAL_Q - 28)):((long) (A) >> (28 - GLOBAL_Q)))
  377. #define   _IQtoIQ27(A)  ((GLOBAL_Q >= 27) ? ((long) (A) >> (GLOBAL_Q - 27)):((long) (A) << (27 - GLOBAL_Q)))
  378. #define   _IQ27toIQ(A)  ((GLOBAL_Q >= 27) ? ((long) (A) << (GLOBAL_Q - 27)):((long) (A) >> (27 - GLOBAL_Q)))
  379. #define   _IQtoIQ26(A)  ((GLOBAL_Q >= 26) ? ((long) (A) >> (GLOBAL_Q - 26)):((long) (A) << (26 - GLOBAL_Q)))
  380. #define   _IQ26toIQ(A)  ((GLOBAL_Q >= 26) ? ((long) (A) << (GLOBAL_Q - 26)):((long) (A) >> (26 - GLOBAL_Q)))
  381. #define   _IQtoIQ25(A)  ((GLOBAL_Q >= 25) ? ((long) (A) >> (GLOBAL_Q - 25)):((long) (A) << (25 - GLOBAL_Q)))
  382. #define   _IQ25toIQ(A)  ((GLOBAL_Q >= 25) ? ((long) (A) << (GLOBAL_Q - 25)):((long) (A) >> (25 - GLOBAL_Q)))
  383. #define   _IQtoIQ24(A)  ((GLOBAL_Q >= 24) ? ((long) (A) >> (GLOBAL_Q - 24)):((long) (A) << (24 - GLOBAL_Q)))
  384. #define   _IQ24toIQ(A)  ((GLOBAL_Q >= 24) ? ((long) (A) << (GLOBAL_Q - 24)):((long) (A) >> (24 - GLOBAL_Q)))
  385. #define   _IQtoIQ23(A)  ((GLOBAL_Q >= 23) ? ((long) (A) >> (GLOBAL_Q - 23)):((long) (A) << (23 - GLOBAL_Q)))
  386. #define   _IQ23toIQ(A)  ((GLOBAL_Q >= 23) ? ((long) (A) << (GLOBAL_Q - 23)):((long) (A) >> (23 - GLOBAL_Q)))
  387. #define   _IQtoIQ22(A)  ((GLOBAL_Q >= 22) ? ((long) (A) >> (GLOBAL_Q - 22)):((long) (A) << (22 - GLOBAL_Q)))
  388. #define   _IQ22toIQ(A)  ((GLOBAL_Q >= 22) ? ((long) (A) << (GLOBAL_Q - 22)):((long) (A) >> (22 - GLOBAL_Q)))
  389. #define   _IQtoIQ21(A)  ((GLOBAL_Q >= 21) ? ((long) (A) >> (GLOBAL_Q - 21)):((long) (A) << (21 - GLOBAL_Q)))
  390. #define   _IQ21toIQ(A)  ((GLOBAL_Q >= 21) ? ((long) (A) << (GLOBAL_Q - 21)):((long) (A) >> (21 - GLOBAL_Q)))
  391. #define   _IQtoIQ20(A)  ((GLOBAL_Q >= 20) ? ((long) (A) >> (GLOBAL_Q - 20)):((long) (A) << (20 - GLOBAL_Q)))
  392. #define   _IQ20toIQ(A)  ((GLOBAL_Q >= 20) ? ((long) (A) << (GLOBAL_Q - 20)):((long) (A) >> (20 - GLOBAL_Q)))
  393. #define   _IQtoIQ19(A)  ((GLOBAL_Q >= 19) ? ((long) (A) >> (GLOBAL_Q - 19)):((long) (A) << (19 - GLOBAL_Q)))
  394. #define   _IQ19toIQ(A)  ((GLOBAL_Q >= 19) ? ((long) (A) << (GLOBAL_Q - 19)):((long) (A) >> (19 - GLOBAL_Q)))
  395. #define   _IQtoIQ18(A)  ((GLOBAL_Q >= 18) ? ((long) (A) >> (GLOBAL_Q - 18)):((long) (A) << (18 - GLOBAL_Q)))
  396. #define   _IQ18toIQ(A)  ((GLOBAL_Q >= 18) ? ((long) (A) << (GLOBAL_Q - 18)):((long) (A) >> (18 - GLOBAL_Q)))
  397. #define   _IQtoIQ17(A)  ((GLOBAL_Q >= 17) ? ((long) (A) >> (GLOBAL_Q - 17)):((long) (A) << (17 - GLOBAL_Q)))
  398. #define   _IQ17toIQ(A)  ((GLOBAL_Q >= 17) ? ((long) (A) << (GLOBAL_Q - 17)):((long) (A) >> (17 - GLOBAL_Q)))
  399. #define   _IQtoIQ16(A)  ((GLOBAL_Q >= 16) ? ((long) (A) >> (GLOBAL_Q - 16)):((long) (A) << (16 - GLOBAL_Q)))
  400. #define   _IQ16toIQ(A)  ((GLOBAL_Q >= 16) ? ((long) (A) << (GLOBAL_Q - 16)):((long) (A) >> (16 - GLOBAL_Q)))
  401. #define   _IQtoIQ15(A)  ((GLOBAL_Q >= 15) ? ((long) (A) >> (GLOBAL_Q - 15)):((long) (A) << (15 - GLOBAL_Q)))
  402. #define   _IQ15toIQ(A)  ((GLOBAL_Q >= 15) ? ((long) (A) << (GLOBAL_Q - 15)):((long) (A) >> (15 - GLOBAL_Q)))
  403. #define   _IQtoIQ14(A)  ((GLOBAL_Q >= 14) ? ((long) (A) >> (GLOBAL_Q - 14)):((long) (A) << (14 - GLOBAL_Q)))
  404. #define   _IQ14toIQ(A)  ((GLOBAL_Q >= 14) ? ((long) (A) << (GLOBAL_Q - 14)):((long) (A) >> (14 - GLOBAL_Q)))
  405. #define   _IQtoIQ13(A)  ((GLOBAL_Q >= 13) ? ((long) (A) >> (GLOBAL_Q - 13)):((long) (A) << (13 - GLOBAL_Q)))
  406. #define   _IQ13toIQ(A)  ((GLOBAL_Q >= 13) ? ((long) (A) << (GLOBAL_Q - 13)):((long) (A) >> (13 - GLOBAL_Q)))
  407. #define   _IQtoIQ12(A)  ((GLOBAL_Q >= 12) ? ((long) (A) >> (GLOBAL_Q - 12)):((long) (A) << (12 - GLOBAL_Q)))
  408. #define   _IQ12toIQ(A)  ((GLOBAL_Q >= 12) ? ((long) (A) << (GLOBAL_Q - 12)):((long) (A) >> (12 - GLOBAL_Q)))
  409. #define   _IQtoIQ11(A)  ((GLOBAL_Q >= 11) ? ((long) (A) >> (GLOBAL_Q - 11)):((long) (A) << (11 - GLOBAL_Q)))
  410. #define   _IQ11toIQ(A)  ((GLOBAL_Q >= 11) ? ((long) (A) << (GLOBAL_Q - 11)):((long) (A) >> (11 - GLOBAL_Q)))
  411. #define   _IQtoIQ10(A)  ((GLOBAL_Q >= 10) ? ((long) (A) >> (GLOBAL_Q - 10)):((long) (A) << (10 - GLOBAL_Q)))
  412. #define   _IQ10toIQ(A)  ((GLOBAL_Q >= 10) ? ((long) (A) << (GLOBAL_Q - 10)):((long) (A) >> (10 - GLOBAL_Q)))
  413. #define   _IQtoIQ9(A)   ((GLOBAL_Q >= 9) ? ((long) (A) >> (GLOBAL_Q - 9)):((long) (A) << (9 - GLOBAL_Q)))
  414. #define   _IQ9toIQ(A)   ((GLOBAL_Q >= 9) ? ((long) (A) << (GLOBAL_Q - 9)):((long) (A) >> (9 - GLOBAL_Q)))
  415. #define   _IQtoIQ8(A)   ((GLOBAL_Q >= 8) ? ((long) (A) >> (GLOBAL_Q - 8)):((long) (A) << (8 - GLOBAL_Q)))
  416. #define   _IQ8toIQ(A)   ((GLOBAL_Q >= 8) ? ((long) (A) << (GLOBAL_Q - 8)):((long) (A) >> (8 - GLOBAL_Q)))
  417. #define   _IQtoIQ7(A)   ((GLOBAL_Q >= 7) ? ((long) (A) >> (GLOBAL_Q - 7)):((long) (A) << (7 - GLOBAL_Q)))
  418. #define   _IQ7toIQ(A)   ((GLOBAL_Q >= 7) ? ((long) (A) << (GLOBAL_Q - 7)):((long) (A) >> (7 - GLOBAL_Q)))
  419. #define   _IQtoIQ6(A)   ((GLOBAL_Q >= 6) ? ((long) (A) >> (GLOBAL_Q - 6)):((long) (A) << (6 - GLOBAL_Q)))
  420. #define   _IQ6toIQ(A)   ((GLOBAL_Q >= 6) ? ((long) (A) << (GLOBAL_Q - 6)):((long) (A) >> (6 - GLOBAL_Q)))
  421. #define   _IQtoIQ5(A)   ((GLOBAL_Q >= 5) ? ((long) (A) >> (GLOBAL_Q - 5)):((long) (A) << (5 - GLOBAL_Q)))
  422. #define   _IQ5toIQ(A)   ((GLOBAL_Q >= 5) ? ((long) (A) << (GLOBAL_Q - 5)):((long) (A) >> (5 - GLOBAL_Q)))
  423. #define   _IQtoIQ4(A)   ((GLOBAL_Q >= 4) ? ((long) (A) >> (GLOBAL_Q - 4)):((long) (A) << (4 - GLOBAL_Q)))
  424. #define   _IQ4toIQ(A)   ((GLOBAL_Q >= 4) ? ((long) (A) << (GLOBAL_Q - 4)):((long) (A) >> (4 - GLOBAL_Q)))
  425. #define   _IQtoIQ3(A)   ((GLOBAL_Q >= 3) ? ((long) (A) >> (GLOBAL_Q - 3)):((long) (A) << (3 - GLOBAL_Q)))
  426. #define   _IQ3toIQ(A)   ((GLOBAL_Q >= 3) ? ((long) (A) << (GLOBAL_Q - 3)):((long) (A) >> (3 - GLOBAL_Q)))
  427. #define   _IQtoIQ2(A)   ((GLOBAL_Q >= 2) ? ((long) (A) >> (GLOBAL_Q - 2)):((long) (A) << (2 - GLOBAL_Q)))
  428. #define   _IQ2toIQ(A)   ((GLOBAL_Q >= 2) ? ((long) (A) << (GLOBAL_Q - 2)):((long) (A) >> (2 - GLOBAL_Q)))
  429. #define   _IQtoIQ1(A)   ((long) (A) >> (GLOBAL_Q - 1))
  430. #define   _IQ1toIQ(A)   ((long) (A) << (GLOBAL_Q - 1))
  431. //---------------------------------------------------------------------------
  432. #define   _IQtoQ15(A)   ((GLOBAL_Q >= 15) ? ((long) (A) >> (GLOBAL_Q - 15)):((long) (A) << (15 - GLOBAL_Q)))
  433. #define   _Q15toIQ(A)   ((GLOBAL_Q >= 15) ? ((long) (A) << (GLOBAL_Q - 15)):((long) (A) >> (15 - GLOBAL_Q)))
  434. #define   _IQtoQ14(A)   ((GLOBAL_Q >= 14) ? ((long) (A) >> (GLOBAL_Q - 14)):((long) (A) << (14 - GLOBAL_Q)))
  435. #define   _Q14toIQ(A)   ((GLOBAL_Q >= 14) ? ((long) (A) << (GLOBAL_Q - 14)):((long) (A) >> (14 - GLOBAL_Q)))
  436. #define   _IQtoQ13(A)   ((GLOBAL_Q >= 13) ? ((long) (A) >> (GLOBAL_Q - 13)):((long) (A) << (13 - GLOBAL_Q)))
  437. #define   _Q13toIQ(A)   ((GLOBAL_Q >= 13) ? ((long) (A) << (GLOBAL_Q - 13)):((long) (A) >> (13 - GLOBAL_Q)))
  438. #define   _IQtoQ12(A)   ((GLOBAL_Q >= 12) ? ((long) (A) >> (GLOBAL_Q - 12)):((long) (A) << (12 - GLOBAL_Q)))
  439. #define   _Q12toIQ(A)   ((GLOBAL_Q >= 12) ? ((long) (A) << (GLOBAL_Q - 12)):((long) (A) >> (12 - GLOBAL_Q)))
  440. #define   _IQtoQ11(A)   ((GLOBAL_Q >= 11) ? ((long) (A) >> (GLOBAL_Q - 11)):((long) (A) << (11 - GLOBAL_Q)))
  441. #define   _Q11toIQ(A)   ((GLOBAL_Q >= 11) ? ((long) (A) << (GLOBAL_Q - 11)):((long) (A) >> (11 - GLOBAL_Q)))
  442. #define   _IQtoQ10(A)   ((GLOBAL_Q >= 10) ? ((long) (A) >> (GLOBAL_Q - 10)):((long) (A) << (10 - GLOBAL_Q)))
  443. #define   _Q10toIQ(A)   ((GLOBAL_Q >= 10) ? ((long) (A) << (GLOBAL_Q - 10)):((long) (A) >> (10 - GLOBAL_Q)))
  444. #define   _IQtoQ9(A)    ((GLOBAL_Q >= 9) ? ((long) (A) >> (GLOBAL_Q - 9)):((long) (A) << (9 - GLOBAL_Q)))
  445. #define   _Q9toIQ(A)    ((GLOBAL_Q >= 9) ? ((long) (A) << (GLOBAL_Q - 9)):((long) (A) >> (9 - GLOBAL_Q)))
  446. #define   _IQtoQ8(A)    ((GLOBAL_Q >= 8) ? ((long) (A) >> (GLOBAL_Q - 8)):((long) (A) << (8 - GLOBAL_Q)))
  447. #define   _Q8toIQ(A)    ((GLOBAL_Q >= 8) ? ((long) (A) << (GLOBAL_Q - 8)):((long) (A) >> (8 - GLOBAL_Q)))
  448. #define   _IQtoQ7(A)    ((GLOBAL_Q >= 7) ? ((long) (A) >> (GLOBAL_Q - 7)):((long) (A) << (7 - GLOBAL_Q)))
  449. #define   _Q7toIQ(A)    ((GLOBAL_Q >= 7) ? ((long) (A) << (GLOBAL_Q - 7)):((long) (A) >> (7 - GLOBAL_Q)))
  450. #define   _IQtoQ6(A)    ((GLOBAL_Q >= 6) ? ((long) (A) >> (GLOBAL_Q - 6)):((long) (A) << (6 - GLOBAL_Q)))
  451. #define   _Q6toIQ(A)    ((GLOBAL_Q >= 6) ? ((long) (A) << (GLOBAL_Q - 6)):((long) (A) >> (6 - GLOBAL_Q)))
  452. #define   _IQtoQ5(A)    ((GLOBAL_Q >= 5) ? ((long) (A) >> (GLOBAL_Q - 5)):((long) (A) << (5 - GLOBAL_Q)))
  453. #define   _Q5toIQ(A)    ((GLOBAL_Q >= 5) ? ((long) (A) << (GLOBAL_Q - 5)):((long) (A) >> (5 - GLOBAL_Q)))
  454. #define   _IQtoQ5(A)    ((GLOBAL_Q >= 5) ? ((long) (A) >> (GLOBAL_Q - 5)):((long) (A) << (5 - GLOBAL_Q)))
  455. #define   _Q5toIQ(A)    ((GLOBAL_Q >= 5) ? ((long) (A) << (GLOBAL_Q - 5)):((long) (A) >> (5 - GLOBAL_Q)))
  456. #define   _IQtoQ4(A)    ((GLOBAL_Q >= 4) ? ((long) (A) >> (GLOBAL_Q - 4)):((long) (A) << (4 - GLOBAL_Q)))
  457. #define   _Q4toIQ(A)    ((GLOBAL_Q >= 4) ? ((long) (A) << (GLOBAL_Q - 4)):((long) (A) >> (4 - GLOBAL_Q)))
  458. #define   _IQtoQ3(A)    ((GLOBAL_Q >= 3) ? ((long) (A) >> (GLOBAL_Q - 3)):((long) (A) << (3 - GLOBAL_Q)))
  459. #define   _Q3toIQ(A)    ((GLOBAL_Q >= 3) ? ((long) (A) << (GLOBAL_Q - 3)):((long) (A) >> (3 - GLOBAL_Q)))
  460. #define   _IQtoQ2(A)    ((GLOBAL_Q >= 2) ? ((long) (A) >> (GLOBAL_Q - 2)):((long) (A) << (2 - GLOBAL_Q)))
  461. #define   _Q2toIQ(A)    ((GLOBAL_Q >= 2) ? ((long) (A) << (GLOBAL_Q - 2)):((long) (A) >> (2 - GLOBAL_Q)))
  462. #define   _IQtoQ1(A)    ((GLOBAL_Q >= 1) ? ((long) (A) >> (GLOBAL_Q - 1)):((long) (A) << (1 - GLOBAL_Q)))
  463. #define   _Q1toIQ(A)    ((GLOBAL_Q >= 1) ? ((long) (A) << (GLOBAL_Q - 1)):((long) (A) >> (1 - GLOBAL_Q)))
  464. //---------------------------------------------------------------------------
  465. #define   _IQmpy(A,B)    __IQmpy(A,B,GLOBAL_Q)
  466. #define   _IQ30mpy(A,B)  __IQmpy(A,B,30)
  467. #define   _IQ29mpy(A,B)  __IQmpy(A,B,29)
  468. #define   _IQ28mpy(A,B)  __IQmpy(A,B,28)
  469. #define   _IQ27mpy(A,B)  __IQmpy(A,B,27)
  470. #define   _IQ26mpy(A,B)  __IQmpy(A,B,26)
  471. #define   _IQ25mpy(A,B)  __IQmpy(A,B,25)
  472. #define   _IQ24mpy(A,B)  __IQmpy(A,B,24)
  473. #define   _IQ23mpy(A,B)  __IQmpy(A,B,23)
  474. #define   _IQ22mpy(A,B)  __IQmpy(A,B,22)
  475. #define   _IQ21mpy(A,B)  __IQmpy(A,B,21)
  476. #define   _IQ20mpy(A,B)  __IQmpy(A,B,20)
  477. #define   _IQ19mpy(A,B)  __IQmpy(A,B,19)
  478. #define   _IQ18mpy(A,B)  __IQmpy(A,B,18)
  479. #define   _IQ17mpy(A,B)  __IQmpy(A,B,17)
  480. #define   _IQ16mpy(A,B)  __IQmpy(A,B,16)
  481. #define   _IQ15mpy(A,B)  __IQmpy(A,B,15)
  482. #define   _IQ14mpy(A,B)  __IQmpy(A,B,14)
  483. #define   _IQ13mpy(A,B)  __IQmpy(A,B,13)
  484. #define   _IQ12mpy(A,B)  __IQmpy(A,B,12)
  485. #define   _IQ11mpy(A,B)  __IQmpy(A,B,11)
  486. #define   _IQ10mpy(A,B)  __IQmpy(A,B,10)
  487. #define   _IQ9mpy(A,B)   __IQmpy(A,B,9)
  488. #define   _IQ8mpy(A,B)   __IQmpy(A,B,8)
  489. #define   _IQ7mpy(A,B)   __IQmpy(A,B,7)
  490. #define   _IQ6mpy(A,B)   __IQmpy(A,B,6)
  491. #define   _IQ5mpy(A,B)   __IQmpy(A,B,5)
  492. #define   _IQ4mpy(A,B)   __IQmpy(A,B,4)
  493. #define   _IQ3mpy(A,B)   __IQmpy(A,B,3)
  494. #define   _IQ2mpy(A,B)   __IQmpy(A,B,2)
  495. #define   _IQ1mpy(A,B)   __IQmpy(A,B,1)
  496. //---------------------------------------------------------------------------
  497. extern    long _IQ30rmpy(long A, long B);
  498. extern    long _IQ29rmpy(long A, long B);
  499. extern    long _IQ28rmpy(long A, long B);
  500. extern    long _IQ27rmpy(long A, long B);
  501. extern    long _IQ26rmpy(long A, long B);
  502. extern    long _IQ25rmpy(long A, long B);
  503. extern    long _IQ24rmpy(long A, long B);
  504. extern    long _IQ23rmpy(long A, long B);
  505. extern    long _IQ22rmpy(long A, long B);
  506. extern    long _IQ21rmpy(long A, long B);
  507. extern    long _IQ20rmpy(long A, long B);
  508. extern    long _IQ19rmpy(long A, long B);
  509. extern    long _IQ18rmpy(long A, long B);
  510. extern    long _IQ17rmpy(long A, long B);
  511. extern    long _IQ16rmpy(long A, long B);
  512. extern    long _IQ15rmpy(long A, long B);
  513. extern    long _IQ14rmpy(long A, long B);
  514. extern    long _IQ13rmpy(long A, long B);
  515. extern    long _IQ12rmpy(long A, long B);
  516. extern    long _IQ11rmpy(long A, long B);
  517. extern    long _IQ10rmpy(long A, long B);
  518. extern    long _IQ9rmpy(long A, long B);
  519. extern    long _IQ8rmpy(long A, long B);
  520. extern    long _IQ7rmpy(long A, long B);
  521. extern    long _IQ6rmpy(long A, long B);
  522. extern    long _IQ5rmpy(long A, long B);
  523. extern    long _IQ4rmpy(long A, long B);
  524. extern    long _IQ3rmpy(long A, long B);
  525. extern    long _IQ2rmpy(long A, long B);
  526. extern    long _IQ1rmpy(long A, long B);
  527. #if GLOBAL_Q == 30
  528. #define   _IQrmpy(A,B)  _IQ30rmpy(A,B)
  529. #endif
  530. #if GLOBAL_Q == 29
  531. #define   _IQrmpy(A,B)  _IQ29rmpy(A,B)
  532. #endif
  533. #if GLOBAL_Q == 28
  534. #define   _IQrmpy(A,B)  _IQ28rmpy(A,B)
  535. #endif
  536. #if GLOBAL_Q == 27
  537. #define   _IQrmpy(A,B)  _IQ27rmpy(A,B)
  538. #endif
  539. #if GLOBAL_Q == 26
  540. #define   _IQrmpy(A,B)  _IQ26rmpy(A,B)
  541. #endif
  542. #if GLOBAL_Q == 25
  543. #define   _IQrmpy(A,B)  _IQ25rmpy(A,B)
  544. #endif
  545. #if GLOBAL_Q == 24
  546. #define   _IQrmpy(A,B)  _IQ24rmpy(A,B)
  547. #endif
  548. #if GLOBAL_Q == 23
  549. #define   _IQrmpy(A,B)  _IQ23rmpy(A,B)
  550. #endif
  551. #if GLOBAL_Q == 22
  552. #define   _IQrmpy(A,B)  _IQ22rmpy(A,B)
  553. #endif
  554. #if GLOBAL_Q == 21
  555. #define   _IQrmpy(A,B)  _IQ21rmpy(A,B)
  556. #endif
  557. #if GLOBAL_Q == 20
  558. #define   _IQrmpy(A,B)  _IQ20rmpy(A,B)
  559. #endif
  560. #if GLOBAL_Q == 19
  561. #define   _IQrmpy(A,B)  _IQ19rmpy(A,B)
  562. #endif
  563. #if GLOBAL_Q == 18
  564. #define   _IQrmpy(A,B)  _IQ18rmpy(A,B)
  565. #endif
  566. #if GLOBAL_Q == 17
  567. #define   _IQrmpy(A,B)  _IQ17rmpy(A,B)
  568. #endif
  569. #if GLOBAL_Q == 16
  570. #define   _IQrmpy(A,B)  _IQ16rmpy(A,B)
  571. #endif
  572. #if GLOBAL_Q == 15
  573. #define   _IQrmpy(A,B)  _IQ15rmpy(A,B)
  574. #endif
  575. #if GLOBAL_Q == 14
  576. #define   _IQrmpy(A,B)  _IQ14rmpy(A,B)
  577. #endif
  578. #if GLOBAL_Q == 13
  579. #define   _IQrmpy(A,B)  _IQ13rmpy(A,B)
  580. #endif
  581. #if GLOBAL_Q == 12
  582. #define   _IQrmpy(A,B)  _IQ12rmpy(A,B)
  583. #endif
  584. #if GLOBAL_Q == 11
  585. #define   _IQrmpy(A,B)  _IQ11rmpy(A,B)
  586. #endif
  587. #if GLOBAL_Q == 10
  588. #define   _IQrmpy(A,B)  _IQ10rmpy(A,B)
  589. #endif
  590. #if GLOBAL_Q == 9
  591. #define   _IQrmpy(A,B)  _IQ9rmpy(A,B)
  592. #endif
  593. #if GLOBAL_Q == 8
  594. #define   _IQrmpy(A,B)  _IQ8rmpy(A,B)
  595. #endif
  596. #if GLOBAL_Q == 7
  597. #define   _IQrmpy(A,B)  _IQ7rmpy(A,B)
  598. #endif
  599. #if GLOBAL_Q == 6
  600. #define   _IQrmpy(A,B)  _IQ6rmpy(A,B)
  601. #endif
  602. #if GLOBAL_Q == 5
  603. #define   _IQrmpy(A,B)  _IQ5rmpy(A,B)
  604. #endif
  605. #if GLOBAL_Q == 4
  606. #define   _IQrmpy(A,B)  _IQ4rmpy(A,B)
  607. #endif
  608. #if GLOBAL_Q == 3
  609. #define   _IQrmpy(A,B)  _IQ3rmpy(A,B)
  610. #endif
  611. #if GLOBAL_Q == 2
  612. #define   _IQrmpy(A,B)  _IQ2rmpy(A,B)
  613. #endif
  614. #if GLOBAL_Q == 1
  615. #define   _IQrmpy(A,B)  _IQ1rmpy(A,B)
  616. #endif
  617. //---------------------------------------------------------------------------
  618. extern    long _IQ30rsmpy(long A, long B);
  619. extern    long _IQ29rsmpy(long A, long B);
  620. extern    long _IQ28rsmpy(long A, long B);
  621. extern    long _IQ27rsmpy(long A, long B);
  622. extern    long _IQ26rsmpy(long A, long B);
  623. extern    long _IQ25rsmpy(long A, long B);
  624. extern    long _IQ24rsmpy(long A, long B);
  625. extern    long _IQ23rsmpy(long A, long B);
  626. extern    long _IQ22rsmpy(long A, long B);
  627. extern    long _IQ21rsmpy(long A, long B);
  628. extern    long _IQ20rsmpy(long A, long B);
  629. extern    long _IQ19rsmpy(long A, long B);
  630. extern    long _IQ18rsmpy(long A, long B);
  631. extern    long _IQ17rsmpy(long A, long B);
  632. extern    long _IQ16rsmpy(long A, long B);
  633. extern    long _IQ15rsmpy(long A, long B);
  634. extern    long _IQ14rsmpy(long A, long B);
  635. extern    long _IQ13rsmpy(long A, long B);
  636. extern    long _IQ12rsmpy(long A, long B);
  637. extern    long _IQ11rsmpy(long A, long B);
  638. extern    long _IQ10rsmpy(long A, long B);
  639. extern    long _IQ9rsmpy(long A, long B);
  640. extern    long _IQ8rsmpy(long A, long B);
  641. extern    long _IQ7rsmpy(long A, long B);
  642. extern    long _IQ6rsmpy(long A, long B);
  643. extern    long _IQ5rsmpy(long A, long B);
  644. extern    long _IQ4rsmpy(long A, long B);
  645. extern    long _IQ3rsmpy(long A, long B);
  646. extern    long _IQ2rsmpy(long A, long B);
  647. extern    long _IQ1rsmpy(long A, long B);
  648. #if GLOBAL_Q == 30
  649. #define   _IQrsmpy(A,B)  _IQ30rsmpy(A,B)
  650. #endif
  651. #if GLOBAL_Q == 29
  652. #define   _IQrsmpy(A,B)  _IQ29rsmpy(A,B)
  653. #endif
  654. #if GLOBAL_Q == 28
  655. #define   _IQrsmpy(A,B)  _IQ28rsmpy(A,B)
  656. #endif
  657. #if GLOBAL_Q == 27
  658. #define   _IQrsmpy(A,B)  _IQ27rsmpy(A,B)
  659. #endif
  660. #if GLOBAL_Q == 26
  661. #define   _IQrsmpy(A,B)  _IQ26rsmpy(A,B)
  662. #endif
  663. #if GLOBAL_Q == 25
  664. #define   _IQrsmpy(A,B)  _IQ25rsmpy(A,B)
  665. #endif
  666. #if GLOBAL_Q == 24
  667. #define   _IQrsmpy(A,B)  _IQ24rsmpy(A,B)
  668. #endif
  669. #if GLOBAL_Q == 23
  670. #define   _IQrsmpy(A,B)  _IQ23rsmpy(A,B)
  671. #endif
  672. #if GLOBAL_Q == 22
  673. #define   _IQrsmpy(A,B)  _IQ22rsmpy(A,B)
  674. #endif
  675. #if GLOBAL_Q == 21
  676. #define   _IQrsmpy(A,B)  _IQ21rsmpy(A,B)
  677. #endif
  678. #if GLOBAL_Q == 20
  679. #define   _IQrsmpy(A,B)  _IQ20rsmpy(A,B)
  680. #endif
  681. #if GLOBAL_Q == 19
  682. #define   _IQrsmpy(A,B)  _IQ19rsmpy(A,B)
  683. #endif
  684. #if GLOBAL_Q == 18
  685. #define   _IQrsmpy(A,B)  _IQ18rsmpy(A,B)
  686. #endif
  687. #if GLOBAL_Q == 17
  688. #define   _IQrsmpy(A,B)  _IQ17rsmpy(A,B)
  689. #endif
  690. #if GLOBAL_Q == 16
  691. #define   _IQrsmpy(A,B)  _IQ16rsmpy(A,B)
  692. #endif
  693. #if GLOBAL_Q == 15
  694. #define   _IQrsmpy(A,B)  _IQ15rsmpy(A,B)
  695. #endif
  696. #if GLOBAL_Q == 14
  697. #define   _IQrsmpy(A,B)  _IQ14rsmpy(A,B)
  698. #endif
  699. #if GLOBAL_Q == 13
  700. #define   _IQrsmpy(A,B)  _IQ13rsmpy(A,B)
  701. #endif
  702. #if GLOBAL_Q == 12
  703. #define   _IQrsmpy(A,B)  _IQ12rsmpy(A,B)
  704. #endif
  705. #if GLOBAL_Q == 11
  706. #define   _IQrsmpy(A,B)  _IQ11rsmpy(A,B)
  707. #endif
  708. #if GLOBAL_Q == 10
  709. #define   _IQrsmpy(A,B)  _IQ10rsmpy(A,B)
  710. #endif
  711. #if GLOBAL_Q == 9
  712. #define   _IQrsmpy(A,B)  _IQ9rsmpy(A,B)
  713. #endif
  714. #if GLOBAL_Q == 8
  715. #define   _IQrsmpy(A,B)  _IQ8rsmpy(A,B)
  716. #endif
  717. #if GLOBAL_Q == 7
  718. #define   _IQrsmpy(A,B)  _IQ7rsmpy(A,B)
  719. #endif
  720. #if GLOBAL_Q == 6
  721. #define   _IQrsmpy(A,B)  _IQ6rsmpy(A,B)
  722. #endif
  723. #if GLOBAL_Q == 5
  724. #define   _IQrsmpy(A,B)  _IQ5rsmpy(A,B)
  725. #endif
  726. #if GLOBAL_Q == 4
  727. #define   _IQrsmpy(A,B)  _IQ4rsmpy(A,B)
  728. #endif
  729. #if GLOBAL_Q == 3
  730. #define   _IQrsmpy(A,B)  _IQ3rsmpy(A,B)
  731. #endif
  732. #if GLOBAL_Q == 2
  733. #define   _IQrsmpy(A,B)  _IQ2rsmpy(A,B)
  734. #endif
  735. #if GLOBAL_Q == 1
  736. #define   _IQrsmpy(A,B)  _IQ1rsmpy(A,B)
  737. #endif
  738. //---------------------------------------------------------------------------
  739. extern    long _IQ30div(long A, long B);
  740. extern    long _IQ29div(long A, long B);
  741. extern    long _IQ28div(long A, long B);
  742. extern    long _IQ27div(long A, long B);
  743. extern    long _IQ26div(long A, long B);
  744. extern    long _IQ25div(long A, long B);
  745. extern    long _IQ24div(long A, long B);
  746. extern    long _IQ23div(long A, long B);
  747. extern    long _IQ22div(long A, long B);
  748. extern    long _IQ21div(long A, long B);
  749. extern    long _IQ20div(long A, long B);
  750. extern    long _IQ19div(long A, long B);
  751. extern    long _IQ18div(long A, long B);
  752. extern    long _IQ17div(long A, long B);
  753. extern    long _IQ16div(long A, long B);
  754. extern    long _IQ15div(long A, long B);
  755. extern    long _IQ14div(long A, long B);
  756. extern    long _IQ13div(long A, long B);
  757. extern    long _IQ12div(long A, long B);
  758. extern    long _IQ11div(long A, long B);
  759. extern    long _IQ10div(long A, long B);
  760. extern    long _IQ9div(long A, long B);
  761. extern    long _IQ8div(long A, long B);
  762. extern    long _IQ7div(long A, long B);
  763. extern    long _IQ6div(long A, long B);
  764. extern    long _IQ5div(long A, long B);
  765. extern    long _IQ4div(long A, long B);
  766. extern    long _IQ3div(long A, long B);
  767. extern    long _IQ2div(long A, long B);
  768. extern    long _IQ1div(long A, long B);
  769. #if GLOBAL_Q == 30
  770. #define   _IQdiv(A,B)  _IQ30div(A,B)
  771. #endif
  772. #if GLOBAL_Q == 29
  773. #define   _IQdiv(A,B)  _IQ29div(A,B)
  774. #endif
  775. #if GLOBAL_Q == 28
  776. #define   _IQdiv(A,B)  _IQ28div(A,B)
  777. #endif
  778. #if GLOBAL_Q == 27
  779. #define   _IQdiv(A,B)  _IQ27div(A,B)
  780. #endif
  781. #if GLOBAL_Q == 26
  782. #define   _IQdiv(A,B)  _IQ26div(A,B)
  783. #endif
  784. #if GLOBAL_Q == 25
  785. #define   _IQdiv(A,B)  _IQ25div(A,B)
  786. #endif
  787. #if GLOBAL_Q == 24
  788. #define   _IQdiv(A,B)  _IQ24div(A,B)
  789. #endif
  790. #if GLOBAL_Q == 23
  791. #define   _IQdiv(A,B)  _IQ23div(A,B)
  792. #endif
  793. #if GLOBAL_Q == 22
  794. #define   _IQdiv(A,B)  _IQ22div(A,B)
  795. #endif
  796. #if GLOBAL_Q == 21
  797. #define   _IQdiv(A,B)  _IQ21div(A,B)
  798. #endif
  799. #if GLOBAL_Q == 20
  800. #define   _IQdiv(A,B)  _IQ20div(A,B)
  801. #endif
  802. #if GLOBAL_Q == 19
  803. #define   _IQdiv(A,B)  _IQ19div(A,B)
  804. #endif
  805. #if GLOBAL_Q == 18
  806. #define   _IQdiv(A,B)  _IQ18div(A,B)
  807. #endif
  808. #if GLOBAL_Q == 17
  809. #define   _IQdiv(A,B)  _IQ17div(A,B)
  810. #endif
  811. #if GLOBAL_Q == 16
  812. #define   _IQdiv(A,B)  _IQ16div(A,B)
  813. #endif
  814. #if GLOBAL_Q == 15
  815. #define   _IQdiv(A,B)  _IQ15div(A,B)
  816. #endif
  817. #if GLOBAL_Q == 14
  818. #define   _IQdiv(A,B)  _IQ14div(A,B)
  819. #endif
  820. #if GLOBAL_Q == 13
  821. #define   _IQdiv(A,B)  _IQ13div(A,B)
  822. #endif
  823. #if GLOBAL_Q == 12
  824. #define   _IQdiv(A,B)  _IQ12div(A,B)
  825. #endif
  826. #if GLOBAL_Q == 11
  827. #define   _IQdiv(A,B)  _IQ11div(A,B)
  828. #endif
  829. #if GLOBAL_Q == 10
  830. #define   _IQdiv(A,B)  _IQ10div(A,B)
  831. #endif
  832. #if GLOBAL_Q == 9
  833. #define   _IQdiv(A,B)  _IQ9div(A,B)
  834. #endif
  835. #if GLOBAL_Q == 8
  836. #define   _IQdiv(A,B)  _IQ8div(A,B)
  837. #endif
  838. #if GLOBAL_Q == 7
  839. #define   _IQdiv(A,B)  _IQ7div(A,B)
  840. #endif
  841. #if GLOBAL_Q == 6
  842. #define   _IQdiv(A,B)  _IQ6div(A,B)
  843. #endif
  844. #if GLOBAL_Q == 5
  845. #define   _IQdiv(A,B)  _IQ5div(A,B)
  846. #endif
  847. #if GLOBAL_Q == 4
  848. #define   _IQdiv(A,B)  _IQ4div(A,B)
  849. #endif
  850. #if GLOBAL_Q == 3
  851. #define   _IQdiv(A,B)  _IQ3div(A,B)
  852. #endif
  853. #if GLOBAL_Q == 2
  854. #define   _IQdiv(A,B)  _IQ2div(A,B)
  855. #endif
  856. #if GLOBAL_Q == 1
  857. #define   _IQdiv(A,B)  _IQ1div(A,B)
  858. #endif
  859. //---------------------------------------------------------------------------
  860. extern    long _IQ30sin(long A);
  861. extern    long _IQ29sin(long A);
  862. extern    long _IQ28sin(long A);
  863. extern    long _IQ27sin(long A);
  864. extern    long _IQ26sin(long A);
  865. extern    long _IQ25sin(long A);
  866. extern    long _IQ24sin(long A);
  867. extern    long _IQ23sin(long A);
  868. extern    long _IQ22sin(long A);
  869. extern    long _IQ21sin(long A);
  870. extern    long _IQ20sin(long A);
  871. extern    long _IQ19sin(long A);
  872. extern    long _IQ18sin(long A);
  873. extern    long _IQ17sin(long A);
  874. extern    long _IQ16sin(long A);
  875. extern    long _IQ15sin(long A);
  876. extern    long _IQ14sin(long A);
  877. extern    long _IQ13sin(long A);
  878. extern    long _IQ12sin(long A);
  879. extern    long _IQ11sin(long A);
  880. extern    long _IQ10sin(long A);
  881. extern    long _IQ9sin(long A);
  882. extern    long _IQ8sin(long A);
  883. extern    long _IQ7sin(long A);
  884. extern    long _IQ6sin(long A);
  885. extern    long _IQ5sin(long A);
  886. extern    long _IQ4sin(long A);
  887. extern    long _IQ3sin(long A);
  888. extern    long _IQ2sin(long A);
  889. extern    long _IQ1sin(long A);
  890. #if GLOBAL_Q == 30
  891. #define   _IQsin(A)  _IQ30sin(A)
  892. #endif
  893. #if GLOBAL_Q == 29
  894. #define   _IQsin(A)  _IQ29sin(A)
  895. #endif
  896. #if GLOBAL_Q == 28
  897. #define   _IQsin(A)  _IQ28sin(A)
  898. #endif
  899. #if GLOBAL_Q == 27
  900. #define   _IQsin(A)  _IQ27sin(A)
  901. #endif
  902. #if GLOBAL_Q == 26
  903. #define   _IQsin(A)  _IQ26sin(A)
  904. #endif
  905. #if GLOBAL_Q == 25
  906. #define   _IQsin(A)  _IQ25sin(A)
  907. #endif
  908. #if GLOBAL_Q == 24
  909. #define   _IQsin(A)  _IQ24sin(A)
  910. #endif
  911. #if GLOBAL_Q == 23
  912. #define   _IQsin(A)  _IQ23sin(A)
  913. #endif
  914. #if GLOBAL_Q == 22
  915. #define   _IQsin(A)  _IQ22sin(A)
  916. #endif
  917. #if GLOBAL_Q == 21
  918. #define   _IQsin(A)  _IQ21sin(A)
  919. #endif
  920. #if GLOBAL_Q == 20
  921. #define   _IQsin(A)  _IQ20sin(A)
  922. #endif
  923. #if GLOBAL_Q == 19
  924. #define   _IQsin(A)  _IQ19sin(A)
  925. #endif
  926. #if GLOBAL_Q == 18
  927. #define   _IQsin(A)  _IQ18sin(A)
  928. #endif
  929. #if GLOBAL_Q == 17
  930. #define   _IQsin(A)  _IQ17sin(A)
  931. #endif
  932. #if GLOBAL_Q == 16
  933. #define   _IQsin(A)  _IQ16sin(A)
  934. #endif
  935. #if GLOBAL_Q == 15
  936. #define   _IQsin(A)  _IQ15sin(A)
  937. #endif
  938. #if GLOBAL_Q == 14
  939. #define   _IQsin(A)  _IQ14sin(A)
  940. #endif
  941. #if GLOBAL_Q == 13
  942. #define   _IQsin(A)  _IQ13sin(A)
  943. #endif
  944. #if GLOBAL_Q == 12
  945. #define   _IQsin(A)  _IQ12sin(A)
  946. #endif
  947. #if GLOBAL_Q == 11
  948. #define   _IQsin(A)  _IQ11sin(A)
  949. #endif
  950. #if GLOBAL_Q == 10
  951. #define   _IQsin(A)  _IQ10sin(A)
  952. #endif
  953. #if GLOBAL_Q == 9
  954. #define   _IQsin(A)  _IQ9sin(A)
  955. #endif
  956. #if GLOBAL_Q == 8
  957. #define   _IQsin(A)  _IQ8sin(A)
  958. #endif
  959. #if GLOBAL_Q == 7
  960. #define   _IQsin(A)  _IQ7sin(A)
  961. #endif
  962. #if GLOBAL_Q == 6
  963. #define   _IQsin(A)  _IQ6sin(A)
  964. #endif
  965. #if GLOBAL_Q == 5
  966. #define   _IQsin(A)  _IQ5sin(A)
  967. #endif
  968. #if GLOBAL_Q == 4
  969. #define   _IQsin(A)  _IQ4sin(A)
  970. #endif
  971. #if GLOBAL_Q == 3
  972. #define   _IQsin(A)  _IQ3sin(A)
  973. #endif
  974. #if GLOBAL_Q == 2
  975. #define   _IQsin(A)  _IQ2sin(A)
  976. #endif
  977. #if GLOBAL_Q == 1
  978. #define   _IQsin(A)  _IQ1sin(A)
  979. #endif
  980. //---------------------------------------------------------------------------
  981. extern    long _IQ30sinPU(long A);
  982. extern    long _IQ29sinPU(long A);
  983. extern    long _IQ28sinPU(long A);
  984. extern    long _IQ27sinPU(long A);
  985. extern    long _IQ26sinPU(long A);
  986. extern    long _IQ25sinPU(long A);
  987. extern    long _IQ24sinPU(long A);
  988. extern    long _IQ23sinPU(long A);
  989. extern    long _IQ22sinPU(long A);
  990. extern    long _IQ21sinPU(long A);
  991. extern    long _IQ20sinPU(long A);
  992. extern    long _IQ19sinPU(long A);
  993. extern    long _IQ18sinPU(long A);
  994. extern    long _IQ17sinPU(long A);
  995. extern    long _IQ16sinPU(long A);
  996. extern    long _IQ15sinPU(long A);
  997. extern    long _IQ14sinPU(long A);
  998. extern    long _IQ13sinPU(long A);
  999. extern    long _IQ12sinPU(long A);
  1000. extern    long _IQ11sinPU(long A);
  1001. extern    long _IQ10sinPU(long A);
  1002. extern    long _IQ9sinPU(long A);
  1003. extern    long _IQ8sinPU(long A);
  1004. extern    long _IQ7sinPU(long A);
  1005. extern    long _IQ6sinPU(long A);
  1006. extern    long _IQ5sinPU(long A);
  1007. extern    long _IQ4sinPU(long A);
  1008. extern    long _IQ3sinPU(long A);
  1009. extern    long _IQ2sinPU(long A);
  1010. extern    long _IQ1sinPU(long A);
  1011. #if GLOBAL_Q == 30
  1012. #define   _IQsinPU(A)  _IQ30sinPU(A)
  1013. #endif
  1014. #if GLOBAL_Q == 29
  1015. #define   _IQsinPU(A)  _IQ29sinPU(A)
  1016. #endif
  1017. #if GLOBAL_Q == 28
  1018. #define   _IQsinPU(A)  _IQ28sinPU(A)
  1019. #endif
  1020. #if GLOBAL_Q == 27
  1021. #define   _IQsinPU(A)  _IQ27sinPU(A)
  1022. #endif
  1023. #if GLOBAL_Q == 26
  1024. #define   _IQsinPU(A)  _IQ26sinPU(A)
  1025. #endif
  1026. #if GLOBAL_Q == 25
  1027. #define   _IQsinPU(A)  _IQ25sinPU(A)
  1028. #endif
  1029. #if GLOBAL_Q == 24
  1030. #define   _IQsinPU(A)  _IQ24sinPU(A)
  1031. #endif
  1032. #if GLOBAL_Q == 23
  1033. #define   _IQsinPU(A)  _IQ23sinPU(A)
  1034. #endif
  1035. #if GLOBAL_Q == 22
  1036. #define   _IQsinPU(A)  _IQ22sinPU(A)
  1037. #endif
  1038. #if GLOBAL_Q == 21
  1039. #define   _IQsinPU(A)  _IQ21sinPU(A)
  1040. #endif
  1041. #if GLOBAL_Q == 20
  1042. #define   _IQsinPU(A)  _IQ20sinPU(A)
  1043. #endif
  1044. #if GLOBAL_Q == 19
  1045. #define   _IQsinPU(A)  _IQ19sinPU(A)
  1046. #endif
  1047. #if GLOBAL_Q == 18
  1048. #define   _IQsinPU(A)  _IQ18sinPU(A)
  1049. #endif
  1050. #if GLOBAL_Q == 17
  1051. #define   _IQsinPU(A)  _IQ17sinPU(A)
  1052. #endif
  1053. #if GLOBAL_Q == 16
  1054. #define   _IQsinPU(A)  _IQ16sinPU(A)
  1055. #endif
  1056. #if GLOBAL_Q == 15
  1057. #define   _IQsinPU(A)  _IQ15sinPU(A)
  1058. #endif
  1059. #if GLOBAL_Q == 14
  1060. #define   _IQsinPU(A)  _IQ14sinPU(A)
  1061. #endif
  1062. #if GLOBAL_Q == 13
  1063. #define   _IQsinPU(A)  _IQ13sinPU(A)
  1064. #endif
  1065. #if GLOBAL_Q == 12
  1066. #define   _IQsinPU(A)  _IQ12sinPU(A)
  1067. #endif
  1068. #if GLOBAL_Q == 11
  1069. #define   _IQsinPU(A)  _IQ11sinPU(A)
  1070. #endif
  1071. #if GLOBAL_Q == 10
  1072. #define   _IQsinPU(A)  _IQ10sinPU(A)
  1073. #endif
  1074. #if GLOBAL_Q == 9
  1075. #define   _IQsinPU(A)  _IQ9sinPU(A)
  1076. #endif
  1077. #if GLOBAL_Q == 8
  1078. #define   _IQsinPU(A)  _IQ8sinPU(A)
  1079. #endif
  1080. #if GLOBAL_Q == 7
  1081. #define   _IQsinPU(A)  _IQ7sinPU(A)
  1082. #endif
  1083. #if GLOBAL_Q == 6
  1084. #define   _IQsinPU(A)  _IQ6sinPU(A)
  1085. #endif
  1086. #if GLOBAL_Q == 5
  1087. #define   _IQsinPU(A)  _IQ5sinPU(A)
  1088. #endif
  1089. #if GLOBAL_Q == 4
  1090. #define   _IQsinPU(A)  _IQ4sinPU(A)
  1091. #endif
  1092. #if GLOBAL_Q == 3
  1093. #define   _IQsinPU(A)  _IQ3sinPU(A)
  1094. #endif
  1095. #if GLOBAL_Q == 2
  1096. #define   _IQsinPU(A)  _IQ2sinPU(A)
  1097. #endif
  1098. #if GLOBAL_Q == 1
  1099. #define   _IQsinPU(A)  _IQ1sinPU(A)
  1100. #endif
  1101. //---------------------------------------------------------------------------
  1102. extern    long _IQ30cos(long A);
  1103. extern    long _IQ29cos(long A);
  1104. extern    long _IQ28cos(long A);
  1105. extern    long _IQ27cos(long A);
  1106. extern    long _IQ26cos(long A);
  1107. extern    long _IQ25cos(long A);
  1108. extern    long _IQ24cos(long A);
  1109. extern    long _IQ23cos(long A);
  1110. extern    long _IQ22cos(long A);
  1111. extern    long _IQ21cos(long A);
  1112. extern    long _IQ20cos(long A);
  1113. extern    long _IQ19cos(long A);
  1114. extern    long _IQ18cos(long A);
  1115. extern    long _IQ17cos(long A);
  1116. extern    long _IQ16cos(long A);
  1117. extern    long _IQ15cos(long A);
  1118. extern    long _IQ14cos(long A);
  1119. extern    long _IQ13cos(long A);
  1120. extern    long _IQ12cos(long A);
  1121. extern    long _IQ11cos(long A);
  1122. extern    long _IQ10cos(long A);
  1123. extern    long _IQ9cos(long A);
  1124. extern    long _IQ8cos(long A);
  1125. extern    long _IQ7cos(long A);
  1126. extern    long _IQ6cos(long A);
  1127. extern    long _IQ5cos(long A);
  1128. extern    long _IQ4cos(long A);
  1129. extern    long _IQ3cos(long A);
  1130. extern    long _IQ2cos(long A);
  1131. extern    long _IQ1cos(long A);
  1132. #if GLOBAL_Q == 30
  1133. #define   _IQcos(A)  _IQ30cos(A)
  1134. #endif
  1135. #if GLOBAL_Q == 29
  1136. #define   _IQcos(A)  _IQ29cos(A)
  1137. #endif
  1138. #if GLOBAL_Q == 28
  1139. #define   _IQcos(A)  _IQ28cos(A)
  1140. #endif
  1141. #if GLOBAL_Q == 27
  1142. #define   _IQcos(A)  _IQ27cos(A)
  1143. #endif
  1144. #if GLOBAL_Q == 26
  1145. #define   _IQcos(A)  _IQ26cos(A)
  1146. #endif
  1147. #if GLOBAL_Q == 25
  1148. #define   _IQcos(A)  _IQ25cos(A)
  1149. #endif
  1150. #if GLOBAL_Q == 24
  1151. #define   _IQcos(A)  _IQ24cos(A)
  1152. #endif
  1153. #if GLOBAL_Q == 23
  1154. #define   _IQcos(A)  _IQ23cos(A)
  1155. #endif
  1156. #if GLOBAL_Q == 22
  1157. #define   _IQcos(A)  _IQ22cos(A)
  1158. #endif
  1159. #if GLOBAL_Q == 21
  1160. #define   _IQcos(A)  _IQ21cos(A)
  1161. #endif
  1162. #if GLOBAL_Q == 20
  1163. #define   _IQcos(A)  _IQ20cos(A)
  1164. #endif
  1165. #if GLOBAL_Q == 19
  1166. #define   _IQcos(A)  _IQ19cos(A)
  1167. #endif
  1168. #if GLOBAL_Q == 18
  1169. #define   _IQcos(A)  _IQ18cos(A)
  1170. #endif
  1171. #if GLOBAL_Q == 17
  1172. #define   _IQcos(A)  _IQ17cos(A)
  1173. #endif
  1174. #if GLOBAL_Q == 16
  1175. #define   _IQcos(A)  _IQ16cos(A)
  1176. #endif
  1177. #if GLOBAL_Q == 15
  1178. #define   _IQcos(A)  _IQ15cos(A)
  1179. #endif
  1180. #if GLOBAL_Q == 14
  1181. #define   _IQcos(A)  _IQ14cos(A)
  1182. #endif
  1183. #if GLOBAL_Q == 13
  1184. #define   _IQcos(A)  _IQ13cos(A)
  1185. #endif
  1186. #if GLOBAL_Q == 12
  1187. #define   _IQcos(A)  _IQ12cos(A)
  1188. #endif
  1189. #if GLOBAL_Q == 11
  1190. #define   _IQcos(A)  _IQ11cos(A)
  1191. #endif
  1192. #if GLOBAL_Q == 10
  1193. #define   _IQcos(A)  _IQ10cos(A)
  1194. #endif
  1195. #if GLOBAL_Q == 9
  1196. #define   _IQcos(A)  _IQ9cos(A)
  1197. #endif
  1198. #if GLOBAL_Q == 8
  1199. #define   _IQcos(A)  _IQ8cos(A)
  1200. #endif
  1201. #if GLOBAL_Q == 7
  1202. #define   _IQcos(A)  _IQ7cos(A)
  1203. #endif
  1204. #if GLOBAL_Q == 6
  1205. #define   _IQcos(A)  _IQ6cos(A)
  1206. #endif
  1207. #if GLOBAL_Q == 5
  1208. #define   _IQcos(A)  _IQ5cos(A)
  1209. #endif
  1210. #if GLOBAL_Q == 4
  1211. #define   _IQcos(A)  _IQ4cos(A)
  1212. #endif
  1213. #if GLOBAL_Q == 3
  1214. #define   _IQcos(A)  _IQ3cos(A)
  1215. #endif
  1216. #if GLOBAL_Q == 2
  1217. #define   _IQcos(A)  _IQ2cos(A)
  1218. #endif
  1219. #if GLOBAL_Q == 1
  1220. #define   _IQcos(A)  _IQ1cos(A)
  1221. #endif
  1222. //---------------------------------------------------------------------------
  1223. extern    long _IQ30cosPU(long A);
  1224. extern    long _IQ29cosPU(long A);
  1225. extern    long _IQ28cosPU(long A);
  1226. extern    long _IQ27cosPU(long A);
  1227. extern    long _IQ26cosPU(long A);
  1228. extern    long _IQ25cosPU(long A);
  1229. extern    long _IQ24cosPU(long A);
  1230. extern    long _IQ23cosPU(long A);
  1231. extern    long _IQ22cosPU(long A);
  1232. extern    long _IQ21cosPU(long A);
  1233. extern    long _IQ20cosPU(long A);
  1234. extern    long _IQ19cosPU(long A);
  1235. extern    long _IQ18cosPU(long A);
  1236. extern    long _IQ17cosPU(long A);
  1237. extern    long _IQ16cosPU(long A);
  1238. extern    long _IQ15cosPU(long A);
  1239. extern    long _IQ14cosPU(long A);
  1240. extern    long _IQ13cosPU(long A);
  1241. extern    long _IQ12cosPU(long A);
  1242. extern    long _IQ11cosPU(long A);
  1243. extern    long _IQ10cosPU(long A);
  1244. extern    long _IQ9cosPU(long A);
  1245. extern    long _IQ8cosPU(long A);
  1246. extern    long _IQ7cosPU(long A);
  1247. extern    long _IQ6cosPU(long A);
  1248. extern    long _IQ5cosPU(long A);
  1249. extern    long _IQ4cosPU(long A);
  1250. extern    long _IQ3cosPU(long A);
  1251. extern    long _IQ2cosPU(long A);
  1252. extern    long _IQ1cosPU(long A);
  1253. #if GLOBAL_Q == 30
  1254. #define   _IQcosPU(A)  _IQ30cosPU(A)
  1255. #endif
  1256. #if GLOBAL_Q == 29
  1257. #define   _IQcosPU(A)  _IQ29cosPU(A)
  1258. #endif
  1259. #if GLOBAL_Q == 28
  1260. #define   _IQcosPU(A)  _IQ28cosPU(A)
  1261. #endif
  1262. #if GLOBAL_Q == 27
  1263. #define   _IQcosPU(A)  _IQ27cosPU(A)
  1264. #endif
  1265. #if GLOBAL_Q == 26
  1266. #define   _IQcosPU(A)  _IQ26cosPU(A)
  1267. #endif
  1268. #if GLOBAL_Q == 25
  1269. #define   _IQcosPU(A)  _IQ25cosPU(A)
  1270. #endif
  1271. #if GLOBAL_Q == 24
  1272. #define   _IQcosPU(A)  _IQ24cosPU(A)
  1273. #endif
  1274. #if GLOBAL_Q == 23
  1275. #define   _IQcosPU(A)  _IQ23cosPU(A)
  1276. #endif
  1277. #if GLOBAL_Q == 22
  1278. #define   _IQcosPU(A)  _IQ22cosPU(A)
  1279. #endif
  1280. #if GLOBAL_Q == 21
  1281. #define   _IQcosPU(A)  _IQ21cosPU(A)
  1282. #endif
  1283. #if GLOBAL_Q == 20
  1284. #define   _IQcosPU(A)  _IQ20cosPU(A)
  1285. #endif
  1286. #if GLOBAL_Q == 19
  1287. #define   _IQcosPU(A)  _IQ19cosPU(A)
  1288. #endif
  1289. #if GLOBAL_Q == 18
  1290. #define   _IQcosPU(A)  _IQ18cosPU(A)
  1291. #endif
  1292. #if GLOBAL_Q == 17
  1293. #define   _IQcosPU(A)  _IQ17cosPU(A)
  1294. #endif
  1295. #if GLOBAL_Q == 16
  1296. #define   _IQcosPU(A)  _IQ16cosPU(A)
  1297. #endif
  1298. #if GLOBAL_Q == 15
  1299. #define   _IQcosPU(A)  _IQ15cosPU(A)
  1300. #endif
  1301. #if GLOBAL_Q == 14
  1302. #define   _IQcosPU(A)  _IQ14cosPU(A)
  1303. #endif
  1304. #if GLOBAL_Q == 13
  1305. #define   _IQcosPU(A)  _IQ13cosPU(A)
  1306. #endif
  1307. #if GLOBAL_Q == 12
  1308. #define   _IQcosPU(A)  _IQ12cosPU(A)
  1309. #endif
  1310. #if GLOBAL_Q == 11
  1311. #define   _IQcosPU(A)  _IQ11cosPU(A)
  1312. #endif
  1313. #if GLOBAL_Q == 10
  1314. #define   _IQcosPU(A)  _IQ10cosPU(A)
  1315. #endif
  1316. #if GLOBAL_Q == 9
  1317. #define   _IQcosPU(A)  _IQ9cosPU(A)
  1318. #endif
  1319. #if GLOBAL_Q == 8
  1320. #define   _IQcosPU(A)  _IQ8cosPU(A)
  1321. #endif
  1322. #if GLOBAL_Q == 7
  1323. #define   _IQcosPU(A)  _IQ7cosPU(A)
  1324. #endif
  1325. #if GLOBAL_Q == 6
  1326. #define   _IQcosPU(A)  _IQ6cosPU(A)
  1327. #endif
  1328. #if GLOBAL_Q == 5
  1329. #define   _IQcosPU(A)  _IQ5cosPU(A)
  1330. #endif
  1331. #if GLOBAL_Q == 4
  1332. #define   _IQcosPU(A)  _IQ4cosPU(A)
  1333. #endif
  1334. #if GLOBAL_Q == 3
  1335. #define   _IQcosPU(A)  _IQ3cosPU(A)
  1336. #endif
  1337. #if GLOBAL_Q == 2
  1338. #define   _IQcosPU(A)  _IQ2cosPU(A)
  1339. #endif
  1340. #if GLOBAL_Q == 1
  1341. #define   _IQcosPU(A)  _IQ1cosPU(A)
  1342. #endif
  1343. //---------------------------------------------------------------------------
  1344. extern    long _IQ30atan2(long A, long B);
  1345. extern    long _IQ29atan2(long A, long B);
  1346. extern    long _IQ28atan2(long A, long B);
  1347. extern    long _IQ27atan2(long A, long B);
  1348. extern    long _IQ26atan2(long A, long B);
  1349. extern    long _IQ25atan2(long A, long B);
  1350. extern    long _IQ24atan2(long A, long B);
  1351. extern    long _IQ23atan2(long A, long B);
  1352. extern    long _IQ22atan2(long A, long B);
  1353. extern    long _IQ21atan2(long A, long B);
  1354. extern    long _IQ20atan2(long A, long B);
  1355. extern    long _IQ19atan2(long A, long B);
  1356. extern    long _IQ18atan2(long A, long B);
  1357. extern    long _IQ17atan2(long A, long B);
  1358. extern    long _IQ16atan2(long A, long B);
  1359. extern    long _IQ15atan2(long A, long B);
  1360. extern    long _IQ14atan2(long A, long B);
  1361. extern    long _IQ13atan2(long A, long B);
  1362. extern    long _IQ12atan2(long A, long B);
  1363. extern    long _IQ11atan2(long A, long B);
  1364. extern    long _IQ10atan2(long A, long B);
  1365. extern    long _IQ9atan2(long A, long B);
  1366. extern    long _IQ8atan2(long A, long B);
  1367. extern    long _IQ7atan2(long A, long B);
  1368. extern    long _IQ6atan2(long A, long B);
  1369. extern    long _IQ5atan2(long A, long B);
  1370. extern    long _IQ4atan2(long A, long B);
  1371. extern    long _IQ3atan2(long A, long B);
  1372. extern    long _IQ2atan2(long A, long B);
  1373. extern    long _IQ1atan2(long A, long B);
  1374. #if GLOBAL_Q == 30
  1375. #define   _IQatan2(A,B)  _IQ30atan2(A,B)
  1376. #endif
  1377. #if GLOBAL_Q == 29
  1378. #define   _IQatan2(A,B)  _IQ29atan2(A,B)
  1379. #endif
  1380. #if GLOBAL_Q == 28
  1381. #define   _IQatan2(A,B)  _IQ28atan2(A,B)
  1382. #endif
  1383. #if GLOBAL_Q == 27
  1384. #define   _IQatan2(A,B)  _IQ27atan2(A,B)
  1385. #endif
  1386. #if GLOBAL_Q == 26
  1387. #define   _IQatan2(A,B)  _IQ26atan2(A,B)
  1388. #endif
  1389. #if GLOBAL_Q == 25
  1390. #define   _IQatan2(A,B)  _IQ25atan2(A,B)
  1391. #endif
  1392. #if GLOBAL_Q == 24
  1393. #define   _IQatan2(A,B)  _IQ24atan2(A,B)
  1394. #endif
  1395. #if GLOBAL_Q == 23
  1396. #define   _IQatan2(A,B)  _IQ23atan2(A,B)
  1397. #endif
  1398. #if GLOBAL_Q == 22
  1399. #define   _IQatan2(A,B)  _IQ22atan2(A,B)
  1400. #endif
  1401. #if GLOBAL_Q == 21
  1402. #define   _IQatan2(A,B)  _IQ21atan2(A,B)
  1403. #endif
  1404. #if GLOBAL_Q == 20
  1405. #define   _IQatan2(A,B)  _IQ20atan2(A,B)
  1406. #endif
  1407. #if GLOBAL_Q == 19
  1408. #define   _IQatan2(A,B)  _IQ19atan2(A,B)
  1409. #endif
  1410. #if GLOBAL_Q == 18
  1411. #define   _IQatan2(A,B)  _IQ18atan2(A,B)
  1412. #endif
  1413. #if GLOBAL_Q == 17
  1414. #define   _IQatan2(A,B)  _IQ17atan2(A,B)
  1415. #endif
  1416. #if GLOBAL_Q == 16
  1417. #define   _IQatan2(A,B)  _IQ16atan2(A,B)
  1418. #endif
  1419. #if GLOBAL_Q == 15
  1420. #define   _IQatan2(A,B)  _IQ15atan2(A,B)
  1421. #endif
  1422. #if GLOBAL_Q == 14
  1423. #define   _IQatan2(A,B)  _IQ14atan2(A,B)
  1424. #endif
  1425. #if GLOBAL_Q == 13
  1426. #define   _IQatan2(A,B)  _IQ13atan2(A,B)
  1427. #endif
  1428. #if GLOBAL_Q == 12
  1429. #define   _IQatan2(A,B)  _IQ12atan2(A,B)
  1430. #endif
  1431. #if GLOBAL_Q == 11
  1432. #define   _IQatan2(A,B)  _IQ11atan2(A,B)
  1433. #endif
  1434. #if GLOBAL_Q == 10
  1435. #define   _IQatan2(A,B)  _IQ10atan2(A,B)
  1436. #endif
  1437. #if GLOBAL_Q == 9
  1438. #define   _IQatan2(A,B)  _IQ9atan2(A,B)
  1439. #endif
  1440. #if GLOBAL_Q == 8
  1441. #define   _IQatan2(A,B)  _IQ8atan2(A,B)
  1442. #endif
  1443. #if GLOBAL_Q == 7
  1444. #define   _IQatan2(A,B)  _IQ7atan2(A,B)
  1445. #endif
  1446. #if GLOBAL_Q == 6
  1447. #define   _IQatan2(A,B)  _IQ6atan2(A,B)
  1448. #endif
  1449. #if GLOBAL_Q == 5
  1450. #define   _IQatan2(A,B)  _IQ5atan2(A,B)
  1451. #endif
  1452. #if GLOBAL_Q == 4
  1453. #define   _IQatan2(A,B)  _IQ4atan2(A,B)
  1454. #endif
  1455. #if GLOBAL_Q == 3
  1456. #define   _IQatan2(A,B)  _IQ3atan2(A,B)
  1457. #endif
  1458. #if GLOBAL_Q == 2
  1459. #define   _IQatan2(A,B)  _IQ2atan2(A,B)
  1460. #endif
  1461. #if GLOBAL_Q == 1
  1462. #define   _IQatan2(A,B)  _IQ1atan2(A,B)
  1463. #endif
  1464. //---------------------------------------------------------------------------
  1465. extern    long _IQ30atan2PU(long A, long B);
  1466. extern    long _IQ29atan2PU(long A, long B);
  1467. extern    long _IQ28atan2PU(long A, long B);
  1468. extern    long _IQ27atan2PU(long A, long B);
  1469. extern    long _IQ26atan2PU(long A, long B);
  1470. extern    long _IQ25atan2PU(long A, long B);
  1471. extern    long _IQ24atan2PU(long A, long B);
  1472. extern    long _IQ23atan2PU(long A, long B);
  1473. extern    long _IQ22atan2PU(long A, long B);
  1474. extern    long _IQ21atan2PU(long A, long B);
  1475. extern    long _IQ20atan2PU(long A, long B);
  1476. extern    long _IQ19atan2PU(long A, long B);
  1477. extern    long _IQ18atan2PU(long A, long B);
  1478. extern    long _IQ17atan2PU(long A, long B);
  1479. extern    long _IQ16atan2PU(long A, long B);
  1480. extern    long _IQ15atan2PU(long A, long B);
  1481. extern    long _IQ14atan2PU(long A, long B);
  1482. extern    long _IQ13atan2PU(long A, long B);
  1483. extern    long _IQ12atan2PU(long A, long B);
  1484. extern    long _IQ11atan2PU(long A, long B);
  1485. extern    long _IQ10atan2PU(long A, long B);
  1486. extern    long _IQ9atan2PU(long A, long B);
  1487. extern    long _IQ8atan2PU(long A, long B);
  1488. extern    long _IQ7atan2PU(long A, long B);
  1489. extern    long _IQ6atan2PU(long A, long B);
  1490. extern    long _IQ5atan2PU(long A, long B);
  1491. extern    long _IQ4atan2PU(long A, long B);
  1492. extern    long _IQ3atan2PU(long A, long B);
  1493. extern    long _IQ2atan2PU(long A, long B);
  1494. extern    long _IQ1atan2PU(long A, long B);
  1495. #if GLOBAL_Q == 30
  1496. #define   _IQatan2PU(A,B)  _IQ30atan2PU(A,B)
  1497. #endif
  1498. #if GLOBAL_Q == 29
  1499. #define   _IQatan2PU(A,B)  _IQ29atan2PU(A,B)
  1500. #endif
  1501. #if GLOBAL_Q == 28
  1502. #define   _IQatan2PU(A,B)  _IQ28atan2PU(A,B)
  1503. #endif
  1504. #if GLOBAL_Q == 27
  1505. #define   _IQatan2PU(A,B)  _IQ27atan2PU(A,B)
  1506. #endif
  1507. #if GLOBAL_Q == 26
  1508. #define   _IQatan2PU(A,B)  _IQ26atan2PU(A,B)
  1509. #endif
  1510. #if GLOBAL_Q == 25
  1511. #define   _IQatan2PU(A,B)  _IQ25atan2PU(A,B)
  1512. #endif
  1513. #if GLOBAL_Q == 24
  1514. #define   _IQatan2PU(A,B)  _IQ24atan2PU(A,B)
  1515. #endif
  1516. #if GLOBAL_Q == 23
  1517. #define   _IQatan2PU(A,B)  _IQ23atan2PU(A,B)
  1518. #endif
  1519. #if GLOBAL_Q == 22
  1520. #define   _IQatan2PU(A,B)  _IQ22atan2PU(A,B)
  1521. #endif
  1522. #if GLOBAL_Q == 21
  1523. #define   _IQatan2PU(A,B)  _IQ21atan2PU(A,B)
  1524. #endif
  1525. #if GLOBAL_Q == 20
  1526. #define   _IQatan2PU(A,B)  _IQ20atan2PU(A,B)
  1527. #endif
  1528. #if GLOBAL_Q == 19
  1529. #define   _IQatan2PU(A,B)  _IQ19atan2PU(A,B)
  1530. #endif
  1531. #if GLOBAL_Q == 18
  1532. #define   _IQatan2PU(A,B)  _IQ18atan2PU(A,B)
  1533. #endif
  1534. #if GLOBAL_Q == 17
  1535. #define   _IQatan2PU(A,B)  _IQ17atan2PU(A,B)
  1536. #endif
  1537. #if GLOBAL_Q == 16
  1538. #define   _IQatan2PU(A,B)  _IQ16atan2PU(A,B)
  1539. #endif
  1540. #if GLOBAL_Q == 15
  1541. #define   _IQatan2PU(A,B)  _IQ15atan2PU(A,B)
  1542. #endif
  1543. #if GLOBAL_Q == 14
  1544. #define   _IQatan2PU(A,B)  _IQ14atan2PU(A,B)
  1545. #endif
  1546. #if GLOBAL_Q == 13
  1547. #define   _IQatan2PU(A,B)  _IQ13atan2PU(A,B)
  1548. #endif
  1549. #if GLOBAL_Q == 12
  1550. #define   _IQatan2PU(A,B)  _IQ12atan2PU(A,B)
  1551. #endif
  1552. #if GLOBAL_Q == 11
  1553. #define   _IQatan2PU(A,B)  _IQ11atan2PU(A,B)
  1554. #endif
  1555. #if GLOBAL_Q == 10
  1556. #define   _IQatan2PU(A,B)  _IQ10atan2PU(A,B)
  1557. #endif
  1558. #if GLOBAL_Q == 9
  1559. #define   _IQatan2PU(A,B)  _IQ9atan2PU(A,B)
  1560. #endif
  1561. #if GLOBAL_Q == 8
  1562. #define   _IQatan2PU(A,B)  _IQ8atan2PU(A,B)
  1563. #endif
  1564. #if GLOBAL_Q == 7
  1565. #define   _IQatan2PU(A,B)  _IQ7atan2PU(A,B)
  1566. #endif
  1567. #if GLOBAL_Q == 6
  1568. #define   _IQatan2PU(A,B)  _IQ6atan2PU(A,B)
  1569. #endif
  1570. #if GLOBAL_Q == 5
  1571. #define   _IQatan2PU(A,B)  _IQ5atan2PU(A,B)
  1572. #endif
  1573. #if GLOBAL_Q == 4
  1574. #define   _IQatan2PU(A,B)  _IQ4atan2PU(A,B)
  1575. #endif
  1576. #if GLOBAL_Q == 3
  1577. #define   _IQatan2PU(A,B)  _IQ3atan2PU(A,B)
  1578. #endif
  1579. #if GLOBAL_Q == 2
  1580. #define   _IQatan2PU(A,B)  _IQ2atan2PU(A,B)
  1581. #endif
  1582. #if GLOBAL_Q == 1
  1583. #define   _IQatan2PU(A,B)  _IQ1atan2PU(A,B)
  1584. #endif
  1585. //---------------------------------------------------------------------------
  1586. #if GLOBAL_Q == 30
  1587. #define   _IQatan(A)  _IQ30atan2(A,_IQ(1.0))
  1588. #endif
  1589. #if GLOBAL_Q == 29
  1590. #define   _IQatan(A)  _IQ29atan2(A,_IQ(1.0))
  1591. #endif
  1592. #if GLOBAL_Q == 28
  1593. #define   _IQatan(A)  _IQ28atan2(A,_IQ(1.0))
  1594. #endif
  1595. #if GLOBAL_Q == 27
  1596. #define   _IQatan(A)  _IQ27atan2(A,_IQ(1.0))
  1597. #endif
  1598. #if GLOBAL_Q == 26
  1599. #define   _IQatan(A)  _IQ26atan2(A,_IQ(1.0))
  1600. #endif
  1601. #if GLOBAL_Q == 25
  1602. #define   _IQatan(A)  _IQ25atan2(A,_IQ(1.0))
  1603. #endif
  1604. #if GLOBAL_Q == 24
  1605. #define   _IQatan(A)  _IQ24atan2(A,_IQ(1.0))
  1606. #endif
  1607. #if GLOBAL_Q == 23
  1608. #define   _IQatan(A)  _IQ23atan2(A,_IQ(1.0))
  1609. #endif
  1610. #if GLOBAL_Q == 22
  1611. #define   _IQatan(A)  _IQ22atan2(A,_IQ(1.0))
  1612. #endif
  1613. #if GLOBAL_Q == 21
  1614. #define   _IQatan(A)  _IQ21atan2(A,_IQ(1.0))
  1615. #endif
  1616. #if GLOBAL_Q == 20
  1617. #define   _IQatan(A)  _IQ20atan2(A,_IQ(1.0))
  1618. #endif
  1619. #if GLOBAL_Q == 19
  1620. #define   _IQatan(A)  _IQ19atan2(A,_IQ(1.0))
  1621. #endif
  1622. #if GLOBAL_Q == 18
  1623. #define   _IQatan(A)  _IQ18atan2(A,_IQ(1.0))
  1624. #endif
  1625. #if GLOBAL_Q == 17
  1626. #define   _IQatan(A)  _IQ17atan2(A,_IQ(1.0))
  1627. #endif
  1628. #if GLOBAL_Q == 16
  1629. #define   _IQatan(A)  _IQ16atan2(A,_IQ(1.0))
  1630. #endif
  1631. #if GLOBAL_Q == 15
  1632. #define   _IQatan(A)  _IQ15atan2(A,_IQ(1.0))
  1633. #endif
  1634. #if GLOBAL_Q == 14
  1635. #define   _IQatan(A)  _IQ14atan2(A,_IQ(1.0))
  1636. #endif
  1637. #if GLOBAL_Q == 13
  1638. #define   _IQatan(A)  _IQ13atan2(A,_IQ(1.0))
  1639. #endif
  1640. #if GLOBAL_Q == 12
  1641. #define   _IQatan(A)  _IQ12atan2(A,_IQ(1.0))
  1642. #endif
  1643. #if GLOBAL_Q == 11
  1644. #define   _IQatan(A)  _IQ11atan2(A,_IQ(1.0))
  1645. #endif
  1646. #if GLOBAL_Q == 10
  1647. #define   _IQatan(A)  _IQ10atan2(A,_IQ(1.0))
  1648. #endif
  1649. #if GLOBAL_Q == 9
  1650. #define   _IQatan(A)  _IQ9atan2(A,_IQ(1.0))
  1651. #endif
  1652. #if GLOBAL_Q == 8
  1653. #define   _IQatan(A)  _IQ8atan2(A,_IQ(1.0))
  1654. #endif
  1655. #if GLOBAL_Q == 7
  1656. #define   _IQatan(A)  _IQ7atan2(A,_IQ(1.0))
  1657. #endif
  1658. #if GLOBAL_Q == 6
  1659. #define   _IQatan(A)  _IQ6atan2(A,_IQ(1.0))
  1660. #endif
  1661. #if GLOBAL_Q == 5
  1662. #define   _IQatan(A)  _IQ5atan2(A,_IQ(1.0))
  1663. #endif
  1664. #if GLOBAL_Q == 4
  1665. #define   _IQatan(A)  _IQ4atan2(A,_IQ(1.0))
  1666. #endif
  1667. #if GLOBAL_Q == 3
  1668. #define   _IQatan(A)  _IQ3atan2(A,_IQ(1.0))
  1669. #endif
  1670. #if GLOBAL_Q == 2
  1671. #define   _IQatan(A)  _IQ2atan2(A,_IQ(1.0))
  1672. #endif
  1673. #if GLOBAL_Q == 1
  1674. #define   _IQatan(A)  _IQ1atan2(A,_IQ(1.0))
  1675. #endif
  1676. //---------------------------------------------------------------------------
  1677. extern    long _IQ30sqrt(long A);
  1678. extern    long _IQ29sqrt(long A);
  1679. extern    long _IQ28sqrt(long A);
  1680. extern    long _IQ27sqrt(long A);
  1681. extern    long _IQ26sqrt(long A);
  1682. extern    long _IQ25sqrt(long A);
  1683. extern    long _IQ24sqrt(long A);
  1684. extern    long _IQ23sqrt(long A);
  1685. extern    long _IQ22sqrt(long A);
  1686. extern    long _IQ21sqrt(long A);
  1687. extern    long _IQ20sqrt(long A);
  1688. extern    long _IQ19sqrt(long A);
  1689. extern    long _IQ18sqrt(long A);
  1690. extern    long _IQ17sqrt(long A);
  1691. extern    long _IQ16sqrt(long A);
  1692. extern    long _IQ15sqrt(long A);
  1693. extern    long _IQ14sqrt(long A);
  1694. extern    long _IQ13sqrt(long A);
  1695. extern    long _IQ12sqrt(long A);
  1696. extern    long _IQ11sqrt(long A);
  1697. extern    long _IQ10sqrt(long A);
  1698. extern    long _IQ9sqrt(long A);
  1699. extern    long _IQ8sqrt(long A);
  1700. extern    long _IQ7sqrt(long A);
  1701. extern    long _IQ6sqrt(long A);
  1702. extern    long _IQ5sqrt(long A);
  1703. extern    long _IQ4sqrt(long A);
  1704. extern    long _IQ3sqrt(long A);
  1705. extern    long _IQ2sqrt(long A);
  1706. extern    long _IQ1sqrt(long A);
  1707. #if GLOBAL_Q == 30
  1708. #define   _IQsqrt(A)  _IQ30sqrt(A)
  1709. #endif
  1710. #if GLOBAL_Q == 29
  1711. #define   _IQsqrt(A)  _IQ29sqrt(A)
  1712. #endif
  1713. #if GLOBAL_Q == 28
  1714. #define   _IQsqrt(A)  _IQ28sqrt(A)
  1715. #endif
  1716. #if GLOBAL_Q == 27
  1717. #define   _IQsqrt(A)  _IQ27sqrt(A)
  1718. #endif
  1719. #if GLOBAL_Q == 26
  1720. #define   _IQsqrt(A)  _IQ26sqrt(A)
  1721. #endif
  1722. #if GLOBAL_Q == 25
  1723. #define   _IQsqrt(A)  _IQ25sqrt(A)
  1724. #endif
  1725. #if GLOBAL_Q == 24
  1726. #define   _IQsqrt(A)  _IQ24sqrt(A)
  1727. #endif
  1728. #if GLOBAL_Q == 23
  1729. #define   _IQsqrt(A)  _IQ23sqrt(A)
  1730. #endif
  1731. #if GLOBAL_Q == 22
  1732. #define   _IQsqrt(A)  _IQ22sqrt(A)
  1733. #endif
  1734. #if GLOBAL_Q == 21
  1735. #define   _IQsqrt(A)  _IQ21sqrt(A)
  1736. #endif
  1737. #if GLOBAL_Q == 20
  1738. #define   _IQsqrt(A)  _IQ20sqrt(A)
  1739. #endif
  1740. #if GLOBAL_Q == 19
  1741. #define   _IQsqrt(A)  _IQ19sqrt(A)
  1742. #endif
  1743. #if GLOBAL_Q == 18
  1744. #define   _IQsqrt(A)  _IQ18sqrt(A)
  1745. #endif
  1746. #if GLOBAL_Q == 17
  1747. #define   _IQsqrt(A)  _IQ17sqrt(A)
  1748. #endif
  1749. #if GLOBAL_Q == 16
  1750. #define   _IQsqrt(A)  _IQ16sqrt(A)
  1751. #endif
  1752. #if GLOBAL_Q == 15
  1753. #define   _IQsqrt(A)  _IQ15sqrt(A)
  1754. #endif
  1755. #if GLOBAL_Q == 14
  1756. #define   _IQsqrt(A)  _IQ14sqrt(A)
  1757. #endif
  1758. #if GLOBAL_Q == 13
  1759. #define   _IQsqrt(A)  _IQ13sqrt(A)
  1760. #endif
  1761. #if GLOBAL_Q == 12
  1762. #define   _IQsqrt(A)  _IQ12sqrt(A)
  1763. #endif
  1764. #if GLOBAL_Q == 11
  1765. #define   _IQsqrt(A)  _IQ11sqrt(A)
  1766. #endif
  1767. #if GLOBAL_Q == 10
  1768. #define   _IQsqrt(A)  _IQ10sqrt(A)
  1769. #endif
  1770. #if GLOBAL_Q == 9
  1771. #define   _IQsqrt(A)  _IQ9sqrt(A)
  1772. #endif
  1773. #if GLOBAL_Q == 8
  1774. #define   _IQsqrt(A)  _IQ8sqrt(A)
  1775. #endif
  1776. #if GLOBAL_Q == 7
  1777. #define   _IQsqrt(A)  _IQ7sqrt(A)
  1778. #endif
  1779. #if GLOBAL_Q == 6
  1780. #define   _IQsqrt(A)  _IQ6sqrt(A)
  1781. #endif
  1782. #if GLOBAL_Q == 5
  1783. #define   _IQsqrt(A)  _IQ5sqrt(A)
  1784. #endif
  1785. #if GLOBAL_Q == 4
  1786. #define   _IQsqrt(A)  _IQ4sqrt(A)
  1787. #endif
  1788. #if GLOBAL_Q == 3
  1789. #define   _IQsqrt(A)  _IQ3sqrt(A)
  1790. #endif
  1791. #if GLOBAL_Q == 2
  1792. #define   _IQsqrt(A)  _IQ2sqrt(A)
  1793. #endif
  1794. #if GLOBAL_Q == 1
  1795. #define   _IQsqrt(A)  _IQ1sqrt(A)
  1796. #endif
  1797. //---------------------------------------------------------------------------
  1798. extern    long _IQ30isqrt(long A);
  1799. extern    long _IQ29isqrt(long A);
  1800. extern    long _IQ28isqrt(long A);
  1801. extern    long _IQ27isqrt(long A);
  1802. extern    long _IQ26isqrt(long A);
  1803. extern    long _IQ25isqrt(long A);
  1804. extern    long _IQ24isqrt(long A);
  1805. extern    long _IQ23isqrt(long A);
  1806. extern    long _IQ22isqrt(long A);
  1807. extern    long _IQ21isqrt(long A);
  1808. extern    long _IQ20isqrt(long A);
  1809. extern    long _IQ19isqrt(long A);
  1810. extern    long _IQ18isqrt(long A);
  1811. extern    long _IQ17isqrt(long A);
  1812. extern    long _IQ16isqrt(long A);
  1813. extern    long _IQ15isqrt(long A);
  1814. extern    long _IQ14isqrt(long A);
  1815. extern    long _IQ13isqrt(long A);
  1816. extern    long _IQ12isqrt(long A);
  1817. extern    long _IQ11isqrt(long A);
  1818. extern    long _IQ10isqrt(long A);
  1819. extern    long _IQ9isqrt(long A);
  1820. extern    long _IQ8isqrt(long A);
  1821. extern    long _IQ7isqrt(long A);
  1822. extern    long _IQ6isqrt(long A);
  1823. extern    long _IQ5isqrt(long A);
  1824. extern    long _IQ4isqrt(long A);
  1825. extern    long _IQ3isqrt(long A);
  1826. extern    long _IQ2isqrt(long A);
  1827. extern    long _IQ1isqrt(long A);
  1828. #if GLOBAL_Q == 30
  1829. #define   _IQisqrt(A)  _IQ30isqrt(A)
  1830. #endif
  1831. #if GLOBAL_Q == 29
  1832. #define   _IQisqrt(A)  _IQ29isqrt(A)
  1833. #endif
  1834. #if GLOBAL_Q == 28
  1835. #define   _IQisqrt(A)  _IQ28isqrt(A)
  1836. #endif
  1837. #if GLOBAL_Q == 27
  1838. #define   _IQisqrt(A)  _IQ27isqrt(A)
  1839. #endif
  1840. #if GLOBAL_Q == 26
  1841. #define   _IQisqrt(A)  _IQ26isqrt(A)
  1842. #endif
  1843. #if GLOBAL_Q == 25
  1844. #define   _IQisqrt(A)  _IQ25isqrt(A)
  1845. #endif
  1846. #if GLOBAL_Q == 24
  1847. #define   _IQisqrt(A)  _IQ24isqrt(A)
  1848. #endif
  1849. #if GLOBAL_Q == 23
  1850. #define   _IQisqrt(A)  _IQ23isqrt(A)
  1851. #endif
  1852. #if GLOBAL_Q == 22
  1853. #define   _IQisqrt(A)  _IQ22isqrt(A)
  1854. #endif
  1855. #if GLOBAL_Q == 21
  1856. #define   _IQisqrt(A)  _IQ21isqrt(A)
  1857. #endif
  1858. #if GLOBAL_Q == 20
  1859. #define   _IQisqrt(A)  _IQ20isqrt(A)
  1860. #endif
  1861. #if GLOBAL_Q == 19
  1862. #define   _IQisqrt(A)  _IQ19isqrt(A)
  1863. #endif
  1864. #if GLOBAL_Q == 18
  1865. #define   _IQisqrt(A)  _IQ18isqrt(A)
  1866. #endif
  1867. #if GLOBAL_Q == 17
  1868. #define   _IQisqrt(A)  _IQ17isqrt(A)
  1869. #endif
  1870. #if GLOBAL_Q == 16
  1871. #define   _IQisqrt(A)  _IQ16isqrt(A)
  1872. #endif
  1873. #if GLOBAL_Q == 15
  1874. #define   _IQisqrt(A)  _IQ15isqrt(A)
  1875. #endif
  1876. #if GLOBAL_Q == 14
  1877. #define   _IQisqrt(A)  _IQ14isqrt(A)
  1878. #endif
  1879. #if GLOBAL_Q == 13
  1880. #define   _IQisqrt(A)  _IQ13isqrt(A)
  1881. #endif
  1882. #if GLOBAL_Q == 12
  1883. #define   _IQisqrt(A)  _IQ12isqrt(A)
  1884. #endif
  1885. #if GLOBAL_Q == 11
  1886. #define   _IQisqrt(A)  _IQ11isqrt(A)
  1887. #endif
  1888. #if GLOBAL_Q == 10
  1889. #define   _IQisqrt(A)  _IQ10isqrt(A)
  1890. #endif
  1891. #if GLOBAL_Q == 9
  1892. #define   _IQisqrt(A)  _IQ9isqrt(A)
  1893. #endif
  1894. #if GLOBAL_Q == 8
  1895. #define   _IQisqrt(A)  _IQ8isqrt(A)
  1896. #endif
  1897. #if GLOBAL_Q == 7
  1898. #define   _IQisqrt(A)  _IQ7isqrt(A)
  1899. #endif
  1900. #if GLOBAL_Q == 6
  1901. #define   _IQisqrt(A)  _IQ6isqrt(A)
  1902. #endif
  1903. #if GLOBAL_Q == 5
  1904. #define   _IQisqrt(A)  _IQ5isqrt(A)
  1905. #endif
  1906. #if GLOBAL_Q == 4
  1907. #define   _IQisqrt(A)  _IQ4isqrt(A)
  1908. #endif
  1909. #if GLOBAL_Q == 3
  1910. #define   _IQisqrt(A)  _IQ3isqrt(A)
  1911. #endif
  1912. #if GLOBAL_Q == 2
  1913. #define   _IQisqrt(A)  _IQ2isqrt(A)
  1914. #endif
  1915. #if GLOBAL_Q == 1
  1916. #define   _IQisqrt(A)  _IQ1isqrt(A)
  1917. #endif
  1918. //---------------------------------------------------------------------------
  1919. extern    long _IQ30int(long A);
  1920. extern    long _IQ29int(long A);
  1921. extern    long _IQ28int(long A);
  1922. extern    long _IQ27int(long A);
  1923. extern    long _IQ26int(long A);
  1924. extern    long _IQ25int(long A);
  1925. extern    long _IQ24int(long A);
  1926. extern    long _IQ23int(long A);
  1927. extern    long _IQ22int(long A);
  1928. extern    long _IQ21int(long A);
  1929. extern    long _IQ20int(long A);
  1930. extern    long _IQ19int(long A);
  1931. extern    long _IQ18int(long A);
  1932. extern    long _IQ17int(long A);
  1933. extern    long _IQ16int(long A);
  1934. extern    long _IQ15int(long A);
  1935. extern    long _IQ14int(long A);
  1936. extern    long _IQ13int(long A);
  1937. extern    long _IQ12int(long A);
  1938. extern    long _IQ11int(long A);
  1939. extern    long _IQ10int(long A);
  1940. extern    long _IQ9int(long A);
  1941. extern    long _IQ8int(long A);
  1942. extern    long _IQ7int(long A);
  1943. extern    long _IQ6int(long A);
  1944. extern    long _IQ5int(long A);
  1945. extern    long _IQ4int(long A);
  1946. extern    long _IQ3int(long A);
  1947. extern    long _IQ2int(long A);
  1948. extern    long _IQ1int(long A);
  1949. #if GLOBAL_Q == 30
  1950. #define   _IQint(A)  _IQ30int(A)
  1951. #endif
  1952. #if GLOBAL_Q == 29
  1953. #define   _IQint(A)  _IQ29int(A)
  1954. #endif
  1955. #if GLOBAL_Q == 28
  1956. #define   _IQint(A)  _IQ28int(A)
  1957. #endif
  1958. #if GLOBAL_Q == 27
  1959. #define   _IQint(A)  _IQ27int(A)
  1960. #endif
  1961. #if GLOBAL_Q == 26
  1962. #define   _IQint(A)  _IQ26int(A)
  1963. #endif
  1964. #if GLOBAL_Q == 25
  1965. #define   _IQint(A)  _IQ25int(A)
  1966. #endif
  1967. #if GLOBAL_Q == 24
  1968. #define   _IQint(A)  _IQ24int(A)
  1969. #endif
  1970. #if GLOBAL_Q == 23
  1971. #define   _IQint(A)  _IQ23int(A)
  1972. #endif
  1973. #if GLOBAL_Q == 22
  1974. #define   _IQint(A)  _IQ22int(A)
  1975. #endif
  1976. #if GLOBAL_Q == 21
  1977. #define   _IQint(A)  _IQ21int(A)
  1978. #endif
  1979. #if GLOBAL_Q == 20
  1980. #define   _IQint(A)  _IQ20int(A)
  1981. #endif
  1982. #if GLOBAL_Q == 19
  1983. #define   _IQint(A)  _IQ19int(A)
  1984. #endif
  1985. #if GLOBAL_Q == 18
  1986. #define   _IQint(A)  _IQ18int(A)
  1987. #endif
  1988. #if GLOBAL_Q == 17
  1989. #define   _IQint(A)  _IQ17int(A)
  1990. #endif
  1991. #if GLOBAL_Q == 16
  1992. #define   _IQint(A)  _IQ16int(A)
  1993. #endif
  1994. #if GLOBAL_Q == 15
  1995. #define   _IQint(A)  _IQ15int(A)
  1996. #endif
  1997. #if GLOBAL_Q == 14
  1998. #define   _IQint(A)  _IQ14int(A)
  1999. #endif
  2000. #if GLOBAL_Q == 13
  2001. #define   _IQint(A)  _IQ13int(A)
  2002. #endif
  2003. #if GLOBAL_Q == 12
  2004. #define   _IQint(A)  _IQ12int(A)
  2005. #endif
  2006. #if GLOBAL_Q == 11
  2007. #define   _IQint(A)  _IQ11int(A)
  2008. #endif
  2009. #if GLOBAL_Q == 10
  2010. #define   _IQint(A)  _IQ10int(A)
  2011. #endif
  2012. #if GLOBAL_Q == 9
  2013. #define   _IQint(A)  _IQ9int(A)
  2014. #endif
  2015. #if GLOBAL_Q == 8
  2016. #define   _IQint(A)  _IQ8int(A)
  2017. #endif
  2018. #if GLOBAL_Q == 7
  2019. #define   _IQint(A)  _IQ7int(A)
  2020. #endif
  2021. #if GLOBAL_Q == 6
  2022. #define   _IQint(A)  _IQ6int(A)
  2023. #endif
  2024. #if GLOBAL_Q == 5
  2025. #define   _IQint(A)  _IQ5int(A)
  2026. #endif
  2027. #if GLOBAL_Q == 4
  2028. #define   _IQint(A)  _IQ4int(A)
  2029. #endif
  2030. #if GLOBAL_Q == 3
  2031. #define   _IQint(A)  _IQ3int(A)
  2032. #endif
  2033. #if GLOBAL_Q == 2
  2034. #define   _IQint(A)  _IQ2int(A)
  2035. #endif
  2036. #if GLOBAL_Q == 1
  2037. #define   _IQint(A)  _IQ1int(A)
  2038. #endif
  2039. //---------------------------------------------------------------------------
  2040. extern    long _IQ30frac(long A);
  2041. extern    long _IQ29frac(long A);
  2042. extern    long _IQ28frac(long A);
  2043. extern    long _IQ27frac(long A);
  2044. extern    long _IQ26frac(long A);
  2045. extern    long _IQ25frac(long A);
  2046. extern    long _IQ24frac(long A);
  2047. extern    long _IQ23frac(long A);
  2048. extern    long _IQ22frac(long A);
  2049. extern    long _IQ21frac(long A);
  2050. extern    long _IQ20frac(long A);
  2051. extern    long _IQ19frac(long A);
  2052. extern    long _IQ18frac(long A);
  2053. extern    long _IQ17frac(long A);
  2054. extern    long _IQ16frac(long A);
  2055. extern    long _IQ15frac(long A);
  2056. extern    long _IQ14frac(long A);
  2057. extern    long _IQ13frac(long A);
  2058. extern    long _IQ12frac(long A);
  2059. extern    long _IQ11frac(long A);
  2060. extern    long _IQ10frac(long A);
  2061. extern    long _IQ9frac(long A);
  2062. extern    long _IQ8frac(long A);
  2063. extern    long _IQ7frac(long A);
  2064. extern    long _IQ6frac(long A);
  2065. extern    long _IQ5frac(long A);
  2066. extern    long _IQ4frac(long A);
  2067. extern    long _IQ3frac(long A);
  2068. extern    long _IQ2frac(long A);
  2069. extern    long _IQ1frac(long A);
  2070. #if GLOBAL_Q == 30
  2071. #define   _IQfrac(A)  _IQ30frac(A)
  2072. #endif
  2073. #if GLOBAL_Q == 29
  2074. #define   _IQfrac(A)  _IQ29frac(A)
  2075. #endif
  2076. #if GLOBAL_Q == 28
  2077. #define   _IQfrac(A)  _IQ28frac(A)
  2078. #endif
  2079. #if GLOBAL_Q == 27
  2080. #define   _IQfrac(A)  _IQ27frac(A)
  2081. #endif
  2082. #if GLOBAL_Q == 26
  2083. #define   _IQfrac(A)  _IQ26frac(A)
  2084. #endif
  2085. #if GLOBAL_Q == 25
  2086. #define   _IQfrac(A)  _IQ25frac(A)
  2087. #endif
  2088. #if GLOBAL_Q == 24
  2089. #define   _IQfrac(A)  _IQ24frac(A)
  2090. #endif
  2091. #if GLOBAL_Q == 23
  2092. #define   _IQfrac(A)  _IQ23frac(A)
  2093. #endif
  2094. #if GLOBAL_Q == 22
  2095. #define   _IQfrac(A)  _IQ22frac(A)
  2096. #endif
  2097. #if GLOBAL_Q == 21
  2098. #define   _IQfrac(A)  _IQ21frac(A)
  2099. #endif
  2100. #if GLOBAL_Q == 20
  2101. #define   _IQfrac(A)  _IQ20frac(A)
  2102. #endif
  2103. #if GLOBAL_Q == 19
  2104. #define   _IQfrac(A)  _IQ19frac(A)
  2105. #endif
  2106. #if GLOBAL_Q == 18
  2107. #define   _IQfrac(A)  _IQ18frac(A)
  2108. #endif
  2109. #if GLOBAL_Q == 17
  2110. #define   _IQfrac(A)  _IQ17frac(A)
  2111. #endif
  2112. #if GLOBAL_Q == 16
  2113. #define   _IQfrac(A)  _IQ16frac(A)
  2114. #endif
  2115. #if GLOBAL_Q == 15
  2116. #define   _IQfrac(A)  _IQ15frac(A)
  2117. #endif
  2118. #if GLOBAL_Q == 14
  2119. #define   _IQfrac(A)  _IQ14frac(A)
  2120. #endif
  2121. #if GLOBAL_Q == 13
  2122. #define   _IQfrac(A)  _IQ13frac(A)
  2123. #endif
  2124. #if GLOBAL_Q == 12
  2125. #define   _IQfrac(A)  _IQ12frac(A)
  2126. #endif
  2127. #if GLOBAL_Q == 11
  2128. #define   _IQfrac(A)  _IQ11frac(A)
  2129. #endif
  2130. #if GLOBAL_Q == 10
  2131. #define   _IQfrac(A)  _IQ10frac(A)
  2132. #endif
  2133. #if GLOBAL_Q == 9
  2134. #define   _IQfrac(A)  _IQ9frac(A)
  2135. #endif
  2136. #if GLOBAL_Q == 8
  2137. #define   _IQfrac(A)  _IQ8frac(A)
  2138. #endif
  2139. #if GLOBAL_Q == 7
  2140. #define   _IQfrac(A)  _IQ7frac(A)
  2141. #endif
  2142. #if GLOBAL_Q == 6
  2143. #define   _IQfrac(A)  _IQ6frac(A)
  2144. #endif
  2145. #if GLOBAL_Q == 5
  2146. #define   _IQfrac(A)  _IQ5frac(A)
  2147. #endif
  2148. #if GLOBAL_Q == 4
  2149. #define   _IQfrac(A)  _IQ4frac(A)
  2150. #endif
  2151. #if GLOBAL_Q == 3
  2152. #define   _IQfrac(A)  _IQ3frac(A)
  2153. #endif
  2154. #if GLOBAL_Q == 2
  2155. #define   _IQfrac(A)  _IQ2frac(A)
  2156. #endif
  2157. #if GLOBAL_Q == 1
  2158. #define   _IQfrac(A)  _IQ1frac(A)
  2159. #endif
  2160. //---------------------------------------------------------------------------
  2161. #define   _IQmpyIQX(A, IQA, B, IQB)    __IQxmpy(A, B, (GLOBAL_Q + 32 - IQA - IQB))
  2162. #define   _IQ30mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (30 + 32 - IQA - IQB))
  2163. #define   _IQ29mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (29 + 32 - IQA - IQB))
  2164. #define   _IQ28mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (28 + 32 - IQA - IQB))
  2165. #define   _IQ27mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (27 + 32 - IQA - IQB))
  2166. #define   _IQ26mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (26 + 32 - IQA - IQB))
  2167. #define   _IQ25mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (25 + 32 - IQA - IQB))
  2168. #define   _IQ24mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (24 + 32 - IQA - IQB))
  2169. #define   _IQ23mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (23 + 32 - IQA - IQB))
  2170. #define   _IQ22mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (22 + 32 - IQA - IQB))
  2171. #define   _IQ21mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (21 + 32 - IQA - IQB))
  2172. #define   _IQ20mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (20 + 32 - IQA - IQB))
  2173. #define   _IQ19mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (19 + 32 - IQA - IQB))
  2174. #define   _IQ18mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (18 + 32 - IQA - IQB))
  2175. #define   _IQ17mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (17 + 32 - IQA - IQB))
  2176. #define   _IQ16mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (16 + 32 - IQA - IQB))
  2177. #define   _IQ15mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (15 + 32 - IQA - IQB))
  2178. #define   _IQ14mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (14 + 32 - IQA - IQB))
  2179. #define   _IQ13mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (13 + 32 - IQA - IQB))
  2180. #define   _IQ12mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (12 + 32 - IQA - IQB))
  2181. #define   _IQ11mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (11 + 32 - IQA - IQB))
  2182. #define   _IQ10mpyIQX(A, IQA, B, IQB)  __IQxmpy(A, B, (10 + 32 - IQA - IQB))
  2183. #define   _IQ9mpyIQX(A, IQA, B, IQB)   __IQxmpy(A, B, (9 + 32 - IQA - IQB))
  2184. #define   _IQ8mpyIQX(A, IQA, B, IQB)   __IQxmpy(A, B, (8 + 32 - IQA - IQB))
  2185. #define   _IQ7mpyIQX(A, IQA, B, IQB)   __IQxmpy(A, B, (7 + 32 - IQA - IQB))
  2186. #define   _IQ6mpyIQX(A, IQA, B, IQB)   __IQxmpy(A, B, (6 + 32 - IQA - IQB))
  2187. #define   _IQ5mpyIQX(A, IQA, B, IQB)   __IQxmpy(A, B, (5 + 32 - IQA - IQB))
  2188. #define   _IQ4mpyIQX(A, IQA, B, IQB)   __IQxmpy(A, B, (4 + 32 - IQA - IQB))
  2189. #define   _IQ3mpyIQX(A, IQA, B, IQB)   __IQxmpy(A, B, (3 + 32 - IQA - IQB))
  2190. #define   _IQ2mpyIQX(A, IQA, B, IQB)   __IQxmpy(A, B, (2 + 32 - IQA - IQB))
  2191. #define   _IQ1mpyIQX(A, IQA, B, IQB)   __IQxmpy(A, B, (1 + 32 - IQA - IQB))
  2192. //---------------------------------------------------------------------------
  2193. #define   _IQmpyI32(A,B)    ((A)*(B))
  2194. #define   _IQ30mpyI32(A,B)  ((A)*(B))
  2195. #define   _IQ29mpyI32(A,B)  ((A)*(B))
  2196. #define   _IQ28mpyI32(A,B)  ((A)*(B))
  2197. #define   _IQ27mpyI32(A,B)  ((A)*(B))
  2198. #define   _IQ26mpyI32(A,B)  ((A)*(B))
  2199. #define   _IQ25mpyI32(A,B)  ((A)*(B))
  2200. #define   _IQ24mpyI32(A,B)  ((A)*(B))
  2201. #define   _IQ23mpyI32(A,B)  ((A)*(B))
  2202. #define   _IQ22mpyI32(A,B)  ((A)*(B))
  2203. #define   _IQ21mpyI32(A,B)  ((A)*(B))
  2204. #define   _IQ20mpyI32(A,B)  ((A)*(B))
  2205. #define   _IQ19mpyI32(A,B)  ((A)*(B))
  2206. #define   _IQ18mpyI32(A,B)  ((A)*(B))
  2207. #define   _IQ17mpyI32(A,B)  ((A)*(B))
  2208. #define   _IQ16mpyI32(A,B)  ((A)*(B))
  2209. #define   _IQ15mpyI32(A,B)  ((A)*(B))
  2210. #define   _IQ14mpyI32(A,B)  ((A)*(B))
  2211. #define   _IQ13mpyI32(A,B)  ((A)*(B))
  2212. #define   _IQ12mpyI32(A,B)  ((A)*(B))
  2213. #define   _IQ11mpyI32(A,B)  ((A)*(B))
  2214. #define   _IQ10mpyI32(A,B)  ((A)*(B))
  2215. #define   _IQ9mpyI32(A,B)   ((A)*(B))
  2216. #define   _IQ8mpyI32(A,B)   ((A)*(B))
  2217. #define   _IQ7mpyI32(A,B)   ((A)*(B))
  2218. #define   _IQ6mpyI32(A,B)   ((A)*(B))
  2219. #define   _IQ5mpyI32(A,B)   ((A)*(B))
  2220. #define   _IQ4mpyI32(A,B)   ((A)*(B))
  2221. #define   _IQ3mpyI32(A,B)   ((A)*(B))
  2222. #define   _IQ2mpyI32(A,B)   ((A)*(B))
  2223. #define   _IQ1mpyI32(A,B)   ((A)*(B))
  2224. //---------------------------------------------------------------------------
  2225. extern    long _IQ30mpyI32int(long A, long B);
  2226. extern    long _IQ29mpyI32int(long A, long B);
  2227. extern    long _IQ28mpyI32int(long A, long B);
  2228. extern    long _IQ27mpyI32int(long A, long B);
  2229. extern    long _IQ26mpyI32int(long A, long B);
  2230. extern    long _IQ25mpyI32int(long A, long B);
  2231. extern    long _IQ24mpyI32int(long A, long B);
  2232. extern    long _IQ23mpyI32int(long A, long B);
  2233. extern    long _IQ22mpyI32int(long A, long B);
  2234. extern    long _IQ21mpyI32int(long A, long B);
  2235. extern    long _IQ20mpyI32int(long A, long B);
  2236. extern    long _IQ19mpyI32int(long A, long B);
  2237. extern    long _IQ18mpyI32int(long A, long B);
  2238. extern    long _IQ17mpyI32int(long A, long B);
  2239. extern    long _IQ16mpyI32int(long A, long B);
  2240. extern    long _IQ15mpyI32int(long A, long B);
  2241. extern    long _IQ14mpyI32int(long A, long B);
  2242. extern    long _IQ13mpyI32int(long A, long B);
  2243. extern    long _IQ12mpyI32int(long A, long B);
  2244. extern    long _IQ11mpyI32int(long A, long B);
  2245. extern    long _IQ10mpyI32int(long A, long B);
  2246. extern    long _IQ9mpyI32int(long A, long B);
  2247. extern    long _IQ8mpyI32int(long A, long B);
  2248. extern    long _IQ7mpyI32int(long A, long B);
  2249. extern    long _IQ6mpyI32int(long A, long B);
  2250. extern    long _IQ5mpyI32int(long A, long B);
  2251. extern    long _IQ4mpyI32int(long A, long B);
  2252. extern    long _IQ3mpyI32int(long A, long B);
  2253. extern    long _IQ2mpyI32int(long A, long B);
  2254. extern    long _IQ1mpyI32int(long A, long B);
  2255. #if GLOBAL_Q == 30
  2256. #define   _IQmpyI32int(A, B)  _IQ30mpyI32int(A, B)
  2257. #endif
  2258. #if GLOBAL_Q == 29
  2259. #define   _IQmpyI32int(A, B)  _IQ29mpyI32int(A, B)
  2260. #endif
  2261. #if GLOBAL_Q == 28
  2262. #define   _IQmpyI32int(A, B)  _IQ28mpyI32int(A, B)
  2263. #endif
  2264. #if GLOBAL_Q == 27
  2265. #define   _IQmpyI32int(A, B)  _IQ27mpyI32int(A, B)
  2266. #endif
  2267. #if GLOBAL_Q == 26
  2268. #define   _IQmpyI32int(A, B)  _IQ26mpyI32int(A, B)
  2269. #endif
  2270. #if GLOBAL_Q == 25
  2271. #define   _IQmpyI32int(A, B)  _IQ25mpyI32int(A, B)
  2272. #endif
  2273. #if GLOBAL_Q == 24
  2274. #define   _IQmpyI32int(A, B)  _IQ24mpyI32int(A, B)
  2275. #endif
  2276. #if GLOBAL_Q == 23
  2277. #define   _IQmpyI32int(A, B)  _IQ23mpyI32int(A, B)
  2278. #endif
  2279. #if GLOBAL_Q == 22
  2280. #define   _IQmpyI32int(A, B)  _IQ22mpyI32int(A, B)
  2281. #endif
  2282. #if GLOBAL_Q == 21
  2283. #define   _IQmpyI32int(A, B)  _IQ21mpyI32int(A, B)
  2284. #endif
  2285. #if GLOBAL_Q == 20
  2286. #define   _IQmpyI32int(A, B)  _IQ20mpyI32int(A, B)
  2287. #endif
  2288. #if GLOBAL_Q == 19
  2289. #define   _IQmpyI32int(A, B)  _IQ19mpyI32int(A, B)
  2290. #endif
  2291. #if GLOBAL_Q == 18
  2292. #define   _IQmpyI32int(A, B)  _IQ18mpyI32int(A, B)
  2293. #endif
  2294. #if GLOBAL_Q == 17
  2295. #define   _IQmpyI32int(A, B)  _IQ17mpyI32int(A, B)
  2296. #endif
  2297. #if GLOBAL_Q == 16
  2298. #define   _IQmpyI32int(A, B)  _IQ16mpyI32int(A, B)
  2299. #endif
  2300. #if GLOBAL_Q == 15
  2301. #define   _IQmpyI32int(A, B)  _IQ15mpyI32int(A, B)
  2302. #endif
  2303. #if GLOBAL_Q == 14
  2304. #define   _IQmpyI32int(A, B)  _IQ14mpyI32int(A, B)
  2305. #endif
  2306. #if GLOBAL_Q == 13
  2307. #define   _IQmpyI32int(A, B)  _IQ13mpyI32int(A, B)
  2308. #endif
  2309. #if GLOBAL_Q == 12
  2310. #define   _IQmpyI32int(A, B)  _IQ12mpyI32int(A, B)
  2311. #endif
  2312. #if GLOBAL_Q == 11
  2313. #define   _IQmpyI32int(A, B)  _IQ11mpyI32int(A, B)
  2314. #endif
  2315. #if GLOBAL_Q == 10
  2316. #define   _IQmpyI32int(A, B)  _IQ10mpyI32int(A, B)
  2317. #endif
  2318. #if GLOBAL_Q == 9
  2319. #define   _IQmpyI32int(A, B)  _IQ9mpyI32int(A, B)
  2320. #endif
  2321. #if GLOBAL_Q == 8
  2322. #define   _IQmpyI32int(A, B)  _IQ8mpyI32int(A, B)
  2323. #endif
  2324. #if GLOBAL_Q == 7
  2325. #define   _IQmpyI32int(A, B)  _IQ7mpyI32int(A, B)
  2326. #endif
  2327. #if GLOBAL_Q == 6
  2328. #define   _IQmpyI32int(A, B)  _IQ6mpyI32int(A, B)
  2329. #endif
  2330. #if GLOBAL_Q == 5
  2331. #define   _IQmpyI32int(A, B)  _IQ5mpyI32int(A, B)
  2332. #endif
  2333. #if GLOBAL_Q == 4
  2334. #define   _IQmpyI32int(A, B)  _IQ4mpyI32int(A, B)
  2335. #endif
  2336. #if GLOBAL_Q == 3
  2337. #define   _IQmpyI32int(A, B)  _IQ3mpyI32int(A, B)
  2338. #endif
  2339. #if GLOBAL_Q == 2
  2340. #define   _IQmpyI32int(A, B)  _IQ2mpyI32int(A, B)
  2341. #endif
  2342. #if GLOBAL_Q == 1
  2343. #define   _IQmpyI32int(A, B)  _IQ1mpyI32int(A, B)
  2344. #endif
  2345. //---------------------------------------------------------------------------
  2346. extern    long _IQ30mpyI32frac(long A, long B);
  2347. extern    long _IQ29mpyI32frac(long A, long B);
  2348. extern    long _IQ28mpyI32frac(long A, long B);
  2349. extern    long _IQ27mpyI32frac(long A, long B);
  2350. extern    long _IQ26mpyI32frac(long A, long B);
  2351. extern    long _IQ25mpyI32frac(long A, long B);
  2352. extern    long _IQ24mpyI32frac(long A, long B);
  2353. extern    long _IQ23mpyI32frac(long A, long B);
  2354. extern    long _IQ22mpyI32frac(long A, long B);
  2355. extern    long _IQ21mpyI32frac(long A, long B);
  2356. extern    long _IQ20mpyI32frac(long A, long B);
  2357. extern    long _IQ19mpyI32frac(long A, long B);
  2358. extern    long _IQ18mpyI32frac(long A, long B);
  2359. extern    long _IQ17mpyI32frac(long A, long B);
  2360. extern    long _IQ16mpyI32frac(long A, long B);
  2361. extern    long _IQ15mpyI32frac(long A, long B);
  2362. extern    long _IQ14mpyI32frac(long A, long B);
  2363. extern    long _IQ13mpyI32frac(long A, long B);
  2364. extern    long _IQ12mpyI32frac(long A, long B);
  2365. extern    long _IQ11mpyI32frac(long A, long B);
  2366. extern    long _IQ10mpyI32frac(long A, long B);
  2367. extern    long _IQ9mpyI32frac(long A, long B);
  2368. extern    long _IQ8mpyI32frac(long A, long B);
  2369. extern    long _IQ7mpyI32frac(long A, long B);
  2370. extern    long _IQ6mpyI32frac(long A, long B);
  2371. extern    long _IQ5mpyI32frac(long A, long B);
  2372. extern    long _IQ4mpyI32frac(long A, long B);
  2373. extern    long _IQ3mpyI32frac(long A, long B);
  2374. extern    long _IQ2mpyI32frac(long A, long B);
  2375. extern    long _IQ1mpyI32frac(long A, long B);
  2376. #if GLOBAL_Q == 30
  2377. #define   _IQmpyI32frac(A, B)  _IQ30mpyI32frac(A, B)
  2378. #endif
  2379. #if GLOBAL_Q == 29
  2380. #define   _IQmpyI32frac(A, B)  _IQ29mpyI32frac(A, B)
  2381. #endif
  2382. #if GLOBAL_Q == 28
  2383. #define   _IQmpyI32frac(A, B)  _IQ28mpyI32frac(A, B)
  2384. #endif
  2385. #if GLOBAL_Q == 27
  2386. #define   _IQmpyI32frac(A, B)  _IQ27mpyI32frac(A, B)
  2387. #endif
  2388. #if GLOBAL_Q == 26
  2389. #define   _IQmpyI32frac(A, B)  _IQ26mpyI32frac(A, B)
  2390. #endif
  2391. #if GLOBAL_Q == 25
  2392. #define   _IQmpyI32frac(A, B)  _IQ25mpyI32frac(A, B)
  2393. #endif
  2394. #if GLOBAL_Q == 24
  2395. #define   _IQmpyI32frac(A, B)  _IQ24mpyI32frac(A, B)
  2396. #endif
  2397. #if GLOBAL_Q == 23
  2398. #define   _IQmpyI32frac(A, B)  _IQ23mpyI32frac(A, B)
  2399. #endif
  2400. #if GLOBAL_Q == 22
  2401. #define   _IQmpyI32frac(A, B)  _IQ22mpyI32frac(A, B)
  2402. #endif
  2403. #if GLOBAL_Q == 21
  2404. #define   _IQmpyI32frac(A, B)  _IQ21mpyI32frac(A, B)
  2405. #endif
  2406. #if GLOBAL_Q == 20
  2407. #define   _IQmpyI32frac(A, B)  _IQ20mpyI32frac(A, B)
  2408. #endif
  2409. #if GLOBAL_Q == 19
  2410. #define   _IQmpyI32frac(A, B)  _IQ19mpyI32frac(A, B)
  2411. #endif
  2412. #if GLOBAL_Q == 18
  2413. #define   _IQmpyI32frac(A, B)  _IQ18mpyI32frac(A, B)
  2414. #endif
  2415. #if GLOBAL_Q == 17
  2416. #define   _IQmpyI32frac(A, B)  _IQ17mpyI32frac(A, B)
  2417. #endif
  2418. #if GLOBAL_Q == 16
  2419. #define   _IQmpyI32frac(A, B)  _IQ16mpyI32frac(A, B)
  2420. #endif
  2421. #if GLOBAL_Q == 15
  2422. #define   _IQmpyI32frac(A, B)  _IQ15mpyI32frac(A, B)
  2423. #endif
  2424. #if GLOBAL_Q == 14
  2425. #define   _IQmpyI32frac(A, B)  _IQ14mpyI32frac(A, B)
  2426. #endif
  2427. #if GLOBAL_Q == 13
  2428. #define   _IQmpyI32frac(A, B)  _IQ13mpyI32frac(A, B)
  2429. #endif
  2430. #if GLOBAL_Q == 12
  2431. #define   _IQmpyI32frac(A, B)  _IQ12mpyI32frac(A, B)
  2432. #endif
  2433. #if GLOBAL_Q == 11
  2434. #define   _IQmpyI32frac(A, B)  _IQ11mpyI32frac(A, B)
  2435. #endif
  2436. #if GLOBAL_Q == 10
  2437. #define   _IQmpyI32frac(A, B)  _IQ10mpyI32frac(A, B)
  2438. #endif
  2439. #if GLOBAL_Q == 9
  2440. #define   _IQmpyI32frac(A, B)  _IQ9mpyI32frac(A, B)
  2441. #endif
  2442. #if GLOBAL_Q == 8
  2443. #define   _IQmpyI32frac(A, B)  _IQ8mpyI32frac(A, B)
  2444. #endif
  2445. #if GLOBAL_Q == 7
  2446. #define   _IQmpyI32frac(A, B)  _IQ7mpyI32frac(A, B)
  2447. #endif
  2448. #if GLOBAL_Q == 6
  2449. #define   _IQmpyI32frac(A, B)  _IQ6mpyI32frac(A, B)
  2450. #endif
  2451. #if GLOBAL_Q == 5
  2452. #define   _IQmpyI32frac(A, B)  _IQ5mpyI32frac(A, B)
  2453. #endif
  2454. #if GLOBAL_Q == 4
  2455. #define   _IQmpyI32frac(A, B)  _IQ4mpyI32frac(A, B)
  2456. #endif
  2457. #if GLOBAL_Q == 3
  2458. #define   _IQmpyI32frac(A, B)  _IQ3mpyI32frac(A, B)
  2459. #endif
  2460. #if GLOBAL_Q == 2
  2461. #define   _IQmpyI32frac(A, B)  _IQ2mpyI32frac(A, B)
  2462. #endif
  2463. #if GLOBAL_Q == 1
  2464. #define   _IQmpyI32frac(A, B)  _IQ1mpyI32frac(A, B)
  2465. #endif
  2466. //---------------------------------------------------------------------------
  2467. extern    long _IQ30mag(long A, long B);
  2468. extern    long _IQ29mag(long A, long B);
  2469. extern    long _IQ28mag(long A, long B);
  2470. extern    long _IQ27mag(long A, long B);
  2471. extern    long _IQ26mag(long A, long B);
  2472. extern    long _IQ25mag(long A, long B);
  2473. extern    long _IQ24mag(long A, long B);
  2474. extern    long _IQ23mag(long A, long B);
  2475. extern    long _IQ22mag(long A, long B);
  2476. extern    long _IQ21mag(long A, long B);
  2477. extern    long _IQ20mag(long A, long B);
  2478. extern    long _IQ19mag(long A, long B);
  2479. extern    long _IQ18mag(long A, long B);
  2480. extern    long _IQ17mag(long A, long B);
  2481. extern    long _IQ16mag(long A, long B);
  2482. extern    long _IQ15mag(long A, long B);
  2483. extern    long _IQ14mag(long A, long B);
  2484. extern    long _IQ13mag(long A, long B);
  2485. extern    long _IQ12mag(long A, long B);
  2486. extern    long _IQ11mag(long A, long B);
  2487. extern    long _IQ10mag(long A, long B);
  2488. extern    long _IQ9mag(long A, long B);
  2489. extern    long _IQ8mag(long A, long B);
  2490. extern    long _IQ7mag(long A, long B);
  2491. extern    long _IQ6mag(long A, long B);
  2492. extern    long _IQ5mag(long A, long B);
  2493. extern    long _IQ4mag(long A, long B);
  2494. extern    long _IQ3mag(long A, long B);
  2495. extern    long _IQ2mag(long A, long B);
  2496. extern    long _IQ1mag(long A, long B);
  2497. #if GLOBAL_Q == 30
  2498. #define   _IQmag(A, B)  _IQ30mag(A, B)
  2499. #endif
  2500. #if GLOBAL_Q == 29
  2501. #define   _IQmag(A, B)  _IQ29mag(A, B)
  2502. #endif
  2503. #if GLOBAL_Q == 28
  2504. #define   _IQmag(A, B)  _IQ28mag(A, B)
  2505. #endif
  2506. #if GLOBAL_Q == 27
  2507. #define   _IQmag(A, B)  _IQ27mag(A, B)
  2508. #endif
  2509. #if GLOBAL_Q == 26
  2510. #define   _IQmag(A, B)  _IQ26mag(A, B)
  2511. #endif
  2512. #if GLOBAL_Q == 25
  2513. #define   _IQmag(A, B)  _IQ25mag(A, B)
  2514. #endif
  2515. #if GLOBAL_Q == 24
  2516. #define   _IQmag(A, B)  _IQ24mag(A, B)
  2517. #endif
  2518. #if GLOBAL_Q == 23
  2519. #define   _IQmag(A, B)  _IQ23mag(A, B)
  2520. #endif
  2521. #if GLOBAL_Q == 22
  2522. #define   _IQmag(A, B)  _IQ22mag(A, B)
  2523. #endif
  2524. #if GLOBAL_Q == 21
  2525. #define   _IQmag(A, B)  _IQ21mag(A, B)
  2526. #endif
  2527. #if GLOBAL_Q == 20
  2528. #define   _IQmag(A, B)  _IQ20mag(A, B)
  2529. #endif
  2530. #if GLOBAL_Q == 19
  2531. #define   _IQmag(A, B)  _IQ19mag(A, B)
  2532. #endif
  2533. #if GLOBAL_Q == 18
  2534. #define   _IQmag(A, B)  _IQ18mag(A, B)
  2535. #endif
  2536. #if GLOBAL_Q == 17
  2537. #define   _IQmag(A, B)  _IQ17mag(A, B)
  2538. #endif
  2539. #if GLOBAL_Q == 16
  2540. #define   _IQmag(A, B)  _IQ16mag(A, B)
  2541. #endif
  2542. #if GLOBAL_Q == 15
  2543. #define   _IQmag(A, B)  _IQ15mag(A, B)
  2544. #endif
  2545. #if GLOBAL_Q == 14
  2546. #define   _IQmag(A, B)  _IQ14mag(A, B)
  2547. #endif
  2548. #if GLOBAL_Q == 13
  2549. #define   _IQmag(A, B)  _IQ13mag(A, B)
  2550. #endif
  2551. #if GLOBAL_Q == 12
  2552. #define   _IQmag(A, B)  _IQ12mag(A, B)
  2553. #endif
  2554. #if GLOBAL_Q == 11
  2555. #define   _IQmag(A, B)  _IQ11mag(A, B)
  2556. #endif
  2557. #if GLOBAL_Q == 10
  2558. #define   _IQmag(A, B)  _IQ10mag(A, B)
  2559. #endif
  2560. #if GLOBAL_Q == 9
  2561. #define   _IQmag(A, B)  _IQ9mag(A, B)
  2562. #endif
  2563. #if GLOBAL_Q == 8
  2564. #define   _IQmag(A, B)  _IQ8mag(A, B)
  2565. #endif
  2566. #if GLOBAL_Q == 7
  2567. #define   _IQmag(A, B)  _IQ7mag(A, B)
  2568. #endif
  2569. #if GLOBAL_Q == 6
  2570. #define   _IQmag(A, B)  _IQ6mag(A, B)
  2571. #endif
  2572. #if GLOBAL_Q == 5
  2573. #define   _IQmag(A, B)  _IQ5mag(A, B)
  2574. #endif
  2575. #if GLOBAL_Q == 4
  2576. #define   _IQmag(A, B)  _IQ4mag(A, B)
  2577. #endif
  2578. #if GLOBAL_Q == 3
  2579. #define   _IQmag(A, B)  _IQ3mag(A, B)
  2580. #endif
  2581. #if GLOBAL_Q == 2
  2582. #define   _IQmag(A, B)  _IQ2mag(A, B)
  2583. #endif
  2584. #if GLOBAL_Q == 1
  2585. #define   _IQmag(A, B)  _IQ1mag(A, B)
  2586. #endif
  2587. //---------------------------------------------------------------------------
  2588. extern    long _atoIQN(const char *A, long q_value);
  2589. #define   _atoIQ(A)    _atoIQN(A, GLOBAL_Q)
  2590. #define   _atoIQ30(A)  _atoIQN(A, 30)
  2591. #define   _atoIQ29(A)  _atoIQN(A, 29)
  2592. #define   _atoIQ28(A)  _atoIQN(A, 28)
  2593. #define   _atoIQ27(A)  _atoIQN(A, 27)
  2594. #define   _atoIQ26(A)  _atoIQN(A, 26)
  2595. #define   _atoIQ25(A)  _atoIQN(A, 25)
  2596. #define   _atoIQ24(A)  _atoIQN(A, 24)
  2597. #define   _atoIQ23(A)  _atoIQN(A, 23)
  2598. #define   _atoIQ22(A)  _atoIQN(A, 22)
  2599. #define   _atoIQ21(A)  _atoIQN(A, 21)
  2600. #define   _atoIQ20(A)  _atoIQN(A, 20)
  2601. #define   _atoIQ19(A)  _atoIQN(A, 19)
  2602. #define   _atoIQ18(A)  _atoIQN(A, 18)
  2603. #define   _atoIQ17(A)  _atoIQN(A, 17)
  2604. #define   _atoIQ16(A)  _atoIQN(A, 16)
  2605. #define   _atoIQ15(A)  _atoIQN(A, 15)
  2606. #define   _atoIQ14(A)  _atoIQN(A, 14)
  2607. #define   _atoIQ13(A)  _atoIQN(A, 13)
  2608. #define   _atoIQ12(A)  _atoIQN(A, 12)
  2609. #define   _atoIQ11(A)  _atoIQN(A, 11)
  2610. #define   _atoIQ10(A)  _atoIQN(A, 10)
  2611. #define   _atoIQ9(A)   _atoIQN(A, 9)
  2612. #define   _atoIQ8(A)   _atoIQN(A, 8)
  2613. #define   _atoIQ7(A)   _atoIQN(A, 7)
  2614. #define   _atoIQ6(A)   _atoIQN(A, 6)
  2615. #define   _atoIQ5(A)   _atoIQN(A, 5)
  2616. #define   _atoIQ4(A)   _atoIQN(A, 4)
  2617. #define   _atoIQ3(A)   _atoIQN(A, 3)
  2618. #define   _atoIQ2(A)   _atoIQN(A, 2)
  2619. #define   _atoIQ1(A)   _atoIQN(A, 1)
  2620. //---------------------------------------------------------------------------
  2621. #define   _IQabs(A)    labs(A)
  2622. #define   _IQ30abs(A)  labs(A)
  2623. #define   _IQ29abs(A)  labs(A)
  2624. #define   _IQ28abs(A)  labs(A)
  2625. #define   _IQ27abs(A)  labs(A)
  2626. #define   _IQ26abs(A)  labs(A)
  2627. #define   _IQ25abs(A)  labs(A)
  2628. #define   _IQ24abs(A)  labs(A)
  2629. #define   _IQ23abs(A)  labs(A)
  2630. #define   _IQ22abs(A)  labs(A)
  2631. #define   _IQ21abs(A)  labs(A)
  2632. #define   _IQ20abs(A)  labs(A)
  2633. #define   _IQ19abs(A)  labs(A)
  2634. #define   _IQ18abs(A)  labs(A)
  2635. #define   _IQ17abs(A)  labs(A)
  2636. #define   _IQ16abs(A)  labs(A)
  2637. #define   _IQ15abs(A)  labs(A)
  2638. #define   _IQ14abs(A)  labs(A)
  2639. #define   _IQ13abs(A)  labs(A)
  2640. #define   _IQ12abs(A)  labs(A)
  2641. #define   _IQ11abs(A)  labs(A)
  2642. #define   _IQ10abs(A)  labs(A)
  2643. #define   _IQ9abs(A)   labs(A)
  2644. #define   _IQ8abs(A)   labs(A)
  2645. #define   _IQ7abs(A)   labs(A)
  2646. #define   _IQ6abs(A)   labs(A)
  2647. #define   _IQ5abs(A)   labs(A)
  2648. #define   _IQ4abs(A)   labs(A)
  2649. #define   _IQ3abs(A)   labs(A)
  2650. #define   _IQ2abs(A)   labs(A)
  2651. #define   _IQ1abs(A)   labs(A)
  2652. //###########################################################################
  2653. #else   // MATH_TYPE == FLOAT_MATH
  2654. //###########################################################################
  2655. // If FLOAT_MATH is used, the IQmath library function are replaced by
  2656. // equivalent floating point operations:
  2657. //===========================================================================
  2658. typedef   float   _iq;
  2659. typedef   float   _iq30;
  2660. typedef   float   _iq29;
  2661. typedef   float   _iq28;
  2662. typedef   float   _iq27;
  2663. typedef   float   _iq26;
  2664. typedef   float   _iq25;
  2665. typedef   float   _iq24;
  2666. typedef   float   _iq23;
  2667. typedef   float   _iq22;
  2668. typedef   float   _iq21;
  2669. typedef   float   _iq20;
  2670. typedef   float   _iq19;
  2671. typedef   float   _iq18;
  2672. typedef   float   _iq17;
  2673. typedef   float   _iq16;
  2674. typedef   float   _iq15;
  2675. typedef   float   _iq14;
  2676. typedef   float   _iq13;
  2677. typedef   float   _iq12;
  2678. typedef   float   _iq11;
  2679. typedef   float   _iq10;
  2680. typedef   float   _iq9;
  2681. typedef   float   _iq8;
  2682. typedef   float   _iq7;
  2683. typedef   float   _iq6;
  2684. typedef   float   _iq5;
  2685. typedef   float   _iq4;
  2686. typedef   float   _iq3;
  2687. typedef   float   _iq2;
  2688. typedef   float   _iq1;
  2689. //---------------------------------------------------------------------------
  2690. #define   _IQ(A)         (A)
  2691. #define   _IQ30(A)       (A)
  2692. #define   _IQ29(A)       (A)
  2693. #define   _IQ28(A)       (A)
  2694. #define   _IQ27(A)       (A)
  2695. #define   _IQ26(A)       (A)
  2696. #define   _IQ25(A)       (A)
  2697. #define   _IQ24(A)       (A)
  2698. #define   _IQ23(A)       (A)
  2699. #define   _IQ22(A)       (A)
  2700. #define   _IQ21(A)       (A)
  2701. #define   _IQ20(A)       (A)
  2702. #define   _IQ19(A)       (A)
  2703. #define   _IQ18(A)       (A)
  2704. #define   _IQ17(A)       (A)
  2705. #define   _IQ16(A)       (A)
  2706. #define   _IQ15(A)       (A)
  2707. #define   _IQ14(A)       (A)
  2708. #define   _IQ13(A)       (A)
  2709. #define   _IQ12(A)       (A)
  2710. #define   _IQ10(A)       (A)
  2711. #define   _IQ9(A)        (A)
  2712. #define   _IQ8(A)        (A)
  2713. #define   _IQ7(A)        (A)
  2714. #define   _IQ6(A)        (A)
  2715. #define   _IQ5(A)        (A)
  2716. #define   _IQ4(A)        (A)
  2717. #define   _IQ3(A)        (A)
  2718. #define   _IQ2(A)        (A)
  2719. #define   _IQ1(A)        (A)
  2720. //---------------------------------------------------------------------------
  2721. #define   _IQtoF(A)      (A)
  2722. #define   _IQ30toF(A)    (A)
  2723. #define   _IQ29toF(A)    (A)
  2724. #define   _IQ28toF(A)    (A)
  2725. #define   _IQ27toF(A)    (A)
  2726. #define   _IQ26toF(A)    (A)
  2727. #define   _IQ25toF(A)    (A)
  2728. #define   _IQ24toF(A)    (A)
  2729. #define   _IQ23toF(A)    (A)
  2730. #define   _IQ22toF(A)    (A)
  2731. #define   _IQ21toF(A)    (A)
  2732. #define   _IQ20toF(A)    (A)
  2733. #define   _IQ19toF(A)    (A)
  2734. #define   _IQ18toF(A)    (A)
  2735. #define   _IQ17toF(A)    (A)
  2736. #define   _IQ16toF(A)    (A)
  2737. #define   _IQ15toF(A)    (A)
  2738. #define   _IQ14toF(A)    (A)
  2739. #define   _IQ13toF(A)    (A)
  2740. #define   _IQ12toF(A)    (A)
  2741. #define   _IQ11toF(A)    (A)
  2742. #define   _IQ10toF(A)    (A)
  2743. #define   _IQ9toF(A)     (A)
  2744. #define   _IQ8toF(A)     (A)
  2745. #define   _IQ7toF(A)     (A)
  2746. #define   _IQ6toF(A)     (A)
  2747. #define   _IQ5toF(A)     (A)
  2748. #define   _IQ4toF(A)     (A)
  2749. #define   _IQ3toF(A)     (A)
  2750. #define   _IQ2toF(A)     (A)
  2751. #define   _IQ1toF(A)     (A)
  2752. //---------------------------------------------------------------------------
  2753. extern  float _satf(float A, float Pos, float Neg);
  2754. #define   _IQsat(A, Pos, Neg)    _satf(A, Pos, Neg)
  2755. //---------------------------------------------------------------------------
  2756. #define   _IQtoIQ30(A)   (A)
  2757. #define   _IQtoIQ29(A)   (A)
  2758. #define   _IQtoIQ28(A)   (A)
  2759. #define   _IQtoIQ27(A)   (A)
  2760. #define   _IQtoIQ26(A)   (A)
  2761. #define   _IQtoIQ25(A)   (A)
  2762. #define   _IQtoIQ24(A)   (A)
  2763. #define   _IQtoIQ23(A)   (A)
  2764. #define   _IQtoIQ22(A)   (A)
  2765. #define   _IQtoIQ21(A)   (A)
  2766. #define   _IQtoIQ20(A)   (A)
  2767. #define   _IQtoIQ19(A)   (A)
  2768. #define   _IQtoIQ18(A)   (A)
  2769. #define   _IQtoIQ17(A)   (A)
  2770. #define   _IQtoIQ16(A)   (A)
  2771. #define   _IQtoIQ15(A)   (A)
  2772. #define   _IQtoIQ14(A)   (A)
  2773. #define   _IQtoIQ13(A)   (A)
  2774. #define   _IQtoIQ12(A)   (A)
  2775. #define   _IQtoIQ11(A)   (A)
  2776. #define   _IQtoIQ10(A)   (A)
  2777. #define   _IQtoIQ9(A)    (A)
  2778. #define   _IQtoIQ8(A)    (A)
  2779. #define   _IQtoIQ7(A)    (A)
  2780. #define   _IQtoIQ6(A)    (A)
  2781. #define   _IQtoIQ5(A)    (A)
  2782. #define   _IQtoIQ4(A)    (A)
  2783. #define   _IQtoIQ3(A)    (A)
  2784. #define   _IQtoIQ2(A)    (A)
  2785. #define   _IQtoIQ1(A)    (A)
  2786. //---------------------------------------------------------------------------
  2787. #define   _IQ30toIQ(A)   (A)
  2788. #define   _IQ29toIQ(A)   (A)
  2789. #define   _IQ28toIQ(A)   (A)
  2790. #define   _IQ27toIQ(A)   (A)
  2791. #define   _IQ26toIQ(A)   (A)
  2792. #define   _IQ25toIQ(A)   (A)
  2793. #define   _IQ24toIQ(A)   (A)
  2794. #define   _IQ23toIQ(A)   (A)
  2795. #define   _IQ22toIQ(A)   (A)
  2796. #define   _IQ21toIQ(A)   (A)
  2797. #define   _IQ20toIQ(A)   (A)
  2798. #define   _IQ19toIQ(A)   (A)
  2799. #define   _IQ18toIQ(A)   (A)
  2800. #define   _IQ17toIQ(A)   (A)
  2801. #define   _IQ16toIQ(A)   (A)
  2802. #define   _IQ15toIQ(A)   (A)
  2803. #define   _IQ14toIQ(A)   (A)
  2804. #define   _IQ13toIQ(A)   (A)
  2805. #define   _IQ12toIQ(A)   (A)
  2806. #define   _IQ11toIQ(A)   (A)
  2807. #define   _IQ10toIQ(A)   (A)
  2808. #define   _IQ9toIQ(A)    (A)
  2809. #define   _IQ8toIQ(A)    (A)
  2810. #define   _IQ7toIQ(A)    (A)
  2811. #define   _IQ6toIQ(A)    (A)
  2812. #define   _IQ5toIQ(A)    (A)
  2813. #define   _IQ4toIQ(A)    (A)
  2814. #define   _IQ3toIQ(A)    (A)
  2815. #define   _IQ2toIQ(A)    (A)
  2816. #define   _IQ1toIQ(A)    (A)
  2817. //---------------------------------------------------------------------------
  2818. #define   _IQtoQ15(A)    (short) ((long)((A) * 32768.0L))
  2819. #define   _IQtoQ14(A)    (short) ((long)((A) * 16384.0L))
  2820. #define   _IQtoQ13(A)    (short) ((long)((A) * 8192.0L))
  2821. #define   _IQtoQ12(A)    (short) ((long)((A) * 4096.0L))
  2822. #define   _IQtoQ11(A)    (short) ((long)((A) * 2048.0L))
  2823. #define   _IQtoQ10(A)    (short) ((long)((A) * 1024.0L))
  2824. #define   _IQtoQ9(A)     (short) ((long)((A) * 512.0L))
  2825. #define   _IQtoQ8(A)     (short) ((long)((A) * 256.0L))
  2826. #define   _IQtoQ7(A)     (short) ((long)((A) * 128.0L))
  2827. #define   _IQtoQ6(A)     (short) ((long)((A) * 64.0L))
  2828. #define   _IQtoQ5(A)     (short) ((long)((A) * 32.0L))
  2829. #define   _IQtoQ4(A)     (short) ((long)((A) * 16.0L))
  2830. #define   _IQtoQ3(A)     (short) ((long)((A) * 8.0L))
  2831. #define   _IQtoQ2(A)     (short) ((long)((A) * 4.0L))
  2832. #define   _IQtoQ1(A)     (short) ((long)((A) * 2.0L))
  2833. //---------------------------------------------------------------------------
  2834. #define   _Q15toIQ(A)    (((float) (A)) * 0.000030518)
  2835. #define   _Q14toIQ(A)    (((float) (A)) * 0.000061035)
  2836. #define   _Q13toIQ(A)    (((float) (A)) * 0.000122070)
  2837. #define   _Q12toIQ(A)    (((float) (A)) * 0.000244141)
  2838. #define   _Q11toIQ(A)    (((float) (A)) * 0.000488281)
  2839. #define   _Q10toIQ(A)    (((float) (A)) * 0.000976563)
  2840. #define   _Q9toIQ(A)     (((float) (A)) * 0.001953125)
  2841. #define   _Q8toIQ(A)     (((float) (A)) * 0.003906250)
  2842. #define   _Q7toIQ(A)     (((float) (A)) * 0.007812500)
  2843. #define   _Q6toIQ(A)     (((float) (A)) * 0.015625000)
  2844. #define   _Q5toIQ(A)     (((float) (A)) * 0.031250000)
  2845. #define   _Q4toIQ(A)     (((float) (A)) * 0.062500000)
  2846. #define   _Q3toIQ(A)     (((float) (A)) * 0.125000000)
  2847. #define   _Q2toIQ(A)     (((float) (A)) * 0.250000000)
  2848. #define   _Q1toIQ(A)     (((float) (A)) * 0.500000000)
  2849. //---------------------------------------------------------------------------
  2850. #define   _IQmpy(A,B)         ((A) * (B))
  2851. #define   _IQ30mpy(A,B)       ((A) * (B))
  2852. #define   _IQ29mpy(A,B)       ((A) * (B))
  2853. #define   _IQ28mpy(A,B)       ((A) * (B))
  2854. #define   _IQ27mpy(A,B)       ((A) * (B))
  2855. #define   _IQ26mpy(A,B)       ((A) * (B))
  2856. #define   _IQ25mpy(A,B)       ((A) * (B))
  2857. #define   _IQ24mpy(A,B)       ((A) * (B))
  2858. #define   _IQ23mpy(A,B)       ((A) * (B))
  2859. #define   _IQ22mpy(A,B)       ((A) * (B))
  2860. #define   _IQ21mpy(A,B)       ((A) * (B))
  2861. #define   _IQ20mpy(A,B)       ((A) * (B))
  2862. #define   _IQ19mpy(A,B)       ((A) * (B))
  2863. #define   _IQ18mpy(A,B)       ((A) * (B))
  2864. #define   _IQ17mpy(A,B)       ((A) * (B))
  2865. #define   _IQ16mpy(A,B)       ((A) * (B))
  2866. #define   _IQ15mpy(A,B)       ((A) * (B))
  2867. #define   _IQ14mpy(A,B)       ((A) * (B))
  2868. #define   _IQ13mpy(A,B)       ((A) * (B))
  2869. #define   _IQ12mpy(A,B)       ((A) * (B))
  2870. #define   _IQ11mpy(A,B)       ((A) * (B))
  2871. #define   _IQ10mpy(A,B)       ((A) * (B))
  2872. #define   _IQ9mpy(A,B)        ((A) * (B))
  2873. #define   _IQ8mpy(A,B)        ((A) * (B))
  2874. #define   _IQ7mpy(A,B)        ((A) * (B))
  2875. #define   _IQ6mpy(A,B)        ((A) * (B))
  2876. #define   _IQ5mpy(A,B)        ((A) * (B))
  2877. #define   _IQ4mpy(A,B)        ((A) * (B))
  2878. #define   _IQ3mpy(A,B)        ((A) * (B))
  2879. #define   _IQ2mpy(A,B)        ((A) * (B))
  2880. #define   _IQ1mpy(A,B)        ((A) * (B))
  2881. //---------------------------------------------------------------------------
  2882. #define   _IQrmpy(A,B)        ((A) * (B))
  2883. #define   _IQ30rmpy(A,B)      ((A) * (B))
  2884. #define   _IQ29rmpy(A,B)      ((A) * (B))
  2885. #define   _IQ28rmpy(A,B)      ((A) * (B))
  2886. #define   _IQ27rmpy(A,B)      ((A) * (B))
  2887. #define   _IQ26rmpy(A,B)      ((A) * (B))
  2888. #define   _IQ25rmpy(A,B)      ((A) * (B))
  2889. #define   _IQ24rmpy(A,B)      ((A) * (B))
  2890. #define   _IQ23rmpy(A,B)      ((A) * (B))
  2891. #define   _IQ22rmpy(A,B)      ((A) * (B))
  2892. #define   _IQ21rmpy(A,B)      ((A) * (B))
  2893. #define   _IQ20rmpy(A,B)      ((A) * (B))
  2894. #define   _IQ19rmpy(A,B)      ((A) * (B))
  2895. #define   _IQ18rmpy(A,B)      ((A) * (B))
  2896. #define   _IQ17rmpy(A,B)      ((A) * (B))
  2897. #define   _IQ16rmpy(A,B)      ((A) * (B))
  2898. #define   _IQ15rmpy(A,B)      ((A) * (B))
  2899. #define   _IQ14rmpy(A,B)      ((A) * (B))
  2900. #define   _IQ13rmpy(A,B)      ((A) * (B))
  2901. #define   _IQ12rmpy(A,B)      ((A) * (B))
  2902. #define   _IQ11rmpy(A,B)      ((A) * (B))
  2903. #define   _IQ10rmpy(A,B)      ((A) * (B))
  2904. #define   _IQ9rmpy(A,B)       ((A) * (B))
  2905. #define   _IQ8rmpy(A,B)       ((A) * (B))
  2906. #define   _IQ7rmpy(A,B)       ((A) * (B))
  2907. #define   _IQ6rmpy(A,B)       ((A) * (B))
  2908. #define   _IQ5rmpy(A,B)       ((A) * (B))
  2909. #define   _IQ4rmpy(A,B)       ((A) * (B))
  2910. #define   _IQ3rmpy(A,B)       ((A) * (B))
  2911. #define   _IQ2rmpy(A,B)       ((A) * (B))
  2912. #define   _IQ1rmpy(A,B)       ((A) * (B))
  2913. //---------------------------------------------------------------------------
  2914. #define   _IQrsmpy(A,B)       ((A) * (B))
  2915. #define   _IQ30rsmpy(A,B)     ((A) * (B))
  2916. #define   _IQ29rsmpy(A,B)     ((A) * (B))
  2917. #define   _IQ28rsmpy(A,B)     ((A) * (B))
  2918. #define   _IQ27rsmpy(A,B)     ((A) * (B))
  2919. #define   _IQ26rsmpy(A,B)     ((A) * (B))
  2920. #define   _IQ25rsmpy(A,B)     ((A) * (B))
  2921. #define   _IQ24rsmpy(A,B)     ((A) * (B))
  2922. #define   _IQ23rsmpy(A,B)     ((A) * (B))
  2923. #define   _IQ22rsmpy(A,B)     ((A) * (B))
  2924. #define   _IQ21rsmpy(A,B)     ((A) * (B))
  2925. #define   _IQ20rsmpy(A,B)     ((A) * (B))
  2926. #define   _IQ19rsmpy(A,B)     ((A) * (B))
  2927. #define   _IQ18rsmpy(A,B)     ((A) * (B))
  2928. #define   _IQ17rsmpy(A,B)     ((A) * (B))
  2929. #define   _IQ16rsmpy(A,B)     ((A) * (B))
  2930. #define   _IQ15rsmpy(A,B)     ((A) * (B))
  2931. #define   _IQ14rsmpy(A,B)     ((A) * (B))
  2932. #define   _IQ13rsmpy(A,B)     ((A) * (B))
  2933. #define   _IQ12rsmpy(A,B)     ((A) * (B))
  2934. #define   _IQ11rsmpy(A,B)     ((A) * (B))
  2935. #define   _IQ10rsmpy(A,B)     ((A) * (B))
  2936. #define   _IQ9rsmpy(A,B)      ((A) * (B))
  2937. #define   _IQ8rsmpy(A,B)      ((A) * (B))
  2938. #define   _IQ7rsmpy(A,B)      ((A) * (B))
  2939. #define   _IQ6rsmpy(A,B)      ((A) * (B))
  2940. #define   _IQ5rsmpy(A,B)      ((A) * (B))
  2941. #define   _IQ4rsmpy(A,B)      ((A) * (B))
  2942. #define   _IQ3rsmpy(A,B)      ((A) * (B))
  2943. #define   _IQ2rsmpy(A,B)      ((A) * (B))
  2944. #define   _IQ1rsmpy(A,B)      ((A) * (B))
  2945. //---------------------------------------------------------------------------
  2946. #define   _IQdiv(A,B)         ((A) / (B))
  2947. #define   _IQ30div(A,B)       ((A) / (B))
  2948. #define   _IQ29div(A,B)       ((A) / (B))
  2949. #define   _IQ28div(A,B)       ((A) / (B))
  2950. #define   _IQ27div(A,B)       ((A) / (B))
  2951. #define   _IQ26div(A,B)       ((A) / (B))
  2952. #define   _IQ25div(A,B)       ((A) / (B))
  2953. #define   _IQ24div(A,B)       ((A) / (B))
  2954. #define   _IQ23div(A,B)       ((A) / (B))
  2955. #define   _IQ22div(A,B)       ((A) / (B))
  2956. #define   _IQ21div(A,B)       ((A) / (B))
  2957. #define   _IQ20div(A,B)       ((A) / (B))
  2958. #define   _IQ19div(A,B)       ((A) / (B))
  2959. #define   _IQ18div(A,B)       ((A) / (B))
  2960. #define   _IQ17div(A,B)       ((A) / (B))
  2961. #define   _IQ16div(A,B)       ((A) / (B))
  2962. #define   _IQ15div(A,B)       ((A) / (B))
  2963. #define   _IQ14div(A,B)       ((A) / (B))
  2964. #define   _IQ13div(A,B)       ((A) / (B))
  2965. #define   _IQ12div(A,B)       ((A) / (B))
  2966. #define   _IQ11div(A,B)       ((A) / (B))
  2967. #define   _IQ10div(A,B)       ((A) / (B))
  2968. #define   _IQ9div(A,B)        ((A) / (B))
  2969. #define   _IQ8div(A,B)        ((A) / (B))
  2970. #define   _IQ7div(A,B)        ((A) / (B))
  2971. #define   _IQ6div(A,B)        ((A) / (B))
  2972. #define   _IQ5div(A,B)        ((A) / (B))
  2973. #define   _IQ4div(A,B)        ((A) / (B))
  2974. #define   _IQ3div(A,B)        ((A) / (B))
  2975. #define   _IQ2div(A,B)        ((A) / (B))
  2976. #define   _IQ1div(A,B)        ((A) / (B))
  2977. //---------------------------------------------------------------------------
  2978. #define   _IQsin(A)           sin(A)
  2979. #define   _IQ30sin(A)         sin(A)
  2980. #define   _IQ29sin(A)         sin(A)
  2981. #define   _IQ28sin(A)         sin(A)
  2982. #define   _IQ27sin(A)         sin(A)
  2983. #define   _IQ26sin(A)         sin(A)
  2984. #define   _IQ25sin(A)         sin(A)
  2985. #define   _IQ24sin(A)         sin(A)
  2986. #define   _IQ23sin(A)         sin(A)
  2987. #define   _IQ22sin(A)         sin(A)
  2988. #define   _IQ21sin(A)         sin(A)
  2989. #define   _IQ20sin(A)         sin(A)
  2990. #define   _IQ19sin(A)         sin(A)
  2991. #define   _IQ18sin(A)         sin(A)
  2992. #define   _IQ17sin(A)         sin(A)
  2993. #define   _IQ16sin(A)         sin(A)
  2994. #define   _IQ15sin(A)         sin(A)
  2995. #define   _IQ14sin(A)         sin(A)
  2996. #define   _IQ13sin(A)         sin(A)
  2997. #define   _IQ12sin(A)         sin(A)
  2998. #define   _IQ11sin(A)         sin(A)
  2999. #define   _IQ10sin(A)         sin(A)
  3000. #define   _IQ9sin(A)          sin(A)
  3001. #define   _IQ8sin(A)          sin(A)
  3002. #define   _IQ7sin(A)          sin(A)
  3003. #define   _IQ6sin(A)          sin(A)
  3004. #define   _IQ5sin(A)          sin(A)
  3005. #define   _IQ4sin(A)          sin(A)
  3006. #define   _IQ3sin(A)          sin(A)
  3007. #define   _IQ2sin(A)          sin(A)
  3008. #define   _IQ1sin(A)          sin(A)
  3009. //---------------------------------------------------------------------------
  3010. #define   _IQsinPU(A)         sin((A)*6.283185307)
  3011. #define   _IQ30sinPU(A)       sin((A)*6.283185307)
  3012. #define   _IQ29sinPU(A)       sin((A)*6.283185307)
  3013. #define   _IQ28sinPU(A)       sin((A)*6.283185307)
  3014. #define   _IQ27sinPU(A)       sin((A)*6.283185307)
  3015. #define   _IQ26sinPU(A)       sin((A)*6.283185307)
  3016. #define   _IQ25sinPU(A)       sin((A)*6.283185307)
  3017. #define   _IQ24sinPU(A)       sin((A)*6.283185307)
  3018. #define   _IQ23sinPU(A)       sin((A)*6.283185307)
  3019. #define   _IQ22sinPU(A)       sin((A)*6.283185307)
  3020. #define   _IQ21sinPU(A)       sin((A)*6.283185307)
  3021. #define   _IQ20sinPU(A)       sin((A)*6.283185307)
  3022. #define   _IQ19sinPU(A)       sin((A)*6.283185307)
  3023. #define   _IQ18sinPU(A)       sin((A)*6.283185307)
  3024. #define   _IQ17sinPU(A)       sin((A)*6.283185307)
  3025. #define   _IQ16sinPU(A)       sin((A)*6.283185307)
  3026. #define   _IQ15sinPU(A)       sin((A)*6.283185307)
  3027. #define   _IQ14sinPU(A)       sin((A)*6.283185307)
  3028. #define   _IQ13sinPU(A)       sin((A)*6.283185307)
  3029. #define   _IQ12sinPU(A)       sin((A)*6.283185307)
  3030. #define   _IQ11sinPU(A)       sin((A)*6.283185307)
  3031. #define   _IQ10sinPU(A)       sin((A)*6.283185307)
  3032. #define   _IQ9sinPU(A)        sin((A)*6.283185307)
  3033. #define   _IQ8sinPU(A)        sin((A)*6.283185307)
  3034. #define   _IQ7sinPU(A)        sin((A)*6.283185307)
  3035. #define   _IQ6sinPU(A)        sin((A)*6.283185307)
  3036. #define   _IQ5sinPU(A)        sin((A)*6.283185307)
  3037. #define   _IQ4sinPU(A)        sin((A)*6.283185307)
  3038. #define   _IQ3sinPU(A)        sin((A)*6.283185307)
  3039. #define   _IQ2sinPU(A)        sin((A)*6.283185307)
  3040. #define   _IQ1sinPU(A)        sin((A)*6.283185307)
  3041. //---------------------------------------------------------------------------
  3042. #define   _IQcos(A)           cos(A)
  3043. #define   _IQ30cos(A)         cos(A)
  3044. #define   _IQ29cos(A)         cos(A)
  3045. #define   _IQ28cos(A)         cos(A)
  3046. #define   _IQ27cos(A)         cos(A)
  3047. #define   _IQ26cos(A)         cos(A)
  3048. #define   _IQ25cos(A)         cos(A)
  3049. #define   _IQ24cos(A)         cos(A)
  3050. #define   _IQ23cos(A)         cos(A)
  3051. #define   _IQ22cos(A)         cos(A)
  3052. #define   _IQ21cos(A)         cos(A)
  3053. #define   _IQ20cos(A)         cos(A)
  3054. #define   _IQ19cos(A)         cos(A)
  3055. #define   _IQ18cos(A)         cos(A)
  3056. #define   _IQ17cos(A)         cos(A)
  3057. #define   _IQ16cos(A)         cos(A)
  3058. #define   _IQ15cos(A)         cos(A)
  3059. #define   _IQ14cos(A)         cos(A)
  3060. #define   _IQ13cos(A)         cos(A)
  3061. #define   _IQ12cos(A)         cos(A)
  3062. #define   _IQ11cos(A)         cos(A)
  3063. #define   _IQ10cos(A)         cos(A)
  3064. #define   _IQ9cos(A)          cos(A)
  3065. #define   _IQ8cos(A)          cos(A)
  3066. #define   _IQ7cos(A)          cos(A)
  3067. #define   _IQ6cos(A)          cos(A)
  3068. #define   _IQ5cos(A)          cos(A)
  3069. #define   _IQ4cos(A)          cos(A)
  3070. #define   _IQ3cos(A)          cos(A)
  3071. #define   _IQ2cos(A)          cos(A)
  3072. #define   _IQ1cos(A)          cos(A)
  3073. //---------------------------------------------------------------------------
  3074. #define   _IQcosPU(A)         cos((A)*6.283185307)
  3075. #define   _IQ30cosPU(A)       cos((A)*6.283185307)
  3076. #define   _IQ29cosPU(A)       cos((A)*6.283185307)
  3077. #define   _IQ28cosPU(A)       cos((A)*6.283185307)
  3078. #define   _IQ27cosPU(A)       cos((A)*6.283185307)
  3079. #define   _IQ26cosPU(A)       cos((A)*6.283185307)
  3080. #define   _IQ25cosPU(A)       cos((A)*6.283185307)
  3081. #define   _IQ24cosPU(A)       cos((A)*6.283185307)
  3082. #define   _IQ23cosPU(A)       cos((A)*6.283185307)
  3083. #define   _IQ22cosPU(A)       cos((A)*6.283185307)
  3084. #define   _IQ21cosPU(A)       cos((A)*6.283185307)
  3085. #define   _IQ20cosPU(A)       cos((A)*6.283185307)
  3086. #define   _IQ19cosPU(A)       cos((A)*6.283185307)
  3087. #define   _IQ18cosPU(A)       cos((A)*6.283185307)
  3088. #define   _IQ17cosPU(A)       cos((A)*6.283185307)
  3089. #define   _IQ16cosPU(A)       cos((A)*6.283185307)
  3090. #define   _IQ15cosPU(A)       cos((A)*6.283185307)
  3091. #define   _IQ14cosPU(A)       cos((A)*6.283185307)
  3092. #define   _IQ13cosPU(A)       cos((A)*6.283185307)
  3093. #define   _IQ12cosPU(A)       cos((A)*6.283185307)
  3094. #define   _IQ11cosPU(A)       cos((A)*6.283185307)
  3095. #define   _IQ10cosPU(A)       cos((A)*6.283185307)
  3096. #define   _IQ9cosPU(A)        cos((A)*6.283185307)
  3097. #define   _IQ8cosPU(A)        cos((A)*6.283185307)
  3098. #define   _IQ7cosPU(A)        cos((A)*6.283185307)
  3099. #define   _IQ6cosPU(A)        cos((A)*6.283185307)
  3100. #define   _IQ5cosPU(A)        cos((A)*6.283185307)
  3101. #define   _IQ4cosPU(A)        cos((A)*6.283185307)
  3102. #define   _IQ3cosPU(A)        cos((A)*6.283185307)
  3103. #define   _IQ2cosPU(A)        cos((A)*6.283185307)
  3104. #define   _IQ1cosPU(A)        cos((A)*6.283185307)
  3105. //---------------------------------------------------------------------------
  3106. #define   _IQatan(A)          atan(A)
  3107. #define   _IQ30atan(A)        atan(A)
  3108. #define   _IQ29atan(A)        atan(A)
  3109. #define   _IQ28atan(A)        atan(A)
  3110. #define   _IQ27atan(A)        atan(A)
  3111. #define   _IQ26atan(A)        atan(A)
  3112. #define   _IQ25atan(A)        atan(A)
  3113. #define   _IQ24atan(A)        atan(A)
  3114. #define   _IQ23atan(A)        atan(A)
  3115. #define   _IQ22atan(A)        atan(A)
  3116. #define   _IQ21atan(A)        atan(A)
  3117. #define   _IQ20atan(A)        atan(A)
  3118. #define   _IQ19atan(A)        atan(A)
  3119. #define   _IQ18atan(A)        atan(A)
  3120. #define   _IQ17atan(A)        atan(A)
  3121. #define   _IQ16atan(A)        atan(A)
  3122. #define   _IQ15atan(A)        atan(A)
  3123. #define   _IQ14atan(A)        atan(A)
  3124. #define   _IQ13atan(A)        atan(A)
  3125. #define   _IQ12atan(A)        atan(A)
  3126. #define   _IQ11atan(A)        atan(A)
  3127. #define   _IQ10atan(A)        atan(A)
  3128. #define   _IQ9atan(A)         atan(A)
  3129. #define   _IQ8atan(A)         atan(A)
  3130. #define   _IQ7atan(A)         atan(A)
  3131. #define   _IQ6atan(A)         atan(A)
  3132. #define   _IQ5atan(A)         atan(A)
  3133. #define   _IQ4atan(A)         atan(A)
  3134. #define   _IQ3atan(A)         atan(A)
  3135. #define   _IQ2atan(A)         atan(A)
  3136. #define   _IQ1atan(A)         atan(A)
  3137. //---------------------------------------------------------------------------
  3138. #define   _IQatan2(A,B)       atan2(A,B)
  3139. #define   _IQ30atan2(A,B)     atan2(A,B)
  3140. #define   _IQ29atan2(A,B)     atan2(A,B)
  3141. #define   _IQ28atan2(A,B)     atan2(A,B)
  3142. #define   _IQ27atan2(A,B)     atan2(A,B)
  3143. #define   _IQ26atan2(A,B)     atan2(A,B)
  3144. #define   _IQ25atan2(A,B)     atan2(A,B)
  3145. #define   _IQ24atan2(A,B)     atan2(A,B)
  3146. #define   _IQ23atan2(A,B)     atan2(A,B)
  3147. #define   _IQ22atan2(A,B)     atan2(A,B)
  3148. #define   _IQ21atan2(A,B)     atan2(A,B)
  3149. #define   _IQ20atan2(A,B)     atan2(A,B)
  3150. #define   _IQ19atan2(A,B)     atan2(A,B)
  3151. #define   _IQ18atan2(A,B)     atan2(A,B)
  3152. #define   _IQ17atan2(A,B)     atan2(A,B)
  3153. #define   _IQ16atan2(A,B)     atan2(A,B)
  3154. #define   _IQ15atan2(A,B)     atan2(A,B)
  3155. #define   _IQ14atan2(A,B)     atan2(A,B)
  3156. #define   _IQ13atan2(A,B)     atan2(A,B)
  3157. #define   _IQ12atan2(A,B)     atan2(A,B)
  3158. #define   _IQ11atan2(A,B)     atan2(A,B)
  3159. #define   _IQ10atan2(A,B)     atan2(A,B)
  3160. #define   _IQ9atan2(A,B)      atan2(A,B)
  3161. #define   _IQ8atan2(A,B)      atan2(A,B)
  3162. #define   _IQ7atan2(A,B)      atan2(A,B)
  3163. #define   _IQ6atan2(A,B)      atan2(A,B)
  3164. #define   _IQ5atan2(A,B)      atan2(A,B)
  3165. #define   _IQ4atan2(A,B)      atan2(A,B)
  3166. #define   _IQ3atan2(A,B)      atan2(A,B)
  3167. #define   _IQ2atan2(A,B)      atan2(A,B)
  3168. #define   _IQ1atan2(A,B)      atan2(A,B)
  3169. //---------------------------------------------------------------------------
  3170. #define   _IQatan2PU(A,B)     ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3171. #define   _IQ30atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3172. #define   _IQ29atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3173. #define   _IQ28atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3174. #define   _IQ27atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3175. #define   _IQ26atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3176. #define   _IQ25atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3177. #define   _IQ24atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3178. #define   _IQ23atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3179. #define   _IQ22atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3180. #define   _IQ21atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3181. #define   _IQ20atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3182. #define   _IQ19atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3183. #define   _IQ18atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3184. #define   _IQ17atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3185. #define   _IQ16atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3186. #define   _IQ15atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3187. #define   _IQ14atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3188. #define   _IQ13atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3189. #define   _IQ12atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3190. #define   _IQ11atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3191. #define   _IQ10atan2PU(A,B)   ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3192. #define   _IQ9atan2PU(A,B)    ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3193. #define   _IQ8atan2PU(A,B)    ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3194. #define   _IQ7atan2PU(A,B)    ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3195. #define   _IQ6atan2PU(A,B)    ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3196. #define   _IQ5atan2PU(A,B)    ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3197. #define   _IQ4atan2PU(A,B)    ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3198. #define   _IQ3atan2PU(A,B)    ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3199. #define   _IQ2atan2PU(A,B)    ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3200. #define   _IQ1atan2PU(A,B)    ((atan2(A,B)/6.283185307) >= 0.0 ? (atan2(A,B)/6.283185307):1.0 + (atan2(A,B)/6.283185307))
  3201. //---------------------------------------------------------------------------
  3202. #define   _IQsqrt(A)          sqrt(A)
  3203. #define   _IQ30sqrt(A)        sqrt(A)
  3204. #define   _IQ29sqrt(A)        sqrt(A)
  3205. #define   _IQ28sqrt(A)        sqrt(A)
  3206. #define   _IQ27sqrt(A)        sqrt(A)
  3207. #define   _IQ26sqrt(A)        sqrt(A)
  3208. #define   _IQ25sqrt(A)        sqrt(A)
  3209. #define   _IQ24sqrt(A)        sqrt(A)
  3210. #define   _IQ23sqrt(A)        sqrt(A)
  3211. #define   _IQ22sqrt(A)        sqrt(A)
  3212. #define   _IQ21sqrt(A)        sqrt(A)
  3213. #define   _IQ20sqrt(A)        sqrt(A)
  3214. #define   _IQ19sqrt(A)        sqrt(A)
  3215. #define   _IQ18sqrt(A)        sqrt(A)
  3216. #define   _IQ17sqrt(A)        sqrt(A)
  3217. #define   _IQ16sqrt(A)        sqrt(A)
  3218. #define   _IQ15sqrt(A)        sqrt(A)
  3219. #define   _IQ14sqrt(A)        sqrt(A)
  3220. #define   _IQ13sqrt(A)        sqrt(A)
  3221. #define   _IQ12sqrt(A)        sqrt(A)
  3222. #define   _IQ11sqrt(A)        sqrt(A)
  3223. #define   _IQ10sqrt(A)        sqrt(A)
  3224. #define   _IQ9sqrt(A)         sqrt(A)
  3225. #define   _IQ8sqrt(A)         sqrt(A)
  3226. #define   _IQ7sqrt(A)         sqrt(A)
  3227. #define   _IQ6sqrt(A)         sqrt(A)
  3228. #define   _IQ5sqrt(A)         sqrt(A)
  3229. #define   _IQ4sqrt(A)         sqrt(A)
  3230. #define   _IQ3sqrt(A)         sqrt(A)
  3231. #define   _IQ2sqrt(A)         sqrt(A)
  3232. #define   _IQ1sqrt(A)         sqrt(A)
  3233. //---------------------------------------------------------------------------
  3234. #define   _IQisqrt(A)         (1.0/sqrt(A))
  3235. #define   _IQ30isqrt(A)       (1.0/sqrt(A))
  3236. #define   _IQ29isqrt(A)       (1.0/sqrt(A))
  3237. #define   _IQ28isqrt(A)       (1.0/sqrt(A))
  3238. #define   _IQ27isqrt(A)       (1.0/sqrt(A))
  3239. #define   _IQ26isqrt(A)       (1.0/sqrt(A))
  3240. #define   _IQ25isqrt(A)       (1.0/sqrt(A))
  3241. #define   _IQ24isqrt(A)       (1.0/sqrt(A))
  3242. #define   _IQ23isqrt(A)       (1.0/sqrt(A))
  3243. #define   _IQ22isqrt(A)       (1.0/sqrt(A))
  3244. #define   _IQ21isqrt(A)       (1.0/sqrt(A))
  3245. #define   _IQ20isqrt(A)       (1.0/sqrt(A))
  3246. #define   _IQ19isqrt(A)       (1.0/sqrt(A))
  3247. #define   _IQ18isqrt(A)       (1.0/sqrt(A))
  3248. #define   _IQ17isqrt(A)       (1.0/sqrt(A))
  3249. #define   _IQ16isqrt(A)       (1.0/sqrt(A))
  3250. #define   _IQ15isqrt(A)       (1.0/sqrt(A))
  3251. #define   _IQ14isqrt(A)       (1.0/sqrt(A))
  3252. #define   _IQ13isqrt(A)       (1.0/sqrt(A))
  3253. #define   _IQ12isqrt(A)       (1.0/sqrt(A))
  3254. #define   _IQ11isqrt(A)       (1.0/sqrt(A))
  3255. #define   _IQ10isqrt(A)       (1.0/sqrt(A))
  3256. #define   _IQ9isqrt(A)        (1.0/sqrt(A))
  3257. #define   _IQ8isqrt(A)        (1.0/sqrt(A))
  3258. #define   _IQ7isqrt(A)        (1.0/sqrt(A))
  3259. #define   _IQ6isqrt(A)        (1.0/sqrt(A))
  3260. #define   _IQ5isqrt(A)        (1.0/sqrt(A))
  3261. #define   _IQ4isqrt(A)        (1.0/sqrt(A))
  3262. #define   _IQ3isqrt(A)        (1.0/sqrt(A))
  3263. #define   _IQ2isqrt(A)        (1.0/sqrt(A))
  3264. #define   _IQ1isqrt(A)        (1.0/sqrt(A))
  3265. //---------------------------------------------------------------------------
  3266. #define   _IQint(A)           ((long) (A))
  3267. #define   _IQ30int(A)         ((long) (A))
  3268. #define   _IQ29int(A)         ((long) (A))
  3269. #define   _IQ28int(A)         ((long) (A))
  3270. #define   _IQ27int(A)         ((long) (A))
  3271. #define   _IQ26int(A)         ((long) (A))
  3272. #define   _IQ25int(A)         ((long) (A))
  3273. #define   _IQ24int(A)         ((long) (A))
  3274. #define   _IQ23int(A)         ((long) (A))
  3275. #define   _IQ22int(A)         ((long) (A))
  3276. #define   _IQ21int(A)         ((long) (A))
  3277. #define   _IQ20int(A)         ((long) (A))
  3278. #define   _IQ19int(A)         ((long) (A))
  3279. #define   _IQ18int(A)         ((long) (A))
  3280. #define   _IQ17int(A)         ((long) (A))
  3281. #define   _IQ16int(A)         ((long) (A))
  3282. #define   _IQ15int(A)         ((long) (A))
  3283. #define   _IQ14int(A)         ((long) (A))
  3284. #define   _IQ13int(A)         ((long) (A))
  3285. #define   _IQ12int(A)         ((long) (A))
  3286. #define   _IQ11int(A)         ((long) (A))
  3287. #define   _IQ10int(A)         ((long) (A))
  3288. #define   _IQ9int(A)          ((long) (A))
  3289. #define   _IQ8int(A)          ((long) (A))
  3290. #define   _IQ7int(A)          ((long) (A))
  3291. #define   _IQ6int(A)          ((long) (A))
  3292. #define   _IQ5int(A)          ((long) (A))
  3293. #define   _IQ4int(A)          ((long) (A))
  3294. #define   _IQ3int(A)          ((long) (A))
  3295. #define   _IQ2int(A)          ((long) (A))
  3296. #define   _IQ1int(A)          ((long) (A))
  3297. //---------------------------------------------------------------------------
  3298. #define   _IQfrac(A)          ((A) - (float)((long) (A)))
  3299. #define   _IQ30frac(A)        ((A) - (float)((long) (A)))
  3300. #define   _IQ29frac(A)        ((A) - (float)((long) (A)))
  3301. #define   _IQ28frac(A)        ((A) - (float)((long) (A)))
  3302. #define   _IQ27frac(A)        ((A) - (float)((long) (A)))
  3303. #define   _IQ26frac(A)        ((A) - (float)((long) (A)))
  3304. #define   _IQ25frac(A)        ((A) - (float)((long) (A)))
  3305. #define   _IQ24frac(A)        ((A) - (float)((long) (A)))
  3306. #define   _IQ23frac(A)        ((A) - (float)((long) (A)))
  3307. #define   _IQ22frac(A)        ((A) - (float)((long) (A)))
  3308. #define   _IQ21frac(A)        ((A) - (float)((long) (A)))
  3309. #define   _IQ20frac(A)        ((A) - (float)((long) (A)))
  3310. #define   _IQ19frac(A)        ((A) - (float)((long) (A)))
  3311. #define   _IQ18frac(A)        ((A) - (float)((long) (A)))
  3312. #define   _IQ17frac(A)        ((A) - (float)((long) (A)))
  3313. #define   _IQ16frac(A)        ((A) - (float)((long) (A)))
  3314. #define   _IQ15frac(A)        ((A) - (float)((long) (A)))
  3315. #define   _IQ14frac(A)        ((A) - (float)((long) (A)))
  3316. #define   _IQ13frac(A)        ((A) - (float)((long) (A)))
  3317. #define   _IQ12frac(A)        ((A) - (float)((long) (A)))
  3318. #define   _IQ11frac(A)        ((A) - (float)((long) (A)))
  3319. #define   _IQ10frac(A)        ((A) - (float)((long) (A)))
  3320. #define   _IQ9frac(A)         ((A) - (float)((long) (A)))
  3321. #define   _IQ8frac(A)         ((A) - (float)((long) (A)))
  3322. #define   _IQ7frac(A)         ((A) - (float)((long) (A)))
  3323. #define   _IQ6frac(A)         ((A) - (float)((long) (A)))
  3324. #define   _IQ5frac(A)         ((A) - (float)((long) (A)))
  3325. #define   _IQ4frac(A)         ((A) - (float)((long) (A)))
  3326. #define   _IQ3frac(A)         ((A) - (float)((long) (A)))
  3327. #define   _IQ2frac(A)         ((A) - (float)((long) (A)))
  3328. #define   _IQ1frac(A)         ((A) - (float)((long) (A)))
  3329. //---------------------------------------------------------------------------
  3330. #define   _IQmpyIQX(A, IQA, B, IQB)    ((A)*(B))    
  3331. #define   _IQ30mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3332. #define   _IQ29mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3333. #define   _IQ28mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3334. #define   _IQ27mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3335. #define   _IQ26mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3336. #define   _IQ25mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3337. #define   _IQ24mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3338. #define   _IQ23mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3339. #define   _IQ22mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3340. #define   _IQ21mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3341. #define   _IQ20mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3342. #define   _IQ19mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3343. #define   _IQ18mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3344. #define   _IQ17mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3345. #define   _IQ16mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3346. #define   _IQ15mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3347. #define   _IQ14mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3348. #define   _IQ13mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3349. #define   _IQ12mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3350. #define   _IQ11mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3351. #define   _IQ10mpyIQX(A, IQA, B, IQB)  ((A)*(B))    
  3352. #define   _IQ9mpyIQX(A, IQA, B, IQB)   ((A)*(B))    
  3353. #define   _IQ8mpyIQX(A, IQA, B, IQB)   ((A)*(B))    
  3354. #define   _IQ7mpyIQX(A, IQA, B, IQB)   ((A)*(B))    
  3355. #define   _IQ6mpyIQX(A, IQA, B, IQB)   ((A)*(B))    
  3356. #define   _IQ5mpyIQX(A, IQA, B, IQB)   ((A)*(B))    
  3357. #define   _IQ4mpyIQX(A, IQA, B, IQB)   ((A)*(B))    
  3358. #define   _IQ3mpyIQX(A, IQA, B, IQB)   ((A)*(B))    
  3359. #define   _IQ2mpyIQX(A, IQA, B, IQB)   ((A)*(B))    
  3360. #define   _IQ1mpyIQX(A, IQA, B, IQB)   ((A)*(B))    
  3361. //---------------------------------------------------------------------------
  3362. #define   _IQmpyI32(A,B)      ((A) * (float) (B))    
  3363. #define   _IQ30mpyI32(A,B)    ((A) * (float) (B))
  3364. #define   _IQ29mpyI32(A,B)    ((A) * (float) (B))
  3365. #define   _IQ28mpyI32(A,B)    ((A) * (float) (B))
  3366. #define   _IQ27mpyI32(A,B)    ((A) * (float) (B))
  3367. #define   _IQ26mpyI32(A,B)    ((A) * (float) (B))
  3368. #define   _IQ25mpyI32(A,B)    ((A) * (float) (B))
  3369. #define   _IQ24mpyI32(A,B)    ((A) * (float) (B))
  3370. #define   _IQ23mpyI32(A,B)    ((A) * (float) (B))
  3371. #define   _IQ22mpyI32(A,B)    ((A) * (float) (B))
  3372. #define   _IQ21mpyI32(A,B)    ((A) * (float) (B))
  3373. #define   _IQ20mpyI32(A,B)    ((A) * (float) (B))
  3374. #define   _IQ19mpyI32(A,B)    ((A) * (float) (B))
  3375. #define   _IQ18mpyI32(A,B)    ((A) * (float) (B))
  3376. #define   _IQ17mpyI32(A,B)    ((A) * (float) (B))
  3377. #define   _IQ16mpyI32(A,B)    ((A) * (float) (B))
  3378. #define   _IQ15mpyI32(A,B)    ((A) * (float) (B))
  3379. #define   _IQ14mpyI32(A,B)    ((A) * (float) (B))
  3380. #define   _IQ13mpyI32(A,B)    ((A) * (float) (B))
  3381. #define   _IQ12mpyI32(A,B)    ((A) * (float) (B))
  3382. #define   _IQ11mpyI32(A,B)    ((A) * (float) (B))
  3383. #define   _IQ10mpyI32(A,B)    ((A) * (float) (B))
  3384. #define   _IQ9mpyI32(A,B)     ((A) * (float) (B))
  3385. #define   _IQ8mpyI32(A,B)     ((A) * (float) (B))
  3386. #define   _IQ7mpyI32(A,B)     ((A) * (float) (B))
  3387. #define   _IQ6mpyI32(A,B)     ((A) * (float) (B))
  3388. #define   _IQ5mpyI32(A,B)     ((A) * (float) (B))
  3389. #define   _IQ4mpyI32(A,B)     ((A) * (float) (B))
  3390. #define   _IQ3mpyI32(A,B)     ((A) * (float) (B))
  3391. #define   _IQ2mpyI32(A,B)     ((A) * (float) (B))
  3392. #define   _IQ1mpyI32(A,B)     ((A) * (float) (B))
  3393. //---------------------------------------------------------------------------
  3394. #define   _IQmpyI32int(A,B)   ((long) ((A) * (float) (B)))
  3395. #define   _IQ30mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3396. #define   _IQ29mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3397. #define   _IQ28mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3398. #define   _IQ27mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3399. #define   _IQ26mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3400. #define   _IQ25mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3401. #define   _IQ24mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3402. #define   _IQ23mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3403. #define   _IQ22mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3404. #define   _IQ21mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3405. #define   _IQ20mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3406. #define   _IQ19mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3407. #define   _IQ18mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3408. #define   _IQ17mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3409. #define   _IQ16mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3410. #define   _IQ15mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3411. #define   _IQ14mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3412. #define   _IQ13mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3413. #define   _IQ12mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3414. #define   _IQ11mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3415. #define   _IQ10mpyI32int(A,B) ((long) ((A) * (float) (B)))
  3416. #define   _IQ9mpyI32int(A,B)  ((long) ((A) * (float) (B)))
  3417. #define   _IQ8mpyI32int(A,B)  ((long) ((A) * (float) (B)))
  3418. #define   _IQ7mpyI32int(A,B)  ((long) ((A) * (float) (B)))
  3419. #define   _IQ6mpyI32int(A,B)  ((long) ((A) * (float) (B)))
  3420. #define   _IQ5mpyI32int(A,B)  ((long) ((A) * (float) (B)))
  3421. #define   _IQ4mpyI32int(A,B)  ((long) ((A) * (float) (B)))
  3422. #define   _IQ3mpyI32int(A,B)  ((long) ((A) * (float) (B)))
  3423. #define   _IQ2mpyI32int(A,B)  ((long) ((A) * (float) (B)))
  3424. #define   _IQ1mpyI32int(A,B)  ((long) ((A) * (float) (B)))
  3425. //---------------------------------------------------------------------------
  3426. #define   _IQmpyI32frac(A,B)    ((A) - (float)((long) ((A) * (float) (B))))
  3427. #define   _IQ30mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3428. #define   _IQ29mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3429. #define   _IQ28mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3430. #define   _IQ27mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3431. #define   _IQ26mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3432. #define   _IQ25mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3433. #define   _IQ24mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3434. #define   _IQ23mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3435. #define   _IQ22mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3436. #define   _IQ21mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3437. #define   _IQ20mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3438. #define   _IQ19mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3439. #define   _IQ18mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3440. #define   _IQ17mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3441. #define   _IQ16mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3442. #define   _IQ15mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3443. #define   _IQ14mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3444. #define   _IQ13mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3445. #define   _IQ12mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3446. #define   _IQ11mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3447. #define   _IQ10mpyI32frac(A,B)  ((A) - (float)((long) ((A) * (float) (B))))
  3448. #define   _IQ9mpyI32frac(A,B)   ((A) - (float)((long) ((A) * (float) (B))))
  3449. #define   _IQ8mpyI32frac(A,B)   ((A) - (float)((long) ((A) * (float) (B))))
  3450. #define   _IQ7mpyI32frac(A,B)   ((A) - (float)((long) ((A) * (float) (B))))
  3451. #define   _IQ6mpyI32frac(A,B)   ((A) - (float)((long) ((A) * (float) (B))))
  3452. #define   _IQ5mpyI32frac(A,B)   ((A) - (float)((long) ((A) * (float) (B))))
  3453. #define   _IQ4mpyI32frac(A,B)   ((A) - (float)((long) ((A) * (float) (B))))
  3454. #define   _IQ3mpyI32frac(A,B)   ((A) - (float)((long) ((A) * (float) (B))))
  3455. #define   _IQ2mpyI32frac(A,B)   ((A) - (float)((long) ((A) * (float) (B))))
  3456. #define   _IQ1mpyI32frac(A,B)   ((A) - (float)((long) ((A) * (float) (B))))
  3457. //---------------------------------------------------------------------------
  3458. #define   _IQmag(A,B)         sqrt((A)*(A) + (B)*(B))
  3459. #define   _IQ30mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3460. #define   _IQ29mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3461. #define   _IQ28mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3462. #define   _IQ27mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3463. #define   _IQ26mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3464. #define   _IQ25mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3465. #define   _IQ24mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3466. #define   _IQ23mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3467. #define   _IQ22mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3468. #define   _IQ21mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3469. #define   _IQ20mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3470. #define   _IQ19mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3471. #define   _IQ18mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3472. #define   _IQ17mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3473. #define   _IQ16mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3474. #define   _IQ15mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3475. #define   _IQ14mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3476. #define   _IQ13mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3477. #define   _IQ12mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3478. #define   _IQ11mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3479. #define   _IQ10mag(A,B)       sqrt((A)*(A) + (B)*(B))
  3480. #define   _IQ9mag(A,B)        sqrt((A)*(A) + (B)*(B))
  3481. #define   _IQ8mag(A,B)        sqrt((A)*(A) + (B)*(B))
  3482. #define   _IQ7mag(A,B)        sqrt((A)*(A) + (B)*(B))
  3483. #define   _IQ6mag(A,B)        sqrt((A)*(A) + (B)*(B))
  3484. #define   _IQ5mag(A,B)        sqrt((A)*(A) + (B)*(B))
  3485. #define   _IQ4mag(A,B)        sqrt((A)*(A) + (B)*(B))
  3486. #define   _IQ3mag(A,B)        sqrt((A)*(A) + (B)*(B))
  3487. #define   _IQ2mag(A,B)        sqrt((A)*(A) + (B)*(B))
  3488. #define   _IQ1mag(A,B)        sqrt((A)*(A) + (B)*(B))
  3489. //---------------------------------------------------------------------------
  3490. #define   _atoIQ(A)           atof(A)
  3491. #define   _atoIQ30(A)         atof(A)
  3492. #define   _atoIQ29(A)         atof(A)
  3493. #define   _atoIQ28(A)         atof(A)
  3494. #define   _atoIQ27(A)         atof(A)
  3495. #define   _atoIQ26(A)         atof(A)
  3496. #define   _atoIQ25(A)         atof(A)
  3497. #define   _atoIQ24(A)         atof(A)
  3498. #define   _atoIQ23(A)         atof(A)
  3499. #define   _atoIQ22(A)         atof(A)
  3500. #define   _atoIQ21(A)         atof(A)
  3501. #define   _atoIQ20(A)         atof(A)
  3502. #define   _atoIQ19(A)         atof(A)
  3503. #define   _atoIQ18(A)         atof(A)
  3504. #define   _atoIQ17(A)         atof(A)
  3505. #define   _atoIQ16(A)         atof(A)
  3506. #define   _atoIQ15(A)         atof(A)
  3507. #define   _atoIQ14(A)         atof(A)
  3508. #define   _atoIQ13(A)         atof(A)
  3509. #define   _atoIQ12(A)         atof(A)
  3510. #define   _atoIQ11(A)         atof(A)
  3511. #define   _atoIQ10(A)         atof(A)
  3512. #define   _atoIQ9(A)          atof(A)
  3513. #define   _atoIQ8(A)          atof(A)
  3514. #define   _atoIQ7(A)          atof(A)
  3515. #define   _atoIQ6(A)          atof(A)
  3516. #define   _atoIQ5(A)          atof(A)
  3517. #define   _atoIQ4(A)          atof(A)
  3518. #define   _atoIQ3(A)          atof(A)
  3519. #define   _atoIQ2(A)          atof(A)
  3520. #define   _atoIQ1(A)          atof(A)
  3521. //###########################################################################
  3522. #endif  // No more.
  3523. //###########################################################################
  3524. #endif /* __IQMATHLIB_H_INCLUDED__ */