DSP_mat_mul
[Matrix]

Collaboration diagram for DSP_mat_mul:


Detailed Description

void DSP_mat_mul (const short *restrict x, int r1, int c1, const short *restrict y, int c2, short *restrict r, int qs)


Function Documentation

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.

Parameters:
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
Algorithm:
DSP_mat_mul.c is the natural C equivalent of the optimized intrinsic C code withoutrestrictions. Note that the intrinsic C code is optimized and restrictions may apply.
Assumptions:
The arrays x[], y[], and r[] are stored in distinct arrays.
That is, in-place processing is not allowed.
x, y and r are double word aligned.
c1 is a multiple of 2 and >= 2.
c2 is a multiple of 4 and >= 4.
r1 is a multiple of 2 and >= 2.
Implementation Notes:
Interruptibility : The code is interruptible.
Endian support : supports both Little and Big endian modes.


Copyright 2014, Texas Instruments Incorporated