| 
							- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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"/>
 - <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 - <meta name="generator" content="Doxygen 1.9.1"/>
 - <meta name="viewport" content="width=device-width, initial-scale=1"/>
 - <title>DISTRHO Plugin Framework: Math related functions</title>
 - <link href="tabs.css" rel="stylesheet" type="text/css"/>
 - <script type="text/javascript" src="jquery.js"></script>
 - <script type="text/javascript" src="dynsections.js"></script>
 - <link href="search/search.css" rel="stylesheet" type="text/css"/>
 - <script type="text/javascript" src="search/searchdata.js"></script>
 - <script type="text/javascript" src="search/search.js"></script>
 - <link href="doxygen.css" rel="stylesheet" type="text/css" />
 - </head>
 - <body>
 - <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
 - <div id="titlearea">
 - <table cellspacing="0" cellpadding="0">
 -  <tbody>
 -  <tr style="height: 56px;">
 -   <td id="projectalign" style="padding-left: 0.5em;">
 -    <div id="projectname">DISTRHO Plugin Framework
 -    </div>
 -   </td>
 -  </tr>
 -  </tbody>
 - </table>
 - </div>
 - <!-- end header part -->
 - <!-- Generated by Doxygen 1.9.1 -->
 - <script type="text/javascript">
 - /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
 - var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 - /* @license-end */
 - </script>
 - <script type="text/javascript" src="menudata.js"></script>
 - <script type="text/javascript" src="menu.js"></script>
 - <script type="text/javascript">
 - /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
 - $(function() {
 -   initMenu('',true,false,'search.php','Search');
 -   $(document).ready(function() { init_search(); });
 - });
 - /* @license-end */</script>
 - <div id="main-nav"></div>
 - </div><!-- top -->
 - <!-- window showing the filter options -->
 - <div id="MSearchSelectWindow"
 -      onmouseover="return searchBox.OnSearchSelectShow()"
 -      onmouseout="return searchBox.OnSearchSelectHide()"
 -      onkeydown="return searchBox.OnSearchSelectKey(event)">
 - </div>
 - 
 - <!-- iframe showing the search results (closed by default) -->
 - <div id="MSearchResultsWindow">
 - <iframe src="javascript:void(0)" frameborder="0" 
 -         name="MSearchResults" id="MSearchResults">
 - </iframe>
 - </div>
 - 
 - <div class="header">
 -   <div class="summary">
 - <a href="#func-members">Functions</a>  </div>
 -   <div class="headertitle">
 - <div class="title">Math related functions</div>  </div>
 - </div><!--header-->
 - <div class="contents">
 - <table class="memberdecls">
 - <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
 - Functions</h2></td></tr>
 - <tr class="memitem:ga81d4bbe1b2730cfc30aec9b347ef9360"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
 - <tr class="memitem:ga81d4bbe1b2730cfc30aec9b347ef9360"><td class="memTemplItemLeft" align="right" valign="top">static constexpr bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__MathFunctions.html#ga81d4bbe1b2730cfc30aec9b347ef9360">d_isEqual</a> (const T &v1, const T &v2)</td></tr>
 - <tr class="separator:ga81d4bbe1b2730cfc30aec9b347ef9360"><td class="memSeparator" colspan="2"> </td></tr>
 - <tr class="memitem:ga3d70c97c300b9fb2792ba4fbb2fb501e"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
 - <tr class="memitem:ga3d70c97c300b9fb2792ba4fbb2fb501e"><td class="memTemplItemLeft" align="right" valign="top">static constexpr bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__MathFunctions.html#ga3d70c97c300b9fb2792ba4fbb2fb501e">d_isNotEqual</a> (const T &v1, const T &v2)</td></tr>
 - <tr class="separator:ga3d70c97c300b9fb2792ba4fbb2fb501e"><td class="memSeparator" colspan="2"> </td></tr>
 - <tr class="memitem:gaf5526b06989c47f21bdff3cd99af8353"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
 - <tr class="memitem:gaf5526b06989c47f21bdff3cd99af8353"><td class="memTemplItemLeft" align="right" valign="top">static constexpr bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__MathFunctions.html#gaf5526b06989c47f21bdff3cd99af8353">d_isZero</a> (const T &value)</td></tr>
 - <tr class="separator:gaf5526b06989c47f21bdff3cd99af8353"><td class="memSeparator" colspan="2"> </td></tr>
 - <tr class="memitem:gad891a20280e4f41017e7247d6e5a1f13"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
 - <tr class="memitem:gad891a20280e4f41017e7247d6e5a1f13"><td class="memTemplItemLeft" align="right" valign="top">static constexpr bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__MathFunctions.html#gad891a20280e4f41017e7247d6e5a1f13">d_isNotZero</a> (const T &value)</td></tr>
 - <tr class="separator:gad891a20280e4f41017e7247d6e5a1f13"><td class="memSeparator" colspan="2"> </td></tr>
 - <tr class="memitem:gaded8dbdc7ff99c70e7361b3f1a32b584"><td class="memItemLeft" align="right" valign="top">static uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__MathFunctions.html#gaded8dbdc7ff99c70e7361b3f1a32b584">d_nextPowerOf2</a> (uint32_t size) noexcept</td></tr>
 - <tr class="separator:gaded8dbdc7ff99c70e7361b3f1a32b584"><td class="memSeparator" colspan="2"> </td></tr>
 - <tr class="memitem:ga3de0a572416cb38ca424094b595954ae"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
 - <tr class="memitem:ga3de0a572416cb38ca424094b595954ae"><td class="memTemplItemLeft" align="right" valign="top">static constexpr int32_t </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__MathFunctions.html#ga3de0a572416cb38ca424094b595954ae">d_roundToIntPositive</a> (const T &value)</td></tr>
 - <tr class="separator:ga3de0a572416cb38ca424094b595954ae"><td class="memSeparator" colspan="2"> </td></tr>
 - <tr class="memitem:ga10abb07d21f97c5fbc0ec0b5fa0ab721"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
 - <tr class="memitem:ga10abb07d21f97c5fbc0ec0b5fa0ab721"><td class="memTemplItemLeft" align="right" valign="top">static constexpr uint32_t </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__MathFunctions.html#ga10abb07d21f97c5fbc0ec0b5fa0ab721">d_roundToUnsignedInt</a> (const T &value)</td></tr>
 - <tr class="separator:ga10abb07d21f97c5fbc0ec0b5fa0ab721"><td class="memSeparator" colspan="2"> </td></tr>
 - <tr class="memitem:gadd62923031cb7d9e06d01957b3bcf3a6"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
 - <tr class="memitem:gadd62923031cb7d9e06d01957b3bcf3a6"><td class="memTemplItemLeft" align="right" valign="top">static constexpr int32_t </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__MathFunctions.html#gadd62923031cb7d9e06d01957b3bcf3a6">d_roundToIntNegative</a> (const T &value)</td></tr>
 - <tr class="separator:gadd62923031cb7d9e06d01957b3bcf3a6"><td class="memSeparator" colspan="2"> </td></tr>
 - <tr class="memitem:ga981676558e521894c2ec4ca56b2ec8af"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
 - <tr class="memitem:ga981676558e521894c2ec4ca56b2ec8af"><td class="memTemplItemLeft" align="right" valign="top">static constexpr int32_t </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__MathFunctions.html#ga981676558e521894c2ec4ca56b2ec8af">d_roundToInt</a> (const T &value)</td></tr>
 - <tr class="separator:ga981676558e521894c2ec4ca56b2ec8af"><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 id="ga81d4bbe1b2730cfc30aec9b347ef9360"></a>
 - <h2 class="memtitle"><span class="permalink"><a href="#ga81d4bbe1b2730cfc30aec9b347ef9360">◆ </a></span>d_isEqual()</h2>
 - 
 - <div class="memitem">
 - <div class="memproto">
 - <div class="memtemplate">
 - template<typename T > </div>
 - <table class="mlabels">
 -   <tr>
 -   <td class="mlabels-left">
 -       <table class="memname">
 -         <tr>
 -           <td class="memname">static constexpr bool d_isEqual </td>
 -           <td>(</td>
 -           <td class="paramtype">const T & </td>
 -           <td class="paramname"><em>v1</em>, </td>
 -         </tr>
 -         <tr>
 -           <td class="paramkey"></td>
 -           <td></td>
 -           <td class="paramtype">const T & </td>
 -           <td class="paramname"><em>v2</em> </td>
 -         </tr>
 -         <tr>
 -           <td></td>
 -           <td>)</td>
 -           <td></td><td></td>
 -         </tr>
 -       </table>
 -   </td>
 -   <td class="mlabels-right">
 - <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
 -   </tr>
 - </table>
 - </div><div class="memdoc">
 - <p>Safely compare two floating point numbers. Returns true if they match. </p>
 - 
 - </div>
 - </div>
 - <a id="ga3d70c97c300b9fb2792ba4fbb2fb501e"></a>
 - <h2 class="memtitle"><span class="permalink"><a href="#ga3d70c97c300b9fb2792ba4fbb2fb501e">◆ </a></span>d_isNotEqual()</h2>
 - 
 - <div class="memitem">
 - <div class="memproto">
 - <div class="memtemplate">
 - template<typename T > </div>
 - <table class="mlabels">
 -   <tr>
 -   <td class="mlabels-left">
 -       <table class="memname">
 -         <tr>
 -           <td class="memname">static constexpr bool d_isNotEqual </td>
 -           <td>(</td>
 -           <td class="paramtype">const T & </td>
 -           <td class="paramname"><em>v1</em>, </td>
 -         </tr>
 -         <tr>
 -           <td class="paramkey"></td>
 -           <td></td>
 -           <td class="paramtype">const T & </td>
 -           <td class="paramname"><em>v2</em> </td>
 -         </tr>
 -         <tr>
 -           <td></td>
 -           <td>)</td>
 -           <td></td><td></td>
 -         </tr>
 -       </table>
 -   </td>
 -   <td class="mlabels-right">
 - <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
 -   </tr>
 - </table>
 - </div><div class="memdoc">
 - <p>Safely compare two floating point numbers. Returns true if they don't match. </p>
 - 
 - </div>
 - </div>
 - <a id="gaf5526b06989c47f21bdff3cd99af8353"></a>
 - <h2 class="memtitle"><span class="permalink"><a href="#gaf5526b06989c47f21bdff3cd99af8353">◆ </a></span>d_isZero()</h2>
 - 
 - <div class="memitem">
 - <div class="memproto">
 - <div class="memtemplate">
 - template<typename T > </div>
 - <table class="mlabels">
 -   <tr>
 -   <td class="mlabels-left">
 -       <table class="memname">
 -         <tr>
 -           <td class="memname">static constexpr bool d_isZero </td>
 -           <td>(</td>
 -           <td class="paramtype">const T & </td>
 -           <td class="paramname"><em>value</em></td><td>)</td>
 -           <td></td>
 -         </tr>
 -       </table>
 -   </td>
 -   <td class="mlabels-right">
 - <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
 -   </tr>
 - </table>
 - </div><div class="memdoc">
 - <p>Safely check if a floating point number is zero. </p>
 - 
 - </div>
 - </div>
 - <a id="gad891a20280e4f41017e7247d6e5a1f13"></a>
 - <h2 class="memtitle"><span class="permalink"><a href="#gad891a20280e4f41017e7247d6e5a1f13">◆ </a></span>d_isNotZero()</h2>
 - 
 - <div class="memitem">
 - <div class="memproto">
 - <div class="memtemplate">
 - template<typename T > </div>
 - <table class="mlabels">
 -   <tr>
 -   <td class="mlabels-left">
 -       <table class="memname">
 -         <tr>
 -           <td class="memname">static constexpr bool d_isNotZero </td>
 -           <td>(</td>
 -           <td class="paramtype">const T & </td>
 -           <td class="paramname"><em>value</em></td><td>)</td>
 -           <td></td>
 -         </tr>
 -       </table>
 -   </td>
 -   <td class="mlabels-right">
 - <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
 -   </tr>
 - </table>
 - </div><div class="memdoc">
 - <p>Safely check if a floating point number is not zero. </p>
 - 
 - </div>
 - </div>
 - <a id="gaded8dbdc7ff99c70e7361b3f1a32b584"></a>
 - <h2 class="memtitle"><span class="permalink"><a href="#gaded8dbdc7ff99c70e7361b3f1a32b584">◆ </a></span>d_nextPowerOf2()</h2>
 - 
 - <div class="memitem">
 - <div class="memproto">
 - <table class="mlabels">
 -   <tr>
 -   <td class="mlabels-left">
 -       <table class="memname">
 -         <tr>
 -           <td class="memname">static uint32_t d_nextPowerOf2 </td>
 -           <td>(</td>
 -           <td class="paramtype">uint32_t </td>
 -           <td class="paramname"><em>size</em></td><td>)</td>
 -           <td></td>
 -         </tr>
 -       </table>
 -   </td>
 -   <td class="mlabels-right">
 - <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">noexcept</span></span>  </td>
 -   </tr>
 - </table>
 - </div><div class="memdoc">
 - <p>Get next power of 2. </p>
 - 
 - </div>
 - </div>
 - <a id="ga3de0a572416cb38ca424094b595954ae"></a>
 - <h2 class="memtitle"><span class="permalink"><a href="#ga3de0a572416cb38ca424094b595954ae">◆ </a></span>d_roundToIntPositive()</h2>
 - 
 - <div class="memitem">
 - <div class="memproto">
 - <div class="memtemplate">
 - template<typename T > </div>
 - <table class="mlabels">
 -   <tr>
 -   <td class="mlabels-left">
 -       <table class="memname">
 -         <tr>
 -           <td class="memname">static constexpr int32_t d_roundToIntPositive </td>
 -           <td>(</td>
 -           <td class="paramtype">const T & </td>
 -           <td class="paramname"><em>value</em></td><td>)</td>
 -           <td></td>
 -         </tr>
 -       </table>
 -   </td>
 -   <td class="mlabels-right">
 - <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
 -   </tr>
 - </table>
 - </div><div class="memdoc">
 - <p>Round a floating point number to an integer. Fast operation for values known to be 0 or positive. </p>
 - 
 - </div>
 - </div>
 - <a id="ga10abb07d21f97c5fbc0ec0b5fa0ab721"></a>
 - <h2 class="memtitle"><span class="permalink"><a href="#ga10abb07d21f97c5fbc0ec0b5fa0ab721">◆ </a></span>d_roundToUnsignedInt()</h2>
 - 
 - <div class="memitem">
 - <div class="memproto">
 - <div class="memtemplate">
 - template<typename T > </div>
 - <table class="mlabels">
 -   <tr>
 -   <td class="mlabels-left">
 -       <table class="memname">
 -         <tr>
 -           <td class="memname">static constexpr uint32_t d_roundToUnsignedInt </td>
 -           <td>(</td>
 -           <td class="paramtype">const T & </td>
 -           <td class="paramname"><em>value</em></td><td>)</td>
 -           <td></td>
 -         </tr>
 -       </table>
 -   </td>
 -   <td class="mlabels-right">
 - <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
 -   </tr>
 - </table>
 - </div><div class="memdoc">
 - <p>Round a floating point number to an unsigned integer. Fast operation for values known to be 0 or positive. </p>
 - 
 - </div>
 - </div>
 - <a id="gadd62923031cb7d9e06d01957b3bcf3a6"></a>
 - <h2 class="memtitle"><span class="permalink"><a href="#gadd62923031cb7d9e06d01957b3bcf3a6">◆ </a></span>d_roundToIntNegative()</h2>
 - 
 - <div class="memitem">
 - <div class="memproto">
 - <div class="memtemplate">
 - template<typename T > </div>
 - <table class="mlabels">
 -   <tr>
 -   <td class="mlabels-left">
 -       <table class="memname">
 -         <tr>
 -           <td class="memname">static constexpr int32_t d_roundToIntNegative </td>
 -           <td>(</td>
 -           <td class="paramtype">const T & </td>
 -           <td class="paramname"><em>value</em></td><td>)</td>
 -           <td></td>
 -         </tr>
 -       </table>
 -   </td>
 -   <td class="mlabels-right">
 - <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
 -   </tr>
 - </table>
 - </div><div class="memdoc">
 - <p>Round a floating point number to an integer. Fast operation for values known to be 0 or negative. </p>
 - 
 - </div>
 - </div>
 - <a id="ga981676558e521894c2ec4ca56b2ec8af"></a>
 - <h2 class="memtitle"><span class="permalink"><a href="#ga981676558e521894c2ec4ca56b2ec8af">◆ </a></span>d_roundToInt()</h2>
 - 
 - <div class="memitem">
 - <div class="memproto">
 - <div class="memtemplate">
 - template<typename T > </div>
 - <table class="mlabels">
 -   <tr>
 -   <td class="mlabels-left">
 -       <table class="memname">
 -         <tr>
 -           <td class="memname">static constexpr int32_t d_roundToInt </td>
 -           <td>(</td>
 -           <td class="paramtype">const T & </td>
 -           <td class="paramname"><em>value</em></td><td>)</td>
 -           <td></td>
 -         </tr>
 -       </table>
 -   </td>
 -   <td class="mlabels-right">
 - <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
 -   </tr>
 - </table>
 - </div><div class="memdoc">
 - <p>Round a floating point number to integer. </p>
 - 
 - </div>
 - </div>
 - </div><!-- contents -->
 - <!-- start footer part -->
 - <hr class="footer"/><address class="footer"><small>
 - Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
 - </small></address>
 - </body>
 - </html>
 
 
  |