Index: library/doc/html/classbdm_1_1datalink__buffered.html
===================================================================
--- library/doc/html/classbdm_1_1datalink__m2e.html (revision 591)
+++ library/doc/html/classbdm_1_1datalink__buffered.html (revision 608)
@@ -3,5 +3,5 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>mixpp: bdm::datalink_m2e Class Reference</title>
+<title>mixpp: bdm::datalink_buffered Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
@@ -67,69 +67,78 @@
     </ul>
   </div>
-  <div class="navpath"><b>bdm</b>::<a class="el" href="classbdm_1_1datalink__m2e.html">datalink_m2e</a>
+  <div class="navpath"><b>bdm</b>::<a class="el" href="classbdm_1_1datalink__buffered.html">datalink_buffered</a>
   </div>
 </div>
 <div class="contents">
-<h1>bdm::datalink_m2e Class Reference</h1><!-- doxytag: class="bdm::datalink_m2e" --><!-- doxytag: inherits="bdm::datalink" -->
-<p>Data link with a condition.  
+<h1>bdm::datalink_buffered Class Reference</h1><!-- doxytag: class="bdm::datalink_buffered" --><!-- doxytag: inherits="bdm::datalink_part" -->
+<p>Datalink that buffers delayed values - do not forget to call <a class="el" href="classbdm_1_1datalink__buffered.html#af137706c55891ba8a8aecc52ea96865f" title="push current data to history">step()</a>.  
 <a href="#_details">More...</a></p>
 
 <p><code>#include &lt;<a class="el" href="bdmbase_8h_source.html">bdmbase.h</a>&gt;</code></p>
 
