# Sine¶

float32_t `riscv_sin_f32`(float32_t x)
q15_t `riscv_sin_q15`(q15_t x)
q31_t `riscv_sin_q31`(q31_t x)
group `sin`

Computes the trigonometric sine function using a combination of table lookup and linear interpolation. There are separate functions for Q15, Q31, and floating-point data types. The input to the floating-point version is in radians while the fixed-point Q15 and Q31 have a scaled input with the range [0 +0.9999] mapping to [0 2*pi). The fixed-point range is chosen so that a value of 2*pi wraps around to 0.

The implementation is based on table lookup using 256 values together with linear interpolation. The steps used are:

1. Calculation of the nearest integer table index

2. Compute the fractional portion (fract) of the table index.

3. The final result equals `(1.0f-fract)*a + fract*b;`

where

Functions

float32_t `riscv_sin_f32`(float32_t x)

Fast approximation to the trigonometric sine function for floating-point data.

Return

sin(x)

Parameters
• `[in] x`: input value in radians.

q15_t `riscv_sin_q15`(q15_t x)

Fast approximation to the trigonometric sine function for Q15 data.

The Q15 input value is in the range [0 +0.9999] and is mapped to a radian value in the range [0 2*PI).

Return

sin(x)

Parameters
• `[in] x`: Scaled input value in radians

q31_t `riscv_sin_q31`(q31_t x)

Fast approximation to the trigonometric sine function for Q31 data.

The Q31 input value is in the range [0 +0.9999] and is mapped to a radian value in the range [0 2*PI).

Return

sin(x)

Parameters
• `[in] x`: Scaled input value in radians