matrix inversion kernels
Module: Matrix Functions / matrix inversion
Functions
Name | |
---|---|
int | plp_mat_inv_f32p_xpulpv2(void * args) Parallel matrix inversion of 32-bit floating-point matrices kernel for XPULPV2 extension. |
int | plp_mat_inv_f32s_xpulpv2(float restrict pSrc, float restrict pDst, uint32_t N) matrix inversion of 32-bit floating-point matrices kernel for XPULPV2 extension. |
Detailed Description
Par: Algorithm
The Gauss-Jordan method is used to find the inverse. The algorithm performs a sequence of elementary row-operations until it reduces the input matrix to an identity matrix. Applying the same sequence of elementary row-operations to an identity matrix yields the inverse matrix.
This module contains the kernel functions for matrix inversion.
The inverse of a matrix of shape MxN is another matrix of shape NxN, such that
[ I = A \cdot A^{-1} ]The inverse is defined only if the input matrix is square and non-singular (the determinant is non-zero). The function checks that the input and output matrices are square and of the same size. Matrix inversion is numerically sensitive and the PULP DSP library only supports matrix inversion of floating-point matrices.
Functions Documentation
function plp_mat_inv_f32p_xpulpv2
int plp_mat_inv_f32p_xpulpv2(
void * args
)
Parallel matrix inversion of 32-bit floating-point matrices kernel for XPULPV2 extension.
Parameters:
- args pointer to plp_mat_inv_instance_f32 struct initialized by plp_mat_inv_f32_parallel
Return: 0: Success, 1: Matrix is singular
Parallel matrix inverse of 32-bit floating-point matrices kernel for XPULPV2 extension.
@warn Not yet implemented
function plp_mat_inv_f32s_xpulpv2
int plp_mat_inv_f32s_xpulpv2(
float *__restrict__ pSrc,
float *__restrict__ pDst,
uint32_t N
)
matrix inversion of 32-bit floating-point matrices kernel for XPULPV2 extension.
Parameters:
- pSrc Points to the first input matrix. pSrc is modified by this funciton
- N Width and height of both matrices
- pDst Points to the output matrix
Return: 0: Success, 1: Matrix is singular
matrix inverse of a 32-bit floating-point matrices for XPULPV2 extension.
Updated on 2023-03-01 at 16:16:32 +0000