Functions | |
void | arm_sin_cos_f32 (float32_t theta, float32_t *pSinVal, float32_t *pCosVal) |
void | arm_sin_cos_q31 (q31_t theta, q31_t *pSinVal, q31_t *pCosVal) |
Variables | |
static const float32_t | cosTable [360] |
static const float32_t | sinTable [360] |
static const int32_t | sinTableQ31 [360] |
static const int32_t | cosTableQ31 [360] |
Computes the trigonometric sine and cosine values using a combination of table lookup and linear interpolation. There are separate functions for Q31 and floating-point data types. The input to the floating-point version is in degrees while the fixed-point Q31 have a scaled input with the range [-1 1) mapping to [-180 180) degrees.
The implementation is based on table lookup using 360 values together with linear interpolation. The steps used are:
index
from sine table to y0
and also value from index+1
to y1
. *psinVal = y0 + (fract * (y1 - y0))
.index
from cosine table to y0
and also value from index+1
to y1
. *pcosVal = y0 + (fract * (y1 - y0))
. void arm_sin_cos_f32 | ( | float32_t | theta, |
float32_t * | pSinVal, | ||
float32_t * | pCosVal | ||
) |
Floating-point sin_cos function.
[in] | theta | input value in degrees |
[out] | *pSinVal | points to the processed sine output. |
[out] | *pCosVal | points to the processed cos output. |
Definition at line 361 of file arm_sin_cos_f32.c.
void arm_sin_cos_q31 | ( | q31_t | theta, |
q31_t * | pSinVal, | ||
q31_t * | pCosVal | ||
) |
Q31 sin_cos function.
[in] | theta | scaled input value in degrees |
[out] | *pSinVal | points to the processed sine output. |
[out] | *pCosVal | points to the processed cosine output. |
The Q31 input value is in the range [-1 +1) and is mapped to a degree value in the range [-180 180).
Definition at line 258 of file arm_sin_cos_q31.c.
const float32_t cosTable[360] [static] |
for(i = 0; i < 360; i++) { cosTable[i]= cos((i-180) * PI/180.0); }
Definition at line 65 of file arm_sin_cos_f32.c.
const float32_t sinTable[360] [static] |
for(i = 0; i < 360; i++) { sinTable[i]= sin((i-180) * PI/180.0); }
Definition at line 213 of file arm_sin_cos_f32.c.
const int32_t sinTableQ31[360] [static] |
for(i = 0; i < 360; i++) { sinTable[i]= sin((i-180) * PI/180.0); }Convert above coefficients to fixed point 1.31 format.
Definition at line 45 of file arm_sin_cos_q31.c.
const int32_t cosTableQ31[360] [static] |
for(i = 0; i < 360; i++) { cosTable[i]= cos((i-180) * PI/180.0); }
Definition at line 151 of file arm_sin_cos_q31.c.