Logo
MSP DSP Library
DSPLib_vector.h
1 #ifndef __DSPLIB_VECTOR_H__
2 #define __DSPLIB_VECTOR_H__
3 
4 //******************************************************************************
5 //
18 //
19 //******************************************************************************
20 
21 //******************************************************************************
22 //
23 // If building with a C++ compiler, make all of the definitions in this header
24 // have a C binding.
25 //
26 //******************************************************************************
27 #ifdef __cplusplus
28 extern "C"
29 {
30 #endif
31 
32 //******************************************************************************
33 //
37 //
38 //******************************************************************************
39 typedef struct msp_add_q15_params {
41  uint16_t length;
43 
44 //******************************************************************************
45 //
49 //
50 //******************************************************************************
51 typedef struct msp_add_iq31_params {
53  uint16_t length;
55 
56 //******************************************************************************
57 //
61 //
62 //******************************************************************************
63 typedef struct msp_sub_q15_params {
65  uint16_t length;
67 
68 //******************************************************************************
69 //
73 //
74 //******************************************************************************
75 typedef struct msp_sub_iq31_params {
77  uint16_t length;
79 
80 //******************************************************************************
81 //
85 //
86 //******************************************************************************
87 typedef struct msp_mpy_q15_params {
89  uint16_t length;
91 
92 //******************************************************************************
93 //
97 //
98 //******************************************************************************
99 typedef struct msp_mpy_iq31_params {
101  uint16_t length;
103 
104 //******************************************************************************
105 //
109 //
110 //******************************************************************************
111 typedef struct msp_mac_q15_params {
113  uint16_t length;
115 
116 //******************************************************************************
117 //
121 //
122 //******************************************************************************
123 typedef struct msp_mac_iq31_params {
125  uint16_t length;
127 
128 //******************************************************************************
129 //
133 //
134 //******************************************************************************
135 typedef struct msp_neg_q15_params {
137  uint16_t length;
139 
140 //******************************************************************************
141 //
145 //
146 //******************************************************************************
147 typedef struct msp_neg_iq31_params {
149  uint16_t length;
151 
152 //******************************************************************************
153 //
157 //
158 //******************************************************************************
159 typedef struct msp_abs_q15_params {
161  uint16_t length;
163 
164 //******************************************************************************
165 //
169 //
170 //******************************************************************************
171 typedef struct msp_abs_iq31_params {
173  uint16_t length;
175 
176 //******************************************************************************
177 //
181 //
182 //******************************************************************************
183 typedef struct msp_offset_q15_params {
185  uint16_t length;
189 
190 //******************************************************************************
191 //
195 //
196 //******************************************************************************
197 typedef struct msp_offset_iq31_params {
199  uint16_t length;
203 
204 //******************************************************************************
205 //
209 //
210 //******************************************************************************
211 typedef struct msp_scale_q15_params {
213  uint16_t length;
217  uint8_t shift;
219 
220 //******************************************************************************
221 //
225 //
226 //******************************************************************************
227 typedef struct msp_scale_iq31_params {
229  uint16_t length;
233  uint8_t shift;
235 
236 //******************************************************************************
237 //
241 //
242 //******************************************************************************
243 typedef struct msp_shift_q15_params {
245  uint16_t length;
248  int8_t shift;
250 
251 //******************************************************************************
252 //
256 //
257 //******************************************************************************
258 typedef struct msp_shift_iq31_params {
260  uint16_t length;
263  int8_t shift;
265 
266 //******************************************************************************
267 //
271 //
272 //******************************************************************************
273 typedef struct msp_max_q15_params {
275  uint16_t length;
277 
278 //******************************************************************************
279 //
283 //
284 //******************************************************************************
285 typedef struct msp_max_iq31_params {
287  uint16_t length;
289 
290 //******************************************************************************
291 //
295 //
296 //******************************************************************************
297 typedef struct msp_max_uq15_params {
299  uint16_t length;
301 
302 //******************************************************************************
303 //
307 //
308 //******************************************************************************
309 typedef struct msp_max_uq31_params {
311  uint16_t length;
313 
314 //******************************************************************************
315 //
319 //
320 //******************************************************************************
321 typedef struct msp_min_q15_params {
323  uint16_t length;
325 
326 //******************************************************************************
327 //
331 //
332 //******************************************************************************
333 typedef struct msp_min_iq31_params {
335  uint16_t length;
337 
338 //******************************************************************************
339 //
343 //
344 //******************************************************************************
345 typedef struct msp_min_uq15_params {
347  uint16_t length;
349 
350 //******************************************************************************
351 //
355 //
356 //******************************************************************************
357 typedef struct msp_min_uq31_params {
359  uint16_t length;
361 
362 //******************************************************************************
363 //
367 //
368 //******************************************************************************
369 typedef struct msp_cmplx_add_q15_params {
371  uint16_t length;
373 
374 //******************************************************************************
375 //
379 //
380 //******************************************************************************
383  uint16_t length;
385 
386 //******************************************************************************
387 //
391 //
392 //******************************************************************************
393 typedef struct msp_cmplx_sub_q15_params {
395  uint16_t length;
397 
398 //******************************************************************************
399 //
403 //
404 //******************************************************************************
407  uint16_t length;
409 
410 //******************************************************************************
411 //
415 //
416 //******************************************************************************
417 typedef struct msp_cmplx_mpy_q15_params {
419  uint16_t length;
421 
422 //******************************************************************************
423 //
427 //
428 //******************************************************************************
431  uint16_t length;
433 
434 //******************************************************************************
435 //
440 //
441 //******************************************************************************
444  uint16_t length;
446 
447 //******************************************************************************
448 //
453 //
454 //******************************************************************************
457  uint16_t length;
459 
460 //******************************************************************************
461 //
466 //
467 //******************************************************************************
468 typedef struct msp_cmplx_mac_q15_params {
470  uint16_t length;
472 
473 //******************************************************************************
474 //
479 //
480 //******************************************************************************
483  uint16_t length;
485 
486 //******************************************************************************
487 //
491 //
492 //******************************************************************************
495  uint16_t length;
497 
498 //******************************************************************************
499 //
503 //
504 //******************************************************************************
507  uint16_t length;
509 
510 //******************************************************************************
511 //
516 //
517 //******************************************************************************
520  uint16_t length;
524  uint8_t shift;
526 
527 //******************************************************************************
528 //
533 //
534 //******************************************************************************
537  uint16_t length;
541  uint8_t shift;
543 
544 //******************************************************************************
545 //
549 //
550 //******************************************************************************
553  uint16_t length;
556  int8_t shift;
558  bool conjugate;
560 
561 //******************************************************************************
562 //
566 //
567 //******************************************************************************
570  uint16_t length;
573  int8_t shift;
575  bool conjugate;
577 
578 //******************************************************************************
579 //
601 //
602 //******************************************************************************
603 extern msp_status msp_add_q15(const msp_add_q15_params *params,
604  const _q15 *srcA,
605  const _q15 *srcB,
606  _q15 *dst);
607 
608 //******************************************************************************
609 //
631 //
632 //******************************************************************************
633 extern msp_status msp_add_iq31(const msp_add_iq31_params *params,
634  const _iq31 *srcA,
635  const _iq31 *srcB,
636  _iq31 *dst);
637 
638 //******************************************************************************
639 //
661 //
662 //******************************************************************************
663 extern msp_status msp_sub_q15(const msp_sub_q15_params *params,
664  const _q15 *srcA,
665  const _q15 *srcB,
666  _q15 *dst);
667 
668 //******************************************************************************
669 //
691 //
692 //******************************************************************************
693 extern msp_status msp_sub_iq31(const msp_sub_iq31_params *params,
694  const _iq31 *srcA,
695  const _iq31 *srcB,
696  _iq31 *dst);
697 
698 //******************************************************************************
699 //
721 //
722 //******************************************************************************
723 extern msp_status msp_mpy_q15(const msp_mpy_q15_params *params,
724  const _q15 *srcA,
725  const _q15 *srcB,
726  _q15 *dst);
727 
728 //******************************************************************************
729 //
751 //
752 //******************************************************************************
753 extern msp_status msp_mpy_iq31(const msp_mpy_iq31_params *params,
754  const _iq31 *srcA,
755  const _iq31 *srcB,
756  _iq31 *dst);
757 
758 //******************************************************************************
759 //
782 //
783 //******************************************************************************
784 extern msp_status msp_mac_q15(const msp_mac_q15_params *params,
785  const _q15 *srcA,
786  const _q15 *srcB,
787  _iq31 *result);
788 
789 //******************************************************************************
790 //
813 //
814 //******************************************************************************
815 extern msp_status msp_mac_iq31(const msp_mac_iq31_params *params,
816  const _iq31 *srcA,
817  const _iq31 *srcB,
818  _iq31 *result);
819 
820 //******************************************************************************
821 //
842 //
843 //******************************************************************************
844 extern msp_status msp_neg_q15(const msp_neg_q15_params *params,
845  const _q15 *src,
846  _q15 *dst);
847 
848 //******************************************************************************
849 //
870 //
871 //******************************************************************************
872 extern msp_status msp_neg_iq31(const msp_neg_iq31_params *params,
873  const _iq31 *src,
874  _iq31 *dst);
875 
876 //******************************************************************************
877 //
896 //
897 //******************************************************************************
898 extern msp_status msp_abs_q15(const msp_abs_q15_params *params,
899  const _q15 *src,
900  _q15 *dst);
901 
902 //******************************************************************************
903 //
922 //
923 //******************************************************************************
924 extern msp_status msp_abs_iq31(const msp_abs_iq31_params *params,
925  const _iq31 *src,
926  _iq31 *dst);
927 
928 //******************************************************************************
929 //
950 //
951 //******************************************************************************
952 extern msp_status msp_offset_q15(const msp_offset_q15_params *params,
953  const _q15 *src,
954  _q15 *dst);
955 
956 //******************************************************************************
957 //
978 //
979 //******************************************************************************
981  const _iq31 *src,
982  _iq31 *dst);
983 
984 //******************************************************************************
985 //
1006 //
1007 //******************************************************************************
1008 extern msp_status msp_scale_q15(const msp_scale_q15_params *params,
1009  const _q15 *src,
1010  _q15 *dst);
1011 
1012 //******************************************************************************
1013 //
1034 //
1035 //******************************************************************************
1036 extern msp_status msp_scale_iq31(const msp_scale_iq31_params *params,
1037  const _iq31 *src,
1038  _iq31 *dst);
1039 
1040 //******************************************************************************
1041 //
1063 //
1064 //******************************************************************************
1065 extern msp_status msp_shift_q15(const msp_shift_q15_params *params,
1066  const _q15 *src,
1067  _q15 *dst);
1068 
1069 //******************************************************************************
1070 //
1092 //
1093 //******************************************************************************
1094 extern msp_status msp_shift_iq31(const msp_shift_iq31_params *params,
1095  const _iq31 *src,
1096  _iq31 *dst);
1097 
1098 //******************************************************************************
1099 //
1121 //
1122 //******************************************************************************
1123 extern msp_status msp_max_q15(const msp_max_q15_params *params,
1124  const _q15 *src,
1125  _q15 *max,
1126  uint16_t *index);
1127 
1128 //******************************************************************************
1129 //
1151 //
1152 //******************************************************************************
1153 extern msp_status msp_max_iq31(const msp_max_iq31_params *params,
1154  const _iq31 *src,
1155  _iq31 *max,
1156  uint16_t *index);
1157 
1158 //******************************************************************************
1159 //
1181 //
1182 //******************************************************************************
1183 extern msp_status msp_max_uq15(const msp_max_uq15_params *params,
1184  const _uq15 *src,
1185  _uq15 *max,
1186  uint16_t *index);
1187 
1188 //******************************************************************************
1189 //
1211 //
1212 //******************************************************************************
1213 extern msp_status msp_max_uq31(const msp_max_uq31_params *params,
1214  const _uq31 *src,
1215  _uq31 *max,
1216  uint16_t *index);
1217 
1218 //******************************************************************************
1219 //
1241 //
1242 //******************************************************************************
1243 extern msp_status msp_min_q15(const msp_min_q15_params *params,
1244  const _q15 *src,
1245  _q15 *min,
1246  uint16_t *index);
1247 
1248 //******************************************************************************
1249 //
1271 //
1272 //******************************************************************************
1273 extern msp_status msp_min_iq31(const msp_min_iq31_params *params,
1274  const _iq31 *src,
1275  _iq31 *min,
1276  uint16_t *index);
1277 
1278 //******************************************************************************
1279 //
1301 //
1302 //******************************************************************************
1303 extern msp_status msp_min_uq15(const msp_min_uq15_params *params,
1304  const _uq15 *src,
1305  _uq15 *min,
1306  uint16_t *index);
1307 
1308 //******************************************************************************
1309 //
1331 //
1332 //******************************************************************************
1333 extern msp_status msp_min_uq31(const msp_min_uq31_params *params,
1334  const _uq31 *src,
1335  _uq31 *min,
1336  uint16_t *index);
1337 
1338 //******************************************************************************
1339 //
1361 //
1362 //******************************************************************************
1364  const _q15 *srcA,
1365  const _q15 *srcB,
1366  _q15 *dst);
1367 
1368 //******************************************************************************
1369 //
1391 //
1392 //******************************************************************************
1394  const _iq31 *srcA,
1395  const _iq31 *srcB,
1396  _iq31 *dst);
1397 
1398 //******************************************************************************
1399 //
1421 //
1422 //******************************************************************************
1424  const _q15 *srcA,
1425  const _q15 *srcB,
1426  _q15 *dst);
1427 
1428 //******************************************************************************
1429 //
1451 //
1452 //******************************************************************************
1454  const _iq31 *srcA,
1455  const _iq31 *srcB,
1456  _iq31 *dst);
1457 
1458 //******************************************************************************
1459 //
1481 //
1482 //******************************************************************************
1484  const _q15 *srcA,
1485  const _q15 *srcB,
1486  _q15 *dst);
1487 
1488 //******************************************************************************
1489 //
1510 //
1511 //******************************************************************************
1513  const _iq31 *srcA,
1514  const _iq31 *srcB,
1515  _iq31 *dst);
1516 
1517 //******************************************************************************
1518 //
1541 //
1542 //******************************************************************************
1544  const msp_cmplx_mpy_real_q15_params *params,
1545  const _q15 *srcCmplx,
1546  const _q15 *srcReal,
1547  _q15 *dst);
1548 
1549 //******************************************************************************
1550 //
1574 //
1575 //******************************************************************************
1577  const msp_cmplx_mpy_real_iq31_params *params,
1578  const _iq31 *srcCmplx,
1579  const _iq31 *srcReal,
1580  _iq31 *dst);
1581 
1582 //******************************************************************************
1583 //
1606 //
1607 //******************************************************************************
1609  const _q15 *srcA,
1610  const _q15 *srcB,
1611  _iq31 *result);
1612 
1613 //******************************************************************************
1614 //
1636 //
1637 //******************************************************************************
1639  const _iq31 *srcA,
1640  const _iq31 *srcB,
1641  _iq31 *result);
1642 
1643 //******************************************************************************
1644 //
1664 //
1665 //******************************************************************************
1667  const _q15 *src,
1668  _q15 *dst);
1669 
1670 //******************************************************************************
1671 //
1692 //
1693 //******************************************************************************
1695  const _iq31 *src,
1696  _iq31 *dst);
1697 
1698 //******************************************************************************
1699 //
1720 //
1721 //******************************************************************************
1723  const _q15 *src,
1724  _q15 *dst);
1725 
1726 //******************************************************************************
1727 //
1748 //
1749 //******************************************************************************
1751  const _iq31 *src,
1752  _iq31 *dst);
1753 
1754 //******************************************************************************
1755 //
1777 //
1778 //******************************************************************************
1780  const _q15 *src,
1781  _q15 *dst);
1782 
1783 //******************************************************************************
1784 //
1806 //
1807 //******************************************************************************
1809  const _iq31 *src,
1810  _iq31 *dst);
1811 
1812 //*****************************************************************************
1813 //
1814 // Mark the end of the C bindings section for C++ compilers.
1815 //
1816 //*****************************************************************************
1817 #ifdef __cplusplus
1818 }
1819 #endif
1820 
1821 #endif //__DSPLIB_VECTOR_H__
msp_status msp_add_iq31(const msp_add_iq31_params *params, const _iq31 *srcA, const _iq31 *srcB, _iq31 *dst)
Addition of two real source vectors.
Parameter structure for the IQ31 vector negate function.
Definition: DSPLib_vector.h:147
Parameter structure for the Q15 vector offset function.
Definition: DSPLib_vector.h:183
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:89
Parameter structure for the Q15 vector multiply functions.
Definition: DSPLib_vector.h:87
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:323
msp_status msp_min_iq31(const msp_min_iq31_params *params, const _iq31 *src, _iq31 *min, uint16_t *index)
Signed minimum of a source vector.
Parameter structure for the Q15 complex vector shift function.
Definition: DSPLib_vector.h:551
Parameter structure for the Q15 signed vector minimum function.
Definition: DSPLib_vector.h:321
_iq31 offset
Offset to add to each vector element.
Definition: DSPLib_vector.h:201
Parameter structure for the Q15 unsigned vector maximum function.
Definition: DSPLib_vector.h:297
Parameter structure for the IQ31 vector absolute value function.
Definition: DSPLib_vector.h:171
msp_status msp_mac_q15(const msp_mac_q15_params *params, const _q15 *srcA, const _q15 *srcB, _iq31 *result)
Multiply and accumulate of real source vectors.
int32_t _iq31
Signed fixed point data type with 1 integer bit and 31 fractional bits.
Definition: DSPLib_types.h:56
Parameter structure for the IQ31 signed vector maximum function.
Definition: DSPLib_vector.h:285
int8_t shift
Definition: DSPLib_vector.h:263
msp_status msp_scale_q15(const msp_scale_q15_params *params, const _q15 *src, _q15 *dst)
Scale a real source vector.
Parameter structure for the IQ31 unsigned vector maximum function.
Definition: DSPLib_vector.h:309
_iq31 scale
q31 real fractional scale to multiply each complex vector element by.
Definition: DSPLib_vector.h:539
msp_status msp_cmplx_add_iq31(const msp_cmplx_add_iq31_params *params, const _iq31 *srcA, const _iq31 *srcB, _iq31 *dst)
Addition of two complex source vectors.
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:520
Parameter structure for the Q15 signed vector maximum function.
Definition: DSPLib_vector.h:273
_q15 scale
Q15 fractional value scale to multiply each vector element by.
Definition: DSPLib_vector.h:215
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:311
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:173
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:407
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:299
Parameter structure for the Q15 unsigned vector minimum function.
Definition: DSPLib_vector.h:345
msp_status
Enumerated type to return the status of an operation.
Definition: DSPLib_types.h:75
Parameter structure for the Q15 complex vector multiply by real functions.
Definition: DSPLib_vector.h:442
Parameter structure for the IQ31 signed vector minimum function.
Definition: DSPLib_vector.h:333
msp_status msp_min_uq15(const msp_min_uq15_params *params, const _uq15 *src, _uq15 *min, uint16_t *index)
Unsigned minimum of a source vector.
msp_status msp_mpy_q15(const msp_mpy_q15_params *params, const _q15 *srcA, const _q15 *srcB, _q15 *dst)
Multiplication of two real source vectors.
Parameter structure for the Q15 complex vector scale by real function.
Definition: DSPLib_vector.h:518
Parameter structure for the vector offset function.
Definition: DSPLib_vector.h:197
Parameter structure for the IQ31 unsigned vector minimum function.
Definition: DSPLib_vector.h:357
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:245
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:213
int8_t shift
Definition: DSPLib_vector.h:573
Parameter structure for the Q15 complex vector multiply and accumulate function.
Definition: DSPLib_vector.h:468
_q15 offset
Offset to add to each vector element.
Definition: DSPLib_vector.h:187
_q15 scale
Q15 real fractional scale to multiply each complex vector element by.
Definition: DSPLib_vector.h:522
int8_t shift
Definition: DSPLib_vector.h:248
uint16_t _uq15
Unsigned fixed point data type with 0 integer bit and 16 fractional bits.
Definition: DSPLib_types.h:46
uint16_t length
Length of source data, must be a multiple of two.
Definition: DSPLib_vector.h:113
Parameter structure for the Q15 vector add functions.
Definition: DSPLib_vector.h:39
msp_status msp_min_q15(const msp_min_q15_params *params, const _q15 *src, _q15 *min, uint16_t *index)
Signed minimum of a source vector.
uint8_t shift
Unsigned integer value to shift each vector result left by.
Definition: DSPLib_vector.h:217
Parameter structure for the IQ31 complex vector conjugate function.
Definition: DSPLib_vector.h:505
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:419
msp_status msp_shift_iq31(const msp_shift_iq31_params *params, const _iq31 *src, _iq31 *dst)
Bitwise shift of a real source vector.
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:260
msp_status msp_sub_q15(const msp_sub_q15_params *params, const _q15 *srcA, const _q15 *srcB, _q15 *dst)
Subtraction of two real source vectors.
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:507
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:101
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:470
msp_status msp_cmplx_conj_iq31(const msp_cmplx_conj_iq31_params *params, const _iq31 *src, _iq31 *dst)
Conjugation of a source vector.
Parameter structure for the IQ31 vector multiply functions.
Definition: DSPLib_vector.h:99
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:495
msp_status msp_cmplx_add_q15(const msp_cmplx_add_q15_params *params, const _q15 *srcA, const _q15 *srcB, _q15 *dst)
Addition of two complex source vectors.
Parameter structure for the IQ31 vector multiply and accumulate function.
Definition: DSPLib_vector.h:123
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:53
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:457
Parameter structure for the Q15 complex vector subtract functions.
Definition: DSPLib_vector.h:393
msp_status msp_add_q15(const msp_add_q15_params *params, const _q15 *srcA, const _q15 *srcB, _q15 *dst)
Addition of two real source vectors.
msp_status msp_cmplx_shift_iq31(const msp_cmplx_shift_iq31_params *params, const _iq31 *src, _iq31 *dst)
Bitwise shift of a complex source vector.
Parameter structure for the Q15 vector scale function.
Definition: DSPLib_vector.h:211
msp_status msp_neg_iq31(const msp_neg_iq31_params *params, const _iq31 *src, _iq31 *dst)
Negation of a source vector.
Parameter structure for the IQ31 complex vector shift function.
Definition: DSPLib_vector.h:568
Parameter structure for the IQ31 vector subtract functions.
Definition: DSPLib_vector.h:75
msp_status msp_cmplx_mac_iq31(const msp_cmplx_mac_iq31_params *params, const _iq31 *srcA, const _iq31 *srcB, _iq31 *result)
Multiply and accumulate of complex source vectors.
Parameter structure for the Q15 complex vector conjugate function.
Definition: DSPLib_vector.h:493
msp_status msp_cmplx_mac_q15(const msp_cmplx_mac_q15_params *params, const _q15 *srcA, const _q15 *srcB, _iq31 *result)
Multiply and accumulate of complex source vectors.
Parameter structure for the IQ31 complex vector multiply by real functions.
Definition: DSPLib_vector.h:455
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:275
msp_status msp_offset_q15(const msp_offset_q15_params *params, const _q15 *src, _q15 *dst)
Constant offset of a real source vector.
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:149
Parameter structure for the Q15 vector multiply and accumulate function.
Definition: DSPLib_vector.h:111
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:483
uint16_t length
Length of source data, must be a multiple of two.
Definition: DSPLib_vector.h:125
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:199
msp_status msp_offset_iq31(const msp_offset_iq31_params *params, const _iq31 *src, _iq31 *dst)
Constant offset of a real source vector.
uint8_t shift
Unsigned integer value to shift each complex vector result left by.
Definition: DSPLib_vector.h:541
Parameter structure for the IQ31 vector scale function.
Definition: DSPLib_vector.h:227
msp_status msp_mac_iq31(const msp_mac_iq31_params *params, const _iq31 *srcA, const _iq31 *srcB, _iq31 *result)
Multiply and accumulate of real source vectors.
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:444
msp_status msp_min_uq31(const msp_min_uq31_params *params, const _uq31 *src, _uq31 *min, uint16_t *index)
Unsigned minimum of a source vector.
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:65
int16_t _q15
Signed fixed point data type with 1 integer bit and 15 fractional bits.
Definition: DSPLib_types.h:35
msp_status msp_cmplx_mpy_iq31(const msp_cmplx_mpy_iq31_params *params, const _iq31 *srcA, const _iq31 *srcB, _iq31 *dst)
Multiplication of complex source vectors.
msp_status msp_cmplx_scale_q15(const msp_cmplx_scale_q15_params *params, const _q15 *src, _q15 *dst)
Scale a complex source vector.
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:371
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:137
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:553
_iq31 scale
q31 fractional value scale to multiply each vector element by.
Definition: DSPLib_vector.h:231
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:41
msp_status msp_scale_iq31(const msp_scale_iq31_params *params, const _iq31 *src, _iq31 *dst)
Scale a real source vector.
msp_status msp_max_uq15(const msp_max_uq15_params *params, const _uq15 *src, _uq15 *max, uint16_t *index)
Unsigned maximum of a source vector.
Parameter structure for the IQ31 vector shift function.
Definition: DSPLib_vector.h:258
Parameter structure for the IQ31 complex vector scale by real function.
Definition: DSPLib_vector.h:535
msp_status msp_neg_q15(const msp_neg_q15_params *params, const _q15 *src, _q15 *dst)
Negation of a source vector.
msp_status msp_cmplx_sub_iq31(const msp_cmplx_sub_iq31_params *params, const _iq31 *srcA, const _iq31 *srcB, _iq31 *dst)
Subtraction of two complex source vectors.
Parameter structure for the IQ31 complex vector multiply and accumulate function. ...
Definition: DSPLib_vector.h:481
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:287
int8_t shift
Definition: DSPLib_vector.h:556
uint8_t shift
Unsigned integer value to shift each complex vector result left by.
Definition: DSPLib_vector.h:524
Parameter structure for the IQ31 complex vector subtract functions.
Definition: DSPLib_vector.h:405
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:335
msp_status msp_cmplx_mpy_real_q15(const msp_cmplx_mpy_real_q15_params *params, const _q15 *srcCmplx, const _q15 *srcReal, _q15 *dst)
Multiplication of complex source vector by real source vector.
msp_status msp_max_iq31(const msp_max_iq31_params *params, const _iq31 *src, _iq31 *max, uint16_t *index)
Signed maximum of a source vector.
Parameter structure for the IQ31 complex vector add functions.
Definition: DSPLib_vector.h:381
Parameter structure for the Q15 vector subtract functions.
Definition: DSPLib_vector.h:63
msp_status msp_cmplx_mpy_real_iq31(const msp_cmplx_mpy_real_iq31_params *params, const _iq31 *srcCmplx, const _iq31 *srcReal, _iq31 *dst)
Multiplication of complex source vector by real source vector.
Parameter structure for the Q15 vector negate function.
Definition: DSPLib_vector.h:135
msp_status msp_max_uq31(const msp_max_uq31_params *params, const _uq31 *src, _uq31 *max, uint16_t *index)
Unsigned maximum of a source vector.
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:161
msp_status msp_shift_q15(const msp_shift_q15_params *params, const _q15 *src, _q15 *dst)
Bitwise shift of a real source vector.
bool conjugate
Take complex conjugate of the result.
Definition: DSPLib_vector.h:575
msp_status msp_cmplx_conj_q15(const msp_cmplx_conj_q15_params *params, const _q15 *src, _q15 *dst)
Conjugation of a source vector.
msp_status msp_cmplx_sub_q15(const msp_cmplx_sub_q15_params *params, const _q15 *srcA, const _q15 *srcB, _q15 *dst)
Subtraction of two complex source vectors.
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:395
msp_status msp_sub_iq31(const msp_sub_iq31_params *params, const _iq31 *srcA, const _iq31 *srcB, _iq31 *dst)
Subtraction of two real source vectors.
Parameter structure for the Q15 vector absolute value function.
Definition: DSPLib_vector.h:159
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:431
uint32_t _uq31
Unsigned fixed point data type with 0 integer bits and 32 fractional bits.
Definition: DSPLib_types.h:66
uint8_t shift
Unsigned integer value to shift each vector result left by.
Definition: DSPLib_vector.h:233
msp_status msp_cmplx_shift_q15(const msp_cmplx_shift_q15_params *params, const _q15 *src, _q15 *dst)
Bitwise shift of a complex source vector.
Parameter structure for the Q15 vector shift function.
Definition: DSPLib_vector.h:243
Parameter structure for the IQ31 complex vector multiply functions.
Definition: DSPLib_vector.h:429
msp_status msp_max_q15(const msp_max_q15_params *params, const _q15 *src, _q15 *max, uint16_t *index)
Signed maximum of a source vector.
bool conjugate
Return complex conjugate result.
Definition: DSPLib_vector.h:558
msp_status msp_abs_q15(const msp_abs_q15_params *params, const _q15 *src, _q15 *dst)
Absolute value of a real source vector.
msp_status msp_cmplx_scale_iq31(const msp_cmplx_scale_iq31_params *params, const _iq31 *src, _iq31 *dst)
Scale a complex source vector.
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:185
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:347
msp_status msp_abs_iq31(const msp_abs_iq31_params *params, const _iq31 *src, _iq31 *dst)
Absolute value of a real source vector.
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:570
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:537
Parameter structure for the Q15 complex vector multiply functions.
Definition: DSPLib_vector.h:417
msp_status msp_cmplx_mpy_q15(const msp_cmplx_mpy_q15_params *params, const _q15 *srcA, const _q15 *srcB, _q15 *dst)
Multiplication of two complex source vectors.
msp_status msp_mpy_iq31(const msp_mpy_iq31_params *params, const _iq31 *srcA, const _iq31 *srcB, _iq31 *dst)
Multiplication of two real source vectors.
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:229
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:77
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:359
Parameter structure for the IQ31 vector add functions.
Definition: DSPLib_vector.h:51
Parameter structure for the Q15 complex vector add functions.
Definition: DSPLib_vector.h:369
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:383