# sin

Sine of fixed-point values

## Syntax

``y = sin(theta)``

## 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×7 object -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`.