-<p><a href="classbdm_1_1datalink__m2e-members.html">List of all members.</a></p>
+<p><a href="classbdm_1_1datalink__buffered-members.html">List of all members.</a></p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5ad951e9cf850c9bfe4e492e91a50af6"></a><!-- doxytag: member="bdm::datalink_m2e::datalink_m2e" ref="a5ad951e9cf850c9bfe4e492e91a50af6" args="()" -->
-&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink__m2e.html#a5ad951e9cf850c9bfe4e492e91a50af6">datalink_m2e</a> ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aadd918bf877c48714cff51ee4ad989b0"></a><!-- doxytag: member="bdm::datalink_m2e::set_connection" ref="aadd918bf877c48714cff51ee4ad989b0" args="(const RV &amp;rv, const RV &amp;rvc, const RV &amp;rv_up)" -->
-void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink__m2e.html#aadd918bf877c48714cff51ee4ad989b0">set_connection</a> (const <a class="el" href="classbdm_1_1RV.html">RV</a> &amp;rv, const <a class="el" href="classbdm_1_1RV.html">RV</a> &amp;rvc, const <a class="el" href="classbdm_1_1RV.html">RV</a> &amp;rv_up)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set connection between vectors. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7ba850822e3cf9a4b079afc7e7c01703"></a><!-- doxytag: member="bdm::datalink_m2e::get_cond" ref="a7ba850822e3cf9a4b079afc7e7c01703" args="(const vec &amp;val_up)" -->
-vec&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink__m2e.html#a7ba850822e3cf9a4b079afc7e7c01703">get_cond</a> (const vec &amp;val_up)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct condition. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab29bc3c7bf2a1d87e77ccaa793d097d5"></a><!-- doxytag: member="bdm::datalink_m2e::pushup_cond" ref="ab29bc3c7bf2a1d87e77ccaa793d097d5" args="(vec &amp;val_up, const vec &amp;val, const vec &amp;cond)" -->
-void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink__m2e.html#ab29bc3c7bf2a1d87e77ccaa793d097d5">pushup_cond</a> (vec &amp;val_up, const vec &amp;val, const vec &amp;cond)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy corresponding values to Up.condition. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb8337aac8329eb0ca96bfb3ff73ec67"></a><!-- doxytag: member="bdm::datalink_m2e::set_connection" ref="afb8337aac8329eb0ca96bfb3ff73ec67" args="(const RV &amp;rv, const RV &amp;rv_up)" -->
-void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink.html#afb8337aac8329eb0ca96bfb3ff73ec67">set_connection</a> (const <a class="el" href="classbdm_1_1RV.html">RV</a> &amp;rv, const <a class="el" href="classbdm_1_1RV.html">RV</a> &amp;rv_up)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af137706c55891ba8a8aecc52ea96865f"></a><!-- doxytag: member="bdm::datalink_buffered::step" ref="af137706c55891ba8a8aecc52ea96865f" args="(const vec &amp;val_up)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink__buffered.html#af137706c55891ba8a8aecc52ea96865f">step</a> (const vec &amp;val_up)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">push current data to history <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae665d66cb42862c1181645c438110a96"></a><!-- doxytag: member="bdm::datalink_buffered::pushdown" ref="ae665d66cb42862c1181645c438110a96" args="(const vec &amp;val_up)" -->
+vec&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink__buffered.html#ae665d66cb42862c1181645c438110a96">pushdown</a> (const vec &amp;val_up)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get val for myself from val of "Up". <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a681745a319728a416486df38aacd579f"></a><!-- doxytag: member="bdm::datalink_buffered::filldown" ref="a681745a319728a416486df38aacd579f" args="(const vec &amp;val_up, vec &amp;val_down)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink__buffered.html#a681745a319728a416486df38aacd579f">filldown</a> (const vec &amp;val_up, vec &amp;val_down)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get val for vector val_down from val of "Up". <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aadefa427312905425ebab8531da1846a"></a><!-- doxytag: member="bdm::datalink_buffered::set_connection" ref="aadefa427312905425ebab8531da1846a" args="(const RV &amp;rv, const RV &amp;rv_up)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink__buffered.html#aadefa427312905425ebab8531da1846a">set_connection</a> (const <a class="el" href="classbdm_1_1RV.html">RV</a> &amp;rv, const <a class="el" href="classbdm_1_1RV.html">RV</a> &amp;rv_up)</td></tr>
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set connection, rv must be fully present in rv_up <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a724486a37002e7a3a73366c3af9b82ad"></a><!-- doxytag: member="bdm::datalink_m2e::set_connection" ref="a724486a37002e7a3a73366c3af9b82ad" args="(int ds, int us, const ivec &amp;upind)" -->
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a724486a37002e7a3a73366c3af9b82ad"></a><!-- doxytag: member="bdm::datalink_buffered::set_connection" ref="a724486a37002e7a3a73366c3af9b82ad" args="(int ds, int us, const ivec &amp;upind)" -->
 void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink.html#a724486a37002e7a3a73366c3af9b82ad">set_connection</a> (int ds, int us, const ivec &amp;upind)</td></tr>
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set connection using indices <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b5368c3899eed2f670d09142c2548e5"></a><!-- doxytag: member="bdm::datalink_m2e::pushdown" ref="a5b5368c3899eed2f670d09142c2548e5" args="(const vec &amp;val_up)" -->
-vec&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink.html#a5b5368c3899eed2f670d09142c2548e5">pushdown</a> (const vec &amp;val_up)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get val for myself from val of "Up". <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a610e966f2edb1fcd6a5b28267c571793"></a><!-- doxytag: member="bdm::datalink_m2e::pushup" ref="a610e966f2edb1fcd6a5b28267c571793" args="(vec &amp;val_up, const vec &amp;val)" -->
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a610e966f2edb1fcd6a5b28267c571793"></a><!-- doxytag: member="bdm::datalink_buffered::pushup" ref="a610e966f2edb1fcd6a5b28267c571793" args="(vec &amp;val_up, const vec &amp;val)" -->
 void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink.html#a610e966f2edb1fcd6a5b28267c571793">pushup</a> (vec &amp;val_up, const vec &amp;val)</td></tr>
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fill val of "Up" by my pieces. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a340c5a253544a1dc2fd87932a5341c32"></a><!-- doxytag: member="bdm::datalink_buffered::_upsize" ref="a340c5a253544a1dc2fd87932a5341c32" args="()" -->
+int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink.html#a340c5a253544a1dc2fd87932a5341c32">_upsize</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">access functions <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8f0cce4477e906f3090bb803e06d8698"></a><!-- doxytag: member="bdm::datalink_buffered::_downsize" ref="a8f0cce4477e906f3090bb803e06d8698" args="()" -->
+int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink.html#a8f0cce4477e906f3090bb803e06d8698">_downsize</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">access functions <br/></td></tr>
 <tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3fb26525e0bfa7932a37c5cd404801f9"></a><!-- doxytag: member="bdm::datalink_m2e::condsize" ref="a3fb26525e0bfa7932a37c5cd404801f9" args="" -->
