CMSIS-DSP  
CMSIS DSP Software Library
matrix_functions.h File Reference

Data Structures

struct  arm_matrix_instance_f32
 Instance structure for the floating-point matrix structure. More...
 
struct  arm_matrix_instance_f64
 Instance structure for the floating-point matrix structure. More...
 
struct  arm_matrix_instance_q7
 Instance structure for the Q7 matrix structure. More...
 
struct  arm_matrix_instance_q15
 Instance structure for the Q15 matrix structure. More...
 
struct  arm_matrix_instance_q31
 Instance structure for the Q31 matrix structure. More...
 

Macros

#define DEFAULT_HOUSEHOLDER_THRESHOLD_F64   (1.0e-16)
 
#define DEFAULT_HOUSEHOLDER_THRESHOLD_F32   (1.0e-12f)
 

Functions

arm_status arm_mat_add_f32 (const arm_matrix_instance_f32 *pSrcA, const arm_matrix_instance_f32 *pSrcB, arm_matrix_instance_f32 *pDst)
 Floating-point matrix addition. More...
 
arm_status arm_mat_add_q15 (const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst)
 Q15 matrix addition. More...
 
arm_status arm_mat_add_q31 (const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
 Q31 matrix addition. More...
 
arm_status arm_mat_cmplx_mult_f32 (const arm_matrix_instance_f32 *pSrcA, const arm_matrix_instance_f32 *pSrcB, arm_matrix_instance_f32 *pDst)
 Floating-point, complex, matrix multiplication. More...
 
arm_status arm_mat_cmplx_mult_q15 (const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst, q15_t *pScratch)
 Q15, complex, matrix multiplication. More...
 
arm_status arm_mat_cmplx_mult_q31 (const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
 Q31, complex, matrix multiplication. More...
 
arm_status arm_mat_trans_f32 (const arm_matrix_instance_f32 *pSrc, arm_matrix_instance_f32 *pDst)
 Floating-point matrix transpose. More...
 
arm_status arm_mat_trans_f64 (const arm_matrix_instance_f64 *pSrc, arm_matrix_instance_f64 *pDst)
 Floating-point matrix transpose. More...
 
arm_status arm_mat_cmplx_trans_f32 (const arm_matrix_instance_f32 *pSrc, arm_matrix_instance_f32 *pDst)
 Floating-point complex matrix transpose. More...
 
arm_status arm_mat_trans_q15 (const arm_matrix_instance_q15 *pSrc, arm_matrix_instance_q15 *pDst)
 Q15 matrix transpose. More...
 
arm_status arm_mat_cmplx_trans_q15 (const arm_matrix_instance_q15 *pSrc, arm_matrix_instance_q15 *pDst)
 Q15 complex matrix transpose. More...
 
arm_status arm_mat_trans_q7 (const arm_matrix_instance_q7 *pSrc, arm_matrix_instance_q7 *pDst)
 Q7 matrix transpose. More...
 
arm_status arm_mat_trans_q31 (const arm_matrix_instance_q31 *pSrc, arm_matrix_instance_q31 *pDst)
 Q31 matrix transpose. More...
 
arm_status arm_mat_cmplx_trans_q31 (const arm_matrix_instance_q31 *pSrc, arm_matrix_instance_q31 *pDst)
 Q31 complex matrix transpose. More...
 
arm_status arm_mat_mult_f32 (const arm_matrix_instance_f32 *pSrcA, const arm_matrix_instance_f32 *pSrcB, arm_matrix_instance_f32 *pDst)
 Floating-point matrix multiplication. More...
 
arm_status arm_mat_mult_f64 (const arm_matrix_instance_f64 *pSrcA, const arm_matrix_instance_f64 *pSrcB, arm_matrix_instance_f64 *pDst)
 Floating-point matrix multiplication. More...
 
void arm_mat_vec_mult_f32 (const arm_matrix_instance_f32 *pSrcMat, const float32_t *pVec, float32_t *pDst)
 Floating-point matrix and vector multiplication. More...
 
arm_status arm_mat_mult_q7 (const arm_matrix_instance_q7 *pSrcA, const arm_matrix_instance_q7 *pSrcB, arm_matrix_instance_q7 *pDst, q7_t *pState)
 Q7 matrix multiplication. More...
 
void arm_mat_vec_mult_q7 (const arm_matrix_instance_q7 *pSrcMat, const q7_t *pVec, q7_t *pDst)
 Q7 matrix and vector multiplication. More...
 
arm_status arm_mat_mult_q15 (const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst, q15_t *pState)
 Q15 matrix multiplication. More...
 
void arm_mat_vec_mult_q15 (const arm_matrix_instance_q15 *pSrcMat, const q15_t *pVec, q15_t *pDst)
 Q15 matrix and vector multiplication. More...
 
arm_status arm_mat_mult_fast_q15 (const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst, q15_t *pState)
 Q15 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4. More...
 
arm_status arm_mat_mult_q31 (const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
 Q31 matrix multiplication. More...
 
arm_status arm_mat_mult_opt_q31 (const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst, q31_t *pState)
 Q31 matrix multiplication. More...
 
void arm_mat_vec_mult_q31 (const arm_matrix_instance_q31 *pSrcMat, const q31_t *pVec, q31_t *pDst)
 Q31 matrix and vector multiplication. More...
 
arm_status arm_mat_mult_fast_q31 (const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
 Q31 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4. More...
 
arm_status arm_mat_sub_f32 (const arm_matrix_instance_f32 *pSrcA, const arm_matrix_instance_f32 *pSrcB, arm_matrix_instance_f32 *pDst)
 Floating-point matrix subtraction. More...
 
arm_status arm_mat_sub_f64 (const arm_matrix_instance_f64 *pSrcA, const arm_matrix_instance_f64 *pSrcB, arm_matrix_instance_f64 *pDst)
 Floating-point matrix subtraction. More...
 
arm_status arm_mat_sub_q15 (const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst)
 Q15 matrix subtraction. More...
 
arm_status arm_mat_sub_q31 (const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
 Q31 matrix subtraction. More...
 
arm_status arm_mat_scale_f32 (const arm_matrix_instance_f32 *pSrc, float32_t scale, arm_matrix_instance_f32 *pDst)
 Floating-point matrix scaling. More...
 
arm_status arm_mat_scale_q15 (const arm_matrix_instance_q15 *pSrc, q15_t scaleFract, int32_t shift, arm_matrix_instance_q15 *pDst)
 Q15 matrix scaling. More...
 
arm_status arm_mat_scale_q31 (const arm_matrix_instance_q31 *pSrc, q31_t scaleFract, int32_t shift, arm_matrix_instance_q31 *pDst)
 Q31 matrix scaling. More...
 
void arm_mat_init_q31 (arm_matrix_instance_q31 *S, uint16_t nRows, uint16_t nColumns, q31_t *pData)
 Q31 matrix initialization. More...
 
void arm_mat_init_q15 (arm_matrix_instance_q15 *S, uint16_t nRows, uint16_t nColumns, q15_t *pData)
 Q15 matrix initialization. More...
 
void arm_mat_init_f32 (arm_matrix_instance_f32 *S, uint16_t nRows, uint16_t nColumns, float32_t *pData)
 Floating-point matrix initialization. More...
 
arm_status arm_mat_inverse_f32 (const arm_matrix_instance_f32 *src, arm_matrix_instance_f32 *dst)
 Floating-point matrix inverse. More...
 
arm_status arm_mat_inverse_f64 (const arm_matrix_instance_f64 *src, arm_matrix_instance_f64 *dst)
 Floating-point matrix inverse. More...
 
arm_status arm_mat_cholesky_f64 (const arm_matrix_instance_f64 *src, arm_matrix_instance_f64 *dst)
 Floating-point Cholesky decomposition of Symmetric Positive Definite Matrix. More...
 
arm_status arm_mat_cholesky_f32 (const arm_matrix_instance_f32 *src, arm_matrix_instance_f32 *dst)
 Floating-point Cholesky decomposition of Symmetric Positive Definite Matrix. More...
 
arm_status arm_mat_solve_upper_triangular_f32 (const arm_matrix_instance_f32 *ut, const arm_matrix_instance_f32 *a, arm_matrix_instance_f32 *dst)
 Solve UT . X = A where UT is an upper triangular matrix. More...
 
arm_status arm_mat_solve_lower_triangular_f32 (const arm_matrix_instance_f32 *lt, const arm_matrix_instance_f32 *a, arm_matrix_instance_f32 *dst)
 Solve LT . X = A where LT is a lower triangular matrix. More...
 
arm_status arm_mat_solve_upper_triangular_f64 (const arm_matrix_instance_f64 *ut, const arm_matrix_instance_f64 *a, arm_matrix_instance_f64 *dst)
 Solve UT . X = A where UT is an upper triangular matrix. More...
 
arm_status arm_mat_solve_lower_triangular_f64 (const arm_matrix_instance_f64 *lt, const arm_matrix_instance_f64 *a, arm_matrix_instance_f64 *dst)
 Solve LT . X = A where LT is a lower triangular matrix. More...
 
arm_status arm_mat_ldlt_f32 (const arm_matrix_instance_f32 *src, arm_matrix_instance_f32 *l, arm_matrix_instance_f32 *d, uint16_t *pp)
 Floating-point LDL decomposition of Symmetric Positive Semi-Definite Matrix. More...
 
arm_status arm_mat_ldlt_f64 (const arm_matrix_instance_f64 *src, arm_matrix_instance_f64 *l, arm_matrix_instance_f64 *d, uint16_t *pp)
 Floating-point LDL decomposition of Symmetric Positive Semi-Definite Matrix. More...
 
arm_status arm_mat_qr_f32 (const arm_matrix_instance_f32 *pSrc, const float32_t threshold, arm_matrix_instance_f32 *pOutR, arm_matrix_instance_f32 *pOutQ, float32_t *pOutTau, float32_t *pTmpA, float32_t *pTmpB)
 QR decomposition of a m x n floating point matrix with m >= n. More...
 
arm_status arm_mat_qr_f64 (const arm_matrix_instance_f64 *pSrc, const float64_t threshold, arm_matrix_instance_f64 *pOutR, arm_matrix_instance_f64 *pOutQ, float64_t *pOutTau, float64_t *pTmpA, float64_t *pTmpB)
 QR decomposition of a m x n floating point matrix with m >= n. More...
 
float32_t arm_householder_f32 (const float32_t *pSrc, const float32_t threshold, uint32_t blockSize, float32_t *pOut)
 Householder transform of a floating point vector. More...
 
float64_t arm_householder_f64 (const float64_t *pSrc, const float64_t threshold, uint32_t blockSize, float64_t *pOut)
 Householder transform of a double floating point vector. More...
 

Macro Definition Documentation

◆ DEFAULT_HOUSEHOLDER_THRESHOLD_F32

#define DEFAULT_HOUSEHOLDER_THRESHOLD_F32   (1.0e-12f)

◆ DEFAULT_HOUSEHOLDER_THRESHOLD_F64

#define DEFAULT_HOUSEHOLDER_THRESHOLD_F64   (1.0e-16)