<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>CMSIS DSP Software Library: Sine</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.7.2 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
      <li id="searchli">
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<h1>Sine<br/>
<small>
[<a class="el" href="group__group_fast_math.html">Fast Math Functions</a>]</small>
</h1>  </div>
</div>
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="arm__math_8h.html#a4611b605e45ab401f02cab15c5e38715">float32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sin.html#gae164899c4a3fc0e946dc5d55555fe541">arm_sin_f32</a> (<a class="el" href="arm__math_8h.html#a4611b605e45ab401f02cab15c5e38715">float32_t</a> x)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="arm__math_8h.html#adc89a3547f5324b7b3b95adec3806bc0">q31_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sin.html#ga57aade7d8892585992cdc6375bd82f9c">arm_sin_q31</a> (<a class="el" href="arm__math_8h.html#adc89a3547f5324b7b3b95adec3806bc0">q31_t</a> x)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="arm__math_8h.html#ab5a8fb21a5b3b983d5f54f31614052ea">q15_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sin.html#ga1fc6d6640be6cfa688a8bea0a48397ee">arm_sin_q15</a> (<a class="el" href="arm__math_8h.html#ab5a8fb21a5b3b983d5f54f31614052ea">q15_t</a> x)</td></tr>
<tr><td colspan="2"><h2><a name="var-members"></a>
Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="arm__math_8h.html#a4611b605e45ab401f02cab15c5e38715">float32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sin.html#ga71a0a466c6d42c65526968509b04790c">sinTable</a> [259]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="arm__math_8h.html#adc89a3547f5324b7b3b95adec3806bc0">q31_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sin.html#gab1ffde7f3deee5adc75ba8b3d0a53106">sinTableQ31</a> [259]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="arm__math_8h.html#ab5a8fb21a5b3b983d5f54f31614052ea">q15_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sin.html#ga0bb9449f52f04f5241f073864a72930a">sinTableQ15</a> [259]</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Computes the trigonometric sine function using a combination of table lookup and cubic 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 1) mapping to [0 2*pi).</p>
<p>The implementation is based on table lookup using 256 values together with cubic interpolation. The steps used are:</p>
<ol type="1">
<li>Calculation of the nearest integer table index</li>
<li>Fetch the four table values a, b, c, and d</li>
<li>Compute the fractional portion (fract) of the table index.</li>
<li>Calculation of wa, wb, wc, wd</li>
<li>The final result equals <code>a*wa + b*wb + c*wc + d*wd</code></li>
</ol>
<p>where </p>
<pre>   
    a=Table[index-1];   
    b=Table[index+0];   
    c=Table[index+1];   
    d=Table[index+2];   
 </pre><p> and </p>
<pre>   
    wa=-(1/6)*fract.^3 + (1/2)*fract.^2 - (1/3)*fract;   
    wb=(1/2)*fract.^3 - fract.^2 - (1/2)*fract + 1;   
    wc=-(1/2)*fract.^3+(1/2)*fract.^2+fract;   
    wd=(1/6)*fract.^3 - (1/6)*fract;   
 </pre> <hr/><h2>Function Documentation</h2>
