Skip to content

matrix inversion kernels

Module: Matrix Functions / matrix inversion

More...

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:

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