Vector Multiplication
- RISCV_DSP_ATTRIBUTE void riscv_mult_f16 (const float16_t *pSrcA, const float16_t *pSrcB, float16_t *pDst, uint32_t blockSize)
- RISCV_DSP_ATTRIBUTE void riscv_mult_f32 (const float32_t *pSrcA, const float32_t *pSrcB, float32_t *pDst, uint32_t blockSize)
- RISCV_DSP_ATTRIBUTE void riscv_mult_f64 (const float64_t *pSrcA, const float64_t *pSrcB, float64_t *pDst, uint32_t blockSize)
- RISCV_DSP_ATTRIBUTE void riscv_mult_q15 (const q15_t *pSrcA, const q15_t *pSrcB, q15_t *pDst, uint32_t blockSize)
- RISCV_DSP_ATTRIBUTE void riscv_mult_q31 (const q31_t *pSrcA, const q31_t *pSrcB, q31_t *pDst, uint32_t blockSize)
- RISCV_DSP_ATTRIBUTE void riscv_mult_q7 (const q7_t *pSrcA, const q7_t *pSrcB, q7_t *pDst, uint32_t blockSize)
- group BasicMult
Element-by-element multiplication of two vectors.
There are separate functions for floating-point, Q7, Q15, and Q31 data types.
Functions
- RISCV_DSP_ATTRIBUTE void riscv_mult_f16 (const float16_t *pSrcA, const float16_t *pSrcB, float16_t *pDst, uint32_t blockSize)
Floating-point vector multiplication.
- Parameters
pSrcA – [in] points to the first input vector.
pSrcB – [in] points to the second input vector.
pDst – [out] points to the output vector.
blockSize – [in] number of samples in each vector.
- RISCV_DSP_ATTRIBUTE void riscv_mult_f32 (const float32_t *pSrcA, const float32_t *pSrcB, float32_t *pDst, uint32_t blockSize)
Floating-point vector multiplication.
- Parameters
pSrcA – [in] points to the first input vector.
pSrcB – [in] points to the second input vector.
pDst – [out] points to the output vector.
blockSize – [in] number of samples in each vector.
- RISCV_DSP_ATTRIBUTE void riscv_mult_f64 (const float64_t *pSrcA, const float64_t *pSrcB, float64_t *pDst, uint32_t blockSize)
Floating-point vector multiplication.
- Parameters
pSrcA – [in] points to the first input vector.
pSrcB – [in] points to the second input vector.
pDst – [out] points to the output vector.
blockSize – [in] number of samples in each vector.
- RISCV_DSP_ATTRIBUTE void riscv_mult_q15 (const q15_t *pSrcA, const q15_t *pSrcB, q15_t *pDst, uint32_t blockSize)
Q15 vector multiplication.
- Scaling and Overflow Behavior
The function uses saturating arithmetic. Results outside of the allowable Q15 range [0x8000 0x7FFF] are saturated.
- Parameters
pSrcA – [in] points to first input vector
pSrcB – [in] points to second input vector
pDst – [out] points to output vector
blockSize – [in] number of samples in each vector
- RISCV_DSP_ATTRIBUTE void riscv_mult_q31 (const q31_t *pSrcA, const q31_t *pSrcB, q31_t *pDst, uint32_t blockSize)
Q31 vector multiplication.
- Scaling and Overflow Behavior
The function uses saturating arithmetic. Results outside of the allowable Q31 range[0x80000000 0x7FFFFFFF] are saturated.
- Parameters
pSrcA – [in] points to the first input vector.
pSrcB – [in] points to the second input vector.
pDst – [out] points to the output vector.
blockSize – [in] number of samples in each vector.
- RISCV_DSP_ATTRIBUTE void riscv_mult_q7 (const q7_t *pSrcA, const q7_t *pSrcB, q7_t *pDst, uint32_t blockSize)
Q7 vector multiplication.
- Scaling and Overflow Behavior
The function uses saturating arithmetic. Results outside of the allowable Q7 range [0x80 0x7F] are saturated.
- Parameters
pSrcA – [in] points to the first input vector
pSrcB – [in] points to the second input vector
pDst – [out] points to the output vector
blockSize – [in] number of samples in each vector