<!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>FAUST compiler: interval.hh File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.3 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> </div> <div class="contents"> <h1>interval.hh File Reference</h1><code>#include <math.h></code><br/> <code>#include <iostream></code><br/> <div class="dynheader"> Include dependency graph for interval.hh:</div> <div class="dynsection"> </div> <div class="dynheader"> This graph shows which files directly or indirectly include this file:</div> <div class="dynsection"> </div> <p><a href="interval_8hh_source.html">Go to the source code of this file.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structinterval.html">interval</a></td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#ab00cd36d34731f12625bec726f77bc92">operator<<</a> (ostream &dst, const <a class="el" href="structinterval.html">interval</a> &i)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#a2f8edc4561e9744ed4233b205fa7ec32">min</a> (double x, double y)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#a1c45761573e6cbc97cfacac78d905016">max</a> (double x, double y)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#a88026ff0719cf67b231a7bd35accd7d6">min4</a> (double a, double b, double c, double d)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#a2aa9bf8104ad90fc808be876e4a57ac1">max4</a> (double a, double b, double c, double d)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#add8dd76587e1fc6361f39259a690f701">reunion</a> (const <a class="el" href="structinterval.html">interval</a> &x, const <a class="el" href="structinterval.html">interval</a> &y)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#aa7c0ed867b816452e909174065fdb9f1">operator+</a> (const <a class="el" href="structinterval.html">interval</a> &x, const <a class="el" href="structinterval.html">interval</a> &y)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#a9c1597accd473c1429f9809ca7286609">operator-</a> (const <a class="el" href="structinterval.html">interval</a> &x, const <a class="el" href="structinterval.html">interval</a> &y)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#a97008fc77c46241b355ba31c34068c1b">operator*</a> (const <a class="el" href="structinterval.html">interval</a> &x, const <a class="el" href="structinterval.html">interval</a> &y)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#a9aa8204fe1ce77fdac0677f6a9500210">operator/</a> (const <a class="el" href="structinterval.html">interval</a> &x, const <a class="el" href="structinterval.html">interval</a> &y)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#a56b3e3a54e12507fd5c3f81a07f54b50">operator%</a> (const <a class="el" href="structinterval.html">interval</a> &x, const <a class="el" href="structinterval.html">interval</a> &y)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#aae9ccb2d0315a96ffe835b04d12eee96">bitmask</a> (double x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#af7f672d1cca19edd84c240f492805de7">operator&</a> (const <a class="el" href="structinterval.html">interval</a> &x, const <a class="el" href="structinterval.html">interval</a> &y)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#a53fd1fed807fb0c54af1cdd498d62831">operator|</a> (const <a class="el" href="structinterval.html">interval</a> &x, const <a class="el" href="structinterval.html">interval</a> &y)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#ac23954c869bdea963b901423b928c6d3">operator^</a> (const <a class="el" href="structinterval.html">interval</a> &, const <a class="el" href="structinterval.html">interval</a> &)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#a0766156b376d4587c9d678b062f29549">operator<<</a> (const <a class="el" href="structinterval.html">interval</a> &, const <a class="el" href="structinterval.html">interval</a> &)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#a0337a8890e826188b960129cfeb30e33">operator>></a> (const <a class="el" href="structinterval.html">interval</a> &, const <a class="el" href="structinterval.html">interval</a> &)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#a82a3d8bffaad99f2da8175f405c85aa9">operator<</a> (const <a class="el" href="structinterval.html">interval</a> &, const <a class="el" href="structinterval.html">interval</a> &)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#a6dba1cd8dede14d793f7696c3190b8d8">operator<=</a> (const <a class="el" href="structinterval.html">interval</a> &, const <a class="el" href="structinterval.html">interval</a> &)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#af6e54f2bca16b49f95e555d82b660c46">operator></a> (const <a class="el" href="structinterval.html">interval</a> &, const <a class="el" href="structinterval.html">interval</a> &)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#a8351759f08cda4bac960b328144f1209">operator>=</a> (const <a class="el" href="structinterval.html">interval</a> &, const <a class="el" href="structinterval.html">interval</a> &)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#a9962bbe261c8872a42a1125b7f0ff476">operator==</a> (const <a class="el" href="structinterval.html">interval</a> &, const <a class="el" href="structinterval.html">interval</a> &)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#ae457632d357000038df6b85f164c742d">operator!=</a> (const <a class="el" href="structinterval.html">interval</a> &, const <a class="el" href="structinterval.html">interval</a> &)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#acaf39d3b928d74a727b0e900f936d80d">min</a> (const <a class="el" href="structinterval.html">interval</a> &x, const <a class="el" href="structinterval.html">interval</a> &y)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#a9acda6868a7283f8cbb11d0a3846a87a">max</a> (const <a class="el" href="structinterval.html">interval</a> &x, const <a class="el" href="structinterval.html">interval</a> &y)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structinterval.html">interval</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="interval_8hh.html#a466c6b7b96c9d292b7b4177fae8e0801">abs</a> (const <a class="el" href="structinterval.html">interval</a> &x)</td></tr> </table> <hr/><h2>Function Documentation</h2> <a class="anchor" id="a466c6b7b96c9d292b7b4177fae8e0801"></a><!-- doxytag: member="interval.hh::abs" ref="a466c6b7b96c9d292b7b4177fae8e0801" args="(const interval &x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> abs </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>x</em></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00206">206</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p>References <a class="el" href="interval_8hh_source.html#l00040">interval::hi</a>, <a class="el" href="interval_8hh_source.html#l00039">interval::lo</a>, <a class="el" href="interval_8hh_source.html#l00060">max()</a>, and <a class="el" href="interval_8hh_source.html#l00038">interval::valid</a>.</p> <p>Referenced by <a class="el" href="mterm_8cpp_source.html#l00064">mterm::complexity()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00207"></a>00207 { <a name="l00208"></a>00208 <span class="keywordflow">if</span> (x.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a>) { <a name="l00209"></a>00209 <span class="keywordflow">if</span> (x.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a> >= 0) { <a name="l00210"></a>00210 <span class="keywordflow">return</span> x; <a name="l00211"></a>00211 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (x.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a> < 0) { <a name="l00212"></a>00212 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(fabs(x.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>), fabs(x.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a>)); <a name="l00213"></a>00213 } <span class="keywordflow">else</span> { <a name="l00214"></a>00214 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(0, <a class="code" href="interval_8hh.html#a1c45761573e6cbc97cfacac78d905016">max</a>(fabs(x.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a>), x.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>)); <a name="l00215"></a>00215 } <a name="l00216"></a>00216 } <span class="keywordflow">else</span> { <a name="l00217"></a>00217 <span class="keywordflow">return</span> x; <a name="l00218"></a>00218 } <a name="l00219"></a>00219 } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="aae9ccb2d0315a96ffe835b04d12eee96"></a><!-- doxytag: member="interval.hh::bitmask" ref="aae9ccb2d0315a96ffe835b04d12eee96" args="(double x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int bitmask </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"> <em>x</em></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00111">111</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p>Referenced by <a class="el" href="interval_8hh_source.html#l00115">operator&()</a>, and <a class="el" href="interval_8hh_source.html#l00136">operator|()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00111"></a>00111 { <span class="keywordflow">return</span> (1 << (<span class="keywordtype">int</span>(log2(x))+1)) - 1; } </pre></div></p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="a9acda6868a7283f8cbb11d0a3846a87a"></a><!-- doxytag: member="interval.hh::max" ref="a9acda6868a7283f8cbb11d0a3846a87a" args="(const interval &x, const interval &y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> max </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>y</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00201">201</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p>References <a class="el" href="interval_8hh_source.html#l00040">interval::hi</a>, <a class="el" href="interval_8hh_source.html#l00039">interval::lo</a>, and <a class="el" href="interval_8hh_source.html#l00060">max()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00202"></a>00202 { <a name="l00203"></a>00203 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(<a class="code" href="interval_8hh.html#a1c45761573e6cbc97cfacac78d905016">max</a>(x.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a>,y.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a>), <a class="code" href="interval_8hh.html#a1c45761573e6cbc97cfacac78d905016">max</a>(x.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>,y.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>)); <a name="l00204"></a>00204 } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="a1c45761573e6cbc97cfacac78d905016"></a><!-- doxytag: member="interval.hh::max" ref="a1c45761573e6cbc97cfacac78d905016" args="(double x, double y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double max </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>y</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00060">60</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p>Referenced by <a class="el" href="interval_8hh_source.html#l00206">abs()</a>, <a class="el" href="mterm_8cpp_source.html#l00252">common()</a>, <a class="el" href="boxcomplexity_8cpp_source.html#l00087">computeBoxComplexity()</a>, <a class="el" href="seqSchema_8cpp_source.html#l00230">computeHorzGap()</a>, <a class="el" href="maxprim_8cpp_source.html#l00036">MaxPrim::computeSigOutput()</a>, <a class="el" href="boxtype_8cpp_source.html#l00097">infereBoxType()</a>, <a class="el" href="sigorderrules_8cpp_source.html#l00084">infereSigOrder()</a>, <a class="el" href="remainderprim_8cpp_source.html#l00027">RemainderPrim::infereSigOrder()</a>, <a class="el" href="powprim_8cpp_source.html#l00026">PowPrim::infereSigOrder()</a>, <a class="el" href="minprim_8cpp_source.html#l00029">MinPrim::infereSigOrder()</a>, <a class="el" href="maxprim_8cpp_source.html#l00029">MaxPrim::infereSigOrder()</a>, <a class="el" href="fmodprim_8cpp_source.html#l00026">FmodPrim::infereSigOrder()</a>, <a class="el" href="atan2prim_8cpp_source.html#l00026">Atan2Prim::infereSigOrder()</a>, <a class="el" href="sigtyperules_8cpp_source.html#l00275">infereSigType()</a>, <a class="el" href="maxprim_8cpp_source.html#l00019">MaxPrim::infereSigType()</a>, <a class="el" href="boxes_8cpp_source.html#l00417">isBoxHBargraph()</a>, <a class="el" href="boxes_8cpp_source.html#l00423">isBoxVBargraph()</a>, <a class="el" href="signals_8cpp_source.html#l00274">isSigHBargraph()</a>, <a class="el" href="signals_8cpp_source.html#l00280">isSigVBargraph()</a>, <a class="el" href="blockSchema_8cpp_source.html#l00040">makeBlockSchema()</a>, <a class="el" href="recSchema_8cpp_source.html#l00034">makeRecSchema()</a>, <a class="el" href="interval_8hh_source.html#l00201">max()</a>, <a class="el" href="interval_8hh_source.html#l00062">max4()</a>, <a class="el" href="sigtype_8hh_source.html#l00191">mergeinterval()</a>, <a class="el" href="splitSchema_8cpp_source.html#l00068">splitSchema::place()</a>, <a class="el" href="seqSchema_8cpp_source.html#l00082">seqSchema::place()</a>, <a class="el" href="mergeSchema_8cpp_source.html#l00066">mergeSchema::place()</a>, <a class="el" href="doc__compile_8cpp_source.html#l01293">DocCompiler::prepareIntervallicUI()</a>, <a class="el" href="ppbox_8cpp_source.html#l00113">boxpp::print()</a>, <a class="el" href="propagate_8cpp_source.html#l00196">propagate()</a>, <a class="el" href="interval_8hh_source.html#l00064">reunion()</a>, <a class="el" href="sigvisitor_8cpp_source.html#l00017">sigvisitor::visit()</a>, and <a class="el" href="eval_8cpp_source.html#l00733">writeIdentValue()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00060"></a>00060 { <span class="keywordflow">return</span> (x>y) ? x:y; } </pre></div></p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="a2aa9bf8104ad90fc808be876e4a57ac1"></a><!-- doxytag: member="interval.hh::max4" ref="a2aa9bf8104ad90fc808be876e4a57ac1" args="(double a, double b, double c, double d)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double max4 </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"> <em>a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>b</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>c</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>d</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00062">62</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p>References <a class="el" href="interval_8hh_source.html#l00060">max()</a>.</p> <p>Referenced by <a class="el" href="interval_8hh_source.html#l00084">operator*()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00062"></a>00062 { <span class="keywordflow">return</span> <a class="code" href="interval_8hh.html#a1c45761573e6cbc97cfacac78d905016">max</a>(<a class="code" href="interval_8hh.html#a1c45761573e6cbc97cfacac78d905016">max</a>(a,b),<a class="code" href="interval_8hh.html#a1c45761573e6cbc97cfacac78d905016">max</a>(c,d)); } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="acaf39d3b928d74a727b0e900f936d80d"></a><!-- doxytag: member="interval.hh::min" ref="acaf39d3b928d74a727b0e900f936d80d" args="(const interval &x, const interval &y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> min </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>y</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00196">196</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p>References <a class="el" href="interval_8hh_source.html#l00040">interval::hi</a>, <a class="el" href="interval_8hh_source.html#l00039">interval::lo</a>, and <a class="el" href="interval_8hh_source.html#l00059">min()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00197"></a>00197 { <a name="l00198"></a>00198 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(<a class="code" href="interval_8hh.html#a2f8edc4561e9744ed4233b205fa7ec32">min</a>(x.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a>,y.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a>), <a class="code" href="interval_8hh.html#a2f8edc4561e9744ed4233b205fa7ec32">min</a>(x.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>,y.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>)); <a name="l00199"></a>00199 } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="a2f8edc4561e9744ed4233b205fa7ec32"></a><!-- doxytag: member="interval.hh::min" ref="a2f8edc4561e9744ed4233b205fa7ec32" args="(double x, double y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double min </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>y</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00059">59</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p>Referenced by <a class="el" href="mterm_8cpp_source.html#l00252">common()</a>, <a class="el" href="boxcomplexity_8cpp_source.html#l00087">computeBoxComplexity()</a>, <a class="el" href="minprim_8cpp_source.html#l00036">MinPrim::computeSigOutput()</a>, <a class="el" href="decorateSchema_8cpp_source.html#l00107">decorateSchema::draw()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00874">ScalarCompiler::generateSelect2()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00933">ScalarCompiler::generateSelect3()</a>, <a class="el" href="sigtyperules_8cpp_source.html#l00275">infereSigType()</a>, <a class="el" href="minprim_8cpp_source.html#l00019">MinPrim::infereSigType()</a>, <a class="el" href="boxes_8cpp_source.html#l00417">isBoxHBargraph()</a>, <a class="el" href="boxes_8cpp_source.html#l00423">isBoxVBargraph()</a>, <a class="el" href="signals_8cpp_source.html#l00274">isSigHBargraph()</a>, <a class="el" href="signals_8cpp_source.html#l00280">isSigVBargraph()</a>, <a class="el" href="sigtype_8hh_source.html#l00191">mergeinterval()</a>, <a class="el" href="interval_8hh_source.html#l00196">min()</a>, <a class="el" href="interval_8hh_source.html#l00061">min4()</a>, <a class="el" href="sigtype_8cpp_source.html#l00127">operator|()</a>, <a class="el" href="doc__compile_8cpp_source.html#l01293">DocCompiler::prepareIntervallicUI()</a>, <a class="el" href="ppbox_8cpp_source.html#l00113">boxpp::print()</a>, <a class="el" href="propagate_8cpp_source.html#l00196">propagate()</a>, <a class="el" href="interval_8hh_source.html#l00064">reunion()</a>, <a class="el" href="sigvisitor_8cpp_source.html#l00017">sigvisitor::visit()</a>, <a class="el" href="eval_8cpp_source.html#l00733">writeIdentValue()</a>, and <a class="el" href="occurences_8cpp_source.html#l00014">xVariability()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00059"></a>00059 { <span class="keywordflow">return</span> (x<y) ? x:y; } </pre></div></p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="a88026ff0719cf67b231a7bd35accd7d6"></a><!-- doxytag: member="interval.hh::min4" ref="a88026ff0719cf67b231a7bd35accd7d6" args="(double a, double b, double c, double d)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double min4 </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"> <em>a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>b</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>c</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>d</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00061">61</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p>References <a class="el" href="interval_8hh_source.html#l00059">min()</a>.</p> <p>Referenced by <a class="el" href="interval_8hh_source.html#l00084">operator*()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00061"></a>00061 { <span class="keywordflow">return</span> <a class="code" href="interval_8hh.html#a2f8edc4561e9744ed4233b205fa7ec32">min</a>(<a class="code" href="interval_8hh.html#a2f8edc4561e9744ed4233b205fa7ec32">min</a>(a,b),<a class="code" href="interval_8hh.html#a2f8edc4561e9744ed4233b205fa7ec32">min</a>(c,d)); } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="ae457632d357000038df6b85f164c742d"></a><!-- doxytag: member="interval.hh::operator!=" ref="ae457632d357000038df6b85f164c742d" args="(const interval &, const interval &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> operator!= </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00189">189</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00190"></a>00190 { <a name="l00191"></a>00191 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(0,1); <a name="l00192"></a>00192 } </pre></div></p> </div> </div> <a class="anchor" id="a56b3e3a54e12507fd5c3f81a07f54b50"></a><!-- doxytag: member="interval.hh::operator%" ref="a56b3e3a54e12507fd5c3f81a07f54b50" args="(const interval &x, const interval &y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> operator% </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>y</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00104">104</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p>References <a class="el" href="interval_8hh_source.html#l00040">interval::hi</a>, <a class="el" href="interval_8hh_source.html#l00039">interval::lo</a>, and <a class="el" href="interval_8hh_source.html#l00038">interval::valid</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00105"></a>00105 { <a name="l00106"></a>00106 <span class="keywordflow">return</span> (x.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a> && y.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a> && x.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a> >= 0 && y.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a> > 0) <a name="l00107"></a>00107 ? <a class="code" href="structinterval.html">interval</a>(0,y.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>) <a name="l00108"></a>00108 : <a class="code" href="structinterval.html">interval</a>(); <a name="l00109"></a>00109 } </pre></div></p> </div> </div> <a class="anchor" id="af7f672d1cca19edd84c240f492805de7"></a><!-- doxytag: member="interval.hh::operator&" ref="af7f672d1cca19edd84c240f492805de7" args="(const interval &x, const interval &y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> operator& </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>y</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00115">115</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p>References <a class="el" href="interval_8hh_source.html#l00111">bitmask()</a>, <a class="el" href="interval_8hh_source.html#l00040">interval::hi</a>, <a class="el" href="interval_8hh_source.html#l00039">interval::lo</a>, and <a class="el" href="interval_8hh_source.html#l00038">interval::valid</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00116"></a>00116 { <a name="l00117"></a>00117 <span class="keywordflow">if</span> (x.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a> && y.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a>) { <a name="l00118"></a>00118 <span class="keywordflow">if</span> (x.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a> >= 0 & y.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a> >= 0) { <a name="l00119"></a>00119 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(0, <a class="code" href="interval_8hh.html#aae9ccb2d0315a96ffe835b04d12eee96">bitmask</a>(x.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>) & <a class="code" href="interval_8hh.html#aae9ccb2d0315a96ffe835b04d12eee96">bitmask</a>(y.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>)); <a name="l00120"></a>00120 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (y.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a> >= 0) { <a name="l00121"></a>00121 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(0, <a class="code" href="interval_8hh.html#aae9ccb2d0315a96ffe835b04d12eee96">bitmask</a>(y.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>)); <a name="l00122"></a>00122 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (x.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a> >= 0) { <a name="l00123"></a>00123 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(0, <a class="code" href="interval_8hh.html#aae9ccb2d0315a96ffe835b04d12eee96">bitmask</a>(y.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>)); <a name="l00124"></a>00124 } <span class="keywordflow">else</span> { <a name="l00125"></a>00125 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(); <a name="l00126"></a>00126 } <a name="l00127"></a>00127 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (x.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a> & x.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a> >= 0) { <a name="l00128"></a>00128 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(0, <a class="code" href="interval_8hh.html#aae9ccb2d0315a96ffe835b04d12eee96">bitmask</a>(x.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>)); <a name="l00129"></a>00129 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (y.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a> & y.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a> >= 0) { <a name="l00130"></a>00130 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(0, <a class="code" href="interval_8hh.html#aae9ccb2d0315a96ffe835b04d12eee96">bitmask</a>(y.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>)); <a name="l00131"></a>00131 } <span class="keywordflow">else</span> { <a name="l00132"></a>00132 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(); <a name="l00133"></a>00133 } <a name="l00134"></a>00134 } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="a97008fc77c46241b355ba31c34068c1b"></a><!-- doxytag: member="interval.hh::operator*" ref="a97008fc77c46241b355ba31c34068c1b" args="(const interval &x, const interval &y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> operator* </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>y</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00084">84</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p>References <a class="el" href="interval_8hh_source.html#l00040">interval::hi</a>, <a class="el" href="interval_8hh_source.html#l00039">interval::lo</a>, <a class="el" href="interval_8hh_source.html#l00062">max4()</a>, <a class="el" href="interval_8hh_source.html#l00061">min4()</a>, and <a class="el" href="interval_8hh_source.html#l00038">interval::valid</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00085"></a>00085 { <a name="l00086"></a>00086 <span class="keywordflow">if</span> (x.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a>&y.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a>) { <a name="l00087"></a>00087 <span class="keywordtype">double</span> a=x.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a>*y.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a>; <a name="l00088"></a>00088 <span class="keywordtype">double</span> b=x.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a>*y.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>; <a name="l00089"></a>00089 <span class="keywordtype">double</span> c=x.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>*y.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a>; <a name="l00090"></a>00090 <span class="keywordtype">double</span> d=x.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>*y.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>; <a name="l00091"></a>00091 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(<a class="code" href="interval_8hh.html#a88026ff0719cf67b231a7bd35accd7d6">min4</a>(a,b,c,d), <a class="code" href="interval_8hh.html#a2aa9bf8104ad90fc808be876e4a57ac1">max4</a>(a,b,c,d)); <a name="l00092"></a>00092 } <span class="keywordflow">else</span> { <a name="l00093"></a>00093 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(); <a name="l00094"></a>00094 } <a name="l00095"></a>00095 } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="aa7c0ed867b816452e909174065fdb9f1"></a><!-- doxytag: member="interval.hh::operator+" ref="aa7c0ed867b816452e909174065fdb9f1" args="(const interval &x, const interval &y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> operator+ </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>y</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00074">74</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p>References <a class="el" href="interval_8hh_source.html#l00040">interval::hi</a>, <a class="el" href="interval_8hh_source.html#l00039">interval::lo</a>, and <a class="el" href="interval_8hh_source.html#l00038">interval::valid</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00075"></a>00075 { <a name="l00076"></a>00076 <span class="keywordflow">return</span> (x.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a>&y.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a>) ? <a class="code" href="structinterval.html">interval</a>(x.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a>+y.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a>, x.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>+y.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>) : <a class="code" href="structinterval.html">interval</a>(); <a name="l00077"></a>00077 } </pre></div></p> </div> </div> <a class="anchor" id="a9c1597accd473c1429f9809ca7286609"></a><!-- doxytag: member="interval.hh::operator-" ref="a9c1597accd473c1429f9809ca7286609" args="(const interval &x, const interval &y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> operator- </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>y</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00079">79</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p>References <a class="el" href="interval_8hh_source.html#l00040">interval::hi</a>, <a class="el" href="interval_8hh_source.html#l00039">interval::lo</a>, and <a class="el" href="interval_8hh_source.html#l00038">interval::valid</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00080"></a>00080 { <a name="l00081"></a>00081 <span class="keywordflow">return</span> (x.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a> & y.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a>) ? <a class="code" href="structinterval.html">interval</a>(x.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a>-y.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>, x.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>-y.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a>) : <a class="code" href="structinterval.html">interval</a>();; <a name="l00082"></a>00082 } </pre></div></p> </div> </div> <a class="anchor" id="a9aa8204fe1ce77fdac0677f6a9500210"></a><!-- doxytag: member="interval.hh::operator/" ref="a9aa8204fe1ce77fdac0677f6a9500210" args="(const interval &x, const interval &y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> operator/ </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>y</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00097">97</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p>References <a class="el" href="interval_8hh_source.html#l00040">interval::hi</a>, <a class="el" href="interval_8hh_source.html#l00039">interval::lo</a>, and <a class="el" href="interval_8hh_source.html#l00038">interval::valid</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00098"></a>00098 { <a name="l00099"></a>00099 <span class="keywordflow">return</span> (x.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a> && y.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a> && (y.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a> > 0 | y.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a> < 0)) <a name="l00100"></a>00100 ? x * <a class="code" href="structinterval.html">interval</a>(1/y.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>,1/y.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a>) <a name="l00101"></a>00101 : interval(); <a name="l00102"></a>00102 } </pre></div></p> </div> </div> <a class="anchor" id="a82a3d8bffaad99f2da8175f405c85aa9"></a><!-- doxytag: member="interval.hh::operator<" ref="a82a3d8bffaad99f2da8175f405c85aa9" args="(const interval &, const interval &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> operator< </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00164">164</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00165"></a>00165 { <a name="l00166"></a>00166 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(0,1); <a name="l00167"></a>00167 } </pre></div></p> </div> </div> <a class="anchor" id="a0766156b376d4587c9d678b062f29549"></a><!-- doxytag: member="interval.hh::operator<<" ref="a0766156b376d4587c9d678b062f29549" args="(const interval &, const interval &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> operator<< </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00150">150</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00151"></a>00151 { <a name="l00152"></a>00152 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(); <a name="l00153"></a>00153 } </pre></div></p> </div> </div> <a class="anchor" id="ab00cd36d34731f12625bec726f77bc92"></a><!-- doxytag: member="interval.hh::operator<<" ref="ab00cd36d34731f12625bec726f77bc92" args="(ostream &dst, const interval &i)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">ostream& operator<< </td> <td>(</td> <td class="paramtype">ostream & </td> <td class="paramname"> <em>dst</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>i</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00050">50</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p>References <a class="el" href="interval_8hh_source.html#l00040">interval::hi</a>, <a class="el" href="interval_8hh_source.html#l00039">interval::lo</a>, and <a class="el" href="interval_8hh_source.html#l00038">interval::valid</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00051"></a>00051 { <a name="l00052"></a>00052 <span class="keywordflow">if</span> (i.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a>) { <a name="l00053"></a>00053 <span class="keywordflow">return</span> dst << <span class="stringliteral">"interval("</span> << i.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a> << <span class="stringliteral">", "</span> << i.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a> << <span class="stringliteral">")"</span>; <a name="l00054"></a>00054 } <span class="keywordflow">else</span> { <a name="l00055"></a>00055 <span class="keywordflow">return</span> dst << <span class="stringliteral">"interval()"</span>; <a name="l00056"></a>00056 } <a name="l00057"></a>00057 } </pre></div></p> </div> </div> <a class="anchor" id="a6dba1cd8dede14d793f7696c3190b8d8"></a><!-- doxytag: member="interval.hh::operator<=" ref="a6dba1cd8dede14d793f7696c3190b8d8" args="(const interval &, const interval &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> operator<= </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00169">169</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00170"></a>00170 { <a name="l00171"></a>00171 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(0,1); <a name="l00172"></a>00172 } </pre></div></p> </div> </div> <a class="anchor" id="a9962bbe261c8872a42a1125b7f0ff476"></a><!-- doxytag: member="interval.hh::operator==" ref="a9962bbe261c8872a42a1125b7f0ff476" args="(const interval &, const interval &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> operator== </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00184">184</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00185"></a>00185 { <a name="l00186"></a>00186 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(0,1); <a name="l00187"></a>00187 } </pre></div></p> </div> </div> <a class="anchor" id="af6e54f2bca16b49f95e555d82b660c46"></a><!-- doxytag: member="interval.hh::operator>" ref="af6e54f2bca16b49f95e555d82b660c46" args="(const interval &, const interval &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> operator> </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00174">174</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00175"></a>00175 { <a name="l00176"></a>00176 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(0,1); <a name="l00177"></a>00177 } </pre></div></p> </div> </div> <a class="anchor" id="a8351759f08cda4bac960b328144f1209"></a><!-- doxytag: member="interval.hh::operator>=" ref="a8351759f08cda4bac960b328144f1209" args="(const interval &, const interval &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> operator>= </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00179">179</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00180"></a>00180 { <a name="l00181"></a>00181 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(0,1); <a name="l00182"></a>00182 } </pre></div></p> </div> </div> <a class="anchor" id="a0337a8890e826188b960129cfeb30e33"></a><!-- doxytag: member="interval.hh::operator>>" ref="a0337a8890e826188b960129cfeb30e33" args="(const interval &, const interval &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> operator>> </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00155">155</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00156"></a>00156 { <a name="l00157"></a>00157 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(); <a name="l00158"></a>00158 } </pre></div></p> </div> </div> <a class="anchor" id="ac23954c869bdea963b901423b928c6d3"></a><!-- doxytag: member="interval.hh::operator^" ref="ac23954c869bdea963b901423b928c6d3" args="(const interval &, const interval &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> operator^ </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00145">145</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00146"></a>00146 { <a name="l00147"></a>00147 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(); <a name="l00148"></a>00148 } </pre></div></p> </div> </div> <a class="anchor" id="a53fd1fed807fb0c54af1cdd498d62831"></a><!-- doxytag: member="interval.hh::operator|" ref="a53fd1fed807fb0c54af1cdd498d62831" args="(const interval &x, const interval &y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> operator| </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>y</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00136">136</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p>References <a class="el" href="interval_8hh_source.html#l00111">bitmask()</a>, <a class="el" href="interval_8hh_source.html#l00040">interval::hi</a>, <a class="el" href="interval_8hh_source.html#l00039">interval::lo</a>, and <a class="el" href="interval_8hh_source.html#l00038">interval::valid</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00137"></a>00137 { <a name="l00138"></a>00138 <span class="keywordflow">if</span> (x.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a> && y.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a> && x.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a> >= 0 && y.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a> >= 0) { <a name="l00139"></a>00139 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(0, <a class="code" href="interval_8hh.html#aae9ccb2d0315a96ffe835b04d12eee96">bitmask</a>(x.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>) | <a class="code" href="interval_8hh.html#aae9ccb2d0315a96ffe835b04d12eee96">bitmask</a>(y.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>)); <a name="l00140"></a>00140 } <span class="keywordflow">else</span> { <a name="l00141"></a>00141 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(); <a name="l00142"></a>00142 } <a name="l00143"></a>00143 } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <a class="anchor" id="add8dd76587e1fc6361f39259a690f701"></a><!-- doxytag: member="interval.hh::reunion" ref="add8dd76587e1fc6361f39259a690f701" args="(const interval &x, const interval &y)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structinterval.html">interval</a> reunion </td> <td>(</td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structinterval.html">interval</a> & </td> <td class="paramname"> <em>y</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="interval_8hh_source.html#l00064">64</a> of file <a class="el" href="interval_8hh_source.html">interval.hh</a>.</p> <p>References <a class="el" href="interval_8hh_source.html#l00040">interval::hi</a>, <a class="el" href="interval_8hh_source.html#l00039">interval::lo</a>, <a class="el" href="interval_8hh_source.html#l00060">max()</a>, <a class="el" href="interval_8hh_source.html#l00059">min()</a>, and <a class="el" href="interval_8hh_source.html#l00038">interval::valid</a>.</p> <p>Referenced by <a class="el" href="sigtyperules_8cpp_source.html#l00275">infereSigType()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00065"></a>00065 { <a name="l00066"></a>00066 <span class="keywordflow">if</span> (x.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a> & y.<a class="code" href="structinterval.html#a96c78d5d63b319bc354c0ba728305e68" title="true if it is a valid interval">valid</a>) { <a name="l00067"></a>00067 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(<a class="code" href="interval_8hh.html#a2f8edc4561e9744ed4233b205fa7ec32">min</a>(x.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a>,y.<a class="code" href="structinterval.html#a097d8cc2067534f1fe88d6a8386af0cd" title="minimal value">lo</a>), <a class="code" href="interval_8hh.html#a1c45761573e6cbc97cfacac78d905016">max</a>(x.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>,y.<a class="code" href="structinterval.html#ae97c1d6052f6b8326a346b4c2a2d4b30" title="maximal value">hi</a>)); <a name="l00068"></a>00068 } <span class="keywordflow">else</span> { <a name="l00069"></a>00069 <span class="keywordflow">return</span> <a class="code" href="structinterval.html">interval</a>(); <a name="l00070"></a>00070 } <a name="l00071"></a>00071 } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated on Thu Apr 29 00:00:07 2010 for FAUST compiler by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address> </body> </html>