-int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink__m2e.html#a3fb26525e0bfa7932a37c5cd404801f9">condsize</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remember how long cond should be. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a43fe3e2d7aa04134053ec15793722783"></a><!-- doxytag: member="bdm::datalink_m2e::v2c_up" ref="a43fe3e2d7aa04134053ec15793722783" args="" -->
-ivec&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink__m2e.html#a43fe3e2d7aa04134053ec15793722783">v2c_up</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">upper_val-to-local_cond link, indices of the upper val <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9e0048d87bda78e9b8d38761440c7abc"></a><!-- doxytag: member="bdm::datalink_m2e::v2c_lo" ref="a9e0048d87bda78e9b8d38761440c7abc" args="" -->
-ivec&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink__m2e.html#a9e0048d87bda78e9b8d38761440c7abc">v2c_lo</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">upper_val-to-local_cond link, indices of the local cond <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abc8ff50395fc1066a1e486dea18d987c"></a><!-- doxytag: member="bdm::datalink_m2e::downsize" ref="abc8ff50395fc1066a1e486dea18d987c" args="" -->
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa7cb8a47b88b95fde0255a041d076988"></a><!-- doxytag: member="bdm::datalink_buffered::history" ref="aa7cb8a47b88b95fde0255a041d076988" args="" -->
+vec&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink__buffered.html#aa7cb8a47b88b95fde0255a041d076988">history</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">History, ordered as <img class="formulaInl" alt="$[Up_{t-1},Up_{t-2}, \ldots]$" src="form_17.png"/>. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a211c56b68be3864d535a8b75d735ebdc"></a><!-- doxytag: member="bdm::datalink_buffered::Hrv" ref="a211c56b68be3864d535a8b75d735ebdc" args="" -->
+<a class="el" href="classbdm_1_1RV.html">RV</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink__buffered.html#a211c56b68be3864d535a8b75d735ebdc">Hrv</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">rv of the history <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa1ce2032fe5c86fa87d80baccb9aacd7"></a><!-- doxytag: member="bdm::datalink_buffered::h2v_down" ref="aa1ce2032fe5c86fa87d80baccb9aacd7" args="" -->
+ivec&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink__buffered.html#aa1ce2032fe5c86fa87d80baccb9aacd7">h2v_down</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">h2v : indeces in down <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada58df16761169992059b8cd91d070c5"></a><!-- doxytag: member="bdm::datalink_buffered::h2v_hist" ref="ada58df16761169992059b8cd91d070c5" args="" -->
+ivec&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink__buffered.html#ada58df16761169992059b8cd91d070c5">h2v_hist</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">h2v : indeces in history <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0b09e10e42212497170ed5642bce7dbc"></a><!-- doxytag: member="bdm::datalink_buffered::v2h_up" ref="a0b09e10e42212497170ed5642bce7dbc" args="" -->
+ivec&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink__buffered.html#a0b09e10e42212497170ed5642bce7dbc">v2h_up</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">v2h: indeces of up too be pushed to h <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a64f64e7e6357419240bc2b1b0749c943"></a><!-- doxytag: member="bdm::datalink_buffered::v2v_down" ref="a64f64e7e6357419240bc2b1b0749c943" args="" -->
+ivec&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink__part.html#a64f64e7e6357419240bc2b1b0749c943">v2v_down</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">indeces of values in vector downsize <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abc8ff50395fc1066a1e486dea18d987c"></a><!-- doxytag: member="bdm::datalink_buffered::downsize" ref="abc8ff50395fc1066a1e486dea18d987c" args="" -->
 int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c">downsize</a></td></tr>
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remember how long val should be. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f0d0af6848114d96108d3a6af25a045"></a><!-- doxytag: member="bdm::datalink_m2e::upsize" ref="a0f0d0af6848114d96108d3a6af25a045" args="" -->
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f0d0af6848114d96108d3a6af25a045"></a><!-- doxytag: member="bdm::datalink_buffered::upsize" ref="a0f0d0af6848114d96108d3a6af25a045" args="" -->
 int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink.html#a0f0d0af6848114d96108d3a6af25a045">upsize</a></td></tr>
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remember how long val of "Up" should be. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a240b37d793c6bdc32824ed0a0541b1eb"></a><!-- doxytag: member="bdm::datalink_m2e::v2v_up" ref="a240b37d793c6bdc32824ed0a0541b1eb" args="" -->
+<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a240b37d793c6bdc32824ed0a0541b1eb"></a><!-- doxytag: member="bdm::datalink_buffered::v2v_up" ref="a240b37d793c6bdc32824ed0a0541b1eb" args="" -->
 ivec&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1datalink.html#a240b37d793c6bdc32824ed0a0541b1eb">v2v_up</a></td></tr>
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">val-to-val link, indices of the upper val <br/></td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Data link with a condition. </p>
-<hr/>The documentation for this class was generated from the following files:<ul>
+<p>Datalink that buffers delayed values - do not forget to call <a class="el" href="classbdm_1_1datalink__buffered.html#af137706c55891ba8a8aecc52ea96865f" title="push current data to history">step()</a>. </p>
+<p>Up is current data, Down is their subset with possibly delayed values </p>
+<hr/>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="bdmbase_8h_source.html">bdmbase.h</a></li>
-<li>bdmbase.cpp</li>
 </ul>
 </div>
-<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Aug 30 22:10:50 2009 for mixpp by&nbsp;
+<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Sep 8 22:11:33 2009 for mixpp by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
