mirror of
https://github.com/Fishwaldo/bl_mcu_sdk.git
synced 2025-07-14 00:38:33 +00:00
48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
#include "ref.h"
|
|
|
|
void ref_shift_q31(q31_t *pSrc, int8_t shiftBits, q31_t *pDst,
|
|
uint32_t blockSize)
|
|
{
|
|
uint32_t i;
|
|
|
|
if (shiftBits >= 0) {
|
|
for (i = 0; i < blockSize; i++) {
|
|
pDst[i] = pSrc[i] << shiftBits;
|
|
}
|
|
} else {
|
|
for (i = 0; i < blockSize; i++) {
|
|
pDst[i] = pSrc[i] >> -shiftBits;
|
|
}
|
|
}
|
|
}
|
|
|
|
void ref_shift_q15(q15_t *pSrc, int8_t shiftBits, q15_t *pDst,
|
|
uint32_t blockSize)
|
|
{
|
|
uint32_t i;
|
|
|
|
if (shiftBits >= 0) {
|
|
for (i = 0; i < blockSize; i++) {
|
|
pDst[i] = pSrc[i] << shiftBits;
|
|
}
|
|
} else {
|
|
for (i = 0; i < blockSize; i++) {
|
|
pDst[i] = pSrc[i] >> -shiftBits;
|
|
}
|
|
}
|
|
}
|
|
|
|
void ref_shift_q7(q7_t *pSrc, int8_t shiftBits, q7_t *pDst, uint32_t blockSize)
|
|
{
|
|
uint32_t i;
|
|
|
|
if (shiftBits >= 0) {
|
|
for (i = 0; i < blockSize; i++) {
|
|
pDst[i] = pSrc[i] << shiftBits;
|
|
}
|
|
} else {
|
|
for (i = 0; i < blockSize; i++) {
|
|
pDst[i] = pSrc[i] >> -shiftBits;
|
|
}
|
|
}
|
|
}
|