1.4.2.21 DSP_MatrixAdd32 Function

Addition of two matrices C = (A + B).

Description

void DSP_MatrixAdd32(matrix32 *resMat, matrix32 *srcMat1, matrix32 *srcMat2);

Vector summation of two matrices, where both have 32-bit integer elements. The resulting output will saturate if element addition exceeds MAX32 or MIN32.

Preconditions

Both matrices must be equivalent in rows and columns. Both Matrices must be set into structure (ROWS, COLUMNS, vector_pointer).

Parameters

resMat pointer to new sum Matrix C (*int32_t)

srcMat1 pointer to the Matrix A structure (*int32_t)

srcMat2 pointer to the Matrix B structure (*int32_t)

Returns

None.

Remarks

Execution Time (cycles): 225 cycles + 23 / matrix_element. The function will saturate the output value if it exceeds maximum limits per element.

Example

#define ROW 2

#define COL 2

matrix32 *resMat, *srcMat1, *srcMat2;

int32_t result[ROW*COL];

int32_t matA[ROW*COL] = {1,2,3,4};

int32_t matB[ROW*COL] = {2,4,6,8};

matrix32 mat, mat2, mat3;

resMat=&mat;

srcMat1=&mat2;

srcMat2=&mat3;

srcMat1->row=ROW;

srcMat1->col=COL;

srcMat1->pMatrix=matA;

srcMat2->col=COL;

srcMat2->row=ROW;

srcMat2->pMatrix=matB;

resMat->row=ROW;

resMat->col=COL;

resMat->pMatrix=result;

DSP_MatrixAdd32(resMat, srcMat1, srcMat2);

_// result[i] = matA[i] + matB[i] = {3,6,9,0xA}_

C

void  DSP_MatrixAdd32 (matrix32 * resMat , matrix32 * srcMat1 , matrix32 * srcMat2 );