Logo
MSP DSP Library
DSPLib_vector.h
1 #ifndef __DSPLIB_VECTOR_H__
2 #define __DSPLIB_VECTOR_H__
3 
4 //******************************************************************************
5 //
22 //
23 //******************************************************************************
24 
25 //******************************************************************************
26 //
27 // If building with a C++ compiler, make all of the definitions in this header
28 // have a C binding.
29 //
30 //******************************************************************************
31 #ifdef __cplusplus
32 extern "C"
33 {
34 #endif
35 
36 //******************************************************************************
37 //
41 //
42 //******************************************************************************
43 typedef struct msp_add_q15_params {
45  uint16_t length;
47 
48 //******************************************************************************
49 //
53 //
54 //******************************************************************************
55 typedef struct msp_add_iq31_params {
57  uint16_t length;
59 
60 //******************************************************************************
61 //
65 //
66 //******************************************************************************
67 typedef struct msp_sub_q15_params {
69  uint16_t length;
71 
72 //******************************************************************************
73 //
77 //
78 //******************************************************************************
79 typedef struct msp_sub_iq31_params {
81  uint16_t length;
83 
84 //******************************************************************************
85 //
89 //
90 //******************************************************************************
91 typedef struct msp_mpy_q15_params {
93  uint16_t length;
95 
96 //******************************************************************************
97 //
101 //
102 //******************************************************************************
103 typedef struct msp_mpy_iq31_params {
105  uint16_t length;
107 
108 //******************************************************************************
109 //
113 //
114 //******************************************************************************
115 typedef struct msp_mac_q15_params {
117  uint16_t length;
119 
120 //******************************************************************************
121 //
125 //
126 //******************************************************************************
127 typedef struct msp_mac_iq31_params {
129  uint16_t length;
131 
132 //******************************************************************************
133 //
137 //
138 //******************************************************************************
139 typedef struct msp_neg_q15_params {
141  uint16_t length;
143 
144 //******************************************************************************
145 //
149 //
150 //******************************************************************************
151 typedef struct msp_neg_iq31_params {
153  uint16_t length;
155 
156 //******************************************************************************
157 //
161 //
162 //******************************************************************************
163 typedef struct msp_abs_q15_params {
165  uint16_t length;
167 
168 //******************************************************************************
169 //
173 //
174 //******************************************************************************
175 typedef struct msp_abs_iq31_params {
177  uint16_t length;
179 
180 //******************************************************************************
181 //
185 //
186 //******************************************************************************
187 typedef struct msp_offset_q15_params {
189  uint16_t length;
193 
194 //******************************************************************************
195 //
199 //
200 //******************************************************************************
201 typedef struct msp_offset_iq31_params {
203  uint16_t length;
207 
208 //******************************************************************************
209 //
213 //
214 //******************************************************************************
215 typedef struct msp_scale_q15_params {
217  uint16_t length;
221  uint8_t shift;
223 
224 //******************************************************************************
225 //
229 //
230 //******************************************************************************
231 typedef struct msp_scale_iq31_params {
233  uint16_t length;
237  uint8_t shift;
239 
240 //******************************************************************************
241 //
245 //
246 //******************************************************************************
247 typedef struct msp_shift_q15_params {
249  uint16_t length;
252  int8_t shift;
254 
255 //******************************************************************************
256 //
260 //
261 //******************************************************************************
262 typedef struct msp_shift_iq31_params {
264  uint16_t length;
267  int8_t shift;
269 
270 //******************************************************************************
271 //
275 //
276 //******************************************************************************
277 typedef struct msp_max_q15_params {
279  uint16_t length;
281 
282 //******************************************************************************
283 //
287 //
288 //******************************************************************************
289 typedef struct msp_max_iq31_params {
291  uint16_t length;
293 
294 //******************************************************************************
295 //
299 //
300 //******************************************************************************
301 typedef struct msp_max_uq15_params {
303  uint16_t length;
305 
306 //******************************************************************************
307 //
311 //
312 //******************************************************************************
313 typedef struct msp_max_uq31_params {
315  uint16_t length;
317 
318 //******************************************************************************
319 //
323 //
324 //******************************************************************************
325 typedef struct msp_min_q15_params {
327  uint16_t length;
329 
330 //******************************************************************************
331 //
335 //
336 //******************************************************************************
337 typedef struct msp_min_iq31_params {
339  uint16_t length;
341 
342 //******************************************************************************
343 //
347 //
348 //******************************************************************************
349 typedef struct msp_min_uq15_params {
351  uint16_t length;
353 
354 //******************************************************************************
355 //
359 //
360 //******************************************************************************
361 typedef struct msp_min_uq31_params {
363  uint16_t length;
365 
366 //******************************************************************************
367 //
371 //
372 //******************************************************************************
373 typedef struct msp_cmplx_add_q15_params {
375  uint16_t length;
377 
378 //******************************************************************************
379 //
383 //
384 //******************************************************************************
387  uint16_t length;
389 
390 //******************************************************************************
391 //
395 //
396 //******************************************************************************
397 typedef struct msp_cmplx_sub_q15_params {
399  uint16_t length;
401 
402 //******************************************************************************
403 //
407 //
408 //******************************************************************************
411  uint16_t length;
413 
414 //******************************************************************************
415 //
419 //
420 //******************************************************************************
421 typedef struct msp_cmplx_mpy_q15_params {
423  uint16_t length;
425 
426 //******************************************************************************
427 //
431 //
432 //******************************************************************************
435  uint16_t length;
437 
438 //******************************************************************************
439 //
444 //
445 //******************************************************************************
448  uint16_t length;
450 
451 //******************************************************************************
452 //
457 //
458 //******************************************************************************
461  uint16_t length;
463 
464 //******************************************************************************
465 //
470 //
471 //******************************************************************************
472 typedef struct msp_cmplx_mac_q15_params {
474  uint16_t length;
476 
477 //******************************************************************************
478 //
483 //
484 //******************************************************************************
487  uint16_t length;
489 
490 //******************************************************************************
491 //
495 //
496 //******************************************************************************
499  uint16_t length;
501 
502 //******************************************************************************
503 //
507 //
508 //******************************************************************************
511  uint16_t length;
513 
514 //******************************************************************************
515 //
520 //
521 //******************************************************************************
524  uint16_t length;
528  uint8_t shift;
530 
531 //******************************************************************************
532 //
537 //
538 //******************************************************************************
541  uint16_t length;
545  uint8_t shift;
547 
548 //******************************************************************************
549 //
553 //
554 //******************************************************************************
557  uint16_t length;
560  int8_t shift;
562  bool conjugate;
564 
565 //******************************************************************************
566 //
570 //
571 //******************************************************************************
574  uint16_t length;
577  int8_t shift;
579  bool conjugate;
581 
582 //******************************************************************************
583 //
600 //
601 //******************************************************************************
602 extern msp_status msp_add_q15(const msp_add_q15_params *params,
603  const _q15 *srcA,
604  const _q15 *srcB,
605  _q15 *dst);
606 
607 //******************************************************************************
608 //
625 //
626 //******************************************************************************
627 extern msp_status msp_add_iq31(const msp_add_iq31_params *params,
628  const _iq31 *srcA,
629  const _iq31 *srcB,
630  _iq31 *dst);
631 
632 //******************************************************************************
633 //
650 //
651 //******************************************************************************
652 extern msp_status msp_sub_q15(const msp_sub_q15_params *params,
653  const _q15 *srcA,
654  const _q15 *srcB,
655  _q15 *dst);
656 
657 //******************************************************************************
658 //
675 //
676 //******************************************************************************
677 extern msp_status msp_sub_iq31(const msp_sub_iq31_params *params,
678  const _iq31 *srcA,
679  const _iq31 *srcB,
680  _iq31 *dst);
681 
682 //******************************************************************************
683 //
700 //
701 //******************************************************************************
702 extern msp_status msp_mpy_q15(const msp_mpy_q15_params *params,
703  const _q15 *srcA,
704  const _q15 *srcB,
705  _q15 *dst);
706 
707 //******************************************************************************
708 //
725 //
726 //******************************************************************************
727 extern msp_status msp_mpy_iq31(const msp_mpy_iq31_params *params,
728  const _iq31 *srcA,
729  const _iq31 *srcB,
730  _iq31 *dst);
731 
732 //******************************************************************************
733 //
751 //
752 //******************************************************************************
753 extern msp_status msp_mac_q15(const msp_mac_q15_params *params,
754  const _q15 *srcA,
755  const _q15 *srcB,
756  _iq31 *result);
757 
758 //******************************************************************************
759 //
777 //
778 //******************************************************************************
779 extern msp_status msp_mac_iq31(const msp_mac_iq31_params *params,
780  const _iq31 *srcA,
781  const _iq31 *srcB,
782  _iq31 *result);
783 
784 //******************************************************************************
785 //
801 //
802 //******************************************************************************
803 extern msp_status msp_neg_q15(const msp_neg_q15_params *params,
804  const _q15 *src,
805  _q15 *dst);
806 
807 //******************************************************************************
808 //
824 //
825 //******************************************************************************
826 extern msp_status msp_neg_iq31(const msp_neg_iq31_params *params,
827  const _iq31 *src,
828  _iq31 *dst);
829 
830 //******************************************************************************
831 //
846 //
847 //******************************************************************************
848 extern msp_status msp_abs_q15(const msp_abs_q15_params *params,
849  const _q15 *src,
850  _q15 *dst);
851 
852 //******************************************************************************
853 //
868 //
869 //******************************************************************************
870 extern msp_status msp_abs_iq31(const msp_abs_iq31_params *params,
871  const _iq31 *src,
872  _iq31 *dst);
873 
874 //******************************************************************************
875 //
891 //
892 //******************************************************************************
893 extern msp_status msp_offset_q15(const msp_offset_q15_params *params,
894  const _q15 *src,
895  _q15 *dst);
896 
897 //******************************************************************************
898 //
914 //
915 //******************************************************************************
917  const _iq31 *src,
918  _iq31 *dst);
919 
920 //******************************************************************************
921 //
938 //
939 //******************************************************************************
940 extern msp_status msp_scale_q15(const msp_scale_q15_params *params,
941  const _q15 *src,
942  _q15 *dst);
943 
944 //******************************************************************************
945 //
962 //
963 //******************************************************************************
964 extern msp_status msp_scale_iq31(const msp_scale_iq31_params *params,
965  const _iq31 *src,
966  _iq31 *dst);
967 
968 //******************************************************************************
969 //
986 //
987 //******************************************************************************
988 extern msp_status msp_shift_q15(const msp_shift_q15_params *params,
989  const _q15 *src,
990  _q15 *dst);
991 
992 //******************************************************************************
993 //
1010 //
1011 //******************************************************************************
1012 extern msp_status msp_shift_iq31(const msp_shift_iq31_params *params,
1013  const _iq31 *src,
1014  _iq31 *dst);
1015 
1016 //******************************************************************************
1017 //
1034 //
1035 //******************************************************************************
1036 extern msp_status msp_max_q15(const msp_max_q15_params *params,
1037  const _q15 *src,
1038  _q15 *max,
1039  uint16_t *index);
1040 
1041 //******************************************************************************
1042 //
1059 //
1060 //******************************************************************************
1061 extern msp_status msp_max_iq31(const msp_max_iq31_params *params,
1062  const _iq31 *src,
1063  _iq31 *max,
1064  uint16_t *index);
1065 
1066 //******************************************************************************
1067 //
1084 //
1085 //******************************************************************************
1086 extern msp_status msp_max_uq15(const msp_max_uq15_params *params,
1087  const _uq15 *src,
1088  _uq15 *max,
1089  uint16_t *index);
1090 
1091 //******************************************************************************
1092 //
1109 //
1110 //******************************************************************************
1111 extern msp_status msp_max_uq31(const msp_max_uq31_params *params,
1112  const _uq31 *src,
1113  _uq31 *max,
1114  uint16_t *index);
1115 
1116 //******************************************************************************
1117 //
1134 //
1135 //******************************************************************************
1136 extern msp_status msp_min_q15(const msp_min_q15_params *params,
1137  const _q15 *src,
1138  _q15 *min,
1139  uint16_t *index);
1140 
1141 //******************************************************************************
1142 //
1159 //
1160 //******************************************************************************
1161 extern msp_status msp_min_iq31(const msp_min_iq31_params *params,
1162  const _iq31 *src,
1163  _iq31 *min,
1164  uint16_t *index);
1165 
1166 //******************************************************************************
1167 //
1184 //
1185 //******************************************************************************
1186 extern msp_status msp_min_uq15(const msp_min_uq15_params *params,
1187  const _uq15 *src,
1188  _uq15 *min,
1189  uint16_t *index);
1190 
1191 //******************************************************************************
1192 //
1209 //
1210 //******************************************************************************
1211 extern msp_status msp_min_uq31(const msp_min_uq31_params *params,
1212  const _uq31 *src,
1213  _uq31 *min,
1214  uint16_t *index);
1215 
1216 //******************************************************************************
1217 //
1234 //
1235 //******************************************************************************
1237  const _q15 *srcA,
1238  const _q15 *srcB,
1239  _q15 *dst);
1240 
1241 //******************************************************************************
1242 //
1259 //
1260 //******************************************************************************
1262  const _iq31 *srcA,
1263  const _iq31 *srcB,
1264  _iq31 *dst);
1265 
1266 //******************************************************************************
1267 //
1284 //
1285 //******************************************************************************
1287  const _q15 *srcA,
1288  const _q15 *srcB,
1289  _q15 *dst);
1290 
1291 //******************************************************************************
1292 //
1309 //
1310 //******************************************************************************
1312  const _iq31 *srcA,
1313  const _iq31 *srcB,
1314  _iq31 *dst);
1315 
1316 //******************************************************************************
1317 //
1334 //
1335 //******************************************************************************
1337  const _q15 *srcA,
1338  const _q15 *srcB,
1339  _q15 *dst);
1340 
1341 //******************************************************************************
1342 //
1359 //
1360 //******************************************************************************
1362  const _iq31 *srcA,
1363  const _iq31 *srcB,
1364  _iq31 *dst);
1365 
1366 //******************************************************************************
1367 //
1386 //
1387 //******************************************************************************
1389  const msp_cmplx_mpy_real_q15_params *params,
1390  const _q15 *srcCmplx,
1391  const _q15 *srcReal,
1392  _q15 *dst);
1393 
1394 //******************************************************************************
1395 //
1414 //
1415 //******************************************************************************
1417  const msp_cmplx_mpy_real_iq31_params *params,
1418  const _iq31 *srcCmplx,
1419  const _iq31 *srcReal,
1420  _iq31 *dst);
1421 
1422 //******************************************************************************
1423 //
1441 //
1442 //******************************************************************************
1444  const _q15 *srcA,
1445  const _q15 *srcB,
1446  _iq31 *result);
1447 
1448 //******************************************************************************
1449 //
1467 //
1468 //******************************************************************************
1470  const _iq31 *srcA,
1471  const _iq31 *srcB,
1472  _iq31 *result);
1473 
1474 //******************************************************************************
1475 //
1491 //
1492 //******************************************************************************
1494  const _q15 *src,
1495  _q15 *dst);
1496 
1497 //******************************************************************************
1498 //
1514 //
1515 //******************************************************************************
1517  const _iq31 *src,
1518  _iq31 *dst);
1519 
1520 //******************************************************************************
1521 //
1538 //
1539 //******************************************************************************
1541  const _q15 *src,
1542  _q15 *dst);
1543 
1544 //******************************************************************************
1545 //
1562 //
1563 //******************************************************************************
1565  const _iq31 *src,
1566  _iq31 *dst);
1567 
1568 //******************************************************************************
1569 //
1586 //
1587 //******************************************************************************
1589  const _q15 *src,
1590  _q15 *dst);
1591 
1592 //******************************************************************************
1593 //
1610 //
1611 //******************************************************************************
1613  const _iq31 *src,
1614  _iq31 *dst);
1615 
1616 //*****************************************************************************
1617 //
1618 // Mark the end of the C bindings section for C++ compilers.
1619 //
1620 //*****************************************************************************
1621 #ifdef __cplusplus
1622 }
1623 #endif
1624 
1625 #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:151
Parameter structure for the Q15 vector offset function.
Definition: DSPLib_vector.h:187
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:93
Parameter structure for the Q15 vector multiply functions.
Definition: DSPLib_vector.h:91
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:327
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:555
Parameter structure for the Q15 signed vector minimum function.
Definition: DSPLib_vector.h:325
_iq31 offset
Offset to add to each vector element.
Definition: DSPLib_vector.h:205
Parameter structure for the Q15 unsigned vector maximum function.
Definition: DSPLib_vector.h:301
Parameter structure for the IQ31 vector absolute value function.
Definition: DSPLib_vector.h:175
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:59
Parameter structure for the IQ31 signed vector maximum function.
Definition: DSPLib_vector.h:289
int8_t shift
Definition: DSPLib_vector.h:267
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:313
_iq31 scale
q31 real fractional scale to multiply each complex vector element by.
Definition: DSPLib_vector.h:543
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:524
Parameter structure for the Q15 signed vector maximum function.
Definition: DSPLib_vector.h:277
_q15 scale
Q15 fractional value scale to multiply each vector element by.
Definition: DSPLib_vector.h:219
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:315
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:177
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:411
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:303
Parameter structure for the Q15 unsigned vector minimum function.
Definition: DSPLib_vector.h:349
msp_status
Enumerated type to return the status of an operation.
Definition: DSPLib_types.h:78
Parameter structure for the Q15 complex vector multiply by real functions.
Definition: DSPLib_vector.h:446
Parameter structure for the IQ31 signed vector minimum function.
Definition: DSPLib_vector.h:337
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:522
Parameter structure for the vector offset function.
Definition: DSPLib_vector.h:201
Parameter structure for the IQ31 unsigned vector minimum function.
Definition: DSPLib_vector.h:361
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:249
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:217
int8_t shift
Definition: DSPLib_vector.h:577
Parameter structure for the Q15 complex vector multiply and accumulate function.
Definition: DSPLib_vector.h:472
_q15 offset
Offset to add to each vector element.
Definition: DSPLib_vector.h:191
_q15 scale
Q15 real fractional scale to multiply each complex vector element by.
Definition: DSPLib_vector.h:526
int8_t shift
Definition: DSPLib_vector.h:252
uint16_t _uq15
Unsigned fixed point data type with 0 integer bit and 16 fractional bits.
Definition: DSPLib_types.h:49
uint16_t length
Length of source data, must be a multiple of two.
Definition: DSPLib_vector.h:117
Parameter structure for the Q15 vector add functions.
Definition: DSPLib_vector.h:43
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:221
Parameter structure for the IQ31 complex vector conjugate function.
Definition: DSPLib_vector.h:509
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:423
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:264
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:511
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:105
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:474
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:103
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:499
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:127
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:57
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:461
Parameter structure for the Q15 complex vector subtract functions.
Definition: DSPLib_vector.h:397
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:215
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:572
Parameter structure for the IQ31 vector subtract functions.
Definition: DSPLib_vector.h:79
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:497
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:459
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:279
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:153
Parameter structure for the Q15 vector multiply and accumulate function.
Definition: DSPLib_vector.h:115
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:487
uint16_t length
Length of source data, must be a multiple of two.
Definition: DSPLib_vector.h:129
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:203
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:545
Parameter structure for the IQ31 vector scale function.
Definition: DSPLib_vector.h:231
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:448
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:69
int16_t _q15
Signed fixed point data type with 1 integer bit and 15 fractional bits.
Definition: DSPLib_types.h:38
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:375
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:141
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:557
_iq31 scale
q31 fractional value scale to multiply each vector element by.
Definition: DSPLib_vector.h:235
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:45
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:262
Parameter structure for the IQ31 complex vector scale by real function.
Definition: DSPLib_vector.h:539
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:485
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:291
int8_t shift
Definition: DSPLib_vector.h:560
uint8_t shift
Unsigned integer value to shift each complex vector result left by.
Definition: DSPLib_vector.h:528
Parameter structure for the IQ31 complex vector subtract functions.
Definition: DSPLib_vector.h:409
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:339
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:385
Parameter structure for the Q15 vector subtract functions.
Definition: DSPLib_vector.h:67
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:139
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:165
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:579
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:399
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:163
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:435
uint32_t _uq31
Unsigned fixed point data type with 0 integer bits and 32 fractional bits.
Definition: DSPLib_types.h:69
uint8_t shift
Unsigned integer value to shift each vector result left by.
Definition: DSPLib_vector.h:237
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:247
Parameter structure for the IQ31 complex vector multiply functions.
Definition: DSPLib_vector.h:433
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:562
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:189
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:351
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:574
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:541
Parameter structure for the Q15 complex vector multiply functions.
Definition: DSPLib_vector.h:421
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:233
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:81
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:363
Parameter structure for the IQ31 vector add functions.
Definition: DSPLib_vector.h:55
Parameter structure for the Q15 complex vector add functions.
Definition: DSPLib_vector.h:373
uint16_t length
Length of source and destination data, must be a multiple of two.
Definition: DSPLib_vector.h:387