NMSIS-DSP  Version 1.2.0
NMSIS DSP Software Library
Matrix Subtraction

Subtract two matrices. More...

Functions

riscv_status riscv_mat_sub_f16 (const riscv_matrix_instance_f16 *pSrcA, const riscv_matrix_instance_f16 *pSrcB, riscv_matrix_instance_f16 *pDst)
 Floating-point matrix subtraction. More...
 
riscv_status riscv_mat_sub_f32 (const riscv_matrix_instance_f32 *pSrcA, const riscv_matrix_instance_f32 *pSrcB, riscv_matrix_instance_f32 *pDst)
 Floating-point matrix subtraction. More...
 
riscv_status riscv_mat_sub_f64 (const riscv_matrix_instance_f64 *pSrcA, const riscv_matrix_instance_f64 *pSrcB, riscv_matrix_instance_f64 *pDst)
 Floating-point matrix subtraction. More...
 
riscv_status riscv_mat_sub_q15 (const riscv_matrix_instance_q15 *pSrcA, const riscv_matrix_instance_q15 *pSrcB, riscv_matrix_instance_q15 *pDst)
 Q15 matrix subtraction. More...
 
riscv_status riscv_mat_sub_q31 (const riscv_matrix_instance_q31 *pSrcA, const riscv_matrix_instance_q31 *pSrcB, riscv_matrix_instance_q31 *pDst)
 Q31 matrix subtraction. More...
 

Detailed Description

Subtract two matrices.

Subraction of two 3 x 3 matrices

\[ \begin{pmatrix} a_{1,1} & a_{1,2} & a_{1,3} \\ a_{2,1} & a_{2,2} & a_{2,3} \\ a_{3,1} & a_{3,2} & a_{3,3} \\ \end{pmatrix} - \begin{pmatrix} b_{1,1} & b_{1,2} & b_{1,3} \\ b_{2,1} & b_{2,2} & b_{2,3} \\ b_{3,1} & b_{3,2} & b_{3,3} \\ \end{pmatrix} = \begin{pmatrix} a_{1,1}-b_{1,1} & a_{1,2}-b_{1,2} & a_{1,3}-b_{1,3} \\ a_{2,1}-b_{2,1} & a_{2,2}-b_{2,2} & a_{2,3}-b_{2,3} \\ a_{3,1}-b_{3,1} & a_{3,2}-b_{3,2} & a_{3,3}-b_{3,3} \\ \end{pmatrix} \]

The functions check to make sure that pSrcA, pSrcB, and pDst have the same number of rows and columns.

Function Documentation

◆ riscv_mat_sub_f16()

riscv_status riscv_mat_sub_f16 ( const riscv_matrix_instance_f16 pSrcA,
const riscv_matrix_instance_f16 pSrcB,
riscv_matrix_instance_f16 pDst 
)

Floating-point matrix subtraction.

Parameters
[in]pSrcApoints to the first input matrix structure
[in]pSrcBpoints to the second input matrix structure
[out]pDstpoints to output matrix structure
Returns
execution status
  • RISCV_MATH_SUCCESS : Operation successful
  • RISCV_MATH_SIZE_MISMATCH : Matrix size check failed

◆ riscv_mat_sub_f32()

riscv_status riscv_mat_sub_f32 ( const riscv_matrix_instance_f32 pSrcA,
const riscv_matrix_instance_f32 pSrcB,
riscv_matrix_instance_f32 pDst 
)

Floating-point matrix subtraction.

Parameters
[in]pSrcApoints to the first input matrix structure
[in]pSrcBpoints to the second input matrix structure
[out]pDstpoints to output matrix structure
Returns
execution status
  • RISCV_MATH_SUCCESS : Operation successful
  • RISCV_MATH_SIZE_MISMATCH : Matrix size check failed

◆ riscv_mat_sub_f64()

riscv_status riscv_mat_sub_f64 ( const riscv_matrix_instance_f64 pSrcA,
const riscv_matrix_instance_f64 pSrcB,
riscv_matrix_instance_f64 pDst 
)

Floating-point matrix subtraction.

Parameters
[in]pSrcApoints to the first input matrix structure
[in]pSrcBpoints to the second input matrix structure
[out]pDstpoints to output matrix structure
Returns
execution status
  • RISCV_MATH_SUCCESS : Operation successful
  • RISCV_MATH_SIZE_MISMATCH : Matrix size check failed

◆ riscv_mat_sub_q15()

riscv_status riscv_mat_sub_q15 ( const riscv_matrix_instance_q15 pSrcA,
const riscv_matrix_instance_q15 pSrcB,
riscv_matrix_instance_q15 pDst 
)

Q15 matrix subtraction.

Parameters
[in]pSrcApoints to the first input matrix structure
[in]pSrcBpoints to the second input matrix structure
[out]pDstpoints to output matrix structure
Returns
execution status
  • RISCV_MATH_SUCCESS : Operation successful
  • RISCV_MATH_SIZE_MISMATCH : Matrix size check failed
Scaling and Overflow Behavior
The function uses saturating arithmetic. Results outside of the allowable Q15 range [0x8000 0x7FFF] are saturated.

◆ riscv_mat_sub_q31()

riscv_status riscv_mat_sub_q31 ( const riscv_matrix_instance_q31 pSrcA,
const riscv_matrix_instance_q31 pSrcB,
riscv_matrix_instance_q31 pDst 
)

Q31 matrix subtraction.

Parameters
[in]pSrcApoints to the first input matrix structure
[in]pSrcBpoints to the second input matrix structure
[out]pDstpoints to output matrix structure
Returns
execution status
  • RISCV_MATH_SUCCESS : Operation successful
  • RISCV_MATH_SIZE_MISMATCH : Matrix size check failed
Scaling and Overflow Behavior
The function uses saturating arithmetic. Results outside of the allowable Q31 range [0x80000000 0x7FFFFFFF] are saturated.