<a class="anchor" id="gae164899c4a3fc0e946dc5d55555fe541"></a><!-- doxytag: member="arm_sin_f32.c::arm_sin_f32" ref="gae164899c4a3fc0e946dc5d55555fe541" args="(float32_t x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="arm__math_8h.html#a4611b605e45ab401f02cab15c5e38715">float32_t</a> arm_sin_f32 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="arm__math_8h.html#a4611b605e45ab401f02cab15c5e38715">float32_t</a>&#160;</td>
          <td class="paramname"> <em>x</em>&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Fast approximation to the trigonometric sine function for floating-point data. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>input value in radians. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>sin(x). </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="arm_linear_interp_example_f32_8c-example.html#a12">arm_linear_interp_example_f32.c</a>, and <a class="el" href="arm_sin_cos_example_f32_8c-example.html#a12">arm_sin_cos_example_f32.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="arm__sin__f32_8c_source.html#l00195">195</a> of file <a class="el" href="arm__sin__f32_8c_source.html">arm_sin_f32.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga57aade7d8892585992cdc6375bd82f9c"></a><!-- doxytag: member="arm_sin_q31.c::arm_sin_q31" ref="ga57aade7d8892585992cdc6375bd82f9c" args="(q31_t x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="arm__math_8h.html#adc89a3547f5324b7b3b95adec3806bc0">q31_t</a> arm_sin_q31 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="arm__math_8h.html#adc89a3547f5324b7b3b95adec3806bc0">q31_t</a>&#160;</td>
          <td class="paramname"> <em>x</em>&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Fast approximation to the trigonometric sine function for Q31 data. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Scaled input value in radians. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>sin(x).</dd></dl>
<p>The Q31 input value is in the range [0 +1) and is mapped to a radian value in the range [0 2*pi). </p>

<p>Definition at line <a class="el" href="arm__sin__q31_8c_source.html#l00136">136</a> of file <a class="el" href="arm__sin__q31_8c_source.html">arm_sin_q31.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga1fc6d6640be6cfa688a8bea0a48397ee"></a><!-- doxytag: member="arm_sin_q15.c::arm_sin_q15" ref="ga1fc6d6640be6cfa688a8bea0a48397ee" args="(q15_t x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="arm__math_8h.html#ab5a8fb21a5b3b983d5f54f31614052ea">q15_t</a> arm_sin_q15 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="arm__math_8h.html#ab5a8fb21a5b3b983d5f54f31614052ea">q15_t</a>&#160;</td>
          <td class="paramname"> <em>x</em>&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Fast approximation to the trigonometric sine function for Q15 data. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Scaled input value in radians. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>sin(x).</dd></dl>
<p>The Q15 input value is in the range [0 +1) and is mapped to a radian value in the range [0 2*pi). </p>

<p>Definition at line <a class="el" href="arm__sin__q15_8c_source.html#l00106">106</a> of file <a class="el" href="arm__sin__q15_8c_source.html">arm_sin_q15.c</a>.</p>

</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="ga71a0a466c6d42c65526968509b04790c"></a><!-- doxytag: member="arm_sin_f32.c::sinTable" ref="ga71a0a466c6d42c65526968509b04790c" args="[259]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="arm__math_8h.html#a4611b605e45ab401f02cab15c5e38715">float32_t</a> <a class="el" href="group__sin.html#ga71a0a466c6d42c65526968509b04790c">sinTable</a>[259]<code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="user"><dt><b></b></dt><dd>Example code for Generation of Floating-point Sin Table: tableSize = 256; <pre>for(n = -1; n &lt; (tableSize + 1); n++)   
 {   
	sinTable[n+1]=sin(2*pi*n/tableSize);   
 }</pre> </dd></dl>
<dl class="user"><dt><b></b></dt><dd>where pi value is 3.14159265358979 </dd></dl>

<p>Definition at line <a class="el" href="arm__sin__f32_8c_source.html#l00088">88</a> of file <a class="el" href="arm__sin__f32_8c_source.html">arm_sin_f32.c</a>.</p>

</div>
</div>
<a class="anchor" id="gab1ffde7f3deee5adc75ba8b3d0a53106"></a><!-- doxytag: member="arm_sin_q31.c::sinTableQ31" ref="gab1ffde7f3deee5adc75ba8b3d0a53106" args="[259]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="arm__math_8h.html#adc89a3547f5324b7b3b95adec3806bc0">q31_t</a> <a class="el" href="group__sin.html#gab1ffde7f3deee5adc75ba8b3d0a53106">sinTableQ31</a>[259]<code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="user"><dt><b></b></dt><dd>Tables generated are in Q31(1.31 Fixed point format) Generation of sin values in floating point: <pre>tableSize = 256;     
 for(n = -1; n &lt; (tableSize + 1); n++)   
 {   
	sinTable[n+1]= sin(2*pi*n/tableSize);   
 } </pre> where pi value is 3.14159265358979 </dd></dl>
<dl class="user"><dt><b></b></dt><dd>Convert Floating point to Q31(Fixed point): (sinTable[i] * pow(2, 31)) </dd></dl>
<dl class="user"><dt><b></b></dt><dd>rounding to nearest integer is done sinTable[i] += (sinTable[i] &gt; 0 ? 0.5 :-0.5); </dd></dl>

<p>Definition at line <a class="el" href="arm__sin__q31_8c_source.html#l00059">59</a> of file <a class="el" href="arm__sin__q31_8c_source.html">arm_sin_q31.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga0bb9449f52f04f5241f073864a72930a"></a><!-- doxytag: member="arm_sin_q15.c::sinTableQ15" ref="ga0bb9449f52f04f5241f073864a72930a" args="[259]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="arm__math_8h.html#ab5a8fb21a5b3b983d5f54f31614052ea">q15_t</a> <a class="el" href="group__sin.html#ga0bb9449f52f04f5241f073864a72930a">sinTableQ15</a>[259]<code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="user"><dt><b></b></dt><dd>Example code for Generation of Q15 Sin Table: </dd></dl>
<dl class="user"><dt><b></b></dt><dd><pre>tableSize = 256;   
 for(n = -1; n &lt; (tableSize + 1); n++)   
 {   
	sinTable[n+1]=sin(2*pi*n/tableSize);   
 } </pre> where pi value is 3.14159265358979 </dd></dl>
<dl class="user"><dt><b></b></dt><dd>Convert Floating point to Q15(Fixed point): (sinTable[i] * pow(2, 15)) </dd></dl>
<dl class="user"><dt><b></b></dt><dd>rounding to nearest integer is done sinTable[i] += (sinTable[i] &gt; 0 ? 0.5 :-0.5); </dd></dl>

<p>Definition at line <a class="el" href="arm__sin__q15_8c_source.html#l00061">61</a> of file <a class="el" href="arm__sin__q15_8c_source.html">arm_sin_q15.c</a>.</p>

</div>
</div>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr class="footer"/><address class="footer"><small>Generated on Fri Jul 15 2011 13:16:20 for CMSIS DSP Software Library by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
</body>
</html>
