<!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: recursive-tree.cpp 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>recursive-tree.cpp File Reference</h1><code>#include <assert.h></code><br/> <code>#include <stdio.h></code><br/> <code>#include <stdlib.h></code><br/> <code>#include <limits.h></code><br/> <code>#include "<a class="el" href="tlib_8hh_source.html">tlib.hh</a>"</code><br/> <div class="dynheader"> Include dependency graph for recursive-tree.cpp:</div> <div class="dynsection"> </div> <p><a href="recursive-tree_8cpp_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="structEnv.html">Env</a></td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classCTree.html">Tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#ab814aecf89e4591fd9a23f4ab145f8f0">calcDeBruijn2Sym</a> (<a class="el" href="classCTree.html">Tree</a> t)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classCTree.html">Tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a77cfc706306e29611ef1fd28c731ab47">substitute</a> (<a class="el" href="classCTree.html">Tree</a> t, int n, <a class="el" href="classCTree.html">Tree</a> id)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classCTree.html">Tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a5eff39d6a3254cfe871c9efdf4426b97">calcsubstitute</a> (<a class="el" href="classCTree.html">Tree</a> t, int level, <a class="el" href="classCTree.html">Tree</a> id)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classCTree.html">Tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a170b606017c8f6e443ad39f1dbb9ca8d">liftn</a> (<a class="el" href="classCTree.html">Tree</a> t, int threshold)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classCTree.html">Tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a50c168abcbcc4183f530f5e0c49f91dd">calcliftn</a> (<a class="el" href="classCTree.html">Tree</a> t, int threshold)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCTree.html">Tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#aa598f21268aa7198407d2eb6929d09ab">rec</a> (<a class="el" href="classCTree.html">Tree</a> body)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">create a de Bruijn recursive tree <a href="#aa598f21268aa7198407d2eb6929d09ab"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a4cb44c6e41e21da830e748dc35f16ba5">isRec</a> (<a class="el" href="classCTree.html">Tree</a> t, <a class="el" href="classCTree.html">Tree</a> &body)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">is t a de Bruijn recursive tree <a href="#a4cb44c6e41e21da830e748dc35f16ba5"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCTree.html">Tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#ab93ecee07e77e314fe39e3199d06437a">ref</a> (int level)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">create a de Bruijn recursive reference <a href="#ab93ecee07e77e314fe39e3199d06437a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a3a07093d0e487cc733adab39f6a18e78">isRef</a> (<a class="el" href="classCTree.html">Tree</a> t, int &level)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">is t a de Bruijn recursive reference <a href="#a3a07093d0e487cc733adab39f6a18e78"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCTree.html">Tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a7c0aee0a0a270646226d5cc585dd5ba9">rec</a> (<a class="el" href="classCTree.html">Tree</a> var, <a class="el" href="classCTree.html">Tree</a> body)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">create a symbolic recursive tree <a href="#a7c0aee0a0a270646226d5cc585dd5ba9"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#ab3b1a1c54e332dd20740b9e27d1c27ba">isRec</a> (<a class="el" href="classCTree.html">Tree</a> t, <a class="el" href="classCTree.html">Tree</a> &var, <a class="el" href="classCTree.html">Tree</a> &body)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">is t a symbolic recursive tree <a href="#ab3b1a1c54e332dd20740b9e27d1c27ba"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCTree.html">Tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a125af067c9ecda063a2eace315f5ae12">ref</a> (<a class="el" href="classCTree.html">Tree</a> id)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">create a symbolic recursive reference <a href="#a125af067c9ecda063a2eace315f5ae12"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a3bbed7d6c3e15b41db4eb3bab6ba5f1a">isRef</a> (<a class="el" href="classCTree.html">Tree</a> t, <a class="el" href="classCTree.html">Tree</a> &v)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">is t a symbolic recursive reference <a href="#a3bbed7d6c3e15b41db4eb3bab6ba5f1a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCTree.html">Tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#abf6659f19a0e48b81af0b0fb39ede302">lift</a> (<a class="el" href="classCTree.html">Tree</a> t)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a440972bf04fd45479e2b35d0c00bb840">printSignal</a> (<a class="el" href="classCTree.html">Tree</a> sig, FILE *out, int prec=0)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCTree.html">Tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#ab896f65486e6d80d4440721f2f89ff96">deBruijn2Sym</a> (<a class="el" href="classCTree.html">Tree</a> t)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a3ab4f44f961339b489f4a6289e8c6150">markOpen</a> (<a class="el" href="classCTree.html">Tree</a> t)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a9f4f307fe5880833a420d751e62779f0">recomputeAperture</a> (<a class="el" href="classCTree.html">Tree</a> t, <a class="el" href="structEnv.html">Env</a> *p)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a75385568fda3ed8a657985c612f2b2f7">orderof</a> (<a class="el" href="classCTree.html">Tree</a> t, <a class="el" href="structEnv.html">Env</a> *p)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#ae6da444b930bc1b8eed51bd15108e5e2">updateAperture</a> (<a class="el" href="classCTree.html">Tree</a> t)</td></tr> <tr><td colspan="2"><h2>Variables</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSymbol.html">Sym</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a079e594f132e158b05af96450deaeeb5">DEBRUIJN</a> = symbol ("DEBRUIJN")</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSymbol.html">Sym</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a0a0bb7149e09722eb48442f920afa94a">DEBRUIJNREF</a> = symbol ("DEBRUIJNREF")</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSymbol.html">Sym</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a66a0ec08beb7a4574d1e7abe55c24c49">SUBSTITUTE</a> = symbol ("SUBSTITUTE")</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSymbol.html">Sym</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a472adc9dd3732243140a081d93b744db">SYMREC</a> = symbol ("SYMREC")</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSymbol.html">Sym</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#a81aac32780f7a9114bc0d071e66e3b25">SYMRECREF</a> = symbol ("SYMRECREF")</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSymbol.html">Sym</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#ae07d18a347a7116066f3b79da384c34c">SYMLIFTN</a> = symbol ("LIFTN")</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCTree.html">Tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#aa589b365baa26873e9e1f76f7482c3fc">RECDEF</a> = tree(symbol("RECDEF"))</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCTree.html">Tree</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="recursive-tree_8cpp.html#ade56faf8037fbd6fa55fe1ccc21c74f0">DEBRUIJN2SYM</a> = tree(symbol("deBruijn2Sym"))</td></tr> </table> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ab814aecf89e4591fd9a23f4ab145f8f0"></a><!-- doxytag: member="recursive-tree.cpp::calcDeBruijn2Sym" ref="ab814aecf89e4591fd9a23f4ab145f8f0" args="(Tree t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classCTree.html">Tree</a> calcDeBruijn2Sym </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em></td> <td> ) </td> <td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00235">235</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="tree_8hh_source.html#l00142">CTree::arity()</a>, <a class="el" href="tree_8hh_source.html#l00143">CTree::branch()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00223">deBruijn2Sym()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00059">isRec()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00070">isRef()</a>, <a class="el" href="classCTree.html#a3184c572cef05308f59e36ea2bdf537e">CTree::make()</a>, <a class="el" href="tree_8hh_source.html#l00141">CTree::node()</a>, <a class="el" href="sigprint_8cpp_source.html#l00085">printSignal()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00054">rec()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00064">ref()</a>, <a class="el" href="list_8cpp_source.html#l00559">substitute()</a>, <a class="el" href="tree_8hh_source.html#l00173">tree()</a>, and <a class="el" href="symbol_8hh_source.html#l00097">unique()</a>.</p> <p>Referenced by <a class="el" href="recursive-tree_8cpp_source.html#l00223">deBruijn2Sym()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00236"></a>00236 { <a name="l00237"></a>00237 <a class="code" href="classCTree.html" title="A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches...">Tree</a> body, var; <a name="l00238"></a>00238 <span class="keywordtype">int</span> i; <a name="l00239"></a>00239 <a name="l00240"></a>00240 <span class="keywordflow">if</span> (<a class="code" href="recursive-tree_8cpp.html#a4cb44c6e41e21da830e748dc35f16ba5" title="is t a de Bruijn recursive tree">isRec</a>(t,body)) { <a name="l00241"></a>00241 <a name="l00242"></a>00242 var = <a class="code" href="tree_8hh.html#a61c13e9361cfa80bbb3cd6ce60a8f595">tree</a>(<a class="code" href="symbol_8hh.html#a377309446e0e86ae663cd6709e02889d" title="Returns a new unique symbol of name strxxx.">unique</a>(<span class="stringliteral">"W"</span>)); <a name="l00243"></a>00243 <span class="keywordflow">return</span> <a class="code" href="recursive-tree_8cpp.html#aa598f21268aa7198407d2eb6929d09ab" title="create a de Bruijn recursive tree">rec</a>(var, <a class="code" href="recursive-tree_8cpp.html#ab896f65486e6d80d4440721f2f89ff96">deBruijn2Sym</a>(<a class="code" href="list_8cpp.html#a40185c4c5a347dcef0ae115ebf3443d6">substitute</a>(body,1,<a class="code" href="recursive-tree_8cpp.html#ab93ecee07e77e314fe39e3199d06437a" title="create a de Bruijn recursive reference">ref</a>(var)))); <a name="l00244"></a>00244 <a name="l00245"></a>00245 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="recursive-tree_8cpp.html#a3a07093d0e487cc733adab39f6a18e78" title="is t a de Bruijn recursive reference">isRef</a>(t,var)) { <a name="l00246"></a>00246 <a name="l00247"></a>00247 <span class="keywordflow">return</span> t; <a name="l00248"></a>00248 <a name="l00249"></a>00249 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="recursive-tree_8cpp.html#a3a07093d0e487cc733adab39f6a18e78" title="is t a de Bruijn recursive reference">isRef</a>(t,i)) { <a name="l00250"></a>00250 <a name="l00251"></a>00251 fprintf(stderr, <span class="stringliteral">"ERREUR, une reference de Bruijn touvee ! : "</span>); <a name="l00252"></a>00252 <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(t, stderr); <a name="l00253"></a>00253 fprintf(stderr, <span class="stringliteral">")\n"</span>); <a name="l00254"></a>00254 exit(1); <a name="l00255"></a>00255 <span class="keywordflow">return</span> t; <a name="l00256"></a>00256 <a name="l00257"></a>00257 } <span class="keywordflow">else</span> { <a name="l00258"></a>00258 <a name="l00259"></a>00259 <span class="comment">//Tree br[4];</span> <a name="l00260"></a>00260 <span class="keywordtype">int</span> a = t-><a class="code" href="classCTree.html#a68f2be5e845407bc956a2893fe6f0d03" title="return the number of branches (subtrees) of a tree">arity</a>(); <a name="l00261"></a>00261 <a class="code" href="tree_8hh.html#ad425127c677ce9f82f03e6dc57a87937">tvec</a> br(a); <a name="l00262"></a>00262 <a name="l00263"></a>00263 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < a; i++) { <a name="l00264"></a>00264 br[i] = <a class="code" href="recursive-tree_8cpp.html#ab896f65486e6d80d4440721f2f89ff96">deBruijn2Sym</a>(t-><a class="code" href="classCTree.html#a06c1513b23dc7b0d9da9c930c6dc43c5" title="return the ith branch (subtree) of a tree">branch</a>(i)); <a name="l00265"></a>00265 } <a name="l00266"></a>00266 <span class="comment">//return CTree::make(t->node(), a, br);</span> <a name="l00267"></a>00267 <span class="keywordflow">return</span> <a class="code" href="classCTree.html#a3184c572cef05308f59e36ea2bdf537e" title="return a new tree or an existing equivalent one">CTree::make</a>(t-><a class="code" href="classCTree.html#a8de786fec095c8304b9ffa7c1c316237" title="return the content of the tree">node</a>(), br); <a name="l00268"></a>00268 } <a name="l00269"></a>00269 } </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="a50c168abcbcc4183f530f5e0c49f91dd"></a><!-- doxytag: member="recursive-tree.cpp::calcliftn" ref="a50c168abcbcc4183f530f5e0c49f91dd" args="(Tree t, int threshold)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classCTree.html">Tree</a> calcliftn </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>threshold</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00182">182</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="tree_8hh_source.html#l00142">CTree::arity()</a>, <a class="el" href="tree_8hh_source.html#l00143">CTree::branch()</a>, <a class="el" href="tree_8hh_source.html#l00225">isClosed()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00059">isRec()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00070">isRef()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00169">liftn()</a>, <a class="el" href="classCTree.html#a3184c572cef05308f59e36ea2bdf537e">CTree::make()</a>, <a class="el" href="tree_8hh_source.html#l00141">CTree::node()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00054">rec()</a>, and <a class="el" href="recursive-tree_8cpp_source.html#l00064">ref()</a>.</p> <p>Referenced by <a class="el" href="recursive-tree_8cpp_source.html#l00169">liftn()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00183"></a>00183 { <a name="l00184"></a>00184 <span class="keywordtype">int</span> n; <a name="l00185"></a>00185 <a class="code" href="classCTree.html" title="A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches...">Tree</a> u; <a name="l00186"></a>00186 <a name="l00187"></a>00187 <span class="keywordflow">if</span> (<a class="code" href="tree_8hh.html#a447a569f359244de90fa72c2efdb8be5" title="t dont contain free de Bruijn ref">isClosed</a>(t)) { <a name="l00188"></a>00188 <a name="l00189"></a>00189 <span class="keywordflow">return</span> t; <a name="l00190"></a>00190 <a name="l00191"></a>00191 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="recursive-tree_8cpp.html#a3a07093d0e487cc733adab39f6a18e78" title="is t a de Bruijn recursive reference">isRef</a>(t,n)) { <a name="l00192"></a>00192 <a name="l00193"></a>00193 <span class="keywordflow">if</span> (n < threshold) { <a name="l00194"></a>00194 <span class="comment">// it is a bounded reference</span> <a name="l00195"></a>00195 <span class="keywordflow">return</span> t; <a name="l00196"></a>00196 } <span class="keywordflow">else</span> { <a name="l00197"></a>00197 <span class="comment">// it is a free reference</span> <a name="l00198"></a>00198 <span class="keywordflow">return</span> <a class="code" href="recursive-tree_8cpp.html#ab93ecee07e77e314fe39e3199d06437a" title="create a de Bruijn recursive reference">ref</a>(n+1); <a name="l00199"></a>00199 } <a name="l00200"></a>00200 <a name="l00201"></a>00201 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="recursive-tree_8cpp.html#a4cb44c6e41e21da830e748dc35f16ba5" title="is t a de Bruijn recursive tree">isRec</a>(t,u)) { <a name="l00202"></a>00202 <a name="l00203"></a>00203 <span class="keywordflow">return</span> <a class="code" href="recursive-tree_8cpp.html#aa598f21268aa7198407d2eb6929d09ab" title="create a de Bruijn recursive tree">rec</a>(<a class="code" href="recursive-tree_8cpp.html#a170b606017c8f6e443ad39f1dbb9ca8d">liftn</a>(u, threshold+1)); <a name="l00204"></a>00204 <a name="l00205"></a>00205 } <span class="keywordflow">else</span> { <a name="l00206"></a>00206 <span class="keywordtype">int</span> n = t-><a class="code" href="classCTree.html#a68f2be5e845407bc956a2893fe6f0d03" title="return the number of branches (subtrees) of a tree">arity</a>(); <a name="l00207"></a>00207 <span class="comment">//Tree br[4];</span> <a name="l00208"></a>00208 <a class="code" href="tree_8hh.html#ad425127c677ce9f82f03e6dc57a87937">tvec</a> br(n); <a name="l00209"></a>00209 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < n; i++) { <a name="l00210"></a>00210 br[i] = <a class="code" href="recursive-tree_8cpp.html#a170b606017c8f6e443ad39f1dbb9ca8d">liftn</a>(t-><a class="code" href="classCTree.html#a06c1513b23dc7b0d9da9c930c6dc43c5" title="return the ith branch (subtree) of a tree">branch</a>(i), threshold); <a name="l00211"></a>00211 } <a name="l00212"></a>00212 <span class="comment">//return CTree::make(t->node(), n, br);</span> <a name="l00213"></a>00213 <span class="keywordflow">return</span> <a class="code" href="classCTree.html#a3184c572cef05308f59e36ea2bdf537e" title="return a new tree or an existing equivalent one">CTree::make</a>(t-><a class="code" href="classCTree.html#a8de786fec095c8304b9ffa7c1c316237" title="return the content of the tree">node</a>(), br); <a name="l00214"></a>00214 } <a name="l00215"></a>00215 <a name="l00216"></a>00216 } </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="a5eff39d6a3254cfe871c9efdf4426b97"></a><!-- doxytag: member="recursive-tree.cpp::calcsubstitute" ref="a5eff39d6a3254cfe871c9efdf4426b97" args="(Tree t, int level, Tree id)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classCTree.html">Tree</a> calcsubstitute </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>level</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>id</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00284">284</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="tree_8hh_source.html#l00145">CTree::aperture()</a>, <a class="el" href="tree_8hh_source.html#l00142">CTree::arity()</a>, <a class="el" href="tree_8hh_source.html#l00143">CTree::branch()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00059">isRec()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00070">isRef()</a>, <a class="el" href="classCTree.html#a3184c572cef05308f59e36ea2bdf537e">CTree::make()</a>, <a class="el" href="tree_8hh_source.html#l00141">CTree::node()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00054">rec()</a>, and <a class="el" href="list_8cpp_source.html#l00559">substitute()</a>.</p> <p>Referenced by <a class="el" href="recursive-tree_8cpp_source.html#l00271">substitute()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00285"></a>00285 { <a name="l00286"></a>00286 <span class="keywordtype">int</span> l; <a name="l00287"></a>00287 <a class="code" href="classCTree.html" title="A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches...">Tree</a> body; <a name="l00288"></a>00288 <a name="l00289"></a>00289 <span class="keywordflow">if</span> (t-><a class="code" href="classCTree.html#a3ce05a5474896a873ddbccd7caea2680" title="return how &quot;open&quot; is a tree in terms of free variables">aperture</a>()<level) { <a name="l00290"></a>00290 <span class="comment">// fprintf(stderr, "aperture %d < level %d !!\n", t->aperture(), level);</span> <a name="l00291"></a>00291 <span class="keywordflow">return</span> t; <a name="l00292"></a>00292 } <a name="l00293"></a>00293 <span class="keywordflow">if</span> (<a class="code" href="recursive-tree_8cpp.html#a3a07093d0e487cc733adab39f6a18e78" title="is t a de Bruijn recursive reference">isRef</a>(t,l)) <span class="keywordflow">return</span> (l == level) ? <span class="keywordtype">id</span> : t; <a name="l00294"></a>00294 <span class="keywordflow">if</span> (<a class="code" href="recursive-tree_8cpp.html#a4cb44c6e41e21da830e748dc35f16ba5" title="is t a de Bruijn recursive tree">isRec</a>(t,body)) <span class="keywordflow">return</span> <a class="code" href="recursive-tree_8cpp.html#aa598f21268aa7198407d2eb6929d09ab" title="create a de Bruijn recursive tree">rec</a>(<a class="code" href="list_8cpp.html#a40185c4c5a347dcef0ae115ebf3443d6">substitute</a>(body, level+1, <span class="keywordtype">id</span>)); <a name="l00295"></a>00295 <a name="l00296"></a>00296 <span class="keywordtype">int</span> ar = t-><a class="code" href="classCTree.html#a68f2be5e845407bc956a2893fe6f0d03" title="return the number of branches (subtrees) of a tree">arity</a>(); <a name="l00297"></a>00297 <span class="comment">//Tree br[4];</span> <a name="l00298"></a>00298 <a class="code" href="tree_8hh.html#ad425127c677ce9f82f03e6dc57a87937">tvec</a> br(ar); <a name="l00299"></a>00299 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < ar; i++) { <a name="l00300"></a>00300 br[i] = <a class="code" href="list_8cpp.html#a40185c4c5a347dcef0ae115ebf3443d6">substitute</a>(t-><a class="code" href="classCTree.html#a06c1513b23dc7b0d9da9c930c6dc43c5" title="return the ith branch (subtree) of a tree">branch</a>(i), level, id); <a name="l00301"></a>00301 } <a name="l00302"></a>00302 <span class="comment">//return CTree::make(t->node(), ar, br);</span> <a name="l00303"></a>00303 <span class="keywordflow">return</span> <a class="code" href="classCTree.html#a3184c572cef05308f59e36ea2bdf537e" title="return a new tree or an existing equivalent one">CTree::make</a>(t-><a class="code" href="classCTree.html#a8de786fec095c8304b9ffa7c1c316237" title="return the content of the tree">node</a>(), br); <a name="l00304"></a>00304 } </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="ab896f65486e6d80d4440721f2f89ff96"></a><!-- doxytag: member="recursive-tree.cpp::deBruijn2Sym" ref="ab896f65486e6d80d4440721f2f89ff96" args="(Tree t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCTree.html">Tree</a> deBruijn2Sym </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00223">223</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="recursive-tree_8cpp_source.html#l00235">calcDeBruijn2Sym()</a>, <a class="el" href="tree_8hh_source.html#l00160">CTree::getProperty()</a>, <a class="el" href="tree_8hh_source.html#l00225">isClosed()</a>, and <a class="el" href="tree_8hh_source.html#l00158">CTree::setProperty()</a>.</p> <p>Referenced by <a class="el" href="recursive-tree_8cpp_source.html#l00235">calcDeBruijn2Sym()</a>, <a class="el" href="doc_8cpp_source.html#l00645">mapPrepareEqSig()</a>, and <a class="el" href="compile__scal_8cpp_source.html#l00096">ScalarCompiler::prepare()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00224"></a>00224 { <a name="l00225"></a>00225 assert(<a class="code" href="tree_8hh.html#a447a569f359244de90fa72c2efdb8be5" title="t dont contain free de Bruijn ref">isClosed</a>(t)); <a name="l00226"></a>00226 <a class="code" href="classCTree.html" title="A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches...">Tree</a> t2 = t-><a class="code" href="classCTree.html#a902b48b83db587f14dbd31999c0f715f">getProperty</a>(<a class="code" href="recursive-tree_8cpp.html#ade56faf8037fbd6fa55fe1ccc21c74f0">DEBRUIJN2SYM</a>); <a name="l00227"></a>00227 <a name="l00228"></a>00228 <span class="keywordflow">if</span> (!t2) { <a name="l00229"></a>00229 t2 = <a class="code" href="recursive-tree_8cpp.html#ab814aecf89e4591fd9a23f4ab145f8f0">calcDeBruijn2Sym</a>(t); <a name="l00230"></a>00230 t-><a class="code" href="classCTree.html#ac628a2ad0d2a21de584e3bca291bd38c">setProperty</a>(<a class="code" href="recursive-tree_8cpp.html#ade56faf8037fbd6fa55fe1ccc21c74f0">DEBRUIJN2SYM</a>, t2); <a name="l00231"></a>00231 } <a name="l00232"></a>00232 <span class="keywordflow">return</span> t2; <a name="l00233"></a>00233 } </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="ab3b1a1c54e332dd20740b9e27d1c27ba"></a><!-- doxytag: member="recursive-tree.cpp::isRec" ref="ab3b1a1c54e332dd20740b9e27d1c27ba" args="(Tree t, Tree &var, Tree &body)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool isRec </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> & </td> <td class="paramname"> <em>var</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> & </td> <td class="paramname"> <em>body</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>is t a symbolic recursive tree </p> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00095">95</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="tree_8hh_source.html#l00160">CTree::getProperty()</a>, and <a class="el" href="tree_8cpp_source.html#l00319">isTree()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00096"></a>00096 { <a name="l00097"></a>00097 <span class="keywordflow">if</span> (<a class="code" href="tree_8cpp.html#a06be972e0437c7c09e8a1274586fe176">isTree</a>(t, <a class="code" href="recursive-tree_8cpp.html#a472adc9dd3732243140a081d93b744db">SYMREC</a>, var)) { <a name="l00098"></a>00098 body = t-><a class="code" href="classCTree.html#a902b48b83db587f14dbd31999c0f715f">getProperty</a>(<a class="code" href="recursive-tree_8cpp.html#aa589b365baa26873e9e1f76f7482c3fc">RECDEF</a>); <a name="l00099"></a>00099 <span class="keywordflow">return</span> <span class="keyword">true</span>; <a name="l00100"></a>00100 } <span class="keywordflow">else</span> { <a name="l00101"></a>00101 <span class="keywordflow">return</span> <span class="keyword">false</span>; <a name="l00102"></a>00102 } <a name="l00103"></a>00103 } </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="a4cb44c6e41e21da830e748dc35f16ba5"></a><!-- doxytag: member="recursive-tree.cpp::isRec" ref="a4cb44c6e41e21da830e748dc35f16ba5" args="(Tree t, Tree &body)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool isRec </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> & </td> <td class="paramname"> <em>body</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>is t a de Bruijn recursive tree </p> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00059">59</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="tree_8cpp_source.html#l00319">isTree()</a>.</p> <p>Referenced by <a class="el" href="recursivness_8cpp_source.html#l00081">annotate()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00235">calcDeBruijn2Sym()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00182">calcliftn()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00284">calcsubstitute()</a>, <a class="el" href="privatise_8cpp_source.html#l00102">computePrivatisation()</a>, <a class="el" href="doc__compile_8cpp_source.html#l00878">DocCompiler::generateRecProj()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00766">ScalarCompiler::generateRecProj()</a>, <a class="el" href="subsignals_8cpp_source.html#l00010">getSubSignals()</a>, <a class="el" href="sigorderrules_8cpp_source.html#l00084">infereSigOrder()</a>, <a class="el" href="sigtyperules_8cpp_source.html#l00275">infereSigType()</a>, <a class="el" href="ppsig_8cpp_source.html#l00178">ppsig::print()</a>, <a class="el" href="sigprint_8cpp_source.html#l00085">printSignal()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00338">recomputeAperture()</a>, <a class="el" href="simplify_8cpp_source.html#l00154">sigMap()</a>, and <a class="el" href="sigvisitor_8cpp_source.html#l00017">sigvisitor::visit()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00060"></a>00060 { <a name="l00061"></a>00061 <span class="keywordflow">return</span> <a class="code" href="tree_8cpp.html#a06be972e0437c7c09e8a1274586fe176">isTree</a>(t, <a class="code" href="recursive-tree_8cpp.html#a079e594f132e158b05af96450deaeeb5">DEBRUIJN</a>, body); <a name="l00062"></a>00062 } </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="a3bbed7d6c3e15b41db4eb3bab6ba5f1a"></a><!-- doxytag: member="recursive-tree.cpp::isRef" ref="a3bbed7d6c3e15b41db4eb3bab6ba5f1a" args="(Tree t, Tree &v)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool isRef </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> & </td> <td class="paramname"> <em>v</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>is t a symbolic recursive reference </p> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00111">111</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="tree_8cpp_source.html#l00319">isTree()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00112"></a>00112 { <a name="l00113"></a>00113 <span class="keywordflow">return</span> <a class="code" href="tree_8cpp.html#a06be972e0437c7c09e8a1274586fe176">isTree</a>(t, <a class="code" href="recursive-tree_8cpp.html#a472adc9dd3732243140a081d93b744db">SYMREC</a>, v); <a name="l00114"></a>00114 } </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="a3a07093d0e487cc733adab39f6a18e78"></a><!-- doxytag: member="recursive-tree.cpp::isRef" ref="a3a07093d0e487cc733adab39f6a18e78" args="(Tree t, int &level)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool isRef </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int & </td> <td class="paramname"> <em>level</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>is t a de Bruijn recursive reference </p> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00070">70</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="node_8hh_source.html#l00120">isInt()</a>, <a class="el" href="tree_8cpp_source.html#l00319">isTree()</a>, and <a class="el" href="tree_8hh_source.html#l00141">CTree::node()</a>.</p> <p>Referenced by <a class="el" href="recursive-tree_8cpp_source.html#l00235">calcDeBruijn2Sym()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00182">calcliftn()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00284">calcsubstitute()</a>, <a class="el" href="sigorderrules_8cpp_source.html#l00084">infereSigOrder()</a>, <a class="el" href="ppsig_8cpp_source.html#l00178">ppsig::print()</a>, <a class="el" href="sigprint_8cpp_source.html#l00085">printSignal()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00338">recomputeAperture()</a>, and <a class="el" href="sigvisitor_8cpp_source.html#l00017">sigvisitor::visit()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00071"></a>00071 { <a name="l00072"></a>00072 <a class="code" href="classCTree.html" title="A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches...">Tree</a> u; <a name="l00073"></a>00073 <a name="l00074"></a>00074 <span class="keywordflow">if</span> (<a class="code" href="tree_8cpp.html#a06be972e0437c7c09e8a1274586fe176">isTree</a>(t, <a class="code" href="recursive-tree_8cpp.html#a0a0bb7149e09722eb48442f920afa94a">DEBRUIJNREF</a>, u)) { <a name="l00075"></a>00075 <span class="keywordflow">return</span> <a class="code" href="node_8hh.html#a8c9b968ac68f6cac1c361002da8afe99">isInt</a>(u-><a class="code" href="classCTree.html#a8de786fec095c8304b9ffa7c1c316237" title="return the content of the tree">node</a>(), &level); <a name="l00076"></a>00076 } <span class="keywordflow">else</span> { <a name="l00077"></a>00077 <span class="keywordflow">return</span> <span class="keyword">false</span>; <a name="l00078"></a>00078 } <a name="l00079"></a>00079 } </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="abf6659f19a0e48b81af0b0fb39ede302"></a><!-- doxytag: member="recursive-tree.cpp::lift" ref="abf6659f19a0e48b81af0b0fb39ede302" args="(Tree t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCTree.html">Tree</a> lift </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00149">149</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="recursive-tree_8cpp_source.html#l00169">liftn()</a>.</p> <p>Referenced by <a class="el" href="propagate_8cpp_source.html#l00143">listLift()</a>, and <a class="el" href="propagate_8cpp_source.html#l00196">propagate()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00149"></a>00149 { <span class="keywordflow">return</span> <a class="code" href="recursive-tree_8cpp.html#a170b606017c8f6e443ad39f1dbb9ca8d">liftn</a>(t, 1); } </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="a170b606017c8f6e443ad39f1dbb9ca8d"></a><!-- doxytag: member="recursive-tree.cpp::liftn" ref="a170b606017c8f6e443ad39f1dbb9ca8d" args="(Tree t, int threshold)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classCTree.html">Tree</a> liftn </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>threshold</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00169">169</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="recursive-tree_8cpp_source.html#l00182">calcliftn()</a>, <a class="el" href="tree_8hh_source.html#l00160">CTree::getProperty()</a>, <a class="el" href="tree_8hh_source.html#l00158">CTree::setProperty()</a>, and <a class="el" href="tree_8hh_source.html#l00173">tree()</a>.</p> <p>Referenced by <a class="el" href="recursive-tree_8cpp_source.html#l00182">calcliftn()</a>, and <a class="el" href="recursive-tree_8cpp_source.html#l00149">lift()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00170"></a>00170 { <a name="l00171"></a>00171 <a class="code" href="classCTree.html" title="A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches...">Tree</a> L = <a class="code" href="tree_8hh.html#a61c13e9361cfa80bbb3cd6ce60a8f595">tree</a>( <a class="code" href="classNode.html" title="Class Node = (type x (int + double + Sym + void*)).">Node</a>(<a class="code" href="recursive-tree_8cpp.html#ae07d18a347a7116066f3b79da384c34c">SYMLIFTN</a>), <a class="code" href="tree_8hh.html#a61c13e9361cfa80bbb3cd6ce60a8f595">tree</a>(<a class="code" href="classNode.html" title="Class Node = (type x (int + double + Sym + void*)).">Node</a>(threshold)) ); <a name="l00172"></a>00172 <a class="code" href="classCTree.html" title="A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches...">Tree</a> t2 = t-><a class="code" href="classCTree.html#a902b48b83db587f14dbd31999c0f715f">getProperty</a>(L); <a name="l00173"></a>00173 <a name="l00174"></a>00174 <span class="keywordflow">if</span> (!t2) { <a name="l00175"></a>00175 t2 = <a class="code" href="recursive-tree_8cpp.html#a50c168abcbcc4183f530f5e0c49f91dd">calcliftn</a>(t, threshold); <a name="l00176"></a>00176 t-><a class="code" href="classCTree.html#ac628a2ad0d2a21de584e3bca291bd38c">setProperty</a>(L, t2); <a name="l00177"></a>00177 } <a name="l00178"></a>00178 <span class="keywordflow">return</span> t2; <a name="l00179"></a>00179 <a name="l00180"></a>00180 } </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="a3ab4f44f961339b489f4a6289e8c6150"></a><!-- doxytag: member="recursive-tree.cpp::markOpen" ref="a3ab4f44f961339b489f4a6289e8c6150" args="(Tree t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void markOpen </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em></td> <td> ) </td> <td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00328">328</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="tree_8hh_source.html#l00145">CTree::aperture()</a>, <a class="el" href="tree_8hh_source.html#l00142">CTree::arity()</a>, <a class="el" href="tree_8hh_source.html#l00143">CTree::branch()</a>, and <a class="el" href="tree_8hh_source.html#l00146">CTree::setAperture()</a>.</p> <p>Referenced by <a class="el" href="recursive-tree_8cpp_source.html#l00320">updateAperture()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00329"></a>00329 { <a name="l00330"></a>00330 <span class="keywordflow">if</span> (t-><a class="code" href="classCTree.html#a3ce05a5474896a873ddbccd7caea2680" title="return how &quot;open&quot; is a tree in terms of free variables">aperture</a>() == INT_MAX) <span class="keywordflow">return</span>; <a name="l00331"></a>00331 t-><a class="code" href="classCTree.html#a43dfbeab91c992660762d3d6783baff7" title="modify the aperture of a tree">setAperture</a>(INT_MAX); <a name="l00332"></a>00332 <span class="keywordtype">int</span> ar = t-><a class="code" href="classCTree.html#a68f2be5e845407bc956a2893fe6f0d03" title="return the number of branches (subtrees) of a tree">arity</a>(); <a name="l00333"></a>00333 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < ar; i++) { <a name="l00334"></a>00334 <a class="code" href="recursive-tree_8cpp.html#a3ab4f44f961339b489f4a6289e8c6150">markOpen</a>(t-><a class="code" href="classCTree.html#a06c1513b23dc7b0d9da9c930c6dc43c5" title="return the ith branch (subtree) of a tree">branch</a>(i)); <a name="l00335"></a>00335 } <a name="l00336"></a>00336 } </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="a75385568fda3ed8a657985c612f2b2f7"></a><!-- doxytag: member="recursive-tree.cpp::orderof" ref="a75385568fda3ed8a657985c612f2b2f7" args="(Tree t, Env *p)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int orderof </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structEnv.html">Env</a> * </td> <td class="paramname"> <em>p</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00369">369</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="recursive-tree_8cpp_source.html#l00312">Env::fNext</a>, and <a class="el" href="recursive-tree_8cpp_source.html#l00312">Env::fTree</a>.</p> <p>Referenced by <a class="el" href="recursive-tree_8cpp_source.html#l00338">recomputeAperture()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00370"></a>00370 { <a name="l00371"></a>00371 <span class="keywordflow">if</span> (p == NULL) <span class="keywordflow">return</span> 0; <a name="l00372"></a>00372 <span class="keywordflow">if</span> (t == p-><a class="code" href="structEnv.html#a5c54d61f82dc5d0e9f8fd642ba7446ff">fTree</a>) <span class="keywordflow">return</span> 1; <a name="l00373"></a>00373 <a name="l00374"></a>00374 <span class="keywordtype">int</span> pos = 1; <a name="l00375"></a>00375 <span class="keywordflow">while</span> (p != NULL) { <a name="l00376"></a>00376 <span class="keywordflow">if</span> (t == p-><a class="code" href="structEnv.html#a5c54d61f82dc5d0e9f8fd642ba7446ff">fTree</a>) <span class="keywordflow">return</span> pos; <a name="l00377"></a>00377 p = p-><a class="code" href="structEnv.html#a454d9ddd80ca67afeebeff609f79701b">fNext</a>; <a name="l00378"></a>00378 pos++; <a name="l00379"></a>00379 } <a name="l00380"></a>00380 <span class="keywordflow">return</span> 0; <a name="l00381"></a>00381 } </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="a440972bf04fd45479e2b35d0c00bb840"></a><!-- doxytag: member="recursive-tree.cpp::printSignal" ref="a440972bf04fd45479e2b35d0c00bb840" args="(Tree sig, FILE *out, int prec=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void printSignal </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>sig</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">FILE * </td> <td class="paramname"> <em>out</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>prec</em> = <code>0</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sigprint_8cpp_source.html#l00085">85</a> of file <a class="el" href="sigprint_8cpp_source.html">sigprint.cpp</a>.</p> <p>References <a class="el" href="list_8hh_source.html#l00133">hd()</a>, <a class="el" href="list_8hh_source.html#l00138">isList()</a>, <a class="el" href="signals_8cpp_source.html#l00151">isProj()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00059">isRec()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00070">isRef()</a>, <a class="el" href="signals_8cpp_source.html#l00286">isSigAttach()</a>, <a class="el" href="signals_8cpp_source.html#l00126">isSigBinOp()</a>, <a class="el" href="signals_8cpp_source.html#l00058">isSigDelay1()</a>, <a class="el" href="signals_8cpp_source.html#l00107">isSigDocAccessTbl()</a>, <a class="el" href="signals_8cpp_source.html#l00099">isSigDocConstantTbl()</a>, <a class="el" href="signals_8cpp_source.html#l00103">isSigDocWriteTbl()</a>, <a class="el" href="signals_8cpp_source.html#l00062">isSigFixDelay()</a>, <a class="el" href="signals_8cpp_source.html#l00187">isSigFloatCast()</a>, <a class="el" href="signals_8cpp_source.html#l00091">isSigGen()</a>, <a class="el" href="signals_8cpp_source.html#l00048">isSigInput()</a>, <a class="el" href="signals_8cpp_source.html#l00041">isSigInt()</a>, <a class="el" href="signals_8cpp_source.html#l00184">isSigIntCast()</a>, <a class="el" href="signals_8cpp_source.html#l00052">isSigOutput()</a>, <a class="el" href="signals_8cpp_source.html#l00066">isSigPrefix()</a>, <a class="el" href="signals_8cpp_source.html#l00077">isSigRDTbl()</a>, <a class="el" href="signals_8cpp_source.html#l00044">isSigReal()</a>, <a class="el" href="signals_8cpp_source.html#l00085">isSigTable()</a>, <a class="el" href="signals_8cpp_source.html#l00081">isSigWRTbl()</a>, <a class="el" href="list_8cpp_source.html#l00154">print()</a>, <a class="el" href="sigprint_8cpp_source.html#l00085">printSignal()</a>, and <a class="el" href="list_8hh_source.html#l00134">tl()</a>.</p> <p>Referenced by <a class="el" href="recursive-tree_8cpp_source.html#l00235">calcDeBruijn2Sym()</a>, <a class="el" href="compile__scal_8cpp_source.html#l00227">ScalarCompiler::generateCode()</a>, <a class="el" href="main_8cpp_source.html#l00475">main()</a>, and <a class="el" href="sigprint_8cpp_source.html#l00085">printSignal()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00086"></a>00086 { <a name="l00087"></a>00087 <span class="keywordtype">int</span> i; <a name="l00088"></a>00088 <span class="keywordtype">double</span> r; <a name="l00089"></a>00089 <a class="code" href="classCTree.html" title="A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches...">Tree</a> x, y, z, u, le, id; <a name="l00090"></a>00090 <a name="l00091"></a>00091 <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a75cc925deac1e031e75ae72271dd5995">isSigInt</a>(sig, &i) ) { fprintf(out, <span class="stringliteral">"%d"</span>, i); } <a name="l00092"></a>00092 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a305497ed8593020624204f9d359743f2">isSigReal</a>(sig, &r) ) { fprintf(out, <span class="stringliteral">"%f"</span>, r); } <a name="l00093"></a>00093 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a38254d67a0541d98c6097fd51b22ea45">isSigInput</a>(sig, &i) ) { fprintf(out, <span class="stringliteral">"IN%d"</span>, i); } <a name="l00094"></a>00094 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a1415deb58619ab50a536d7f2ce425f22">isSigOutput</a>(sig, &i, x) ) { fprintf(out, <span class="stringliteral">"OUT%d := "</span>, i); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x, out, 0); } <a name="l00095"></a>00095 <a name="l00096"></a>00096 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a8705584c3c319be54be73dc391d25634">isSigBinOp</a>(sig, &i, x, y) ) { <a name="l00097"></a>00097 <span class="keywordflow">if</span> (prec > <a class="code" href="sigprint_8cpp.html#a2929d022df4523fdfeb4e74c22f2969e">binopprec</a>[i]) fputs(<span class="stringliteral">"("</span>, out); <a name="l00098"></a>00098 <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,<a class="code" href="sigprint_8cpp.html#a2929d022df4523fdfeb4e74c22f2969e">binopprec</a>[i]); fputs(<a class="code" href="sigprint_8cpp.html#a53ad8cf0a6c72175f512aff5fcda1c26">binopname</a>[i], out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y, out, <a class="code" href="sigprint_8cpp.html#a2929d022df4523fdfeb4e74c22f2969e">binopprec</a>[i]); <a name="l00099"></a>00099 <span class="keywordflow">if</span> (prec > <a class="code" href="sigprint_8cpp.html#a2929d022df4523fdfeb4e74c22f2969e">binopprec</a>[i]) fputs(<span class="stringliteral">")"</span>, out); <a name="l00100"></a>00100 } <a name="l00101"></a>00101 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a0899d7e2a69a467b0dcf62242397367f">isSigDelay1</a>(sig, x) ) { fputs(<span class="stringliteral">"mem("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputs(<span class="stringliteral">")"</span>, out); } <a name="l00102"></a>00102 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a18895c816779682006a84aede438af29">isSigPrefix</a>(sig, x, y) ) { fputs(<span class="stringliteral">"prefix("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputs(<span class="stringliteral">","</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y,out,0); fputs(<span class="stringliteral">")"</span>, out); } <a name="l00103"></a>00103 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#ad717966fe25735c5cf799e04338192b4">isSigAttach</a>(sig, x, y) ) { fputs(<span class="stringliteral">"attach("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputs(<span class="stringliteral">","</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y,out,0); fputs(<span class="stringliteral">")"</span>, out); } <a name="l00104"></a>00104 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#af55cdefee258834b3b8f6c070d4970c9">isSigFixDelay</a>(sig, x, y) ) { <a name="l00105"></a>00105 <span class="keywordflow">if</span> (prec > 4) fputs(<span class="stringliteral">"("</span>, out); <a name="l00106"></a>00106 <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,4); fputs(<span class="stringliteral">"@"</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y, out, 4); <a name="l00107"></a>00107 <span class="keywordflow">if</span> (prec > 4) fputs(<span class="stringliteral">")"</span>, out); <a name="l00108"></a>00108 } <a name="l00109"></a>00109 <a name="l00110"></a>00110 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a9b54e9177bb3726e06700649c3e5c05d">isProj</a>(sig, &i, x) ) { <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,prec); fprintf(out, <span class="stringliteral">"#%d"</span>, i); } <a name="l00111"></a>00111 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="recursive-tree_8cpp.html#a3a07093d0e487cc733adab39f6a18e78" title="is t a de Bruijn recursive reference">isRef</a>(sig, i) ) { fprintf(out, <span class="stringliteral">"$%d"</span>, i); } <a name="l00112"></a>00112 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="recursive-tree_8cpp.html#a3a07093d0e487cc733adab39f6a18e78" title="is t a de Bruijn recursive reference">isRef</a>(sig, x) ) { <a class="code" href="list_8cpp.html#a850f2e459a901e0c9908d3a3a54b306e">print</a>(x, out); } <a name="l00113"></a>00113 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="recursive-tree_8cpp.html#a4cb44c6e41e21da830e748dc35f16ba5" title="is t a de Bruijn recursive tree">isRec</a>(sig, le)) { fputs(<span class="stringliteral">"\\_."</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(le, out, prec); } <a name="l00114"></a>00114 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="recursive-tree_8cpp.html#a4cb44c6e41e21da830e748dc35f16ba5" title="is t a de Bruijn recursive tree">isRec</a>(sig, x, le)) { fputs(<span class="stringliteral">"\\"</span>, out); <a class="code" href="list_8cpp.html#a850f2e459a901e0c9908d3a3a54b306e">print</a>(x,out); fputs(<span class="stringliteral">"."</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(le, out, prec); } <a name="l00115"></a>00115 <a name="l00116"></a>00116 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#aa9b2ad7a65566fbc382d60e315b42740">isSigTable</a>(sig, <span class="keywordtype">id</span>, x, y) ) { fputs(<span class="stringliteral">"table("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputc(<span class="charliteral">','</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y,out,0); fputc(<span class="charliteral">')'</span>, out); } <a name="l00117"></a>00117 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#ab5b22110acbd38b7d4634dc94bcc8d22">isSigWRTbl</a>(sig, <span class="keywordtype">id</span>, x, y, z) ){ <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputc(<span class="charliteral">'['</span>,out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y,out,0); fputs(<span class="stringliteral">"] := ("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(z,out,0); fputc(<span class="charliteral">')'</span>, out); } <a name="l00118"></a>00118 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a9d9cbd375c200fa4e666de6ffb72dbca">isSigRDTbl</a>(sig, x, y) ) { <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputc(<span class="charliteral">'['</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y,out,0); fputc(<span class="charliteral">']'</span>, out); } <a name="l00119"></a>00119 <a name="l00120"></a>00120 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="signals_8cpp.html#a95620993ef284f3e29f20ebcc3b0a08e">isSigDocConstantTbl</a>(sig,x,y)) { fputs(<span class="stringliteral">"sigDocConstantTbl("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputc(<span class="charliteral">','</span>, out); <a name="l00121"></a>00121 <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y,out,0); fputc(<span class="charliteral">')'</span>, out); } <a name="l00122"></a>00122 <a name="l00123"></a>00123 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="signals_8cpp.html#a4d843f58a403cb0802c2255489977396">isSigDocWriteTbl</a>(sig,x,y,z,u)) { fputs(<span class="stringliteral">"sigDocWriteTbl("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputc(<span class="charliteral">','</span>, out); <a name="l00124"></a>00124 <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y,out,0); fputc(<span class="charliteral">','</span>, out); <a name="l00125"></a>00125 <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(z,out,0); fputc(<span class="charliteral">','</span>, out); <a name="l00126"></a>00126 <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(u,out,0); fputc(<span class="charliteral">')'</span>, out); } <a name="l00127"></a>00127 <a name="l00128"></a>00128 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="signals_8cpp.html#aec3b01f2f3ae693b4422142a22e4d0af">isSigDocAccessTbl</a>(sig,x,y)) { fputs(<span class="stringliteral">"sigDocAccessTbl("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputc(<span class="charliteral">','</span>, out); <a name="l00129"></a>00129 <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(y,out,0); fputc(<span class="charliteral">')'</span>, out); } <a name="l00130"></a>00130 <a name="l00131"></a>00131 <a name="l00132"></a>00132 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a771720237ca174a55a6823cc6623d602">isSigGen</a>(sig, x) ) { <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,prec); } <a name="l00133"></a>00133 <a name="l00134"></a>00134 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a3ef48f0da2ef5b8e3ee7371a1e4059ae">isSigIntCast</a>(sig, x) ) { fputs(<span class="stringliteral">"int("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputs(<span class="stringliteral">")"</span>, out); } <a name="l00135"></a>00135 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="signals_8cpp.html#a52448156d86125bbc8de23d641217de2">isSigFloatCast</a>(sig, x) ) { fputs(<span class="stringliteral">"float("</span>, out); <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(x,out,0); fputs(<span class="stringliteral">")"</span>, out); } <a name="l00136"></a>00136 <a name="l00137"></a>00137 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="list_8hh.html#a8bdd73641276e0c0f999f504348eacc1">isList</a>(sig)) { <a name="l00138"></a>00138 <span class="keywordtype">char</span> sep = <span class="charliteral">'{'</span>; <a name="l00139"></a>00139 <span class="keywordflow">do</span> { <a name="l00140"></a>00140 fputc(sep, out); <a name="l00141"></a>00141 <a class="code" href="sigprint_8cpp.html#ac996689aaeee388feb18661ff38abe01">printSignal</a>(<a class="code" href="list_8hh.html#a067ad6f83087b420a1c44e48e56be389">hd</a>(sig), out, 0); <a name="l00142"></a>00142 sep=<span class="charliteral">','</span>; <a name="l00143"></a>00143 sig = <a class="code" href="list_8hh.html#a4075748f5c7156306ec898795313a2e0">tl</a>(sig); <a name="l00144"></a>00144 } <span class="keywordflow">while</span> (<a class="code" href="list_8hh.html#a8bdd73641276e0c0f999f504348eacc1">isList</a>(sig)); <a name="l00145"></a>00145 fputc(<span class="charliteral">'}'</span>, out); <a name="l00146"></a>00146 } <a name="l00147"></a>00147 <span class="keywordflow">else</span> <a name="l00148"></a>00148 <a class="code" href="list_8cpp.html#a850f2e459a901e0c9908d3a3a54b306e">print</a>(sig, out); <a name="l00149"></a>00149 } </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="a7c0aee0a0a270646226d5cc585dd5ba9"></a><!-- doxytag: member="recursive-tree.cpp::rec" ref="a7c0aee0a0a270646226d5cc585dd5ba9" args="(Tree var, Tree body)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCTree.html">Tree</a> rec </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>var</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>body</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>create a symbolic recursive tree </p> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00088">88</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="tree_8hh_source.html#l00158">CTree::setProperty()</a>, and <a class="el" href="tree_8hh_source.html#l00173">tree()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00089"></a>00089 { <a name="l00090"></a>00090 <a class="code" href="classCTree.html" title="A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches...">Tree</a> t = <a class="code" href="tree_8hh.html#a61c13e9361cfa80bbb3cd6ce60a8f595">tree</a>(<a class="code" href="recursive-tree_8cpp.html#a472adc9dd3732243140a081d93b744db">SYMREC</a>, var); <a name="l00091"></a>00091 t-><a class="code" href="classCTree.html#ac628a2ad0d2a21de584e3bca291bd38c">setProperty</a>(<a class="code" href="recursive-tree_8cpp.html#aa589b365baa26873e9e1f76f7482c3fc">RECDEF</a>, body); <a name="l00092"></a>00092 <span class="keywordflow">return</span> t; <a name="l00093"></a>00093 } </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="aa598f21268aa7198407d2eb6929d09ab"></a><!-- doxytag: member="recursive-tree.cpp::rec" ref="aa598f21268aa7198407d2eb6929d09ab" args="(Tree body)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCTree.html">Tree</a> rec </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>body</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>create a de Bruijn recursive tree </p> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00054">54</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="tree_8hh_source.html#l00173">tree()</a>.</p> <p>Referenced by <a class="el" href="recursive-tree_8cpp_source.html#l00235">calcDeBruijn2Sym()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00182">calcliftn()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00284">calcsubstitute()</a>, <a class="el" href="privatise_8cpp_source.html#l00102">computePrivatisation()</a>, <a class="el" href="propagate_8cpp_source.html#l00196">propagate()</a>, and <a class="el" href="simplify_8cpp_source.html#l00154">sigMap()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00055"></a>00055 { <a name="l00056"></a>00056 <span class="keywordflow">return</span> <a class="code" href="tree_8hh.html#a61c13e9361cfa80bbb3cd6ce60a8f595">tree</a>(<a class="code" href="recursive-tree_8cpp.html#a079e594f132e158b05af96450deaeeb5">DEBRUIJN</a>, body); <a name="l00057"></a>00057 } </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="a9f4f307fe5880833a420d751e62779f0"></a><!-- doxytag: member="recursive-tree.cpp::recomputeAperture" ref="a9f4f307fe5880833a420d751e62779f0" args="(Tree t, Env *p)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int recomputeAperture </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structEnv.html">Env</a> * </td> <td class="paramname"> <em>p</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00338">338</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="tree_8hh_source.html#l00145">CTree::aperture()</a>, <a class="el" href="tree_8hh_source.html#l00142">CTree::arity()</a>, <a class="el" href="tree_8hh_source.html#l00143">CTree::branch()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00059">isRec()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00070">isRef()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00369">orderof()</a>, and <a class="el" href="tree_8hh_source.html#l00146">CTree::setAperture()</a>.</p> <p>Referenced by <a class="el" href="recursive-tree_8cpp_source.html#l00320">updateAperture()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00339"></a>00339 { <a name="l00340"></a>00340 <a class="code" href="classCTree.html" title="A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches...">Tree</a> var, body; <a name="l00341"></a>00341 <a name="l00342"></a>00342 <span class="keywordflow">if</span> (t-><a class="code" href="classCTree.html#a3ce05a5474896a873ddbccd7caea2680" title="return how &quot;open&quot; is a tree in terms of free variables">aperture</a>() == 0) <span class="keywordflow">return</span> 0; <a name="l00343"></a>00343 <a name="l00344"></a>00344 <span class="keywordflow">if</span> (<a class="code" href="recursive-tree_8cpp.html#a3a07093d0e487cc733adab39f6a18e78" title="is t a de Bruijn recursive reference">isRef</a>(t, var)) { <a name="l00345"></a>00345 <a name="l00346"></a>00346 <span class="keywordflow">return</span> <a class="code" href="recursive-tree_8cpp.html#a75385568fda3ed8a657985c612f2b2f7">orderof</a>(var, env); <a name="l00347"></a>00347 <a name="l00348"></a>00348 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="recursive-tree_8cpp.html#a4cb44c6e41e21da830e748dc35f16ba5" title="is t a de Bruijn recursive tree">isRec</a>(t, var, body)) { <a name="l00349"></a>00349 <a name="l00350"></a>00350 <a class="code" href="structEnv.html">Env</a> e(var,env); <a name="l00351"></a>00351 <span class="keywordtype">int</span> a = <a class="code" href="recursive-tree_8cpp.html#a9f4f307fe5880833a420d751e62779f0">recomputeAperture</a>(body, &e) - 1; <a name="l00352"></a>00352 <span class="keywordflow">if</span> (a<=0) { <span class="comment">/*print(t, stderr);*/</span> t-><a class="code" href="classCTree.html#a43dfbeab91c992660762d3d6783baff7" title="modify the aperture of a tree">setAperture</a>(0); } <a name="l00353"></a>00353 <span class="keywordflow">return</span> a; <a name="l00354"></a>00354 <a name="l00355"></a>00355 } <span class="keywordflow">else</span> { <a name="l00356"></a>00356 <span class="comment">// return max aperture of branches</span> <a name="l00357"></a>00357 <span class="keywordtype">int</span> ma = 0; <a name="l00358"></a>00358 <span class="keywordtype">int</span> ar = t-><a class="code" href="classCTree.html#a68f2be5e845407bc956a2893fe6f0d03" title="return the number of branches (subtrees) of a tree">arity</a>(); <a name="l00359"></a>00359 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i<ar; i++) { <a name="l00360"></a>00360 <span class="keywordtype">int</span> a = <a class="code" href="recursive-tree_8cpp.html#a9f4f307fe5880833a420d751e62779f0">recomputeAperture</a>(t-><a class="code" href="classCTree.html#a06c1513b23dc7b0d9da9c930c6dc43c5" title="return the ith branch (subtree) of a tree">branch</a>(i), env); <a name="l00361"></a>00361 <span class="keywordflow">if</span> (ma < a) ma = a; <a name="l00362"></a>00362 } <a name="l00363"></a>00363 <span class="keywordflow">if</span> (ma <= 0) { <span class="comment">/*print(t, stderr);*/</span> t-><a class="code" href="classCTree.html#a43dfbeab91c992660762d3d6783baff7" title="modify the aperture of a tree">setAperture</a>(0); } <a name="l00364"></a>00364 <span class="keywordflow">return</span> ma; <a name="l00365"></a>00365 } <a name="l00366"></a>00366 } </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="a125af067c9ecda063a2eace315f5ae12"></a><!-- doxytag: member="recursive-tree.cpp::ref" ref="a125af067c9ecda063a2eace315f5ae12" args="(Tree id)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCTree.html">Tree</a> ref </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>id</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>create a symbolic recursive reference </p> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00106">106</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="tree_8hh_source.html#l00173">tree()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00107"></a>00107 { <a name="l00108"></a>00108 <span class="keywordflow">return</span> <a class="code" href="tree_8hh.html#a61c13e9361cfa80bbb3cd6ce60a8f595">tree</a>(<a class="code" href="recursive-tree_8cpp.html#a472adc9dd3732243140a081d93b744db">SYMREC</a>, <span class="keywordtype">id</span>); <span class="comment">// reference to a symbolic id</span> <a name="l00109"></a>00109 } </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="ab93ecee07e77e314fe39e3199d06437a"></a><!-- doxytag: member="recursive-tree.cpp::ref" ref="ab93ecee07e77e314fe39e3199d06437a" args="(int level)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCTree.html">Tree</a> ref </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>level</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>create a de Bruijn recursive reference </p> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00064">64</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="tree_8hh_source.html#l00173">tree()</a>.</p> <p>Referenced by <a class="el" href="recursive-tree_8cpp_source.html#l00235">calcDeBruijn2Sym()</a>, <a class="el" href="recursive-tree_8cpp_source.html#l00182">calcliftn()</a>, and <a class="el" href="propagate_8cpp_source.html#l00196">propagate()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00065"></a>00065 { <a name="l00066"></a>00066 assert(level > 0); <a name="l00067"></a>00067 <span class="keywordflow">return</span> <a class="code" href="tree_8hh.html#a61c13e9361cfa80bbb3cd6ce60a8f595">tree</a>(<a class="code" href="recursive-tree_8cpp.html#a0a0bb7149e09722eb48442f920afa94a">DEBRUIJNREF</a>, <a class="code" href="tree_8hh.html#a61c13e9361cfa80bbb3cd6ce60a8f595">tree</a>(level)); <span class="comment">// reference to enclosing recursive tree starting from 1</span> <a name="l00068"></a>00068 } </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="a77cfc706306e29611ef1fd28c731ab47"></a><!-- doxytag: member="recursive-tree.cpp::substitute" ref="a77cfc706306e29611ef1fd28c731ab47" args="(Tree t, int n, Tree id)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classCTree.html">Tree</a> substitute </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>n</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>id</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00271">271</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="recursive-tree_8cpp_source.html#l00284">calcsubstitute()</a>, <a class="el" href="tree_8hh_source.html#l00160">CTree::getProperty()</a>, <a class="el" href="tree_8hh_source.html#l00158">CTree::setProperty()</a>, and <a class="el" href="tree_8hh_source.html#l00173">tree()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00272"></a>00272 { <a name="l00273"></a>00273 <a class="code" href="classCTree.html" title="A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches...">Tree</a> S = <a class="code" href="tree_8hh.html#a61c13e9361cfa80bbb3cd6ce60a8f595">tree</a>( <a class="code" href="classNode.html" title="Class Node = (type x (int + double + Sym + void*)).">Node</a>(<a class="code" href="recursive-tree_8cpp.html#a66a0ec08beb7a4574d1e7abe55c24c49">SUBSTITUTE</a>), <a class="code" href="tree_8hh.html#a61c13e9361cfa80bbb3cd6ce60a8f595">tree</a>(<a class="code" href="classNode.html" title="Class Node = (type x (int + double + Sym + void*)).">Node</a>(level)), <span class="keywordtype">id</span> ); <a name="l00274"></a>00274 <a class="code" href="classCTree.html" title="A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches...">Tree</a> t2 = t-><a class="code" href="classCTree.html#a902b48b83db587f14dbd31999c0f715f">getProperty</a>(S); <a name="l00275"></a>00275 <a name="l00276"></a>00276 <span class="keywordflow">if</span> (!t2) { <a name="l00277"></a>00277 t2 = <a class="code" href="recursive-tree_8cpp.html#a5eff39d6a3254cfe871c9efdf4426b97">calcsubstitute</a>(t, level, <span class="keywordtype">id</span>); <a name="l00278"></a>00278 t-><a class="code" href="classCTree.html#ac628a2ad0d2a21de584e3bca291bd38c">setProperty</a>(S, t2); <a name="l00279"></a>00279 } <a name="l00280"></a>00280 <span class="keywordflow">return</span> t2; <a name="l00281"></a>00281 <a name="l00282"></a>00282 } </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="ae6da444b930bc1b8eed51bd15108e5e2"></a><!-- doxytag: member="recursive-tree.cpp::updateAperture" ref="ae6da444b930bc1b8eed51bd15108e5e2" args="(Tree t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void updateAperture </td> <td>(</td> <td class="paramtype"><a class="el" href="classCTree.html">Tree</a> </td> <td class="paramname"> <em>t</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00320">320</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> <p>References <a class="el" href="recursive-tree_8cpp_source.html#l00328">markOpen()</a>, and <a class="el" href="recursive-tree_8cpp_source.html#l00338">recomputeAperture()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00321"></a>00321 { <a name="l00322"></a>00322 <a class="code" href="recursive-tree_8cpp.html#a3ab4f44f961339b489f4a6289e8c6150">markOpen</a>(t); <a name="l00323"></a>00323 <a class="code" href="recursive-tree_8cpp.html#a9f4f307fe5880833a420d751e62779f0">recomputeAperture</a>(t, NULL); <a name="l00324"></a>00324 } </pre></div></p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> </div> </p> </div> </div> <hr/><h2>Variable Documentation</h2> <a class="anchor" id="a079e594f132e158b05af96450deaeeb5"></a><!-- doxytag: member="recursive-tree.cpp::DEBRUIJN" ref="a079e594f132e158b05af96450deaeeb5" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classSymbol.html">Sym</a> <a class="el" href="recursive-tree_8cpp.html#a079e594f132e158b05af96450deaeeb5">DEBRUIJN</a> = symbol ("DEBRUIJN")</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00039">39</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> </div> </div> <a class="anchor" id="ade56faf8037fbd6fa55fe1ccc21c74f0"></a><!-- doxytag: member="recursive-tree.cpp::DEBRUIJN2SYM" ref="ade56faf8037fbd6fa55fe1ccc21c74f0" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCTree.html">Tree</a> <a class="el" href="recursive-tree_8cpp.html#ade56faf8037fbd6fa55fe1ccc21c74f0">DEBRUIJN2SYM</a> = tree(symbol("deBruijn2Sym"))</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00221">221</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> </div> </div> <a class="anchor" id="a0a0bb7149e09722eb48442f920afa94a"></a><!-- doxytag: member="recursive-tree.cpp::DEBRUIJNREF" ref="a0a0bb7149e09722eb48442f920afa94a" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classSymbol.html">Sym</a> <a class="el" href="recursive-tree_8cpp.html#a0a0bb7149e09722eb48442f920afa94a">DEBRUIJNREF</a> = symbol ("DEBRUIJNREF")</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00040">40</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> </div> </div> <a class="anchor" id="aa589b365baa26873e9e1f76f7482c3fc"></a><!-- doxytag: member="recursive-tree.cpp::RECDEF" ref="aa589b365baa26873e9e1f76f7482c3fc" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCTree.html">Tree</a> <a class="el" href="recursive-tree_8cpp.html#aa589b365baa26873e9e1f76f7482c3fc">RECDEF</a> = tree(symbol("RECDEF"))</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00085">85</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> </div> </div> <a class="anchor" id="a66a0ec08beb7a4574d1e7abe55c24c49"></a><!-- doxytag: member="recursive-tree.cpp::SUBSTITUTE" ref="a66a0ec08beb7a4574d1e7abe55c24c49" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classSymbol.html">Sym</a> <a class="el" href="recursive-tree_8cpp.html#a66a0ec08beb7a4574d1e7abe55c24c49">SUBSTITUTE</a> = symbol ("SUBSTITUTE")</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00041">41</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> </div> </div> <a class="anchor" id="ae07d18a347a7116066f3b79da384c34c"></a><!-- doxytag: member="recursive-tree.cpp::SYMLIFTN" ref="ae07d18a347a7116066f3b79da384c34c" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classSymbol.html">Sym</a> <a class="el" href="recursive-tree_8cpp.html#ae07d18a347a7116066f3b79da384c34c">SYMLIFTN</a> = symbol ("LIFTN")</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00045">45</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> </div> </div> <a class="anchor" id="a472adc9dd3732243140a081d93b744db"></a><!-- doxytag: member="recursive-tree.cpp::SYMREC" ref="a472adc9dd3732243140a081d93b744db" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classSymbol.html">Sym</a> <a class="el" href="recursive-tree_8cpp.html#a472adc9dd3732243140a081d93b744db">SYMREC</a> = symbol ("SYMREC")</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00043">43</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> </div> </div> <a class="anchor" id="a81aac32780f7a9114bc0d071e66e3b25"></a><!-- doxytag: member="recursive-tree.cpp::SYMRECREF" ref="a81aac32780f7a9114bc0d071e66e3b25" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classSymbol.html">Sym</a> <a class="el" href="recursive-tree_8cpp.html#a81aac32780f7a9114bc0d071e66e3b25">SYMRECREF</a> = symbol ("SYMRECREF")</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="recursive-tree_8cpp_source.html#l00044">44</a> of file <a class="el" href="recursive-tree_8cpp_source.html">recursive-tree.cpp</a>.</p> </div> </div> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated on Thu Apr 29 00:00:11 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>