81 #ifndef __IQMATH_MATHACL_H__ 82 #define __IQMATH_MATHACL_H__ 115 #include <ti/devices/msp/msp.h> 117 #ifndef DOXYGEN_SHOULD_SKIP_THIS 157 #define MAX_IQ_POS LONG_MAX 158 #define MAX_IQ_NEG LONG_MIN 160 #define MIN_IQ_NEG -1 167 typedef int32_t _iq30;
168 typedef int32_t _iq29;
169 typedef int32_t _iq28;
170 typedef int32_t _iq27;
171 typedef int32_t _iq26;
172 typedef int32_t _iq25;
173 typedef int32_t _iq24;
174 typedef int32_t _iq23;
175 typedef int32_t _iq22;
176 typedef int32_t _iq21;
177 typedef int32_t _iq20;
178 typedef int32_t _iq19;
179 typedef int32_t _iq18;
180 typedef int32_t _iq17;
181 typedef int32_t _iq16;
182 typedef int32_t _iq15;
183 typedef int32_t _iq14;
184 typedef int32_t _iq13;
185 typedef int32_t _iq12;
186 typedef int32_t _iq11;
187 typedef int32_t _iq10;
188 typedef int32_t _iq9;
189 typedef int32_t _iq8;
190 typedef int32_t _iq7;
191 typedef int32_t _iq6;
192 typedef int32_t _iq5;
193 typedef int32_t _iq4;
194 typedef int32_t _iq3;
195 typedef int32_t _iq2;
196 typedef int32_t _iq1;
206 #ifndef DOXYGEN_SHOULD_SKIP_THIS 207 extern _iq30 _IQ30mpy_mathacl(_iq30 A, _iq30 B);
208 extern _iq29 _IQ29mpy_mathacl(_iq29 A, _iq29 B);
209 extern _iq28 _IQ28mpy_mathacl(_iq28 A, _iq28 B);
210 extern _iq27 _IQ27mpy_mathacl(_iq27 A, _iq27 B);
211 extern _iq26 _IQ26mpy_mathacl(_iq26 A, _iq26 B);
212 extern _iq25 _IQ25mpy_mathacl(_iq25 A, _iq25 B);
213 extern _iq24 _IQ24mpy_mathacl(_iq24 A, _iq24 B);
214 extern _iq23 _IQ23mpy_mathacl(_iq23 A, _iq23 B);
215 extern _iq22 _IQ22mpy_mathacl(_iq22 A, _iq22 B);
216 extern _iq21 _IQ21mpy_mathacl(_iq21 A, _iq21 B);
217 extern _iq20 _IQ20mpy_mathacl(_iq20 A, _iq20 B);
218 extern _iq19 _IQ19mpy_mathacl(_iq19 A, _iq19 B);
219 extern _iq18 _IQ18mpy_mathacl(_iq18 A, _iq18 B);
220 extern _iq17 _IQ17mpy_mathacl(_iq17 A, _iq17 B);
221 extern _iq16 _IQ16mpy_mathacl(_iq16 A, _iq16 B);
222 extern _iq15 _IQ15mpy_mathacl(_iq15 A, _iq15 B);
223 extern _iq14 _IQ14mpy_mathacl(_iq14 A, _iq14 B);
224 extern _iq13 _IQ13mpy_mathacl(_iq13 A, _iq13 B);
225 extern _iq12 _IQ12mpy_mathacl(_iq12 A, _iq12 B);
226 extern _iq11 _IQ11mpy_mathacl(_iq11 A, _iq11 B);
227 extern _iq10 _IQ10mpy_mathacl(_iq10 A, _iq10 B);
228 extern _iq9 _IQ9mpy_mathacl(_iq9 A, _iq9 B);
229 extern _iq8 _IQ8mpy_mathacl(_iq8 A, _iq8 B);
230 extern _iq7 _IQ7mpy_mathacl(_iq7 A, _iq7 B);
231 extern _iq6 _IQ6mpy_mathacl(_iq6 A, _iq6 B);
232 extern _iq5 _IQ5mpy_mathacl(_iq5 A, _iq5 B);
233 extern _iq4 _IQ4mpy_mathacl(_iq4 A, _iq4 B);
234 extern _iq3 _IQ3mpy_mathacl(_iq3 A, _iq3 B);
235 extern _iq2 _IQ2mpy_mathacl(_iq2 A, _iq2 B);
236 extern _iq1 _IQ1mpy_mathacl(_iq1 A, _iq1 B);
247 #ifdef _IQ_MPY_MATHACL_INLINE 249 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 30) 252 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 29) 255 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 28) 258 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 27) 261 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 26) 264 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 25) 267 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 24) 270 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 23) 273 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 22) 276 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 21) 279 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 20) 282 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 19) 285 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 18) 288 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 17) 291 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 16) 294 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 15) 297 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 14) 300 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 13) 303 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 12) 306 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 11) 309 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 10) 312 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 9) 315 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 8) 318 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 7) 321 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 6) 324 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 5) 327 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 4) 330 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 3) 333 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 2) 336 #define _IQmpy_mathacl(A, B) _IQNmpy_mathacl_inline(A, B, 1) 340 #define _IQmpy_mathacl(A, B) _IQ30mpy_mathacl(A, B) 343 #define _IQmpy_mathacl(A, B) _IQ29mpy_mathacl(A, B) 346 #define _IQmpy_mathacl(A, B) _IQ28mpy_mathacl(A, B) 349 #define _IQmpy_mathacl(A, B) _IQ27mpy_mathacl(A, B) 352 #define _IQmpy_mathacl(A, B) _IQ26mpy_mathacl(A, B) 355 #define _IQmpy_mathacl(A, B) _IQ25mpy_mathacl(A, B) 358 #define _IQmpy_mathacl(A, B) _IQ24mpy_mathacl(A, B) 361 #define _IQmpy_mathacl(A, B) _IQ23mpy_mathacl(A, B) 364 #define _IQmpy_mathacl(A, B) _IQ22mpy_mathacl(A, B) 367 #define _IQmpy_mathacl(A, B) _IQ21mpy_mathacl(A, B) 370 #define _IQmpy_mathacl(A, B) _IQ20mpy_mathacl(A, B) 373 #define _IQmpy_mathacl(A, B) _IQ19mpy_mathacl(A, B) 376 #define _IQmpy_mathacl(A, B) _IQ18mpy_mathacl(A, B) 379 #define _IQmpy_mathacl(A, B) _IQ17mpy_mathacl(A, B) 382 #define _IQmpy_mathacl(A, B) _IQ16mpy_mathacl(A, B) 385 #define _IQmpy_mathacl(A, B) _IQ15mpy_mathacl(A, B) 388 #define _IQmpy_mathacl(A, B) _IQ14mpy_mathacl(A, B) 391 #define _IQmpy_mathacl(A, B) _IQ13mpy_mathacl(A, B) 394 #define _IQmpy_mathacl(A, B) _IQ12mpy_mathacl(A, B) 397 #define _IQmpy_mathacl(A, B) _IQ11mpy_mathacl(A, B) 400 #define _IQmpy_mathacl(A, B) _IQ10mpy_mathacl(A, B) 403 #define _IQmpy_mathacl(A, B) _IQ9mpy_mathacl(A, B) 406 #define _IQmpy_mathacl(A, B) _IQ8mpy_mathacl(A, B) 409 #define _IQmpy_mathacl(A, B) _IQ7mpy_mathacl(A, B) 412 #define _IQmpy_mathacl(A, B) _IQ6mpy_mathacl(A, B) 415 #define _IQmpy_mathacl(A, B) _IQ5mpy_mathacl(A, B) 418 #define _IQmpy_mathacl(A, B) _IQ4mpy_mathacl(A, B) 421 #define _IQmpy_mathacl(A, B) _IQ3mpy_mathacl(A, B) 424 #define _IQmpy_mathacl(A, B) _IQ2mpy_mathacl(A, B) 427 #define _IQmpy_mathacl(A, B) _IQ1mpy_mathacl(A, B) 436 #ifndef DOXYGEN_SHOULD_SKIP_THIS 437 extern _iq30 _IQ30div_mathacl(_iq30 A, _iq30 B);
438 extern _iq29 _IQ29div_mathacl(_iq29 A, _iq29 B);
439 extern _iq28 _IQ28div_mathacl(_iq28 A, _iq28 B);
440 extern _iq27 _IQ27div_mathacl(_iq27 A, _iq27 B);
441 extern _iq26 _IQ26div_mathacl(_iq26 A, _iq26 B);
442 extern _iq25 _IQ25div_mathacl(_iq25 A, _iq25 B);
443 extern _iq24 _IQ24div_mathacl(_iq24 A, _iq24 B);
444 extern _iq23 _IQ23div_mathacl(_iq23 A, _iq23 B);
445 extern _iq22 _IQ22div_mathacl(_iq22 A, _iq22 B);
446 extern _iq21 _IQ21div_mathacl(_iq21 A, _iq21 B);
447 extern _iq20 _IQ20div_mathacl(_iq20 A, _iq20 B);
448 extern _iq19 _IQ19div_mathacl(_iq19 A, _iq19 B);
449 extern _iq18 _IQ18div_mathacl(_iq18 A, _iq18 B);
450 extern _iq17 _IQ17div_mathacl(_iq17 A, _iq17 B);
451 extern _iq16 _IQ16div_mathacl(_iq16 A, _iq16 B);
452 extern _iq15 _IQ15div_mathacl(_iq15 A, _iq15 B);
453 extern _iq14 _IQ14div_mathacl(_iq14 A, _iq14 B);
454 extern _iq13 _IQ13div_mathacl(_iq13 A, _iq13 B);
455 extern _iq12 _IQ12div_mathacl(_iq12 A, _iq12 B);
456 extern _iq11 _IQ11div_mathacl(_iq11 A, _iq11 B);
457 extern _iq10 _IQ10div_mathacl(_iq10 A, _iq10 B);
458 extern _iq9 _IQ9div_mathacl(_iq9 A, _iq9 B);
459 extern _iq8 _IQ8div_mathacl(_iq8 A, _iq8 B);
460 extern _iq7 _IQ7div_mathacl(_iq7 A, _iq7 B);
461 extern _iq6 _IQ6div_mathacl(_iq6 A, _iq6 B);
462 extern _iq5 _IQ5div_mathacl(_iq5 A, _iq5 B);
463 extern _iq4 _IQ4div_mathacl(_iq4 A, _iq4 B);
464 extern _iq3 _IQ3div_mathacl(_iq3 A, _iq3 B);
465 extern _iq2 _IQ2div_mathacl(_iq2 A, _iq2 B);
466 extern _iq1 _IQ1div_mathacl(_iq1 A, _iq1 B);
478 #define _IQdiv_mathacl(A, B) _IQ30div_mathacl(A, B) 481 #define _IQdiv_mathacl(A, B) _IQ29div_mathacl(A, B) 484 #define _IQdiv_mathacl(A, B) _IQ28div_mathacl(A, B) 487 #define _IQdiv_mathacl(A, B) _IQ27div_mathacl(A, B) 490 #define _IQdiv_mathacl(A, B) _IQ26div_mathacl(A, B) 493 #define _IQdiv_mathacl(A, B) _IQ25div_mathacl(A, B) 496 #define _IQdiv_mathacl(A, B) _IQ24div_mathacl(A, B) 499 #define _IQdiv_mathacl(A, B) _IQ23div_mathacl(A, B) 502 #define _IQdiv_mathacl(A, B) _IQ22div_mathacl(A, B) 505 #define _IQdiv_mathacl(A, B) _IQ21div_mathacl(A, B) 508 #define _IQdiv_mathacl(A, B) _IQ20div_mathacl(A, B) 511 #define _IQdiv_mathacl(A, B) _IQ19div_mathacl(A, B) 514 #define _IQdiv_mathacl(A, B) _IQ18div_mathacl(A, B) 517 #define _IQdiv_mathacl(A, B) _IQ17div_mathacl(A, B) 520 #define _IQdiv_mathacl(A, B) _IQ16div_mathacl(A, B) 523 #define _IQdiv_mathacl(A, B) _IQ15div_mathacl(A, B) 526 #define _IQdiv_mathacl(A, B) _IQ14div_mathacl(A, B) 529 #define _IQdiv_mathacl(A, B) _IQ13div_mathacl(A, B) 532 #define _IQdiv_mathacl(A, B) _IQ12div_mathacl(A, B) 535 #define _IQdiv_mathacl(A, B) _IQ11div_mathacl(A, B) 538 #define _IQdiv_mathacl(A, B) _IQ10div_mathacl(A, B) 541 #define _IQdiv_mathacl(A, B) _IQ9div_mathacl(A, B) 544 #define _IQdiv_mathacl(A, B) _IQ8div_mathacl(A, B) 547 #define _IQdiv_mathacl(A, B) _IQ7div_mathacl(A, B) 550 #define _IQdiv_mathacl(A, B) _IQ6div_mathacl(A, B) 553 #define _IQdiv_mathacl(A, B) _IQ5div_mathacl(A, B) 556 #define _IQdiv_mathacl(A, B) _IQ4div_mathacl(A, B) 559 #define _IQdiv_mathacl(A, B) _IQ3div_mathacl(A, B) 562 #define _IQdiv_mathacl(A, B) _IQ2div_mathacl(A, B) 565 #define _IQdiv_mathacl(A, B) _IQ1div_mathacl(A, B) 573 #ifndef DOXYGEN_SHOULD_SKIP_THIS 574 extern _iq30 _IQ30sqrt_mathacl(_iq30 A);
575 extern _iq29 _IQ29sqrt_mathacl(_iq29 A);
576 extern _iq28 _IQ28sqrt_mathacl(_iq28 A);
577 extern _iq27 _IQ27sqrt_mathacl(_iq27 A);
578 extern _iq26 _IQ26sqrt_mathacl(_iq26 A);
579 extern _iq25 _IQ25sqrt_mathacl(_iq25 A);
580 extern _iq24 _IQ24sqrt_mathacl(_iq24 A);
581 extern _iq23 _IQ23sqrt_mathacl(_iq23 A);
582 extern _iq22 _IQ22sqrt_mathacl(_iq22 A);
583 extern _iq21 _IQ21sqrt_mathacl(_iq21 A);
584 extern _iq20 _IQ20sqrt_mathacl(_iq20 A);
585 extern _iq19 _IQ19sqrt_mathacl(_iq19 A);
586 extern _iq18 _IQ18sqrt_mathacl(_iq18 A);
587 extern _iq17 _IQ17sqrt_mathacl(_iq17 A);
588 extern _iq16 _IQ16sqrt_mathacl(_iq16 A);
589 extern _iq15 _IQ15sqrt_mathacl(_iq15 A);
590 extern _iq14 _IQ14sqrt_mathacl(_iq14 A);
591 extern _iq13 _IQ13sqrt_mathacl(_iq13 A);
592 extern _iq12 _IQ12sqrt_mathacl(_iq12 A);
593 extern _iq11 _IQ11sqrt_mathacl(_iq11 A);
594 extern _iq10 _IQ10sqrt_mathacl(_iq10 A);
595 extern _iq9 _IQ9sqrt_mathacl(_iq9 A);
596 extern _iq8 _IQ8sqrt_mathacl(_iq8 A);
597 extern _iq7 _IQ7sqrt_mathacl(_iq7 A);
598 extern _iq6 _IQ6sqrt_mathacl(_iq6 A);
599 extern _iq5 _IQ5sqrt_mathacl(_iq5 A);
600 extern _iq4 _IQ4sqrt_mathacl(_iq4 A);
601 extern _iq3 _IQ3sqrt_mathacl(_iq3 A);
602 extern _iq2 _IQ2sqrt_mathacl(_iq2 A);
603 extern _iq1 _IQ1sqrt_mathacl(_iq1 A);
614 #define _IQsqrt_mathacl(A) _IQ30sqrt_mathacl(A) 617 #define _IQsqrt_mathacl(A) _IQ29sqrt_mathacl(A) 620 #define _IQsqrt_mathacl(A) _IQ28sqrt_mathacl(A) 623 #define _IQsqrt_mathacl(A) _IQ27sqrt_mathacl(A) 626 #define _IQsqrt_mathacl(A) _IQ26sqrt_mathacl(A) 629 #define _IQsqrt_mathacl(A) _IQ25sqrt_mathacl(A) 632 #define _IQsqrt_mathacl(A) _IQ24sqrt_mathacl(A) 635 #define _IQsqrt_mathacl(A) _IQ23sqrt_mathacl(A) 638 #define _IQsqrt_mathacl(A) _IQ22sqrt_mathacl(A) 641 #define _IQsqrt_mathacl(A) _IQ21sqrt_mathacl(A) 644 #define _IQsqrt_mathacl(A) _IQ20sqrt_mathacl(A) 647 #define _IQsqrt_mathacl(A) _IQ19sqrt_mathacl(A) 650 #define _IQsqrt_mathacl(A) _IQ18sqrt_mathacl(A) 653 #define _IQsqrt_mathacl(A) _IQ17sqrt_mathacl(A) 656 #define _IQsqrt_mathacl(A) _IQ16sqrt_mathacl(A) 659 #define _IQsqrt_mathacl(A) _IQ15sqrt_mathacl(A) 662 #define _IQsqrt_mathacl(A) _IQ14sqrt_mathacl(A) 665 #define _IQsqrt_mathacl(A) _IQ13sqrt_mathacl(A) 668 #define _IQsqrt_mathacl(A) _IQ12sqrt_mathacl(A) 671 #define _IQsqrt_mathacl(A) _IQ11sqrt_mathacl(A) 674 #define _IQsqrt_mathacl(A) _IQ10sqrt_mathacl(A) 677 #define _IQsqrt_mathacl(A) _IQ9sqrt_mathacl(A) 680 #define _IQsqrt_mathacl(A) _IQ8sqrt_mathacl(A) 683 #define _IQsqrt_mathacl(A) _IQ7sqrt_mathacl(A) 686 #define _IQsqrt_mathacl(A) _IQ6sqrt_mathacl(A) 689 #define _IQsqrt_mathacl(A) _IQ5sqrt_mathacl(A) 692 #define _IQsqrt_mathacl(A) _IQ4sqrt_mathacl(A) 695 #define _IQsqrt_mathacl(A) _IQ3sqrt_mathacl(A) 698 #define _IQsqrt_mathacl(A) _IQ2sqrt_mathacl(A) 701 #define _IQsqrt_mathacl(A) _IQ1sqrt_mathacl(A) 713 __STATIC_INLINE int_fast32_t
_IQNmpy_mathacl_inline(int_fast32_t iqNInput1, int_fast32_t iqNInput2,
const int8_t q_value)
716 MATHACL->CTL = 6 | (q_value<<8) | (1 << 5);
718 MATHACL->OP2 = iqNInput2;
720 MATHACL->OP1 = iqNInput1;
722 return MATHACL->RES1;
734 #endif // __IQMATH_MATHACL_H__ __STATIC_INLINE int_fast32_t _IQNmpy_mathacl_inline(int_fast32_t iqNInput1, int_fast32_t iqNInput2, const int8_t q_value)
MATHACL inline multiplication.
Definition: IQmath_mathacl.h:713