// -------------------------------------------------------------- // -------------------------------------------------------------- #include #include #include #include "synth_defs.h" #include "vector_utils.h" // -------------------------------------------------------------- // Exported functions // -------------------------------------------------------------- void Add_inplace_VS(synth_float_t *pSrcDst1, synth_float_t gain1, synth_float_t src2, UINT32 len) { if (gain1 == 0) { while(len--) { *(pSrcDst1) = src2; pSrcDst1++; } return; } while(len--) { *(pSrcDst1) = *(pSrcDst1)*gain1 + src2; pSrcDst1++; } } void Add_inplace_VV(synth_float_t *pSrcDst1, synth_float_t gain1, synth_float_t *pSrc2, synth_float_t gain2, UINT32 len) { if (gain1 == 0) { while(len--) { *(pSrcDst1++) = *(pSrc2++)*gain2; } return; } if ((gain1 == 1.0) && (gain2 == 1.0)) { while(len--) { *(pSrcDst1++) += *(pSrc2++); } return; } while(len--) { *(pSrcDst1) = *(pSrcDst1)*gain1 + *(pSrc2++)*gain2; pSrcDst1++; } } void Add_VS(synth_float_t *pDst, synth_float_t *pSrc1, synth_float_t gain1, synth_float_t src2, UINT32 len) { while(len--) { *(pDst++) = *(pSrc1++)*gain1 + src2; } } void Add_VV(synth_float_t *pDst, synth_float_t *pSrc1, synth_float_t gain1, synth_float_t *pSrc2, synth_float_t gain2, UINT32 len) { while(len--) { *(pDst++) = *(pSrc1++)*gain1 + *(pSrc2++)*gain2; } } void Sub_inplace_VS(synth_float_t *pSrcDst1, synth_float_t gain1, synth_float_t src2, UINT32 len) { while(len--) { *(pSrcDst1) = *(pSrcDst1)*gain1 - src2; pSrcDst1++; } } void Sub_inplace_VV(synth_float_t *pSrcDst1, synth_float_t gain1, synth_float_t *pSrc2, synth_float_t gain2, UINT32 len) { while(len--) { *(pSrcDst1) = *(pSrcDst1)*gain1 - *(pSrc2++)*gain2; pSrcDst1++; } } void Sub_VS(synth_float_t *pDst, synth_float_t *pSrc1, synth_float_t gain1, synth_float_t src2, UINT32 len) { while(len--) { *(pDst++) = *(pSrc1++)*gain1 - src2; } } void Sub_VV(synth_float_t *pDst, synth_float_t *pSrc1, synth_float_t gain1, synth_float_t *pSrc2, synth_float_t gain2, UINT32 len) { while(len--) { *(pDst++) = *(pSrc1++)*gain1 - *(pSrc2++)*gain2; } } void Mul_inplace_VS(synth_float_t *pSrcDst, synth_float_t src, UINT32 len) { while(len--) { *(pSrcDst++) *= src; } } void Mul_inplace_VV(synth_float_t *pSrcDst, synth_float_t *pSrc, UINT32 len) { while(len--) { *(pSrcDst++) *= *(pSrc++); } } void Mul_VS(synth_float_t *pDst, synth_float_t *pSrc1, synth_float_t src2, UINT32 len) { while(len--) { *(pDst++) = *(pSrc1++) * src2; } } void Mul_VV(synth_float_t *pDst, synth_float_t *pSrc1, synth_float_t *pSrc2, UINT32 len) { while(len--) { *(pDst++) = *(pSrc1++) * *(pSrc2++); } } void Clamp_inplace_V(synth_float_t *pSrcDst, synth_float_t minimum, synth_float_t maximum, UINT32 len) { while(len--) { *(pSrcDst) = max(minimum, min(maximum, *(pSrcDst))); pSrcDst++; } } void Clamp_V(synth_float_t *pDst, synth_float_t *pSrc, synth_float_t minimum, synth_float_t maximum, UINT32 len) { while(len--) { *(pDst++) = max(minimum, min(maximum, *(pSrc++))); } } void uMax_VS(synth_float_t *pDst, synth_float_t *pSrc1, synth_float_t src2, UINT32 len) { while(len--) { *(pDst++) = max(fabs(*(pSrc1++)), src2); } } void uMax_VV(synth_float_t *pDst, synth_float_t *pSrc1, synth_float_t *pSrc2, UINT32 len) { while(len--) { *(pDst++) = max(fabs(*(pSrc1++)), *(pSrc2++)); } } void uMin_VS(synth_float_t *pDst, synth_float_t *pSrc1, synth_float_t src2, UINT32 len) { while(len--) { *(pDst++) = min(fabs(*(pSrc1++)), src2); } } void uMin_VV(synth_float_t *pDst, synth_float_t *pSrc1, synth_float_t *pSrc2, UINT32 len) { while(len--) { *(pDst++) = min(fabs(*(pSrc1++)), *(pSrc2++)); } }