Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Vector Scale
[Basic Math Functions]
Multiply a vector by a scalar value. More...
Functions | |
void | arm_scale_f32 (float32_t *pSrc, float32_t scale, float32_t *pDst, uint32_t blockSize) |
Multiplies a floating-point vector by a scalar. | |
void | arm_scale_q15 (q15_t *pSrc, q15_t scaleFract, int8_t shift, q15_t *pDst, uint32_t blockSize) |
Multiplies a Q15 vector by a scalar. | |
void | arm_scale_q31 (q31_t *pSrc, q31_t scaleFract, int8_t shift, q31_t *pDst, uint32_t blockSize) |
Multiplies a Q31 vector by a scalar. | |
void | arm_scale_q7 (q7_t *pSrc, q7_t scaleFract, int8_t shift, q7_t *pDst, uint32_t blockSize) |
Multiplies a Q7 vector by a scalar. |
Detailed Description
Multiply a vector by a scalar value.
For floating-point data, the algorithm used is:
pDst[n] = pSrc[n] * scale, 0 <= n < blockSize.
In the fixed-point Q7, Q15, and Q31 functions, scale
is represented by a fractional multiplication scaleFract
and an arithmetic shift shift
. The shift allows the gain of the scaling operation to exceed 1.0. The algorithm used with fixed-point data is:
pDst[n] = (pSrc[n] * scaleFract) << shift, 0 <= n < blockSize.
The overall scale factor applied to the fixed-point data is
scale = scaleFract * 2^shift.
The functions support in-place computation allowing the source and destination pointers to reference the same memory buffer.
Function Documentation
void arm_scale_f32 | ( | float32_t * | pSrc, |
float32_t | scale, | ||
float32_t * | pDst, | ||
uint32_t | blockSize | ||
) |
Multiplies a floating-point vector by a scalar.
- Parameters:
-
[in] *pSrc points to the input vector [in] scale scale factor to be applied [out] *pDst points to the output vector [in] blockSize number of samples in the vector
- Returns:
- none.
Definition at line 89 of file arm_scale_f32.c.
void arm_scale_q15 | ( | q15_t * | pSrc, |
q15_t | scaleFract, | ||
int8_t | shift, | ||
q15_t * | pDst, | ||
uint32_t | blockSize | ||
) |
Multiplies a Q15 vector by a scalar.
- Parameters:
-
[in] *pSrc points to the input vector [in] scaleFract fractional portion of the scale value [in] shift number of bits to shift the result by [out] *pDst points to the output vector [in] blockSize number of samples in the vector
- Returns:
- none.
Scaling and Overflow Behavior:
- The input data
*pSrc
andscaleFract
are in 1.15 format. These are multiplied to yield a 2.30 intermediate result and this is shifted with saturation to 1.15 format.
Definition at line 68 of file arm_scale_q15.c.
void arm_scale_q31 | ( | q31_t * | pSrc, |
q31_t | scaleFract, | ||
int8_t | shift, | ||
q31_t * | pDst, | ||
uint32_t | blockSize | ||
) |
Multiplies a Q31 vector by a scalar.
- Parameters:
-
[in] *pSrc points to the input vector [in] scaleFract fractional portion of the scale value [in] shift number of bits to shift the result by [out] *pDst points to the output vector [in] blockSize number of samples in the vector
- Returns:
- none.
Scaling and Overflow Behavior:
- The input data
*pSrc
andscaleFract
are in 1.31 format. These are multiplied to yield a 2.62 intermediate result and this is shifted with saturation to 1.31 format.
Definition at line 67 of file arm_scale_q31.c.
void arm_scale_q7 | ( | q7_t * | pSrc, |
q7_t | scaleFract, | ||
int8_t | shift, | ||
q7_t * | pDst, | ||
uint32_t | blockSize | ||
) |
Multiplies a Q7 vector by a scalar.
- Parameters:
-
[in] *pSrc points to the input vector [in] scaleFract fractional portion of the scale value [in] shift number of bits to shift the result by [out] *pDst points to the output vector [in] blockSize number of samples in the vector
- Returns:
- none.
Scaling and Overflow Behavior:
- The input data
*pSrc
andscaleFract
are in 1.7 format. These are multiplied to yield a 2.14 intermediate result and this is shifted with saturation to 1.7 format.
Definition at line 67 of file arm_scale_q7.c.
Generated on Tue Jul 12 2022 12:46:43 by
