diff options
Diffstat (limited to 'docs/3.1/group___trig.html')
-rw-r--r-- | docs/3.1/group___trig.html | 197 |
1 files changed, 7 insertions, 190 deletions
diff --git a/docs/3.1/group___trig.html b/docs/3.1/group___trig.html index 0f06c5c5..6e331722 100644 --- a/docs/3.1/group___trig.html +++ b/docs/3.1/group___trig.html @@ -77,13 +77,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); </div> <div class="header"> - <div class="summary"> -<a href="#func-members">Functions</a> | -<a href="#var-members">Variables</a> </div> <div class="headertitle"> <div class="title">Fast trig functions<div class="ingroups"><a class="el" href="group__lib8tion.html">Fast math functions</a></div></div> </div> </div><!--header--> <div class="contents"> + +<p>Fast 8 and 16-bit approximations of sin(x) and cos(x). +<a href="#details">More...</a></p> <div class="dynheader"> Collaboration diagram for Fast trig functions:</div> <div class="dyncontent"> @@ -92,196 +92,13 @@ Collaboration diagram for Fast trig functions:</div> <area shape="rect" id="node2" href="group__lib8tion.html" title="A variety of functions for working with numbers. " alt="" coords="5,5,144,32"/></map> </td></tr></table></center> </div> -<table class="memberdecls"> -<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> -Functions</h2></td></tr> -<tr class="memitem:ga660ff60bfc5116525e50187de72009fc"><td class="memItemLeft" align="right" valign="top">LIB8STATIC int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___trig.html#ga660ff60bfc5116525e50187de72009fc">sin16_avr</a> (uint16_t theta)</td></tr> -<tr class="memdesc:ga660ff60bfc5116525e50187de72009fc"><td class="mdescLeft"> </td><td class="mdescRight">Fast 16-bit approximation of sin(x). <a href="#ga660ff60bfc5116525e50187de72009fc">More...</a><br /></td></tr> -<tr class="separator:ga660ff60bfc5116525e50187de72009fc"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:ga0890962cb06b267617f4b06d7e9be5eb"><td class="memItemLeft" align="right" valign="top">LIB8STATIC int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___trig.html#ga0890962cb06b267617f4b06d7e9be5eb">sin16_C</a> (uint16_t theta)</td></tr> -<tr class="memdesc:ga0890962cb06b267617f4b06d7e9be5eb"><td class="mdescLeft"> </td><td class="mdescRight">Fast 16-bit approximation of sin(x). <a href="#ga0890962cb06b267617f4b06d7e9be5eb">More...</a><br /></td></tr> -<tr class="separator:ga0890962cb06b267617f4b06d7e9be5eb"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:ga056952ebed39f55880bb353857b47075"><td class="memItemLeft" align="right" valign="top">LIB8STATIC int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___trig.html#ga056952ebed39f55880bb353857b47075">cos16</a> (uint16_t theta)</td></tr> -<tr class="memdesc:ga056952ebed39f55880bb353857b47075"><td class="mdescLeft"> </td><td class="mdescRight">Fast 16-bit approximation of cos(x). <a href="#ga056952ebed39f55880bb353857b47075">More...</a><br /></td></tr> -<tr class="separator:ga056952ebed39f55880bb353857b47075"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:ga6aa1f993cbbc427d80da1ee2ccca86e7"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___trig.html#ga6aa1f993cbbc427d80da1ee2ccca86e7">sin8_avr</a> (uint8_t theta)</td></tr> -<tr class="memdesc:ga6aa1f993cbbc427d80da1ee2ccca86e7"><td class="mdescLeft"> </td><td class="mdescRight">Fast 8-bit approximation of sin(x). <a href="#ga6aa1f993cbbc427d80da1ee2ccca86e7">More...</a><br /></td></tr> -<tr class="separator:ga6aa1f993cbbc427d80da1ee2ccca86e7"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:ga46933a9b42921c6605588268d11f7c1e"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___trig.html#ga46933a9b42921c6605588268d11f7c1e">sin8_C</a> (uint8_t theta)</td></tr> -<tr class="memdesc:ga46933a9b42921c6605588268d11f7c1e"><td class="mdescLeft"> </td><td class="mdescRight">Fast 8-bit approximation of sin(x). <a href="#ga46933a9b42921c6605588268d11f7c1e">More...</a><br /></td></tr> -<tr class="separator:ga46933a9b42921c6605588268d11f7c1e"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:ga4432f985c94f5bff715db402d767b0e8"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___trig.html#ga4432f985c94f5bff715db402d767b0e8">cos8</a> (uint8_t theta)</td></tr> -<tr class="memdesc:ga4432f985c94f5bff715db402d767b0e8"><td class="mdescLeft"> </td><td class="mdescRight">Fast 8-bit approximation of cos(x). <a href="#ga4432f985c94f5bff715db402d767b0e8">More...</a><br /></td></tr> -<tr class="separator:ga4432f985c94f5bff715db402d767b0e8"><td class="memSeparator" colspan="2"> </td></tr> -</table><table class="memberdecls"> -<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a> -Variables</h2></td></tr> -<tr class="memitem:gadc654138105ff193df0fbc7a0c21806c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadc654138105ff193df0fbc7a0c21806c"></a> -const uint8_t </td><td class="memItemRight" valign="bottom"><b>b_m16_interleave</b> [] = { 0, 49, 49, 41, 90, 27, 117, 10 }</td></tr> -<tr class="separator:gadc654138105ff193df0fbc7a0c21806c"><td class="memSeparator" colspan="2"> </td></tr> -</table> -<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> -<h2 class="groupheader">Function Documentation</h2> -<a class="anchor" id="ga056952ebed39f55880bb353857b47075"></a> -<div class="memitem"> -<div class="memproto"> - <table class="memname"> - <tr> - <td class="memname">LIB8STATIC int16_t cos16 </td> - <td>(</td> - <td class="paramtype">uint16_t </td> - <td class="paramname"><em>theta</em></td><td>)</td> - <td></td> - </tr> - </table> -</div><div class="memdoc"> - -<p>Fast 16-bit approximation of cos(x). </p> -<p>This approximation never varies more than 0.69% from the floating point value you'd get by doing </p><pre class="fragment">float s = cos(x) * 32767.0; -</pre><dl class="params"><dt>Parameters</dt><dd> - <table class="params"> - <tr><td class="paramname">theta</td><td>input angle from 0-65535 </td></tr> - </table> - </dd> -</dl> -<dl class="section return"><dt>Returns</dt><dd>sin of theta, value between -32767 to 32767. </dd></dl> - -</div> -</div> -<a class="anchor" id="ga4432f985c94f5bff715db402d767b0e8"></a> -<div class="memitem"> -<div class="memproto"> - <table class="memname"> - <tr> - <td class="memname">LIB8STATIC uint8_t cos8 </td> - <td>(</td> - <td class="paramtype">uint8_t </td> - <td class="paramname"><em>theta</em></td><td>)</td> - <td></td> - </tr> - </table> -</div><div class="memdoc"> - -<p>Fast 8-bit approximation of cos(x). </p> -<p>This approximation never varies more than 2% from the floating point value you'd get by doing </p><pre class="fragment">float s = (cos(x) * 128.0) + 128; -</pre><dl class="params"><dt>Parameters</dt><dd> - <table class="params"> - <tr><td class="paramname">theta</td><td>input angle from 0-255 </td></tr> - </table> - </dd> -</dl> -<dl class="section return"><dt>Returns</dt><dd>sin of theta, value between 0 and 255 </dd></dl> - -</div> -</div> -<a class="anchor" id="ga660ff60bfc5116525e50187de72009fc"></a> -<div class="memitem"> -<div class="memproto"> - <table class="memname"> - <tr> - <td class="memname">LIB8STATIC int16_t sin16_avr </td> - <td>(</td> - <td class="paramtype">uint16_t </td> - <td class="paramname"><em>theta</em></td><td>)</td> - <td></td> - </tr> - </table> -</div><div class="memdoc"> - -<p>Fast 16-bit approximation of sin(x). </p> -<p>This approximation never varies more than 0.69% from the floating point value you'd get by doing </p><pre class="fragment">float s = sin(x) * 32767.0; -</pre><dl class="params"><dt>Parameters</dt><dd> - <table class="params"> - <tr><td class="paramname">theta</td><td>input angle from 0-65535 </td></tr> - </table> - </dd> -</dl> -<dl class="section return"><dt>Returns</dt><dd>sin of theta, value between -32767 to 32767. </dd></dl> - -</div> -</div> -<a class="anchor" id="ga0890962cb06b267617f4b06d7e9be5eb"></a> -<div class="memitem"> -<div class="memproto"> - <table class="memname"> - <tr> - <td class="memname">LIB8STATIC int16_t sin16_C </td> - <td>(</td> - <td class="paramtype">uint16_t </td> - <td class="paramname"><em>theta</em></td><td>)</td> - <td></td> - </tr> - </table> -</div><div class="memdoc"> - -<p>Fast 16-bit approximation of sin(x). </p> -<p>This approximation never varies more than 0.69% from the floating point value you'd get by doing </p><pre class="fragment">float s = sin(x) * 32767.0; -</pre><dl class="params"><dt>Parameters</dt><dd> - <table class="params"> - <tr><td class="paramname">theta</td><td>input angle from 0-65535 </td></tr> - </table> - </dd> -</dl> -<dl class="section return"><dt>Returns</dt><dd>sin of theta, value between -32767 to 32767. </dd></dl> - -</div> -</div> -<a class="anchor" id="ga6aa1f993cbbc427d80da1ee2ccca86e7"></a> -<div class="memitem"> -<div class="memproto"> - <table class="memname"> - <tr> - <td class="memname">LIB8STATIC uint8_t sin8_avr </td> - <td>(</td> - <td class="paramtype">uint8_t </td> - <td class="paramname"><em>theta</em></td><td>)</td> - <td></td> - </tr> - </table> -</div><div class="memdoc"> - -<p>Fast 8-bit approximation of sin(x). </p> -<p>This approximation never varies more than 2% from the floating point value you'd get by doing </p><pre class="fragment">float s = (sin(x) * 128.0) + 128; -</pre><dl class="params"><dt>Parameters</dt><dd> - <table class="params"> - <tr><td class="paramname">theta</td><td>input angle from 0-255 </td></tr> - </table> - </dd> -</dl> -<dl class="section return"><dt>Returns</dt><dd>sin of theta, value between 0 and 255 </dd></dl> - -</div> -</div> -<a class="anchor" id="ga46933a9b42921c6605588268d11f7c1e"></a> -<div class="memitem"> -<div class="memproto"> - <table class="memname"> - <tr> - <td class="memname">LIB8STATIC uint8_t sin8_C </td> - <td>(</td> - <td class="paramtype">uint8_t </td> - <td class="paramname"><em>theta</em></td><td>)</td> - <td></td> - </tr> - </table> -</div><div class="memdoc"> - -<p>Fast 8-bit approximation of sin(x). </p> -<p>This approximation never varies more than 2% from the floating point value you'd get by doing </p><pre class="fragment">float s = (sin(x) * 128.0) + 128; -</pre><dl class="params"><dt>Parameters</dt><dd> - <table class="params"> - <tr><td class="paramname">theta</td><td>input angle from 0-255 </td></tr> - </table> - </dd> -</dl> -<dl class="section return"><dt>Returns</dt><dd>sin of theta, value between 0 and 255 </dd></dl> - -</div> -</div> +<p>Fast 8 and 16-bit approximations of sin(x) and cos(x). </p> +<p>Don't use these approximations for calculating the trajectory of a rocket to Mars, but they're great for art projects and LED displays.</p> +<p>On Arduino/AVR, the 16-bit approximation is more than 10X faster than floating point sin(x) and cos(x), while the 8-bit approximation is more than 20X faster. </p> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> -Generated on Mon Aug 10 2015 21:53:28 for FastLED by  <a href="http://www.doxygen.org/index.html"> +Generated on Mon Aug 10 2015 22:21:16 for FastLED by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.9.1 </small></address> |