CSI-DSP  Version 1.0.0
CSI DSP Software Library
函数
向量乘法

函数

void csky_mult_f32 (float32_t *pSrcA, float32_t *pSrcB, float32_t *pDst, uint32_t blockSize)
 浮点向量乘法 更多...
 
void csky_mult_q15 (q15_t *pSrcA, q15_t *pSrcB, q15_t *pDst, uint32_t blockSize)
 Q15 向量乘法 更多...
 
void csky_mult_q31 (q31_t *pSrcA, q31_t *pSrcB, q31_t *pDst, uint32_t blockSize)
 Q31 向量乘法. 更多...
 
void csky_mult_q7 (q7_t *pSrcA, q7_t *pSrcB, q7_t *pDst, uint32_t blockSize)
 Q7 向量乘法 更多...
 
void csky_mult_rnd_q15 (q15_t *pSrcA, q15_t *pSrcB, q15_t *pDst, uint32_t blockSize)
 带舍入的Q15向量相乘 更多...
 

简要说明

两个向量的元素逐个相乘

    pDst[n] = pSrcA[n] * pSrcB[n],   0 <= n < blockSize.

为浮点,Q7,Q15,Q31每种类型都提供了不同的函数.

函数说明

void csky_mult_f32 ( float32_t pSrcA,
float32_t pSrcB,
float32_t pDst,
uint32_t  blockSize 
)
参数
[in]*pSrcA指向第一个输入向量
[in]*pSrcB指向第二个输入向量
[out]*pDst指向输出向量
[in]blockSize每个向量的元素数量
返回
none.
示例:
csky_dotproduct_example_f32.c, csky_sin_cos_example_f32.c , 以及 csky_variance_example_f32.c.
void csky_mult_q15 ( q15_t pSrcA,
q15_t pSrcB,
q15_t pDst,
uint32_t  blockSize 
)
参数
[in]*pSrcA指向第一个输入向量
[in]*pSrcB指向第二个输入向量
[out]*pDst指向输出向量
[in]blockSize每个向量的元素数量
返回
none.

缩放和溢出时的行为:

函数使用饱和算法. 结果超出Q15的最大范围[0x8000 0x7FFF] 时会被饱和处理.
void csky_mult_q31 ( q31_t pSrcA,
q31_t pSrcB,
q31_t pDst,
uint32_t  blockSize 
)
参数
[in]*pSrcA指向第一个输入向量
[in]*pSrcB指向第二个输入向量
[out]*pDst指向输出向量
[in]blockSize每个向量的元素数量
返回
none.

缩放和溢出时的行为:

函数使用饱和算法. 结果超出Q31的最大范围[0x80000000 0x7FFFFFFF] 时会被饱和处理.
void csky_mult_q7 ( q7_t pSrcA,
q7_t pSrcB,
q7_t pDst,
uint32_t  blockSize 
)
参数
[in]*pSrcA指向第一个输入向量
[in]*pSrcB指向第二个输入向量
[out]*pDst指向输出向量
[in]blockSize每个向量的元素数量
返回
none.

缩放和溢出时的行为:

函数使用饱和算法. 结果超出Q7的最大范围[0x80 0x7F] 时会被饱和处理.
void csky_mult_rnd_q15 ( q15_t pSrcA,
q15_t pSrcB,
q15_t pDst,
uint32_t  blockSize 
)
参数
[in]*pSrcA指向输入缓存A
[in]*pSrcB指向输入缓存B
[out]*pDst指向输出缓存
[in]blockSize每个向量中的采样数量
返回
none.

缩放和溢出时的行为:

函数使用了饱和算法。 输出值超出了Q15的允许范围[0x8000 0x7FFF]就会被饱和,且在饱和之前,结果会被舍入, 舍入方式为向正无穷舍入。