CC27xxDriverLibrary
Collaboration diagram for [apu.h] APU Matrix Operations:

Functions

void APUMatrixMult (uint16_t M, uint16_t N, uint16_t P, void *pInputA, void *pInputB, void *pResult)
 APU accelerator for matrix multiplication of two matrices C = A*B. More...
 
void APUMatrixMultHerm (uint16_t M, void *pInputA, void *pInputB, void *pResult)
 APU accelerator for matrix multiplication of two Hermitian matrices C = A*B. More...
 
void APUMatrixMultSym (uint16_t M, void *pInputA, void *pInputB, void *pResult)
 APU accelerator for matrix multiplication of two symmetric matrices C = A*B. More...
 
void APUMatrixSum (uint16_t M, uint16_t N, void *pInputA, void *pInputB, void *pResult)
 APU accelerator for matrix addition of two matrices C = A+B. More...
 
void APUMatrixScalarMult (uint16_t M, uint16_t N, void *pInputA, void *pInputB, void *pResult)
 APU accelerator for multiplication of a matrix A and a scalar b. More...
 
void APUMatrixScalarSum (uint16_t M, uint16_t N, void *pInputA, void *pInputB, void *pResult)
 APU accelerator for addition of a matrix A and a scalar b. More...
 
void APUMatrixNorm (uint16_t M, uint16_t N, void *pInput, void *pResult)
 APU accelerator for Frobenius norm computation of a matrix. More...
 

Detailed Description

Close the Doxygen group.

Function Documentation

§ APUMatrixMult()

void APUMatrixMult ( uint16_t  M,
uint16_t  N,
uint16_t  P,
void *  pInputA,
void *  pInputB,
void *  pResult 
)

APU accelerator for matrix multiplication of two matrices C = A*B.

Calculate matrix multiplication of two matrices.

Defined as:

C[MxP] = A[MxN] * B[NxP]

in which A, B, and C are complex matrices with size [MxP], [MxN], and [NxP] respectively.

Parameters
Mnumber of rows of matrix A
Nnumber of columns of matrix A (number of rows of matrix B)
Pnumber of columns of matrix B
pInputAa pointer to the base of the first input matrix A, in APU memory
pInputBa pointer to the base of the second input matrix B, in APU memory
pResulta pointer to where the result will be placed, in APU memory
Returns
None

References APU_API_MATMATMULT, and APU_GET_DATA_MEM_OFFSET.

§ APUMatrixMultHerm()

void APUMatrixMultHerm ( uint16_t  M,
void *  pInputA,
void *  pInputB,
void *  pResult 
)

APU accelerator for matrix multiplication of two Hermitian matrices C = A*B.

Calculate matrix multiplication of two Hermitian matrices.

Defined as:

C[MxM] = A[MxM] * B[MxM]

in which A, B, and C are Hermitian matrices with the same size [MxM].

Note
APU stores only upper/right triangular part of Hermitian matrices for memory saving. A Hermitian matrix (MxM) will take M*(M+1)/2 element spaces
Parameters
Mnumber of rows and columns of matrix A/B/C
pInputAa pointer to the base of the first input matrix A, in APU memory
pInputBa pointer to the base of the second input matrix B, in APU memory
pResulta pointer to where the result will be placed, in APU memory
Returns
None

References APU_API_HERMATRIXMULT, and APU_GET_DATA_MEM_OFFSET.

§ APUMatrixMultSym()

void APUMatrixMultSym ( uint16_t  M,
void *  pInputA,
void *  pInputB,
void *  pResult 
)

APU accelerator for matrix multiplication of two symmetric matrices C = A*B.

Calculate matrix multiplication of two symmetric matrices.

Defined as:

C[MxM] = A[MxM] * B[MxM]

in which A, B are symmetric matrices with the same size [MxM].

Note
APU stores only upper/right triangular part of symmetric matrices for memory saving. A symmetric matrix (MxM) will take M*(M+1)/2 element spaces
Parameters
Mnumber of rows and columns of matrix A/B/C
pInputAa pointer to the base of the first input matrix A, in APU memory
pInputBa pointer to the base of the second input matrix B, in APU memory
pResulta pointer to where the result will be placed, in APU memory
Returns
None

References APU_API_SYMMATRIXMULT, and APU_GET_DATA_MEM_OFFSET.

§ APUMatrixSum()

void APUMatrixSum ( uint16_t  M,
uint16_t  N,
void *  pInputA,
void *  pInputB,
void *  pResult 
)

APU accelerator for matrix addition of two matrices C = A+B.

Calculate matrix addition of two matrices.

Defined as:

C[MxN] = A[MxN] + B[MxN]

in which, A, B, and C are matrices with the same size [MxN].

Parameters
Mnumber of rows of matrix A/B/C
Nnumber of columns of matrix A/B/C
pInputAa pointer to the base of the first input matrix A, in APU memory
pInputBa pointer to the base of the second input matrix B, in APU memory
pResulta pointer to where the result will be placed, in APU memory
Returns
None

References APU_API_MATRIXSUM, and APU_GET_DATA_MEM_OFFSET.

§ APUMatrixScalarMult()

void APUMatrixScalarMult ( uint16_t  M,
uint16_t  N,
void *  pInputA,
void *  pInputB,
void *  pResult 
)

APU accelerator for multiplication of a matrix A and a scalar b.

Calculate multiplication of a matrix A and a scalar b.

Defined as:

C[MxN] = b * A[MxN]

in which, A and C are complex matrices with the same size [MxN], b is complex scalar.

Parameters
Mnumber of rows of matrix A
Nnumber of columns of matrix A
pInputAa pointer to the base of the first input matrix A, in APU memory
pInputBa pointer to the base of the scalar b, in APU memory
pResulta pointer to where the result will be placed, in APU memory
Returns
None

References APUVectorScalarMult().

§ APUMatrixScalarSum()

void APUMatrixScalarSum ( uint16_t  M,
uint16_t  N,
void *  pInputA,
void *  pInputB,
void *  pResult 
)

APU accelerator for addition of a matrix A and a scalar b.

Calculate addition of a matrix A and a scalar b.

Defined as:

C[MxN] = b + A[MxN] (add scalar b to each of A's elements)

in which, A and C are complex matrices with the same size [MxN], b is a complex scalar.

Parameters
Mnumber of rows of matrix A/C
Nnumber of columns of matrix A/C
pInputAa pointer to the base of the first input matrix A, in APU memory
pInputBa pointer to the base of the scalar b, in APU memory
pResulta pointer to where the result will be placed, in APU memory
Returns
None

References APUVectorScalarSum().

§ APUMatrixNorm()

void APUMatrixNorm ( uint16_t  M,
uint16_t  N,
void *  pInput,
void *  pResult 
)

APU accelerator for Frobenius norm computation of a matrix.

Calculates the Frobenius norm of a matrix.

Defined as:

c = ||X|| = sqrt(sum(xij * xij')), i = 1 to M and j = 1 to N
Parameters
Mnumber of rows of input matrix
Nnumber of columns of input matrix
pInputa pointer to the base of the input matrix, in APU memory
pResulta pointer to output norm value, in APU memory
Returns
None

References APU_API_MATRIXNORM, and APU_GET_DATA_MEM_OFFSET.