# sin

Sine of fixed-point values

## Description

example

y = sin(theta) returns the sine of fi input theta using a lookup table algorithm.

## Examples

collapse all

theta = fi([-pi/2,-pi/3,-pi/4,0,pi/4,pi/3,pi/2]);
y = sin(theta)
y =
-1.0000   -0.8661   -0.7072         0    0.7070    0.8659    0.9999

DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 16
FractionLength: 15

## Input Arguments

collapse all

Input angle in radians, specified as a real-valued fi object. theta can be a signed or unsigned scalar, vector, matrix, or multidimensional array containing the fixed-point angle values in radians. Valid data types of theta are:

• fi single

• fi double

• fi fixed-point with binary point scaling

• fi scaled double with binary point scaling

Data Types: fi

## Output Arguments

collapse all

Sine of input angle, returned as a scalar, vector, matrix, or multidimensional array. y is a signed, fixed-point number in the range [-1,1].

If the DataTypeMode property of theta is Fixed-point: binary point scaling, then y is returned as a signed fixed-point data type with binary point scaling, a 16-bit word length, and a 15-bit fraction length (numerictype(1,16,15)). If theta is a fi single, fi double, or fi scaled double with binary point scaling, then y is returned with the same data type as theta.

collapse all

### Sine

The sine of angle Θ is defined as

$\mathrm{sin}\left(\theta \right)=\frac{{e}^{i\theta }-{e}^{-i\theta }}{2i}$

## Algorithms

collapse all

The sin function computes the sine of fixed-point input using an 8-bit lookup table as follows:

1. Perform a modulo 2π, so the input is in the range [0,2π) radians.

2. Cast the input to a 16-bit stored integer value, using the 16 most-significant bits.

3. Compute the table index, based on the 16-bit stored integer value, normalized to the full uint16 range.

4. Use the 8 most-significant bits to obtain the first value from the table.

5. Use the next-greater table value as the second value.

6. Use the 8 least-significant bits to interpolate between the first and second values, using nearest-neighbor linear interpolation.

### fimath Propagation Rules

The sin function ignores and discards any fimath attached to the input, theta. The output, y, is always associated with the default fimath.