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 |