![]() |
![]() |
Collaboration diagram for DSP_mat_mul:
|
| void | DSP_mat_mul (const short *restrict x, int r1, int c1, const short *restrict y, int c2, short *restrict r, int qs) |
| void DSP_mat_mul | ( | const short *restrict | x, | |
| int | r1, | |||
| int | c1, | |||
| const short *restrict | y, | |||
| int | c2, | |||
| short *restrict | r, | |||
| int | qs | |||
| ) |
This function computes the expression “r = x * y” for the matrices x and y. The columnar dimension of x must match the row dimension of y. The resulting matrix has the same number of rows as x and the same number of columns as y.
The values stored in the matrices are assumed to be fixed-point or integer values. All intermediate sums are retained to 32-bit precision, and no overflow checking is performed. The results are right-shifted by a user-specified amount, and then truncated to 16 bits.
| x | = Pointer to input matrix of size r1*c1 | |
| r1 | = Number of rows in matrix x | |
| c1 | = Number of columns in matrix x. Also number of rows in y | |
| y | = Pointer to input matrix of size c1*c2 | |
| c2 | = Number of columns in matrix y | |
| r | = Pointer to output matrix of size r1*c2 | |
| qs | = Final right-shift to apply to the result |