| 192 |  | <a name="l00222"></a><a class="code" href="classbdm_1_1RV.html#a627222f49abc5d07e5e8aecac7708ee2">00222</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1RV.html#a627222f49abc5d07e5e8aecac7708ee2" title="create new RV from the current one with time shifted by given value">copy_t</a>(<span class="keywordtype">int</span> dt)<span class="keyword"> const </span>{ | 
                        | 193 |  | <a name="l00223"></a>00223                 <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> tmp=*<span class="keyword">this</span>; | 
                        | 194 |  | <a name="l00224"></a>00224                 tmp.<a class="code" href="classbdm_1_1RV.html#a449c2b692957528976c189d27236e1ba" title="Shift time by delta.">t_plus</a>(dt); | 
                        | 195 |  | <a name="l00225"></a>00225                 <span class="keywordflow">return</span> tmp; | 
                        | 196 |  | <a name="l00226"></a>00226         } | 
                        | 197 |  | <a name="l00228"></a><a class="code" href="classbdm_1_1RV.html#ac5819f71d774649412c10b8e1716be1e">00228</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1RV.html#ac5819f71d774649412c10b8e1716be1e" title="return rvs with expanded delayes and sorted in the order of:">expand_delayes</a>()<span class="keyword"> const </span>{ | 
                        | 198 |  | <a name="l00229"></a>00229                 <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> rvt = this->remove_time(); <span class="comment">//rv at t=0</span> | 
                        | 199 |  | <a name="l00230"></a>00230                 <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> tmp = rvt; | 
                        | 200 |  | <a name="l00231"></a>00231                 <span class="keywordtype">int</span> td = <a class="code" href="classbdm_1_1RV.html#a9a5c5aeeaf39299d07763377b05a8241" title="Minimum time-offset.">mint</a>(); | 
                        | 201 |  | <a name="l00232"></a>00232                 <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = -1; i >= td; i-- ) { | 
                        | 202 |  | <a name="l00233"></a>00233                         rvt.<a class="code" href="classbdm_1_1RV.html#a449c2b692957528976c189d27236e1ba" title="Shift time by delta.">t_plus</a> ( -1 ); | 
                        | 203 |  | <a name="l00234"></a>00234                         tmp.<a class="code" href="classbdm_1_1RV.html#a87841b5ee43997b79789c0c22047e224" title="Add (concat) another variable to the current one,.">add</a> ( rvt ); <span class="comment">//shift u1</span> | 
                        | 204 |  | <a name="l00235"></a>00235                 } | 
                        | 205 |  | <a name="l00236"></a>00236                 <span class="keywordflow">return</span> tmp; | 
                        | 206 |  | <a name="l00237"></a>00237         } | 
                        | 207 |  | <a name="l00239"></a>00239 | 
                        | 208 |  | <a name="l00242"></a>00242 | 
                        | 209 |  | <a name="l00244"></a>00244         <a class="code" href="classbdm_1_1str.html" title="Structure of RV, i.e. RVs expanded into a flat list of IDs, used for debugging.">str</a> <a class="code" href="classbdm_1_1RV.html#a8bdd7f4072749c7cc864b78a418ca388" title="generate str from rv, by expanding sizes">tostr</a>() <span class="keyword">const</span>; | 
                        | 210 |  | <a name="l00247"></a>00247         ivec <a class="code" href="classbdm_1_1RV.html#acbebdb5e0d30101a6eb63550ef701c55" title="when this rv is a part of bigger rv, this function returns indices of self in the...">dataind</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &crv ) <span class="keyword">const</span>; | 
                        | 211 |  | <a name="l00249"></a>00249         ivec <a class="code" href="classbdm_1_1RV.html#a0c6e3a1c54a612d2ea390c841aa5eb6f" title="same as dataind but this time crv should not be complete supperset of rv.">dataind_part</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &crv ) <span class="keyword">const</span>; | 
                        | 212 |  | <a name="l00252"></a>00252         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1RV.html#acbebdb5e0d30101a6eb63550ef701c55" title="when this rv is a part of bigger rv, this function returns indices of self in the...">dataind</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv2, ivec &selfi, ivec &rv2i ) <span class="keyword">const</span>; | 
                        | 213 |  | <a name="l00254"></a><a class="code" href="classbdm_1_1RV.html#a9a5c5aeeaf39299d07763377b05a8241">00254</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1RV.html#a9a5c5aeeaf39299d07763377b05a8241" title="Minimum time-offset.">mint</a>()<span class="keyword"> const </span>{ | 
                        | 214 |  | <a name="l00255"></a>00255                         <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1RV.html#aef6703854820bbf61736738f1bac6896" title="Vector of shifts from current time.">times</a>.length()>0 ? min (<a class="code" href="classbdm_1_1RV.html#aef6703854820bbf61736738f1bac6896" title="Vector of shifts from current time.">times</a>) : 0; | 
                        | 215 |  | <a name="l00256"></a>00256         } | 
                        | 216 |  | <a name="l00258"></a>00258 | 
                        | 217 |  | <a name="l00273"></a>00273         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1RV.html#a6564bdd36b6845a51446a192d33e1194" title="UI for class RV (description of data vectors).">from_setting</a> ( <span class="keyword">const</span> Setting &<span class="keyword">set</span> ); | 
                        | 218 |  | <a name="l00274"></a>00274 | 
                        | 219 |  | <a name="l00275"></a>00275         <span class="comment">// TODO dodelat void to_setting( Setting &set ) const;</span> | 
                        | 220 |  | <a name="l00276"></a>00276 | 
                        | 221 |  | <a name="l00278"></a>00278         <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1RV.html#aab92b361335a644df654cf7cf7e5ffc0" title="Invalidate all named RVs. Use before initializing any RV instances, with care...">clear_all</a>(); | 
                        | 222 |  | <a name="l00280"></a>00280         <span class="keywordtype">string</span> <a class="code" href="classbdm_1_1RV.html#a0743ab524c18d0c6553b29b043fd42bd" title="function for debugging RV related stuff">show_all</a>(); | 
                        | 223 |  | <a name="l00281"></a>00281 | 
                        | 224 |  | <a name="l00282"></a>00282 }; | 
                        | 225 |  | <a name="l00283"></a>00283 <a class="code" href="user__info_8h.html#a4f9de2f17e844047726487b99def99c6" title="Macro for registration of class into map of user-infos, registered class is scriptable...">UIREGISTER</a> ( RV ); | 
                        | 226 |  | <a name="l00284"></a>00284 SHAREDPTR ( RV ); | 
                        | 227 |  | <a name="l00285"></a>00285 | 
                        | 228 |  | <a name="l00287"></a>00287 RV concat ( <span class="keyword">const</span> RV &rv1, <span class="keyword">const</span> RV &rv2 ); | 
                        | 229 |  | <a name="l00288"></a>00288 | 
                        | 230 |  | <a name="l00290"></a><a class="code" href="classbdm_1_1fnc.html">00290</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1fnc.html" title="Class representing function  of variable  represented by rv.">fnc</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1root.html" title="Root class of BDM objects.">root</a> { | 
                        | 231 |  | <a name="l00291"></a>00291 <span class="keyword">protected</span>: | 
                        | 232 |  | <a name="l00293"></a><a class="code" href="classbdm_1_1fnc.html#a52156cb4a52a62d51fc7455985797a62">00293</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1fnc.html#a52156cb4a52a62d51fc7455985797a62" title="Length of the output vector.">dimy</a>; | 
                        | 233 |  | <a name="l00294"></a>00294 <span class="keyword">public</span>: | 
                        | 234 |  | <a name="l00296"></a><a class="code" href="classbdm_1_1fnc.html#a65e9fb11f6cc7884018d8f229bcabbb7">00296</a>         <a class="code" href="classbdm_1_1fnc.html#a65e9fb11f6cc7884018d8f229bcabbb7" title="default constructor">fnc</a>() {}; | 
                        | 235 |  | <a name="l00298"></a><a class="code" href="classbdm_1_1fnc.html#a6277b11d7fffc7ef8a2fa3e84ae5bad4">00298</a>         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1fnc.html#a6277b11d7fffc7ef8a2fa3e84ae5bad4" title="function evaluates numerical value of  at  cond ">eval</a> ( <span class="keyword">const</span> vec &cond ) { | 
                        | 236 |  | <a name="l00299"></a>00299                 <span class="keywordflow">return</span> vec ( 0 ); | 
                        | 237 |  | <a name="l00300"></a>00300         }; | 
                      
                        |  | 196 | <a name="l00221"></a>00221 | 
                        |  | 197 | <a name="l00223"></a>00223         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1RV.html#a6f3daf0f857fff53a1c0a445fe160966" title="Select only variables at indices ind.">operator() </a>( <span class="keywordtype">int</span> di1, <span class="keywordtype">int</span> di2 ) <span class="keyword">const</span>; | 
                        |  | 198 | <a name="l00224"></a>00224 | 
                        |  | 199 | <a name="l00226"></a>00226         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1RV.html#a449c2b692957528976c189d27236e1ba" title="Shift time by delta.">t_plus</a> ( <span class="keywordtype">int</span> delta ); | 
                        |  | 200 | <a name="l00228"></a>00228 | 
                        |  | 201 | <a name="l00231"></a>00231         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> remove_time()<span class="keyword"> const </span>{ | 
                        |  | 202 | <a name="l00232"></a>00232                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1RV.html#ae319ca900261a5005a9b4b353ec16412" title="Constructor of empty RV.">RV</a> ( unique ( <a class="code" href="classbdm_1_1RV.html#a0a9a4769ab5a322495bea0cd8091500b" title="Vector of unique IDs.">ids</a> ), dummy ); | 
                        |  | 203 | <a name="l00233"></a>00233         } | 
                        |  | 204 | <a name="l00235"></a><a class="code" href="classbdm_1_1RV.html#a627222f49abc5d07e5e8aecac7708ee2">00235</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1RV.html#a627222f49abc5d07e5e8aecac7708ee2" title="create new RV from the current one with time shifted by given value">copy_t</a>(<span class="keywordtype">int</span> dt)<span class="keyword"> const </span>{ | 
                        |  | 205 | <a name="l00236"></a>00236                 <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> tmp=*<span class="keyword">this</span>; | 
                        |  | 206 | <a name="l00237"></a>00237                 tmp.<a class="code" href="classbdm_1_1RV.html#a449c2b692957528976c189d27236e1ba" title="Shift time by delta.">t_plus</a>(dt); | 
                        |  | 207 | <a name="l00238"></a>00238                 <span class="keywordflow">return</span> tmp; | 
                        |  | 208 | <a name="l00239"></a>00239         } | 
                        |  | 209 | <a name="l00241"></a><a class="code" href="classbdm_1_1RV.html#ac5819f71d774649412c10b8e1716be1e">00241</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1RV.html#ac5819f71d774649412c10b8e1716be1e" title="return rvs with expanded delayes and sorted in the order of:">expand_delayes</a>()<span class="keyword"> const </span>{ | 
                        |  | 210 | <a name="l00242"></a>00242                 <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> rvt = this->remove_time(); <span class="comment">//rv at t=0</span> | 
                        |  | 211 | <a name="l00243"></a>00243                 <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> tmp = rvt; | 
                        |  | 212 | <a name="l00244"></a>00244                 <span class="keywordtype">int</span> td = <a class="code" href="classbdm_1_1RV.html#a9a5c5aeeaf39299d07763377b05a8241" title="Minimum time-offset.">mint</a>(); | 
                        |  | 213 | <a name="l00245"></a>00245                 <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = -1; i >= td; i-- ) { | 
                        |  | 214 | <a name="l00246"></a>00246                         rvt.<a class="code" href="classbdm_1_1RV.html#a449c2b692957528976c189d27236e1ba" title="Shift time by delta.">t_plus</a> ( -1 ); | 
                        |  | 215 | <a name="l00247"></a>00247                         tmp.<a class="code" href="classbdm_1_1RV.html#a87841b5ee43997b79789c0c22047e224" title="Add (concat) another variable to the current one,.">add</a> ( rvt ); <span class="comment">//shift u1</span> | 
                        |  | 216 | <a name="l00248"></a>00248                 } | 
                        |  | 217 | <a name="l00249"></a>00249                 <span class="keywordflow">return</span> tmp; | 
                        |  | 218 | <a name="l00250"></a>00250         } | 
                        |  | 219 | <a name="l00252"></a>00252 | 
                        |  | 220 | <a name="l00255"></a>00255 | 
                        |  | 221 | <a name="l00257"></a>00257         <a class="code" href="classbdm_1_1str.html" title="Structure of RV, i.e. RVs expanded into a flat list of IDs, used for debugging.">str</a> <a class="code" href="classbdm_1_1RV.html#a8bdd7f4072749c7cc864b78a418ca388" title="generate str from rv, by expanding sizes">tostr</a>() <span class="keyword">const</span>; | 
                        |  | 222 | <a name="l00260"></a>00260         ivec <a class="code" href="classbdm_1_1RV.html#acbebdb5e0d30101a6eb63550ef701c55" title="when this rv is a part of bigger rv, this function returns indices of self in the...">dataind</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &crv ) <span class="keyword">const</span>; | 
                        |  | 223 | <a name="l00262"></a>00262         ivec <a class="code" href="classbdm_1_1RV.html#a0c6e3a1c54a612d2ea390c841aa5eb6f" title="same as dataind but this time crv should not be complete supperset of rv.">dataind_part</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &crv ) <span class="keyword">const</span>; | 
                        |  | 224 | <a name="l00265"></a>00265         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1RV.html#acbebdb5e0d30101a6eb63550ef701c55" title="when this rv is a part of bigger rv, this function returns indices of self in the...">dataind</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv2, ivec &selfi, ivec &rv2i ) <span class="keyword">const</span>; | 
                        |  | 225 | <a name="l00267"></a><a class="code" href="classbdm_1_1RV.html#a9a5c5aeeaf39299d07763377b05a8241">00267</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1RV.html#a9a5c5aeeaf39299d07763377b05a8241" title="Minimum time-offset.">mint</a>()<span class="keyword"> const </span>{ | 
                        |  | 226 | <a name="l00268"></a>00268                         <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1RV.html#aef6703854820bbf61736738f1bac6896" title="Vector of shifts from current time.">times</a>.length()>0 ? min (<a class="code" href="classbdm_1_1RV.html#aef6703854820bbf61736738f1bac6896" title="Vector of shifts from current time.">times</a>) : 0; | 
                        |  | 227 | <a name="l00269"></a>00269         } | 
                        |  | 228 | <a name="l00271"></a>00271 | 
                        |  | 229 | <a name="l00286"></a>00286         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1RV.html#a6564bdd36b6845a51446a192d33e1194" title="UI for class RV (description of data vectors).">from_setting</a> ( <span class="keyword">const</span> Setting &<span class="keyword">set</span> ); | 
                        |  | 230 | <a name="l00287"></a>00287 | 
                        |  | 231 | <a name="l00288"></a>00288         <span class="comment">// TODO dodelat void to_setting( Setting &set ) const;</span> | 
                        |  | 232 | <a name="l00289"></a>00289 | 
                        |  | 233 | <a name="l00291"></a>00291         <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1RV.html#aab92b361335a644df654cf7cf7e5ffc0" title="Invalidate all named RVs. Use before initializing any RV instances, with care...">clear_all</a>(); | 
                        |  | 234 | <a name="l00293"></a>00293         <span class="keywordtype">string</span> <a class="code" href="classbdm_1_1RV.html#a0743ab524c18d0c6553b29b043fd42bd" title="function for debugging RV related stuff">show_all</a>(); | 
                        |  | 235 | <a name="l00294"></a>00294 | 
                        |  | 236 | <a name="l00295"></a>00295 }; | 
                        |  | 237 | <a name="l00296"></a>00296 <a class="code" href="user__info_8h.html#a4f9de2f17e844047726487b99def99c6" title="Macro for registration of class into map of user-infos, registered class is scriptable...">UIREGISTER</a> ( RV ); | 
                        |  | 238 | <a name="l00297"></a>00297 SHAREDPTR ( RV ); | 
                        |  | 239 | <a name="l00298"></a>00298 | 
                        |  | 240 | <a name="l00300"></a>00300 RV concat ( <span class="keyword">const</span> RV &rv1, <span class="keyword">const</span> RV &rv2 ); | 
            
                      
                        | 249 |  | <a name="l00315"></a><a class="code" href="classbdm_1_1epdf.html">00315</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1root.html" title="Root class of BDM objects.">root</a> { | 
                        | 250 |  | <a name="l00316"></a>00316 <span class="keyword">protected</span>: | 
                        | 251 |  | <a name="l00318"></a><a class="code" href="classbdm_1_1epdf.html#a16adac20ec7fe07e1ea0b27d917788ce">00318</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1epdf.html#a16adac20ec7fe07e1ea0b27d917788ce" title="dimension of the random variable">dim</a>; | 
                        | 252 |  | <a name="l00320"></a><a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8">00320</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8" title="Description of the random variable.">rv</a>; | 
                        | 253 |  | <a name="l00321"></a>00321 | 
                        | 254 |  | <a name="l00322"></a>00322 <span class="keyword">public</span>: | 
                        | 255 |  | <a name="l00334"></a>00334         <a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a>() : <a class="code" href="classbdm_1_1epdf.html#a16adac20ec7fe07e1ea0b27d917788ce" title="dimension of the random variable">dim</a> ( 0 ), <a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8" title="Description of the random variable.">rv</a>() {}; | 
                        | 256 |  | <a name="l00335"></a>00335         <a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a> &e ) : <a class="code" href="classbdm_1_1epdf.html#a16adac20ec7fe07e1ea0b27d917788ce" title="dimension of the random variable">dim</a> ( e.<a class="code" href="classbdm_1_1epdf.html#a16adac20ec7fe07e1ea0b27d917788ce" title="dimension of the random variable">dim</a> ), <a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8" title="Description of the random variable.">rv</a> ( e.<a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8" title="Description of the random variable.">rv</a> ) {}; | 
                        | 257 |  | <a name="l00336"></a>00336         epdf ( <span class="keyword">const</span> RV &rv0 ) : <a class="code" href="classbdm_1_1epdf.html#a16adac20ec7fe07e1ea0b27d917788ce" title="dimension of the random variable">dim</a> ( rv0._dsize() ) { | 
                        | 258 |  | <a name="l00337"></a>00337                 <a class="code" href="classbdm_1_1epdf.html#af423e28448dbb69ef4905295ec8de8ff" title="Name its rv.">set_rv</a> ( rv0 ); | 
                        | 259 |  | <a name="l00338"></a>00338         }; | 
                        | 260 |  | <a name="l00339"></a>00339         <span class="keywordtype">void</span> set_parameters ( <span class="keywordtype">int</span> dim0 ) { | 
                        | 261 |  | <a name="l00340"></a>00340                 <a class="code" href="classbdm_1_1epdf.html#a16adac20ec7fe07e1ea0b27d917788ce" title="dimension of the random variable">dim</a> = dim0; | 
                        | 262 |  | <a name="l00341"></a>00341         } | 
                        | 263 |  | <a name="l00343"></a>00343 | 
                        | 264 |  | <a name="l00346"></a>00346 | 
                        | 265 |  | <a name="l00348"></a><a class="code" href="classbdm_1_1epdf.html#a75ba57a89681a8efec488f5796c7cc1b">00348</a>         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1epdf.html#a75ba57a89681a8efec488f5796c7cc1b" title="Returns a sample,  from density .">sample</a>()<span class="keyword"> const </span>{ | 
                        | 266 |  | <a name="l00349"></a>00349                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"not implemented"</span> ); | 
                        | 267 |  | <a name="l00350"></a>00350                 <span class="keywordflow">return</span> vec(); | 
                        | 268 |  | <a name="l00351"></a>00351         } | 
                        | 269 |  | <a name="l00352"></a>00352 | 
                        | 270 |  | <a name="l00354"></a>00354         <span class="keyword">virtual</span> mat <a class="code" href="classbdm_1_1epdf.html#ab4cf45fd83cc7573ede9fe1215256058" title="Returns N samples,  from density .">sample_m</a> ( <span class="keywordtype">int</span> N ) <span class="keyword">const</span>; | 
                        | 271 |  | <a name="l00355"></a>00355 | 
                        | 272 |  | <a name="l00358"></a><a class="code" href="classbdm_1_1epdf.html#adeab266d63c236c277538867d5c3f249">00358</a>         <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classbdm_1_1epdf.html#adeab266d63c236c277538867d5c3f249" title="Compute log-probability of argument val In case the argument is out of suport return...">evallog</a> ( <span class="keyword">const</span> vec &val )<span class="keyword"> const </span>{ | 
                        | 273 |  | <a name="l00359"></a>00359                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"not implemented"</span> ); | 
                        | 274 |  | <a name="l00360"></a>00360                 <span class="keywordflow">return</span> 0.0; | 
                        | 275 |  | <a name="l00361"></a>00361         } | 
                        | 276 |  | <a name="l00362"></a>00362 | 
                        | 277 |  | <a name="l00364"></a>00364         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1epdf.html#ad08b68a5abd461f1b6519597e344caf8" title="Compute log-probability of multiple values argument val.">evallog_m</a> ( <span class="keyword">const</span> mat &Val ) <span class="keyword">const</span>; | 
                      
                        |  | 251 | <a name="l00316"></a><a class="code" href="classbdm_1_1fnc.html#a0786e40fade2663a70d654c1dda5d73e">00316</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1fnc.html#a0786e40fade2663a70d654c1dda5d73e" title="function substitutes given value into an appropriate position">condition</a> ( <span class="keyword">const</span> vec &val ) {}; | 
                        |  | 252 | <a name="l00317"></a>00317 | 
                        |  | 253 | <a name="l00319"></a><a class="code" href="classbdm_1_1fnc.html#a083832294da9d1e40804158b979c4341">00319</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1fnc.html#a083832294da9d1e40804158b979c4341" title="access function">dimension</a>()<span class="keyword"> const </span>{ | 
                        |  | 254 | <a name="l00320"></a>00320                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1fnc.html#a52156cb4a52a62d51fc7455985797a62" title="Length of the output vector.">dimy</a>; | 
                        |  | 255 | <a name="l00321"></a>00321         } | 
                        |  | 256 | <a name="l00322"></a>00322 }; | 
                        |  | 257 | <a name="l00323"></a>00323 | 
                        |  | 258 | <a name="l00324"></a>00324 <span class="keyword">class </span>mpdf; | 
                        |  | 259 | <a name="l00325"></a>00325 | 
                        |  | 260 | <a name="l00327"></a>00327 | 
                        |  | 261 | <a name="l00328"></a><a class="code" href="classbdm_1_1epdf.html">00328</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1root.html" title="Root class of BDM objects.">root</a> { | 
                        |  | 262 | <a name="l00329"></a>00329 <span class="keyword">protected</span>: | 
                        |  | 263 | <a name="l00331"></a><a class="code" href="classbdm_1_1epdf.html#a16adac20ec7fe07e1ea0b27d917788ce">00331</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1epdf.html#a16adac20ec7fe07e1ea0b27d917788ce" title="dimension of the random variable">dim</a>; | 
                        |  | 264 | <a name="l00333"></a><a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8">00333</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8" title="Description of the random variable.">rv</a>; | 
                        |  | 265 | <a name="l00334"></a>00334 | 
                        |  | 266 | <a name="l00335"></a>00335 <span class="keyword">public</span>: | 
                        |  | 267 | <a name="l00347"></a>00347         <a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a>() : <a class="code" href="classbdm_1_1epdf.html#a16adac20ec7fe07e1ea0b27d917788ce" title="dimension of the random variable">dim</a> ( 0 ), <a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8" title="Description of the random variable.">rv</a>() {}; | 
                        |  | 268 | <a name="l00348"></a>00348         <a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a> &e ) : <a class="code" href="classbdm_1_1epdf.html#a16adac20ec7fe07e1ea0b27d917788ce" title="dimension of the random variable">dim</a> ( e.<a class="code" href="classbdm_1_1epdf.html#a16adac20ec7fe07e1ea0b27d917788ce" title="dimension of the random variable">dim</a> ), <a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8" title="Description of the random variable.">rv</a> ( e.<a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8" title="Description of the random variable.">rv</a> ) {}; | 
                        |  | 269 | <a name="l00349"></a>00349         epdf ( <span class="keyword">const</span> RV &rv0 ) : <a class="code" href="classbdm_1_1epdf.html#a16adac20ec7fe07e1ea0b27d917788ce" title="dimension of the random variable">dim</a> ( rv0._dsize() ) { | 
                        |  | 270 | <a name="l00350"></a>00350                 <a class="code" href="classbdm_1_1epdf.html#af423e28448dbb69ef4905295ec8de8ff" title="Name its rv.">set_rv</a> ( rv0 ); | 
                        |  | 271 | <a name="l00351"></a>00351         }; | 
                        |  | 272 | <a name="l00352"></a>00352         <span class="keywordtype">void</span> set_parameters ( <span class="keywordtype">int</span> dim0 ) { | 
                        |  | 273 | <a name="l00353"></a>00353                 <a class="code" href="classbdm_1_1epdf.html#a16adac20ec7fe07e1ea0b27d917788ce" title="dimension of the random variable">dim</a> = dim0; | 
                        |  | 274 | <a name="l00354"></a>00354         } | 
                        |  | 275 | <a name="l00356"></a>00356 | 
                        |  | 276 | <a name="l00359"></a>00359 | 
                        |  | 277 | <a name="l00361"></a><a class="code" href="classbdm_1_1epdf.html#a75ba57a89681a8efec488f5796c7cc1b">00361</a>         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1epdf.html#a75ba57a89681a8efec488f5796c7cc1b" title="Returns a sample,  from density .">sample</a>()<span class="keyword"> const </span>{ | 
                        |  | 278 | <a name="l00362"></a>00362                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"not implemented"</span> ); | 
                        |  | 279 | <a name="l00363"></a>00363                 <span class="keywordflow">return</span> vec(); | 
                        |  | 280 | <a name="l00364"></a>00364         } | 
            
                      
                        | 281 |  | <a name="l00370"></a>00370         <span class="keyword">virtual</span> <a class="code" href="classbdm_1_1shared__ptr.html">shared_ptr<mpdf></a> <a class="code" href="classbdm_1_1epdf.html#a1499d35b79bce0cfa64fc5cafb9c03b2" title="Return conditional density on the given RV, the remaining rvs will be in conditioning...">condition</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &<a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8" title="Description of the random variable.">rv</a> ) <span class="keyword">const</span>; | 
                        | 282 |  | <a name="l00371"></a>00371 | 
                        | 283 |  | <a name="l00373"></a>00373         <span class="keyword">virtual</span> <a class="code" href="classbdm_1_1shared__ptr.html">shared_ptr<epdf></a> <a class="code" href="classbdm_1_1epdf.html#aa84b05f5293cab2aeb4e07faffa60906" title="Return marginal density on the given RV, the remainig rvs are intergrated out.">marginal</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &<a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8" title="Description of the random variable.">rv</a> ) <span class="keyword">const</span>; | 
                        | 284 |  | <a name="l00374"></a>00374 | 
                        | 285 |  | <a name="l00376"></a><a class="code" href="classbdm_1_1epdf.html#a0c8d13d788094605b3cdab20a6e22b75">00376</a>         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1epdf.html#a0c8d13d788094605b3cdab20a6e22b75" title="return expected value">mean</a>()<span class="keyword"> const </span>{ | 
                        | 286 |  | <a name="l00377"></a>00377                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"not implemneted"</span> ); | 
                        | 287 |  | <a name="l00378"></a>00378                 <span class="keywordflow">return</span> vec(); | 
                        | 288 |  | <a name="l00379"></a>00379         } | 
                        | 289 |  | <a name="l00380"></a>00380 | 
                        | 290 |  | <a name="l00382"></a><a class="code" href="classbdm_1_1epdf.html#a4543d40ccfc5d549b0c831a57a3ed84c">00382</a>         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1epdf.html#a4543d40ccfc5d549b0c831a57a3ed84c" title="return expected variance (not covariance!)">variance</a>()<span class="keyword"> const </span>{ | 
                        | 291 |  | <a name="l00383"></a>00383                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"not implemneted"</span> ); | 
                        | 292 |  | <a name="l00384"></a>00384                 <span class="keywordflow">return</span> vec(); | 
                        | 293 |  | <a name="l00385"></a>00385         } | 
                        | 294 |  | <a name="l00386"></a>00386 | 
                        | 295 |  | <a name="l00388"></a><a class="code" href="classbdm_1_1epdf.html#a0a7705e80601957f7226d333a0a6d539">00388</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1epdf.html#a0a7705e80601957f7226d333a0a6d539" title="Lower and upper bounds of percentage % quantile, returns mean-2*sigma as default...">qbounds</a> ( vec &lb, vec &ub, <span class="keywordtype">double</span> percentage = 0.95 )<span class="keyword"> const </span>{ | 
                        | 296 |  | <a name="l00389"></a>00389                 vec mea = <a class="code" href="classbdm_1_1epdf.html#a0c8d13d788094605b3cdab20a6e22b75" title="return expected value">mean</a>(); | 
                        | 297 |  | <a name="l00390"></a>00390                 vec std = sqrt ( <a class="code" href="classbdm_1_1epdf.html#a4543d40ccfc5d549b0c831a57a3ed84c" title="return expected variance (not covariance!)">variance</a>() ); | 
                        | 298 |  | <a name="l00391"></a>00391                 lb = mea - 2 * std; | 
                        | 299 |  | <a name="l00392"></a>00392                 ub = mea + 2 * std; | 
                        | 300 |  | <a name="l00393"></a>00393         }; | 
                        | 301 |  | <a name="l00395"></a>00395 | 
                        | 302 |  | <a name="l00401"></a>00401 | 
                        | 303 |  | <a name="l00403"></a><a class="code" href="classbdm_1_1epdf.html#af423e28448dbb69ef4905295ec8de8ff">00403</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1epdf.html#af423e28448dbb69ef4905295ec8de8ff" title="Name its rv.">set_rv</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv0 ) { | 
                        | 304 |  | <a name="l00404"></a>00404                 <a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8" title="Description of the random variable.">rv</a> = rv0; | 
                        | 305 |  | <a name="l00405"></a>00405         } | 
                        | 306 |  | <a name="l00406"></a>00406 | 
                        | 307 |  | <a name="l00408"></a><a class="code" href="classbdm_1_1epdf.html#ac4b863ff84c7a4882fb3ad18556027f9">00408</a>         <span class="keywordtype">bool</span> <a class="code" href="classbdm_1_1epdf.html#ac4b863ff84c7a4882fb3ad18556027f9" title="True if rv is assigned.">isnamed</a>()<span class="keyword"> const </span>{ | 
                        | 308 |  | <a name="l00409"></a>00409                 <span class="keywordtype">bool</span> b = ( <a class="code" href="classbdm_1_1epdf.html#a16adac20ec7fe07e1ea0b27d917788ce" title="dimension of the random variable">dim</a> == <a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8" title="Description of the random variable.">rv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() ); | 
                        | 309 |  | <a name="l00410"></a>00410                 <span class="keywordflow">return</span> b; | 
                        | 310 |  | <a name="l00411"></a>00411         } | 
                        | 311 |  | <a name="l00412"></a>00412 | 
                        | 312 |  | <a name="l00414"></a><a class="code" href="classbdm_1_1epdf.html#aa4ab378d5e004c3ff3e2d4e64f7bba21">00414</a>         <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a>& <a class="code" href="classbdm_1_1epdf.html#aa4ab378d5e004c3ff3e2d4e64f7bba21" title="Return name (fails when isnamed is false).">_rv</a>()<span class="keyword"> const </span>{ | 
                        | 313 |  | <a name="l00415"></a>00415                 <a class="code" href="bdmerror_8h.html#a89a0f906b242b79c5d3d342291b2cab4" title="Throw std::runtime_exception if t is not true and NDEBUG is not defined.">bdm_assert_debug</a> ( <a class="code" href="classbdm_1_1epdf.html#ac4b863ff84c7a4882fb3ad18556027f9" title="True if rv is assigned.">isnamed</a>(), <span class="stringliteral">""</span> ); | 
                        | 314 |  | <a name="l00416"></a>00416                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8" title="Description of the random variable.">rv</a>; | 
                        | 315 |  | <a name="l00417"></a>00417         } | 
                      
                        |  | 284 | <a name="l00371"></a><a class="code" href="classbdm_1_1epdf.html#adeab266d63c236c277538867d5c3f249">00371</a>         <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classbdm_1_1epdf.html#adeab266d63c236c277538867d5c3f249" title="Compute log-probability of argument val In case the argument is out of suport return...">evallog</a> ( <span class="keyword">const</span> vec &val )<span class="keyword"> const </span>{ | 
                        |  | 285 | <a name="l00372"></a>00372                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"not implemented"</span> ); | 
                        |  | 286 | <a name="l00373"></a>00373                 <span class="keywordflow">return</span> 0.0; | 
                        |  | 287 | <a name="l00374"></a>00374         } | 
                        |  | 288 | <a name="l00375"></a>00375 | 
                        |  | 289 | <a name="l00377"></a>00377         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1epdf.html#ad08b68a5abd461f1b6519597e344caf8" title="Compute log-probability of multiple values argument val.">evallog_m</a> ( <span class="keyword">const</span> mat &Val ) <span class="keyword">const</span>; | 
                        |  | 290 | <a name="l00378"></a>00378 | 
                        |  | 291 | <a name="l00380"></a>00380         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1epdf.html#ad08b68a5abd461f1b6519597e344caf8" title="Compute log-probability of multiple values argument val.">evallog_m</a> ( <span class="keyword">const</span> Array<vec> &Avec ) <span class="keyword">const</span>; | 
                        |  | 292 | <a name="l00381"></a>00381 | 
                        |  | 293 | <a name="l00383"></a>00383         <span class="keyword">virtual</span> <a class="code" href="classbdm_1_1shared__ptr.html">shared_ptr<mpdf></a> <a class="code" href="classbdm_1_1epdf.html#a1499d35b79bce0cfa64fc5cafb9c03b2" title="Return conditional density on the given RV, the remaining rvs will be in conditioning...">condition</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &<a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8" title="Description of the random variable.">rv</a> ) <span class="keyword">const</span>; | 
                        |  | 294 | <a name="l00384"></a>00384 | 
                        |  | 295 | <a name="l00386"></a>00386         <span class="keyword">virtual</span> <a class="code" href="classbdm_1_1shared__ptr.html">shared_ptr<epdf></a> <a class="code" href="classbdm_1_1epdf.html#aa84b05f5293cab2aeb4e07faffa60906" title="Return marginal density on the given RV, the remainig rvs are intergrated out.">marginal</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &<a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8" title="Description of the random variable.">rv</a> ) <span class="keyword">const</span>; | 
                        |  | 296 | <a name="l00387"></a>00387 | 
                        |  | 297 | <a name="l00389"></a><a class="code" href="classbdm_1_1epdf.html#a0c8d13d788094605b3cdab20a6e22b75">00389</a>         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1epdf.html#a0c8d13d788094605b3cdab20a6e22b75" title="return expected value">mean</a>()<span class="keyword"> const </span>{ | 
                        |  | 298 | <a name="l00390"></a>00390                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"not implemneted"</span> ); | 
                        |  | 299 | <a name="l00391"></a>00391                 <span class="keywordflow">return</span> vec(); | 
                        |  | 300 | <a name="l00392"></a>00392         } | 
                        |  | 301 | <a name="l00393"></a>00393 | 
                        |  | 302 | <a name="l00395"></a><a class="code" href="classbdm_1_1epdf.html#a4543d40ccfc5d549b0c831a57a3ed84c">00395</a>         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1epdf.html#a4543d40ccfc5d549b0c831a57a3ed84c" title="return expected variance (not covariance!)">variance</a>()<span class="keyword"> const </span>{ | 
                        |  | 303 | <a name="l00396"></a>00396                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"not implemneted"</span> ); | 
                        |  | 304 | <a name="l00397"></a>00397                 <span class="keywordflow">return</span> vec(); | 
                        |  | 305 | <a name="l00398"></a>00398         } | 
                        |  | 306 | <a name="l00399"></a>00399 | 
                        |  | 307 | <a name="l00401"></a><a class="code" href="classbdm_1_1epdf.html#a0a7705e80601957f7226d333a0a6d539">00401</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1epdf.html#a0a7705e80601957f7226d333a0a6d539" title="Lower and upper bounds of percentage % quantile, returns mean-2*sigma as default...">qbounds</a> ( vec &lb, vec &ub, <span class="keywordtype">double</span> percentage = 0.95 )<span class="keyword"> const </span>{ | 
                        |  | 308 | <a name="l00402"></a>00402                 vec mea = <a class="code" href="classbdm_1_1epdf.html#a0c8d13d788094605b3cdab20a6e22b75" title="return expected value">mean</a>(); | 
                        |  | 309 | <a name="l00403"></a>00403                 vec std = sqrt ( <a class="code" href="classbdm_1_1epdf.html#a4543d40ccfc5d549b0c831a57a3ed84c" title="return expected variance (not covariance!)">variance</a>() ); | 
                        |  | 310 | <a name="l00404"></a>00404                 lb = mea - 2 * std; | 
                        |  | 311 | <a name="l00405"></a>00405                 ub = mea + 2 * std; | 
                        |  | 312 | <a name="l00406"></a>00406         }; | 
                        |  | 313 | <a name="l00408"></a>00408 | 
                        |  | 314 | <a name="l00414"></a>00414 | 
                        |  | 315 | <a name="l00416"></a><a class="code" href="classbdm_1_1epdf.html#af423e28448dbb69ef4905295ec8de8ff">00416</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1epdf.html#af423e28448dbb69ef4905295ec8de8ff" title="Name its rv.">set_rv</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv0 ) { | 
                        |  | 316 | <a name="l00417"></a>00417                 <a class="code" href="classbdm_1_1epdf.html#a62c5b8ff71d9ebe6cd58d3c342eb1dc8" title="Description of the random variable.">rv</a> = rv0; | 
                        |  | 317 | <a name="l00418"></a>00418         } | 
            
                      
                        | 327 |  | <a name="l00440"></a>00440 | 
                        | 328 |  | <a name="l00441"></a>00441 }; | 
                        | 329 |  | <a name="l00442"></a>00442 SHAREDPTR ( epdf ); | 
                        | 330 |  | <a name="l00443"></a>00443 | 
                        | 331 |  | <a name="l00445"></a><a class="code" href="classbdm_1_1mpdf.html">00445</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1mpdf.html" title="Conditional probability density, e.g. modeling , where  is random variable, rv, and...">mpdf</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1root.html" title="Root class of BDM objects.">root</a> { | 
                        | 332 |  | <a name="l00446"></a>00446 <span class="keyword">protected</span>: | 
                        | 333 |  | <a name="l00448"></a><a class="code" href="classbdm_1_1mpdf.html#a7c1900976ff13dbc09c9729b3bbff9e6">00448</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1mpdf.html#a7c1900976ff13dbc09c9729b3bbff9e6" title="dimension of the condition">dimc</a>; | 
                        | 334 |  | <a name="l00450"></a><a class="code" href="classbdm_1_1mpdf.html#a5a5f08950daa08b85b01ddf4e1c36288">00450</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1mpdf.html#a5a5f08950daa08b85b01ddf4e1c36288" title="random variable in condition">rvc</a>; | 
                        | 335 |  | <a name="l00451"></a>00451 <span class="keyword">private</span>: | 
                        | 336 |  | <a name="l00453"></a>00453         <a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a>* ep; | 
                        | 337 |  | <a name="l00454"></a>00454 | 
                        | 338 |  | <a name="l00455"></a>00455 <span class="keyword">protected</span>: | 
                        | 339 |  | <a name="l00457"></a><a class="code" href="classbdm_1_1mpdf.html#a147afacb393324bb3f9a7a89e33f835e">00457</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1mpdf.html#a147afacb393324bb3f9a7a89e33f835e" title="set internal pointer ep to point to given iepdf ">set_ep</a> ( <a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a> &iepdf ) { | 
                        | 340 |  | <a name="l00458"></a>00458                 ep = &iepdf; | 
                        | 341 |  | <a name="l00459"></a>00459         } | 
                        | 342 |  | <a name="l00461"></a><a class="code" href="classbdm_1_1mpdf.html#a7555b377f8b5895c9b759c9628ee3e20">00461</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1mpdf.html#a7555b377f8b5895c9b759c9628ee3e20" title="set internal pointer ep to point to given iepdf ">set_ep</a> ( <a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a> *iepdfp ) { | 
                        | 343 |  | <a name="l00462"></a>00462                 ep = iepdfp; | 
                        | 344 |  | <a name="l00463"></a>00463         } | 
                        | 345 |  | <a name="l00464"></a>00464 | 
                        | 346 |  | <a name="l00465"></a>00465 <span class="keyword">public</span>: | 
                        | 347 |  | <a name="l00468"></a>00468 | 
                        | 348 |  | <a name="l00469"></a>00469         <a class="code" href="classbdm_1_1mpdf.html" title="Conditional probability density, e.g. modeling , where  is random variable, rv, and...">mpdf</a>() : <a class="code" href="classbdm_1_1mpdf.html#a7c1900976ff13dbc09c9729b3bbff9e6" title="dimension of the condition">dimc</a> ( 0 ), <a class="code" href="classbdm_1_1mpdf.html#a5a5f08950daa08b85b01ddf4e1c36288" title="random variable in condition">rvc</a>(), ep ( NULL ) { } | 
                        | 349 |  | <a name="l00470"></a>00470 | 
                        | 350 |  | <a name="l00471"></a>00471         mpdf ( <span class="keyword">const</span> mpdf &m ) : <a class="code" href="classbdm_1_1mpdf.html#a7c1900976ff13dbc09c9729b3bbff9e6" title="dimension of the condition">dimc</a> ( m.<a class="code" href="classbdm_1_1mpdf.html#a7c1900976ff13dbc09c9729b3bbff9e6" title="dimension of the condition">dimc</a> ), <a class="code" href="classbdm_1_1mpdf.html#a5a5f08950daa08b85b01ddf4e1c36288" title="random variable in condition">rvc</a> ( m.<a class="code" href="classbdm_1_1mpdf.html#a5a5f08950daa08b85b01ddf4e1c36288" title="random variable in condition">rvc</a> ), ep ( m.ep ) { } | 
                        | 351 |  | <a name="l00473"></a>00473 | 
                        | 352 |  | <a name="l00476"></a>00476 | 
                        | 353 |  | <a name="l00478"></a><a class="code" href="classbdm_1_1mpdf.html#af0c1db6fcbb3aae2dd6123884457a367">00478</a>         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1mpdf.html#af0c1db6fcbb3aae2dd6123884457a367" title="Returns a sample from the density conditioned on cond, .">samplecond</a> ( <span class="keyword">const</span> vec &cond ) { | 
                        | 354 |  | <a name="l00479"></a>00479                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        | 355 |  | <a name="l00480"></a>00480                 <span class="keywordflow">return</span> vec(); | 
                        | 356 |  | <a name="l00481"></a>00481         } | 
                        | 357 |  | <a name="l00482"></a>00482 | 
                        | 358 |  | <a name="l00484"></a>00484         <span class="keyword">virtual</span> mat <a class="code" href="classbdm_1_1mpdf.html#a6e497d501331057309d2fddf63259d1a" title="Returns.">samplecond_m</a> ( <span class="keyword">const</span> vec &cond, <span class="keywordtype">int</span> N ); | 
                        | 359 |  | <a name="l00485"></a>00485 | 
                        | 360 |  | <a name="l00487"></a><a class="code" href="classbdm_1_1mpdf.html#a6336a8a72462e2a56a3989a220f18b1b">00487</a>         <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classbdm_1_1mpdf.html#a6336a8a72462e2a56a3989a220f18b1b" title="Shortcut for conditioning and evaluation of the internal epdf. In some cases, this...">evallogcond</a> ( <span class="keyword">const</span> vec &dt, <span class="keyword">const</span> vec &cond ) { | 
                        | 361 |  | <a name="l00488"></a>00488                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        | 362 |  | <a name="l00489"></a>00489                 <span class="keywordflow">return</span> 0.0; | 
                        | 363 |  | <a name="l00490"></a>00490         } | 
                        | 364 |  | <a name="l00491"></a>00491 | 
                        | 365 |  | <a name="l00493"></a><a class="code" href="classbdm_1_1mpdf.html#a0b0ed1ed663071bb7cf4a1349eb94fcb">00493</a>         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1mpdf.html#a0b0ed1ed663071bb7cf4a1349eb94fcb" title="Matrix version of evallogcond.">evallogcond_m</a> ( <span class="keyword">const</span> mat &Dt, <span class="keyword">const</span> vec &cond ) { | 
                        | 366 |  | <a name="l00494"></a>00494                 vec v ( Dt.cols() ); | 
                        | 367 |  | <a name="l00495"></a>00495                 <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i < Dt.cols(); i++ ) { | 
                        | 368 |  | <a name="l00496"></a>00496                         v ( i ) = <a class="code" href="classbdm_1_1mpdf.html#a6336a8a72462e2a56a3989a220f18b1b" title="Shortcut for conditioning and evaluation of the internal epdf. In some cases, this...">evallogcond</a> ( Dt.get_col ( i ), cond ); | 
                        | 369 |  | <a name="l00497"></a>00497                 } | 
                        | 370 |  | <a name="l00498"></a>00498                 <span class="keywordflow">return</span> v; | 
                        | 371 |  | <a name="l00499"></a>00499         } | 
                        | 372 |  | <a name="l00500"></a>00500 | 
                        | 373 |  | <a name="l00502"></a><a class="code" href="classbdm_1_1mpdf.html#a2a0d03756f59924fd038980ee60bd904">00502</a>         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1mpdf.html#a2a0d03756f59924fd038980ee60bd904" title="Array&lt;vec&gt; version of evallogcond.">evallogcond_m</a> ( <span class="keyword">const</span> Array<vec> &Dt, <span class="keyword">const</span> vec &cond ) { | 
                        | 374 |  | <a name="l00503"></a>00503                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        | 375 |  | <a name="l00504"></a>00504                 <span class="keywordflow">return</span> vec(); | 
                        | 376 |  | <a name="l00505"></a>00505         } | 
                        | 377 |  | <a name="l00506"></a>00506 | 
                        | 378 |  | <a name="l00509"></a>00509 | 
                        | 379 |  | <a name="l00510"></a>00510         <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a>& _rv()<span class="keyword"> const </span>{ | 
                        | 380 |  | <a name="l00511"></a>00511                 <span class="keywordflow">return</span> ep-><a class="code" href="classbdm_1_1epdf.html#aa4ab378d5e004c3ff3e2d4e64f7bba21" title="Return name (fails when isnamed is false).">_rv</a>(); | 
                      
                        |  | 333 | <a name="l00447"></a><a class="code" href="classbdm_1_1epdf.html#afa9efc98a065b31c630fe18cc418f725">00447</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1epdf.html#afa9efc98a065b31c630fe18cc418f725" title="Load from structure with elements:.">from_setting</a> ( <span class="keyword">const</span> Setting &<span class="keyword">set</span> ) { | 
                        |  | 334 | <a name="l00448"></a>00448                 <a class="code" href="classbdm_1_1shared__ptr.html" title="A naive implementation of roughly a subset of the std::tr1::shared_ptr spec.">shared_ptr<RV></a> r = UI::build<RV> ( <span class="keyword">set</span>, <span class="stringliteral">"rv"</span>, UI::optional ); | 
                        |  | 335 | <a name="l00449"></a>00449                 <span class="keywordflow">if</span> ( r ) { | 
                        |  | 336 | <a name="l00450"></a>00450                         <a class="code" href="classbdm_1_1epdf.html#af423e28448dbb69ef4905295ec8de8ff" title="Name its rv.">set_rv</a> ( *r ); | 
                        |  | 337 | <a name="l00451"></a>00451                 } | 
                        |  | 338 | <a name="l00452"></a>00452         } | 
                        |  | 339 | <a name="l00453"></a>00453 | 
                        |  | 340 | <a name="l00454"></a>00454 }; | 
                        |  | 341 | <a name="l00455"></a>00455 SHAREDPTR ( epdf ); | 
                        |  | 342 | <a name="l00456"></a>00456 | 
                        |  | 343 | <a name="l00458"></a><a class="code" href="classbdm_1_1mpdf.html">00458</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1mpdf.html" title="Conditional probability density, e.g. modeling , where  is random variable, rv, and...">mpdf</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1root.html" title="Root class of BDM objects.">root</a> { | 
                        |  | 344 | <a name="l00459"></a>00459 <span class="keyword">protected</span>: | 
                        |  | 345 | <a name="l00461"></a><a class="code" href="classbdm_1_1mpdf.html#a7c1900976ff13dbc09c9729b3bbff9e6">00461</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1mpdf.html#a7c1900976ff13dbc09c9729b3bbff9e6" title="dimension of the condition">dimc</a>; | 
                        |  | 346 | <a name="l00463"></a><a class="code" href="classbdm_1_1mpdf.html#a5a5f08950daa08b85b01ddf4e1c36288">00463</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1mpdf.html#a5a5f08950daa08b85b01ddf4e1c36288" title="random variable in condition">rvc</a>; | 
                        |  | 347 | <a name="l00464"></a>00464 <span class="keyword">private</span>: | 
                        |  | 348 | <a name="l00466"></a>00466         <a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a>* ep; | 
                        |  | 349 | <a name="l00467"></a>00467 | 
                        |  | 350 | <a name="l00468"></a>00468 <span class="keyword">protected</span>: | 
                        |  | 351 | <a name="l00470"></a><a class="code" href="classbdm_1_1mpdf.html#a147afacb393324bb3f9a7a89e33f835e">00470</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1mpdf.html#a147afacb393324bb3f9a7a89e33f835e" title="set internal pointer ep to point to given iepdf ">set_ep</a> ( <a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a> &iepdf ) { | 
                        |  | 352 | <a name="l00471"></a>00471                 ep = &iepdf; | 
                        |  | 353 | <a name="l00472"></a>00472         } | 
                        |  | 354 | <a name="l00474"></a><a class="code" href="classbdm_1_1mpdf.html#a7555b377f8b5895c9b759c9628ee3e20">00474</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1mpdf.html#a7555b377f8b5895c9b759c9628ee3e20" title="set internal pointer ep to point to given iepdf ">set_ep</a> ( <a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a> *iepdfp ) { | 
                        |  | 355 | <a name="l00475"></a>00475                 ep = iepdfp; | 
                        |  | 356 | <a name="l00476"></a>00476         } | 
                        |  | 357 | <a name="l00477"></a>00477 | 
                        |  | 358 | <a name="l00478"></a>00478 <span class="keyword">public</span>: | 
                        |  | 359 | <a name="l00481"></a>00481 | 
                        |  | 360 | <a name="l00482"></a>00482         <a class="code" href="classbdm_1_1mpdf.html" title="Conditional probability density, e.g. modeling , where  is random variable, rv, and...">mpdf</a>() : <a class="code" href="classbdm_1_1mpdf.html#a7c1900976ff13dbc09c9729b3bbff9e6" title="dimension of the condition">dimc</a> ( 0 ), <a class="code" href="classbdm_1_1mpdf.html#a5a5f08950daa08b85b01ddf4e1c36288" title="random variable in condition">rvc</a>(), ep ( NULL ) { } | 
                        |  | 361 | <a name="l00483"></a>00483 | 
                        |  | 362 | <a name="l00484"></a>00484         mpdf ( <span class="keyword">const</span> mpdf &m ) : <a class="code" href="classbdm_1_1mpdf.html#a7c1900976ff13dbc09c9729b3bbff9e6" title="dimension of the condition">dimc</a> ( m.<a class="code" href="classbdm_1_1mpdf.html#a7c1900976ff13dbc09c9729b3bbff9e6" title="dimension of the condition">dimc</a> ), <a class="code" href="classbdm_1_1mpdf.html#a5a5f08950daa08b85b01ddf4e1c36288" title="random variable in condition">rvc</a> ( m.<a class="code" href="classbdm_1_1mpdf.html#a5a5f08950daa08b85b01ddf4e1c36288" title="random variable in condition">rvc</a> ), ep ( m.ep ) { } | 
                        |  | 363 | <a name="l00486"></a>00486 | 
                        |  | 364 | <a name="l00489"></a>00489 | 
                        |  | 365 | <a name="l00491"></a><a class="code" href="classbdm_1_1mpdf.html#af0c1db6fcbb3aae2dd6123884457a367">00491</a>         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1mpdf.html#af0c1db6fcbb3aae2dd6123884457a367" title="Returns a sample from the density conditioned on cond, .">samplecond</a> ( <span class="keyword">const</span> vec &cond ) { | 
                        |  | 366 | <a name="l00492"></a>00492                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        |  | 367 | <a name="l00493"></a>00493                 <span class="keywordflow">return</span> vec(); | 
                        |  | 368 | <a name="l00494"></a>00494         } | 
                        |  | 369 | <a name="l00495"></a>00495 | 
                        |  | 370 | <a name="l00497"></a>00497         <span class="keyword">virtual</span> mat <a class="code" href="classbdm_1_1mpdf.html#a6e497d501331057309d2fddf63259d1a" title="Returns.">samplecond_m</a> ( <span class="keyword">const</span> vec &cond, <span class="keywordtype">int</span> N ); | 
                        |  | 371 | <a name="l00498"></a>00498 | 
                        |  | 372 | <a name="l00500"></a><a class="code" href="classbdm_1_1mpdf.html#a6336a8a72462e2a56a3989a220f18b1b">00500</a>         <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classbdm_1_1mpdf.html#a6336a8a72462e2a56a3989a220f18b1b" title="Shortcut for conditioning and evaluation of the internal epdf. In some cases, this...">evallogcond</a> ( <span class="keyword">const</span> vec &dt, <span class="keyword">const</span> vec &cond ) { | 
                        |  | 373 | <a name="l00501"></a>00501                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        |  | 374 | <a name="l00502"></a>00502                 <span class="keywordflow">return</span> 0.0; | 
                        |  | 375 | <a name="l00503"></a>00503         } | 
                        |  | 376 | <a name="l00504"></a>00504 | 
                        |  | 377 | <a name="l00506"></a><a class="code" href="classbdm_1_1mpdf.html#a0b0ed1ed663071bb7cf4a1349eb94fcb">00506</a>         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1mpdf.html#a0b0ed1ed663071bb7cf4a1349eb94fcb" title="Matrix version of evallogcond.">evallogcond_m</a> ( <span class="keyword">const</span> mat &Dt, <span class="keyword">const</span> vec &cond ) { | 
                        |  | 378 | <a name="l00507"></a>00507                 vec v ( Dt.cols() ); | 
                        |  | 379 | <a name="l00508"></a>00508                 <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i < Dt.cols(); i++ ) { | 
                        |  | 380 | <a name="l00509"></a>00509                         v ( i ) = <a class="code" href="classbdm_1_1mpdf.html#a6336a8a72462e2a56a3989a220f18b1b" title="Shortcut for conditioning and evaluation of the internal epdf. In some cases, this...">evallogcond</a> ( Dt.get_col ( i ), cond ); | 
                        |  | 381 | <a name="l00510"></a>00510                 } | 
                        |  | 382 | <a name="l00511"></a>00511                 <span class="keywordflow">return</span> v; | 
            
                      
                        | 382 |  | <a name="l00513"></a>00513         <span class="keyword">const</span> RV& _rvc()<span class="keyword"> const </span>{ | 
                        | 383 |  | <a name="l0051 4"></a>00514                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1mpdf.html#a5a5f08950daa08b85b01ddf4e1c36288" title="random variable in condition">rvc</a>; | 
                        | 384 |  | <a name="l0051 5"></a>00515         } | 
                        | 385 |  | <a name="l0051 6"></a>00516  | 
                        | 386 |  | <a name="l0051 7"></a>00517         <span class="keywordtype">int</span> dimension()<span class="keyword"> const </span>{ | 
                        | 387 |  | <a name="l0051 8"></a>00518                 <span class="keywordflow">return</span> ep->dimension(); | 
                        | 388 |  | <a name="l005 19"></a>00519         } | 
                        | 389 |  | <a name="l0052 0"></a>00520         <span class="keywordtype">int</span> dimensionc() { | 
                        | 390 |  | <a name="l0052 1"></a>00521                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1mpdf.html#a7c1900976ff13dbc09c9729b3bbff9e6" title="dimension of the condition">dimc</a>; | 
                        | 391 |  | <a name="l0052 2"></a>00522} | 
                        | 392 |  | <a name="l0052 3"></a>00523  | 
                        | 393 |  | <a name="l005 33"></a>00533         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1mpdf.html#a30a0bceb948e287d497c578e371b1667" title="Load from structure with elements:.">from_setting</a> ( <span class="keyword">const</span> Setting &<span class="keyword">set</span> ); | 
                        | 394 |  | <a name="l005 35"></a>00535  | 
                        | 395 |  | <a name="l005 38"></a>00538         <span class="keywordtype">void</span> set_rvc ( <span class="keyword">const</span> RV &rvc0 ) { | 
                        | 396 |  | <a name="l0053 9"></a>00539                 <a class="code" href="classbdm_1_1mpdf.html#a5a5f08950daa08b85b01ddf4e1c36288" title="random variable in condition">rvc</a> = rvc0; | 
                        | 397 |  | <a name="l005 40"></a>00540         } | 
                        | 398 |  | <a name="l005 41"></a>00541         <span class="keywordtype">void</span> set_rv ( <span class="keyword">const</span> RV &rv0 ) { | 
                        | 399 |  | <a name="l005 42"></a>00542                 ep->set_rv ( rv0 ); | 
                        | 400 |  | <a name="l005 43"></a>00543         } | 
                        | 401 |  | <a name="l005 44"></a>00544         <span class="keywordtype">bool</span> isnamed() { | 
                        | 402 |  | <a name="l005 45"></a>00545                 <span class="keywordflow">return</span> ( ep->isnamed() ) && ( <a class="code" href="classbdm_1_1mpdf.html#a7c1900976ff13dbc09c9729b3bbff9e6" title="dimension of the condition">dimc</a> == <a class="code" href="classbdm_1_1mpdf.html#a5a5f08950daa08b85b01ddf4e1c36288" title="random variable in condition">rvc</a>._dsize() ); | 
                        | 403 |  | <a name="l00546"></a>00546 } | 
                        | 404 |  | <a name="l00548"></a>00548 }; | 
                        | 405 |  | <a name="l005 49"></a>00549 SHAREDPTR ( mpdf ); | 
                        | 406 |  | <a name="l0055 0"></a>00550  | 
                        | 407 |  | <a name="l0055 2"></a>00552 <span class="keyword">template</span> <<span class="keyword">class</span> EPDF> | 
                        | 408 |  | <a name="l0055 3"></a><a class="code" href="classbdm_1_1mpdf__internal.html">00553</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1mpdf__internal.html" title="Mpdf with internal epdf that is modified by function condition.">mpdf_internal</a>: <span class="keyword">public</span> <a class="code" href="classbdm_1_1mpdf.html" title="Conditional probability density, e.g. modeling , where  is random variable, rv, and...">mpdf</a>{ | 
                        | 409 |  | <a name="l0055 4"></a>00554 <span class="keyword">protected</span> : | 
                        | 410 |  | <a name="l00556"></a> <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468">00556</a>         EPDF <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a>; | 
                        | 411 |  | <a name="l00557"></a>00557 <span class="keyword">public</span>: | 
                        | 412 |  | <a name="l0055 9"></a><a class="code" href="classbdm_1_1mpdf__internal.html#ae054b86262261abe0724f5890218689f">00559</a>         <a class="code" href="classbdm_1_1mpdf__internal.html#ae054b86262261abe0724f5890218689f" title="constructor">mpdf_internal</a>() : <a class="code" href="classbdm_1_1mpdf.html" title="Conditional probability density, e.g. modeling , where  is random variable, rv, and...">mpdf</a>(), <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a>() { | 
                        | 413 |  | <a name="l005 60"></a>00560                 <a class="code" href="classbdm_1_1mpdf.html#a147afacb393324bb3f9a7a89e33f835e" title="set internal pointer ep to point to given iepdf ">set_ep</a> ( <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a> ); | 
                        | 414 |  | <a name="l00561"></a>00561         } | 
                        | 415 |  | <a name="l00562"></a>00562  | 
                        | 416 |  | <a name="l0056 5"></a><a class="code" href="classbdm_1_1mpdf__internal.html#a1ac61da081667fc54bcd050cc4f6a93e">00565</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1mpdf__internal.html#a1ac61da081667fc54bcd050cc4f6a93e" title="Update iepdf so that it represents this mpdf conditioned on rvc = cond This function...">condition</a> ( <span class="keyword">const</span> vec &cond ) { | 
                        | 417 |  | <a name="l0056 6"></a>00566                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        | 418 |  | <a name="l0056 7"></a>00567         } | 
                        | 419 |  | <a name="l0056 8"></a>00568  | 
                        | 420 |  | <a name="l005 70"></a><a class="code" href="classbdm_1_1mpdf__internal.html#a6b4d1cb8d7e230e313b4f0c905874d5a">00570</a>         EPDF& <a class="code" href="classbdm_1_1mpdf__internal.html#a6b4d1cb8d7e230e313b4f0c905874d5a" title="access function to iepdf">e</a>() { | 
                        | 421 |  | <a name="l0057 1"></a>00571                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a>; | 
                        | 422 |  | <a name="l00572"></a> 00572         } | 
                        | 423 |  | <a name="l00573"></a>00573  | 
                        | 424 |  | <a name="l0057 5"></a>00575         vec <a class="code" href="classbdm_1_1mpdf__internal.html#ad8e547695d1cc19219b91164d825c930" title="Reimplements samplecond using condition().">samplecond</a> ( <span class="keyword">const</span> vec &cond ); | 
                        | 425 |  | <a name="l0057 7"></a>00577         <span class="keywordtype">double</span> <a class="code" href="classbdm_1_1mpdf__internal.html#a89076e62b8d7df7616bad68c94591948" title="Reimplements evallogcond using condition().">evallogcond</a> ( <span class="keyword">const</span> vec &val, <span class="keyword">const</span> vec &cond ); | 
                        | 426 |  | <a name="l0057 9"></a>00579         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1mpdf__internal.html#ae28c214e3063733a6e4d17738941c61c" title="Efficient version of evallogcond for matrices.">evallogcond_m</a> ( <span class="keyword">const</span> mat &Dt, <span class="keyword">const</span> vec &cond ); | 
                        | 427 |  | <a name="l005 81"></a>00581         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1mpdf__internal.html#ae28c214e3063733a6e4d17738941c61c" title="Efficient version of evallogcond for matrices.">evallogcond_m</a> ( <span class="keyword">const</span> Array<vec> &Dt, <span class="keyword">const</span> vec &cond); | 
                        | 428 |  | <a name="l0058 3"></a>00583         <span class="keyword">virtual</span> mat <a class="code" href="classbdm_1_1mpdf__internal.html#a9554c554054da2d22cb8e908ae9c8823" title="Efficient version of samplecond.">samplecond_m</a> ( <span class="keyword">const</span> vec &cond, <span class="keywordtype">int</span> N ); | 
                        | 429 |  | <a name="l0058 4"></a>00584 }; | 
                        | 430 |  | <a name="l0058 5"></a>00585  | 
                        | 431 |  | <a name="l00 611"></a><a class="code" href="classbdm_1_1datalink.html">00611</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1datalink.html" title="DataLink is a connection between two data vectors Up and Down.">datalink</a> { | 
                        | 432 |  | <a name="l00 612"></a>00612 <span class="keyword">protected</span>: | 
                        | 433 |  | <a name="l00 614"></a><a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c">00614</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c" title="Remember how long val should be.">downsize</a>; | 
                        | 434 |  | <a name="l00 615"></a>00615  | 
                        | 435 |  | <a name="l00 617"></a><a class="code" href="classbdm_1_1datalink.html#a0f0d0af6848114d96108d3a6af25a045">00617</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1datalink.html#a0f0d0af6848114d96108d3a6af25a045" title="Remember how long val of &quot;Up&quot; should be.">upsize</a>; | 
                        | 436 |  | <a name="l00 618"></a>00618  | 
                        | 437 |  | <a name="l00 620"></a><a class="code" href="classbdm_1_1datalink.html#a240b37d793c6bdc32824ed0a0541b1eb">00620</a>         ivec <a class="code" href="classbdm_1_1datalink.html#a240b37d793c6bdc32824ed0a0541b1eb" title="val-to-val link, indices of the upper val">v2v_up</a>; | 
                        | 438 |  | <a name="l00 621"></a>00621  | 
                        | 439 |  | <a name="l00 622"></a>00622 <span class="keyword">public</span>: | 
                        | 440 |  | <a name="l00 624"></a><a class="code" href="classbdm_1_1datalink.html#ab8b5d5074fc1310a37c3713d58b900e2">00624</a>         <a class="code" href="classbdm_1_1datalink.html#ab8b5d5074fc1310a37c3713d58b900e2" title="Constructor.">datalink</a>() : <a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c" title="Remember how long val should be.">downsize</a> ( 0 ), <a class="code" href="classbdm_1_1datalink.html#a0f0d0af6848114d96108d3a6af25a045" title="Remember how long val of &quot;Up&quot; should be.">upsize</a> ( 0 ) { } | 
                        | 441 |  | <a name="l0062 5"></a>00625  | 
                        | 442 |  | <a name="l0062 7"></a><a class="code" href="classbdm_1_1datalink.html#a4016403730eb742462614d60393565cd">00627</a>         <a class="code" href="classbdm_1_1datalink.html#a4016403730eb742462614d60393565cd" title="Convenience constructor.">datalink</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv_up ) { | 
                        | 443 |  | <a name="l0062 8"></a>00628                 <a class="code" href="classbdm_1_1datalink.html#afb8337aac8329eb0ca96bfb3ff73ec67" title="set connection, rv must be fully present in rv_up">set_connection</a> ( rv, rv_up ); | 
                        | 444 |  | <a name="l0062 9"></a>00629         } | 
                        | 445 |  | <a name="l00630"></a> 00630  | 
                        | 446 |  | <a name="l0063 2"></a>00632         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink.html#afb8337aac8329eb0ca96bfb3ff73ec67" title="set connection, rv must be fully present in rv_up">set_connection</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv_up ); | 
                        | 447 |  | <a name="l00633"></a> 00633  | 
                        | 448 |  | <a name="l0063 5"></a>00635         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink.html#afb8337aac8329eb0ca96bfb3ff73ec67" title="set connection, rv must be fully present in rv_up">set_connection</a> ( <span class="keywordtype">int</span> ds, <span class="keywordtype">int</span> us, <span class="keyword">const</span> ivec &upind ); | 
                        | 449 |  | <a name="l0063 6"></a>00636  | 
                        | 450 |  | <a name="l0063 8"></a><a class="code" href="classbdm_1_1datalink.html#a5b5368c3899eed2f670d09142c2548e5">00638</a>         vec <a class="code" href="classbdm_1_1datalink.html#a5b5368c3899eed2f670d09142c2548e5" title="Get val for myself from val of &quot;Up&quot;.">pushdown</a> ( <span class="keyword">const</span> vec &val_up ) { | 
                        | 451 |  | <a name="l0063 9"></a>00639                 vec tmp ( <a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c" title="Remember how long val should be.">downsize</a> ); | 
                        | 452 |  | <a name="l00640"></a> 00640                 <a class="code" href="classbdm_1_1datalink.html#abfc15c5e565d4dc1d0110deb5e8c3e6b" title="Get val for vector val_down from val of &quot;Up&quot;.">filldown</a> ( val_up, tmp ); | 
                        | 453 |  | <a name="l00641"></a>00641                 < span class="keywordflow">return</span> tmp; | 
                      
                        |  | 384 | <a name="l00513"></a>00513 | 
                        |  | 385 | <a name="l00515"></a><a class="code" href="classbdm_1_1mpdf.html#a2a0d03756f59924fd038980ee60bd904">00515</a>         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1mpdf.html#a2a0d03756f59924fd038980ee60bd904" title="Array&lt;vec&gt; version of evallogcond.">evallogcond_m</a> ( <span class="keyword">const</span> Array<vec> &Dt, <span class="keyword">const</span> vec &cond ) { | 
                        |  | 386 | <a name="l00516"></a>00516                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        |  | 387 | <a name="l00517"></a>00517                 <span class="keywordflow">return</span> vec(); | 
                        |  | 388 | <a name="l00518"></a>00518         } | 
                        |  | 389 | <a name="l00519"></a>00519 | 
                        |  | 390 | <a name="l00522"></a>00522 | 
                        |  | 391 | <a name="l00523"></a>00523         <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a>& _rv()<span class="keyword"> const </span>{ | 
                        |  | 392 | <a name="l00524"></a>00524                 <span class="keywordflow">return</span> ep-><a class="code" href="classbdm_1_1epdf.html#aa4ab378d5e004c3ff3e2d4e64f7bba21" title="Return name (fails when isnamed is false).">_rv</a>(); | 
                        |  | 393 | <a name="l00525"></a>00525         } | 
                        |  | 394 | <a name="l00526"></a>00526         <span class="keyword">const</span> RV& _rvc()<span class="keyword"> const </span>{ | 
                        |  | 395 | <a name="l00527"></a>00527                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1mpdf.html#a5a5f08950daa08b85b01ddf4e1c36288" title="random variable in condition">rvc</a>; | 
                        |  | 396 | <a name="l00528"></a>00528         } | 
                        |  | 397 | <a name="l00529"></a>00529 | 
                        |  | 398 | <a name="l00530"></a>00530         <span class="keywordtype">int</span> dimension()<span class="keyword"> const </span>{ | 
                        |  | 399 | <a name="l00531"></a>00531                 <span class="keywordflow">return</span> ep->dimension(); | 
                        |  | 400 | <a name="l00532"></a>00532         } | 
                        |  | 401 | <a name="l00533"></a>00533         <span class="keywordtype">int</span> dimensionc() { | 
                        |  | 402 | <a name="l00534"></a>00534                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1mpdf.html#a7c1900976ff13dbc09c9729b3bbff9e6" title="dimension of the condition">dimc</a>; | 
                        |  | 403 | <a name="l00535"></a>00535         } | 
                        |  | 404 | <a name="l00536"></a>00536 | 
                        |  | 405 | <a name="l00546"></a>00546         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1mpdf.html#a30a0bceb948e287d497c578e371b1667" title="Load from structure with elements:.">from_setting</a> ( <span class="keyword">const</span> Setting &<span class="keyword">set</span> ); | 
                        |  | 406 | <a name="l00548"></a>00548 | 
                        |  | 407 | <a name="l00551"></a>00551         <span class="keywordtype">void</span> set_rvc ( <span class="keyword">const</span> RV &rvc0 ) { | 
                        |  | 408 | <a name="l00552"></a>00552                 <a class="code" href="classbdm_1_1mpdf.html#a5a5f08950daa08b85b01ddf4e1c36288" title="random variable in condition">rvc</a> = rvc0; | 
                        |  | 409 | <a name="l00553"></a>00553         } | 
                        |  | 410 | <a name="l00554"></a>00554         <span class="keywordtype">void</span> set_rv ( <span class="keyword">const</span> RV &rv0 ) { | 
                        |  | 411 | <a name="l00555"></a>00555                 ep->set_rv ( rv0 ); | 
                        |  | 412 | <a name="l00556"></a>00556         } | 
                        |  | 413 | <a name="l00557"></a>00557         <span class="keywordtype">bool</span> isnamed() { | 
                        |  | 414 | <a name="l00558"></a>00558                 <span class="keywordflow">return</span> ( ep->isnamed() ) && ( <a class="code" href="classbdm_1_1mpdf.html#a7c1900976ff13dbc09c9729b3bbff9e6" title="dimension of the condition">dimc</a> == <a class="code" href="classbdm_1_1mpdf.html#a5a5f08950daa08b85b01ddf4e1c36288" title="random variable in condition">rvc</a>._dsize() ); | 
                        |  | 415 | <a name="l00559"></a>00559         } | 
                        |  | 416 | <a name="l00561"></a>00561 }; | 
                        |  | 417 | <a name="l00562"></a>00562 SHAREDPTR ( mpdf ); | 
                        |  | 418 | <a name="l00563"></a>00563 | 
                        |  | 419 | <a name="l00565"></a>00565 <span class="keyword">template</span> <<span class="keyword">class</span> EPDF> | 
                        |  | 420 | <a name="l00566"></a><a class="code" href="classbdm_1_1mpdf__internal.html">00566</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1mpdf__internal.html" title="Mpdf with internal epdf that is modified by function condition.">mpdf_internal</a>: <span class="keyword">public</span> <a class="code" href="classbdm_1_1mpdf.html" title="Conditional probability density, e.g. modeling , where  is random variable, rv, and...">mpdf</a> { | 
                        |  | 421 | <a name="l00567"></a>00567 <span class="keyword">protected</span> : | 
                        |  | 422 | <a name="l00569"></a><a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468">00569</a>         EPDF <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a>; | 
                        |  | 423 | <a name="l00570"></a>00570 <span class="keyword">public</span>: | 
                        |  | 424 | <a name="l00572"></a><a class="code" href="classbdm_1_1mpdf__internal.html#ae054b86262261abe0724f5890218689f">00572</a>         <a class="code" href="classbdm_1_1mpdf__internal.html#ae054b86262261abe0724f5890218689f" title="constructor">mpdf_internal</a>() : <a class="code" href="classbdm_1_1mpdf.html" title="Conditional probability density, e.g. modeling , where  is random variable, rv, and...">mpdf</a>(), <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a>() { | 
                        |  | 425 | <a name="l00573"></a>00573                 <a class="code" href="classbdm_1_1mpdf.html#a147afacb393324bb3f9a7a89e33f835e" title="set internal pointer ep to point to given iepdf ">set_ep</a> ( <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a> ); | 
                        |  | 426 | <a name="l00574"></a>00574         } | 
                        |  | 427 | <a name="l00575"></a>00575 | 
                        |  | 428 | <a name="l00578"></a><a class="code" href="classbdm_1_1mpdf__internal.html#a1ac61da081667fc54bcd050cc4f6a93e">00578</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1mpdf__internal.html#a1ac61da081667fc54bcd050cc4f6a93e" title="Update iepdf so that it represents this mpdf conditioned on rvc = cond This function...">condition</a> ( <span class="keyword">const</span> vec &cond ) { | 
                        |  | 429 | <a name="l00579"></a>00579                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        |  | 430 | <a name="l00580"></a>00580         } | 
                        |  | 431 | <a name="l00581"></a>00581 | 
                        |  | 432 | <a name="l00583"></a><a class="code" href="classbdm_1_1mpdf__internal.html#a6b4d1cb8d7e230e313b4f0c905874d5a">00583</a>         EPDF& <a class="code" href="classbdm_1_1mpdf__internal.html#a6b4d1cb8d7e230e313b4f0c905874d5a" title="access function to iepdf">e</a>() { | 
                        |  | 433 | <a name="l00584"></a>00584                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a>; | 
                        |  | 434 | <a name="l00585"></a>00585         } | 
                        |  | 435 | <a name="l00586"></a>00586 | 
                        |  | 436 | <a name="l00588"></a>00588         vec <a class="code" href="classbdm_1_1mpdf__internal.html#ad8e547695d1cc19219b91164d825c930" title="Reimplements samplecond using condition().">samplecond</a> ( <span class="keyword">const</span> vec &cond ); | 
                        |  | 437 | <a name="l00590"></a>00590         <span class="keywordtype">double</span> <a class="code" href="classbdm_1_1mpdf__internal.html#a89076e62b8d7df7616bad68c94591948" title="Reimplements evallogcond using condition().">evallogcond</a> ( <span class="keyword">const</span> vec &val, <span class="keyword">const</span> vec &cond ); | 
                        |  | 438 | <a name="l00592"></a>00592         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1mpdf__internal.html#ae28c214e3063733a6e4d17738941c61c" title="Efficient version of evallogcond for matrices.">evallogcond_m</a> ( <span class="keyword">const</span> mat &Dt, <span class="keyword">const</span> vec &cond ); | 
                        |  | 439 | <a name="l00594"></a>00594         <span class="keyword">virtual</span> vec <a class="code" href="classbdm_1_1mpdf__internal.html#ae28c214e3063733a6e4d17738941c61c" title="Efficient version of evallogcond for matrices.">evallogcond_m</a> ( <span class="keyword">const</span> Array<vec> &Dt, <span class="keyword">const</span> vec &cond ); | 
                        |  | 440 | <a name="l00596"></a>00596         <span class="keyword">virtual</span> mat <a class="code" href="classbdm_1_1mpdf__internal.html#a9554c554054da2d22cb8e908ae9c8823" title="Efficient version of samplecond.">samplecond_m</a> ( <span class="keyword">const</span> vec &cond, <span class="keywordtype">int</span> N ); | 
                        |  | 441 | <a name="l00597"></a>00597 }; | 
                        |  | 442 | <a name="l00598"></a>00598 | 
                        |  | 443 | <a name="l00624"></a><a class="code" href="classbdm_1_1datalink.html">00624</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1datalink.html" title="DataLink is a connection between two data vectors Up and Down.">datalink</a> { | 
                        |  | 444 | <a name="l00625"></a>00625 <span class="keyword">protected</span>: | 
                        |  | 445 | <a name="l00627"></a><a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c">00627</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c" title="Remember how long val should be.">downsize</a>; | 
                        |  | 446 | <a name="l00628"></a>00628 | 
                        |  | 447 | <a name="l00630"></a><a class="code" href="classbdm_1_1datalink.html#a0f0d0af6848114d96108d3a6af25a045">00630</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1datalink.html#a0f0d0af6848114d96108d3a6af25a045" title="Remember how long val of &quot;Up&quot; should be.">upsize</a>; | 
                        |  | 448 | <a name="l00631"></a>00631 | 
                        |  | 449 | <a name="l00633"></a><a class="code" href="classbdm_1_1datalink.html#a240b37d793c6bdc32824ed0a0541b1eb">00633</a>         ivec <a class="code" href="classbdm_1_1datalink.html#a240b37d793c6bdc32824ed0a0541b1eb" title="val-to-val link, indices of the upper val">v2v_up</a>; | 
                        |  | 450 | <a name="l00634"></a>00634 | 
                        |  | 451 | <a name="l00635"></a>00635 <span class="keyword">public</span>: | 
                        |  | 452 | <a name="l00637"></a><a class="code" href="classbdm_1_1datalink.html#ab8b5d5074fc1310a37c3713d58b900e2">00637</a>         <a class="code" href="classbdm_1_1datalink.html#ab8b5d5074fc1310a37c3713d58b900e2" title="Constructor.">datalink</a>() : <a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c" title="Remember how long val should be.">downsize</a> ( 0 ), <a class="code" href="classbdm_1_1datalink.html#a0f0d0af6848114d96108d3a6af25a045" title="Remember how long val of &quot;Up&quot; should be.">upsize</a> ( 0 ) { } | 
                        |  | 453 | <a name="l00638"></a>00638 | 
                        |  | 454 | <a name="l00640"></a><a class="code" href="classbdm_1_1datalink.html#a4016403730eb742462614d60393565cd">00640</a>         <a class="code" href="classbdm_1_1datalink.html#a4016403730eb742462614d60393565cd" title="Convenience constructor.">datalink</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv_up ) { | 
                        |  | 455 | <a name="l00641"></a>00641                 <a class="code" href="classbdm_1_1datalink.html#afb8337aac8329eb0ca96bfb3ff73ec67" title="set connection, rv must be fully present in rv_up">set_connection</a> ( rv, rv_up ); | 
            
                      
                        | 455 |  | <a name="l00644"></a><a class="code" href="classbdm_1_1datalink.html#abfc15c5e565d4dc1d0110deb5e8c3e6b">00644</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink.html#abfc15c5e565d4dc1d0110deb5e8c3e6b" title="Get val for vector val_down from val of &quot;Up&quot;.">filldown</a> ( <span class="keyword">const</span> vec &val_up, vec &val_down ) { | 
                        | 456 |  | <a name="l00645"></a>00645                 <a class="code" href="bdmerror_8h.html#a89a0f906b242b79c5d3d342291b2cab4" title="Throw std::runtime_exception if t is not true and NDEBUG is not defined.">bdm_assert_debug</a> ( <a class="code" href="classbdm_1_1datalink.html#a0f0d0af6848114d96108d3a6af25a045" title="Remember how long val of &quot;Up&quot; should be.">upsize</a> == val_up.length(), <span class="stringliteral">"Wrong val_up"</span> ); | 
                        | 457 |  | <a name="l00646"></a>00646                 val_down = val_up ( <a class="code" href="classbdm_1_1datalink.html#a240b37d793c6bdc32824ed0a0541b1eb" title="val-to-val link, indices of the upper val">v2v_up</a> ); | 
                        | 458 |  | <a name="l00647"></a>00647         } | 
                        | 459 |  | <a name="l00649"></a><a class="code" href="classbdm_1_1datalink.html#a610e966f2edb1fcd6a5b28267c571793">00649</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink.html#a610e966f2edb1fcd6a5b28267c571793" title="Fill val of &quot;Up&quot; by my pieces.">pushup</a> ( vec &val_up, <span class="keyword">const</span> vec &val ) { | 
                        | 460 |  | <a name="l00650"></a>00650                 <a class="code" href="bdmerror_8h.html#a89a0f906b242b79c5d3d342291b2cab4" title="Throw std::runtime_exception if t is not true and NDEBUG is not defined.">bdm_assert_debug</a> ( <a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c" title="Remember how long val should be.">downsize</a> == val.length(), <span class="stringliteral">"Wrong val"</span> ); | 
                        | 461 |  | <a name="l00651"></a>00651                 <a class="code" href="bdmerror_8h.html#a89a0f906b242b79c5d3d342291b2cab4" title="Throw std::runtime_exception if t is not true and NDEBUG is not defined.">bdm_assert_debug</a> ( <a class="code" href="classbdm_1_1datalink.html#a0f0d0af6848114d96108d3a6af25a045" title="Remember how long val of &quot;Up&quot; should be.">upsize</a> == val_up.length(), <span class="stringliteral">"Wrong val_up"</span> ); | 
                        | 462 |  | <a name="l00652"></a>00652                 set_subvector ( val_up, <a class="code" href="classbdm_1_1datalink.html#a240b37d793c6bdc32824ed0a0541b1eb" title="val-to-val link, indices of the upper val">v2v_up</a>, val ); | 
                        | 463 |  | <a name="l00653"></a>00653         } | 
                        | 464 |  | <a name="l00655"></a><a class="code" href="classbdm_1_1datalink.html#a340c5a253544a1dc2fd87932a5341c32">00655</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1datalink.html#a340c5a253544a1dc2fd87932a5341c32" title="access functions">_upsize</a>() { | 
                        | 465 |  | <a name="l00656"></a>00656                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1datalink.html#a0f0d0af6848114d96108d3a6af25a045" title="Remember how long val of &quot;Up&quot; should be.">upsize</a>; | 
                        | 466 |  | <a name="l00657"></a>00657         } | 
                        | 467 |  | <a name="l00659"></a><a class="code" href="classbdm_1_1datalink.html#a8f0cce4477e906f3090bb803e06d8698">00659</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1datalink.html#a8f0cce4477e906f3090bb803e06d8698" title="access functions">_downsize</a>() { | 
                        | 468 |  | <a name="l00660"></a>00660                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c" title="Remember how long val should be.">downsize</a>; | 
                        | 469 |  | <a name="l00661"></a>00661         } | 
                        | 470 |  | <a name="l00662"></a>00662 }; | 
                        | 471 |  | <a name="l00663"></a>00663 | 
                        | 472 |  | <a name="l00666"></a><a class="code" href="classbdm_1_1datalink__part.html">00666</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1datalink__part.html">datalink_part</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1datalink.html" title="DataLink is a connection between two data vectors Up and Down.">datalink</a> { | 
                        | 473 |  | <a name="l00667"></a>00667 <span class="keyword">protected</span>: | 
                        | 474 |  | <a name="l00669"></a><a class="code" href="classbdm_1_1datalink__part.html#a64f64e7e6357419240bc2b1b0749c943">00669</a>         ivec <a class="code" href="classbdm_1_1datalink__part.html#a64f64e7e6357419240bc2b1b0749c943" title="indeces of values in vector downsize">v2v_down</a>; | 
                        | 475 |  | <a name="l00670"></a>00670 <span class="keyword">public</span>: | 
                        | 476 |  | <a name="l00671"></a>00671         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__part.html#a6cef1083755c27e4476501abe6f49dce" title="set connection, rv must be fully present in rv_up">set_connection</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv_up ); | 
                        | 477 |  | <a name="l00673"></a><a class="code" href="classbdm_1_1datalink__part.html#aaba9b673ef82584e1bc06cc7a32b0a59">00673</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__part.html#aaba9b673ef82584e1bc06cc7a32b0a59" title="Get val for vector val_down from val of &quot;Up&quot;.">filldown</a> ( <span class="keyword">const</span> vec &val_up, vec &val_down ) { | 
                        | 478 |  | <a name="l00674"></a>00674                 set_subvector ( val_down, <a class="code" href="classbdm_1_1datalink__part.html#a64f64e7e6357419240bc2b1b0749c943" title="indeces of values in vector downsize">v2v_down</a>, val_up ( <a class="code" href="classbdm_1_1datalink.html#a240b37d793c6bdc32824ed0a0541b1eb" title="val-to-val link, indices of the upper val">v2v_up</a> ) ); | 
                        | 479 |  | <a name="l00675"></a>00675         } | 
                        | 480 |  | <a name="l00676"></a>00676 }; | 
                        | 481 |  | <a name="l00677"></a>00677 | 
                        | 482 |  | <a name="l00682"></a><a class="code" href="classbdm_1_1datalink__buffered.html">00682</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1datalink__buffered.html" title="Datalink that buffers delayed values - do not forget to call step().">datalink_buffered</a>: <span class="keyword">public</span> <a class="code" href="classbdm_1_1datalink__part.html">datalink_part</a> { | 
                        | 483 |  | <a name="l00683"></a>00683 <span class="keyword">protected</span>: | 
                        | 484 |  | <a name="l00685"></a><a class="code" href="classbdm_1_1datalink__buffered.html#aa7cb8a47b88b95fde0255a041d076988">00685</a>         vec <a class="code" href="classbdm_1_1datalink__buffered.html#aa7cb8a47b88b95fde0255a041d076988" title="History, ordered as .">history</a>; | 
                        | 485 |  | <a name="l00687"></a><a class="code" href="classbdm_1_1datalink__buffered.html#a211c56b68be3864d535a8b75d735ebdc">00687</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1datalink__buffered.html#a211c56b68be3864d535a8b75d735ebdc" title="rv of the history">Hrv</a>; | 
                        | 486 |  | <a name="l00689"></a><a class="code" href="classbdm_1_1datalink__buffered.html#aa1ce2032fe5c86fa87d80baccb9aacd7">00689</a>         ivec <a class="code" href="classbdm_1_1datalink__buffered.html#aa1ce2032fe5c86fa87d80baccb9aacd7" title="h2v : indeces in down">h2v_down</a>; | 
                        | 487 |  | <a name="l00691"></a><a class="code" href="classbdm_1_1datalink__buffered.html#ada58df16761169992059b8cd91d070c5">00691</a>         ivec <a class="code" href="classbdm_1_1datalink__buffered.html#ada58df16761169992059b8cd91d070c5" title="h2v : indeces in history">h2v_hist</a>; | 
                        | 488 |  | <a name="l00693"></a><a class="code" href="classbdm_1_1datalink__buffered.html#a0b09e10e42212497170ed5642bce7dbc">00693</a>         ivec <a class="code" href="classbdm_1_1datalink__buffered.html#a0b09e10e42212497170ed5642bce7dbc" title="v2h: indeces of up too be pushed to h">v2h_up</a>; | 
                        | 489 |  | <a name="l00694"></a>00694 <span class="keyword">public</span>: | 
                        | 490 |  | <a name="l00695"></a>00695 | 
                        | 491 |  | <a name="l00696"></a>00696         <a class="code" href="classbdm_1_1datalink__buffered.html" title="Datalink that buffers delayed values - do not forget to call step().">datalink_buffered</a>() : <a class="code" href="classbdm_1_1datalink__part.html">datalink_part</a>(), <a class="code" href="classbdm_1_1datalink__buffered.html#aa7cb8a47b88b95fde0255a041d076988" title="History, ordered as .">history</a> ( 0 ), <a class="code" href="classbdm_1_1datalink__buffered.html#aa1ce2032fe5c86fa87d80baccb9aacd7" title="h2v : indeces in down">h2v_down</a> ( 0 ), <a class="code" href="classbdm_1_1datalink__buffered.html#ada58df16761169992059b8cd91d070c5" title="h2v : indeces in history">h2v_hist</a> ( 0 ) {}; | 
                        | 492 |  | <a name="l00698"></a><a class="code" href="classbdm_1_1datalink__buffered.html#af137706c55891ba8a8aecc52ea96865f">00698</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__buffered.html#af137706c55891ba8a8aecc52ea96865f" title="push current data to history">step</a> ( <span class="keyword">const</span> vec &val_up ) { | 
                        | 493 |  | <a name="l00699"></a>00699                 <span class="keywordflow">if</span> ( <a class="code" href="classbdm_1_1datalink__buffered.html#a211c56b68be3864d535a8b75d735ebdc" title="rv of the history">Hrv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() > 0 ) { | 
                        | 494 |  | <a name="l00700"></a>00700                         <a class="code" href="classbdm_1_1datalink__buffered.html#aa7cb8a47b88b95fde0255a041d076988" title="History, ordered as .">history</a>.shift_right ( 0, <a class="code" href="classbdm_1_1datalink__buffered.html#a211c56b68be3864d535a8b75d735ebdc" title="rv of the history">Hrv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() ); | 
                        | 495 |  | <a name="l00701"></a>00701                   <a class="code" href="classbdm_1_1datalink__buffered.html#aa7cb8a47b88b95fde0255a041d076988" title="History, ordered as .">history</a>.set_subvector ( 0, val_up(<a class="code" href="classbdm_1_1datalink__buffered.html#a0b09e10e42212497170ed5642bce7dbc" title="v2h: indeces of up too be pushed to h">v2h_up</a>) ); <span class="comment">// write U after Drv</span> | 
                        | 496 |  | <a name="l00702"></a>00702                 } | 
                        | 497 |  | <a name="l00703"></a>00703         } | 
                        | 498 |  | <a name="l00705"></a><a class="code" href="classbdm_1_1datalink__buffered.html#ae665d66cb42862c1181645c438110a96">00705</a>         vec <a class="code" href="classbdm_1_1datalink__buffered.html#ae665d66cb42862c1181645c438110a96" title="Get val for myself from val of &quot;Up&quot;.">pushdown</a> ( <span class="keyword">const</span> vec &val_up ) { | 
                        | 499 |  | <a name="l00706"></a>00706                 vec tmp ( <a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c" title="Remember how long val should be.">downsize</a> ); | 
                        | 500 |  | <a name="l00707"></a>00707                 <a class="code" href="classbdm_1_1datalink__buffered.html#a681745a319728a416486df38aacd579f" title="Get val for vector val_down from val of &quot;Up&quot;.">filldown</a> ( val_up, tmp ); | 
                        | 501 |  | <a name="l00708"></a>00708                 <span class="keywordflow">return</span> tmp; | 
                        | 502 |  | <a name="l00709"></a>00709         } | 
                        | 503 |  | <a name="l00710"></a>00710 | 
                        | 504 |  | <a name="l00711"></a><a class="code" href="classbdm_1_1datalink__buffered.html#a681745a319728a416486df38aacd579f">00711</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__buffered.html#a681745a319728a416486df38aacd579f" title="Get val for vector val_down from val of &quot;Up&quot;.">filldown</a> ( <span class="keyword">const</span> vec &val_up, vec &val_down ) { | 
                        | 505 |  | <a name="l00712"></a>00712                 <a class="code" href="bdmerror_8h.html#a89a0f906b242b79c5d3d342291b2cab4" title="Throw std::runtime_exception if t is not true and NDEBUG is not defined.">bdm_assert_debug</a> ( val_down.length() >= <a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c" title="Remember how long val should be.">downsize</a>, <span class="stringliteral">"short val_down"</span> ); | 
                        | 506 |  | <a name="l00713"></a>00713 | 
                        | 507 |  | <a name="l00714"></a>00714                 set_subvector ( val_down, <a class="code" href="classbdm_1_1datalink__part.html#a64f64e7e6357419240bc2b1b0749c943" title="indeces of values in vector downsize">v2v_down</a>, val_up ( <a class="code" href="classbdm_1_1datalink.html#a240b37d793c6bdc32824ed0a0541b1eb" title="val-to-val link, indices of the upper val">v2v_up</a> ) ); <span class="comment">// copy direct values</span> | 
                        | 508 |  | <a name="l00715"></a>00715                 set_subvector ( val_down, <a class="code" href="classbdm_1_1datalink__buffered.html#aa1ce2032fe5c86fa87d80baccb9aacd7" title="h2v : indeces in down">h2v_down</a>, <a class="code" href="classbdm_1_1datalink__buffered.html#aa7cb8a47b88b95fde0255a041d076988" title="History, ordered as .">history</a> ( <a class="code" href="classbdm_1_1datalink__buffered.html#ada58df16761169992059b8cd91d070c5" title="h2v : indeces in history">h2v_hist</a> ) ); <span class="comment">// copy delayed values</span> | 
                      
                        |  | 457 | <a name="l00643"></a>00643 | 
                        |  | 458 | <a name="l00645"></a>00645         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink.html#afb8337aac8329eb0ca96bfb3ff73ec67" title="set connection, rv must be fully present in rv_up">set_connection</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv_up ); | 
                        |  | 459 | <a name="l00646"></a>00646 | 
                        |  | 460 | <a name="l00648"></a>00648         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink.html#afb8337aac8329eb0ca96bfb3ff73ec67" title="set connection, rv must be fully present in rv_up">set_connection</a> ( <span class="keywordtype">int</span> ds, <span class="keywordtype">int</span> us, <span class="keyword">const</span> ivec &upind ); | 
                        |  | 461 | <a name="l00649"></a>00649 | 
                        |  | 462 | <a name="l00651"></a><a class="code" href="classbdm_1_1datalink.html#a5b5368c3899eed2f670d09142c2548e5">00651</a>         vec <a class="code" href="classbdm_1_1datalink.html#a5b5368c3899eed2f670d09142c2548e5" title="Get val for myself from val of &quot;Up&quot;.">pushdown</a> ( <span class="keyword">const</span> vec &val_up ) { | 
                        |  | 463 | <a name="l00652"></a>00652                 vec tmp ( <a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c" title="Remember how long val should be.">downsize</a> ); | 
                        |  | 464 | <a name="l00653"></a>00653                 <a class="code" href="classbdm_1_1datalink.html#abfc15c5e565d4dc1d0110deb5e8c3e6b" title="Get val for vector val_down from val of &quot;Up&quot;.">filldown</a> ( val_up, tmp ); | 
                        |  | 465 | <a name="l00654"></a>00654                 <span class="keywordflow">return</span> tmp; | 
                        |  | 466 | <a name="l00655"></a>00655         } | 
                        |  | 467 | <a name="l00657"></a><a class="code" href="classbdm_1_1datalink.html#abfc15c5e565d4dc1d0110deb5e8c3e6b">00657</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink.html#abfc15c5e565d4dc1d0110deb5e8c3e6b" title="Get val for vector val_down from val of &quot;Up&quot;.">filldown</a> ( <span class="keyword">const</span> vec &val_up, vec &val_down ) { | 
                        |  | 468 | <a name="l00658"></a>00658                 <a class="code" href="bdmerror_8h.html#a89a0f906b242b79c5d3d342291b2cab4" title="Throw std::runtime_exception if t is not true and NDEBUG is not defined.">bdm_assert_debug</a> ( <a class="code" href="classbdm_1_1datalink.html#a0f0d0af6848114d96108d3a6af25a045" title="Remember how long val of &quot;Up&quot; should be.">upsize</a> == val_up.length(), <span class="stringliteral">"Wrong val_up"</span> ); | 
                        |  | 469 | <a name="l00659"></a>00659                 val_down = val_up ( <a class="code" href="classbdm_1_1datalink.html#a240b37d793c6bdc32824ed0a0541b1eb" title="val-to-val link, indices of the upper val">v2v_up</a> ); | 
                        |  | 470 | <a name="l00660"></a>00660         } | 
                        |  | 471 | <a name="l00662"></a><a class="code" href="classbdm_1_1datalink.html#a610e966f2edb1fcd6a5b28267c571793">00662</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink.html#a610e966f2edb1fcd6a5b28267c571793" title="Fill val of &quot;Up&quot; by my pieces.">pushup</a> ( vec &val_up, <span class="keyword">const</span> vec &val ) { | 
                        |  | 472 | <a name="l00663"></a>00663                 <a class="code" href="bdmerror_8h.html#a89a0f906b242b79c5d3d342291b2cab4" title="Throw std::runtime_exception if t is not true and NDEBUG is not defined.">bdm_assert_debug</a> ( <a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c" title="Remember how long val should be.">downsize</a> == val.length(), <span class="stringliteral">"Wrong val"</span> ); | 
                        |  | 473 | <a name="l00664"></a>00664                 <a class="code" href="bdmerror_8h.html#a89a0f906b242b79c5d3d342291b2cab4" title="Throw std::runtime_exception if t is not true and NDEBUG is not defined.">bdm_assert_debug</a> ( <a class="code" href="classbdm_1_1datalink.html#a0f0d0af6848114d96108d3a6af25a045" title="Remember how long val of &quot;Up&quot; should be.">upsize</a> == val_up.length(), <span class="stringliteral">"Wrong val_up"</span> ); | 
                        |  | 474 | <a name="l00665"></a>00665                 set_subvector ( val_up, <a class="code" href="classbdm_1_1datalink.html#a240b37d793c6bdc32824ed0a0541b1eb" title="val-to-val link, indices of the upper val">v2v_up</a>, val ); | 
                        |  | 475 | <a name="l00666"></a>00666         } | 
                        |  | 476 | <a name="l00668"></a><a class="code" href="classbdm_1_1datalink.html#a340c5a253544a1dc2fd87932a5341c32">00668</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1datalink.html#a340c5a253544a1dc2fd87932a5341c32" title="access functions">_upsize</a>() { | 
                        |  | 477 | <a name="l00669"></a>00669                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1datalink.html#a0f0d0af6848114d96108d3a6af25a045" title="Remember how long val of &quot;Up&quot; should be.">upsize</a>; | 
                        |  | 478 | <a name="l00670"></a>00670         } | 
                        |  | 479 | <a name="l00672"></a><a class="code" href="classbdm_1_1datalink.html#a8f0cce4477e906f3090bb803e06d8698">00672</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1datalink.html#a8f0cce4477e906f3090bb803e06d8698" title="access functions">_downsize</a>() { | 
                        |  | 480 | <a name="l00673"></a>00673                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c" title="Remember how long val should be.">downsize</a>; | 
                        |  | 481 | <a name="l00674"></a>00674         } | 
                        |  | 482 | <a name="l00675"></a>00675 }; | 
                        |  | 483 | <a name="l00676"></a>00676 | 
                        |  | 484 | <a name="l00679"></a><a class="code" href="classbdm_1_1datalink__part.html">00679</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1datalink__part.html">datalink_part</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1datalink.html" title="DataLink is a connection between two data vectors Up and Down.">datalink</a> { | 
                        |  | 485 | <a name="l00680"></a>00680 <span class="keyword">protected</span>: | 
                        |  | 486 | <a name="l00682"></a><a class="code" href="classbdm_1_1datalink__part.html#a64f64e7e6357419240bc2b1b0749c943">00682</a>         ivec <a class="code" href="classbdm_1_1datalink__part.html#a64f64e7e6357419240bc2b1b0749c943" title="indeces of values in vector downsize">v2v_down</a>; | 
                        |  | 487 | <a name="l00683"></a>00683 <span class="keyword">public</span>: | 
                        |  | 488 | <a name="l00684"></a>00684         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__part.html#a6cef1083755c27e4476501abe6f49dce" title="set connection, rv must be fully present in rv_up">set_connection</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv_up ); | 
                        |  | 489 | <a name="l00686"></a><a class="code" href="classbdm_1_1datalink__part.html#aaba9b673ef82584e1bc06cc7a32b0a59">00686</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__part.html#aaba9b673ef82584e1bc06cc7a32b0a59" title="Get val for vector val_down from val of &quot;Up&quot;.">filldown</a> ( <span class="keyword">const</span> vec &val_up, vec &val_down ) { | 
                        |  | 490 | <a name="l00687"></a>00687                 set_subvector ( val_down, <a class="code" href="classbdm_1_1datalink__part.html#a64f64e7e6357419240bc2b1b0749c943" title="indeces of values in vector downsize">v2v_down</a>, val_up ( <a class="code" href="classbdm_1_1datalink.html#a240b37d793c6bdc32824ed0a0541b1eb" title="val-to-val link, indices of the upper val">v2v_up</a> ) ); | 
                        |  | 491 | <a name="l00688"></a>00688         } | 
                        |  | 492 | <a name="l00689"></a>00689 }; | 
                        |  | 493 | <a name="l00690"></a>00690 | 
                        |  | 494 | <a name="l00695"></a><a class="code" href="classbdm_1_1datalink__buffered.html">00695</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1datalink__buffered.html" title="Datalink that buffers delayed values - do not forget to call step().">datalink_buffered</a>: <span class="keyword">public</span> <a class="code" href="classbdm_1_1datalink__part.html">datalink_part</a> { | 
                        |  | 495 | <a name="l00696"></a>00696 <span class="keyword">protected</span>: | 
                        |  | 496 | <a name="l00698"></a><a class="code" href="classbdm_1_1datalink__buffered.html#aa7cb8a47b88b95fde0255a041d076988">00698</a>         vec <a class="code" href="classbdm_1_1datalink__buffered.html#aa7cb8a47b88b95fde0255a041d076988" title="History, ordered as .">history</a>; | 
                        |  | 497 | <a name="l00700"></a><a class="code" href="classbdm_1_1datalink__buffered.html#a211c56b68be3864d535a8b75d735ebdc">00700</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1datalink__buffered.html#a211c56b68be3864d535a8b75d735ebdc" title="rv of the history">Hrv</a>; | 
                        |  | 498 | <a name="l00702"></a><a class="code" href="classbdm_1_1datalink__buffered.html#aa1ce2032fe5c86fa87d80baccb9aacd7">00702</a>         ivec <a class="code" href="classbdm_1_1datalink__buffered.html#aa1ce2032fe5c86fa87d80baccb9aacd7" title="h2v : indeces in down">h2v_down</a>; | 
                        |  | 499 | <a name="l00704"></a><a class="code" href="classbdm_1_1datalink__buffered.html#ada58df16761169992059b8cd91d070c5">00704</a>         ivec <a class="code" href="classbdm_1_1datalink__buffered.html#ada58df16761169992059b8cd91d070c5" title="h2v : indeces in history">h2v_hist</a>; | 
                        |  | 500 | <a name="l00706"></a><a class="code" href="classbdm_1_1datalink__buffered.html#a0b09e10e42212497170ed5642bce7dbc">00706</a>         ivec <a class="code" href="classbdm_1_1datalink__buffered.html#a0b09e10e42212497170ed5642bce7dbc" title="v2h: indeces of up too be pushed to h">v2h_up</a>; | 
                        |  | 501 | <a name="l00707"></a>00707 <span class="keyword">public</span>: | 
                        |  | 502 | <a name="l00708"></a>00708 | 
                        |  | 503 | <a name="l00709"></a>00709         <a class="code" href="classbdm_1_1datalink__buffered.html" title="Datalink that buffers delayed values - do not forget to call step().">datalink_buffered</a>() : <a class="code" href="classbdm_1_1datalink__part.html">datalink_part</a>(), <a class="code" href="classbdm_1_1datalink__buffered.html#aa7cb8a47b88b95fde0255a041d076988" title="History, ordered as .">history</a> ( 0 ), <a class="code" href="classbdm_1_1datalink__buffered.html#aa1ce2032fe5c86fa87d80baccb9aacd7" title="h2v : indeces in down">h2v_down</a> ( 0 ), <a class="code" href="classbdm_1_1datalink__buffered.html#ada58df16761169992059b8cd91d070c5" title="h2v : indeces in history">h2v_hist</a> ( 0 ) {}; | 
                        |  | 504 | <a name="l00711"></a><a class="code" href="classbdm_1_1datalink__buffered.html#af137706c55891ba8a8aecc52ea96865f">00711</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__buffered.html#af137706c55891ba8a8aecc52ea96865f" title="push current data to history">step</a> ( <span class="keyword">const</span> vec &val_up ) { | 
                        |  | 505 | <a name="l00712"></a>00712                 <span class="keywordflow">if</span> ( <a class="code" href="classbdm_1_1datalink__buffered.html#a0b09e10e42212497170ed5642bce7dbc" title="v2h: indeces of up too be pushed to h">v2h_up</a>.length() > 0 ) { | 
                        |  | 506 | <a name="l00713"></a>00713                         <a class="code" href="classbdm_1_1datalink__buffered.html#aa7cb8a47b88b95fde0255a041d076988" title="History, ordered as .">history</a>.shift_right ( 0, <a class="code" href="classbdm_1_1datalink__buffered.html#a0b09e10e42212497170ed5642bce7dbc" title="v2h: indeces of up too be pushed to h">v2h_up</a>.length() ); | 
                        |  | 507 | <a name="l00714"></a>00714                   <a class="code" href="classbdm_1_1datalink__buffered.html#aa7cb8a47b88b95fde0255a041d076988" title="History, ordered as .">history</a>.set_subvector ( 0, val_up(<a class="code" href="classbdm_1_1datalink__buffered.html#a0b09e10e42212497170ed5642bce7dbc" title="v2h: indeces of up too be pushed to h">v2h_up</a>) ); | 
                        |  | 508 | <a name="l00715"></a>00715                 } | 
            
                      
                        | 510 |  | <a name="l00717"></a>00717 | 
                        | 511 |  | <a name="l00718"></a><a class="code" href="classbdm_1_1datalink__buffered.html#aadefa427312905425ebab8531da1846a">00718</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__buffered.html#aadefa427312905425ebab8531da1846a" title="set connection, rv must be fully present in rv_up">set_connection</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv_up ) { | 
                        | 512 |  | <a name="l00719"></a>00719                 <span class="comment">// create link between up and down</span> | 
                        | 513 |  | <a name="l00720"></a>00720                 <a class="code" href="classbdm_1_1datalink__buffered.html#aadefa427312905425ebab8531da1846a" title="set connection, rv must be fully present in rv_up">datalink_part::set_connection</a> ( rv, rv_up ); | 
                        | 514 |  | <a name="l00721"></a>00721 | 
                        | 515 |  | <a name="l00722"></a>00722                 <span class="comment">// create rvs of history</span> | 
                        | 516 |  | <a name="l00723"></a>00723                 <span class="comment">// we can store only what we get in rv_up - everything else is removed</span> | 
                        | 517 |  | <a name="l00724"></a>00724                 ivec valid_ids = rv.<a class="code" href="classbdm_1_1RV.html#aa858d36d0264e1f1c89500531162fdf1" title="Find indices of self in another rv, ignore time,.">findself_ids</a> ( rv_up ); | 
                        | 518 |  | <a name="l00725"></a>00725                 <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> rv_hist = rv.<a class="code" href="classbdm_1_1RV.html#ac0c04ab99ded62e1e05bcefb151ebeb9" title="Select only variables at indices ind.">subselect</a> ( find ( valid_ids >= 0 ) ); <span class="comment">// select only rvs that are in rv_up</span> | 
                        | 519 |  | <a name="l00726"></a>00726           <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> rv_hist0 =rv_hist.remove_time();  <span class="comment">// these RVs will form history at time =0</span> | 
                        | 520 |  | <a name="l00727"></a>00727           <a class="code" href="classbdm_1_1datalink__buffered.html#a0b09e10e42212497170ed5642bce7dbc" title="v2h: indeces of up too be pushed to h">v2h_up</a> = rv_hist0.<a class="code" href="classbdm_1_1RV.html#acbebdb5e0d30101a6eb63550ef701c55" title="when this rv is a part of bigger rv, this function returns indices of self in the...">dataind</a>(rv_up); <span class="comment">// indeces of elements of rv_up to be copied</span> | 
                        | 521 |  | <a name="l00728"></a>00728           <span class="comment">// now we need to know what is needed from Up</span> | 
                        | 522 |  | <a name="l00729"></a>00729                 rv_hist = rv_hist.<a class="code" href="classbdm_1_1RV.html#ac5819f71d774649412c10b8e1716be1e" title="return rvs with expanded delayes and sorted in the order of:">expand_delayes</a>(); <span class="comment">// full regressor - including time 0</span> | 
                        | 523 |  | <a name="l00730"></a>00730           <a class="code" href="classbdm_1_1datalink__buffered.html#a211c56b68be3864d535a8b75d735ebdc" title="rv of the history">Hrv</a>=rv_hist.<a class="code" href="classbdm_1_1RV.html#aaec44dabdf0a6d90fbae95e1356eda39" title="Subtract another variable from the current one.">subt</a>(rv_hist0);   <span class="comment">// remove time 0</span> | 
                        | 524 |  | <a name="l00731"></a>00731                 <a class="code" href="classbdm_1_1datalink__buffered.html#aa7cb8a47b88b95fde0255a041d076988" title="History, ordered as .">history</a> = zeros ( <a class="code" href="classbdm_1_1datalink__buffered.html#a211c56b68be3864d535a8b75d735ebdc" title="rv of the history">Hrv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() ); | 
                        | 525 |  | <a name="l00732"></a>00732 | 
                        | 526 |  | <a name="l00733"></a>00733                 <a class="code" href="classbdm_1_1datalink__buffered.html#a211c56b68be3864d535a8b75d735ebdc" title="rv of the history">Hrv</a>.<a class="code" href="classbdm_1_1RV.html#acbebdb5e0d30101a6eb63550ef701c55" title="when this rv is a part of bigger rv, this function returns indices of self in the...">dataind</a> ( rv, <a class="code" href="classbdm_1_1datalink__buffered.html#ada58df16761169992059b8cd91d070c5" title="h2v : indeces in history">h2v_hist</a>, <a class="code" href="classbdm_1_1datalink__buffered.html#aa1ce2032fe5c86fa87d80baccb9aacd7" title="h2v : indeces in down">h2v_down</a> ); | 
                      
                        |  | 510 | <a name="l00718"></a><a class="code" href="classbdm_1_1datalink__buffered.html#ae665d66cb42862c1181645c438110a96">00718</a>         vec <a class="code" href="classbdm_1_1datalink__buffered.html#ae665d66cb42862c1181645c438110a96" title="Get val for myself from val of &quot;Up&quot;.">pushdown</a> ( <span class="keyword">const</span> vec &val_up ) { | 
                        |  | 511 | <a name="l00719"></a>00719                 vec tmp ( <a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c" title="Remember how long val should be.">downsize</a> ); | 
                        |  | 512 | <a name="l00720"></a>00720                 <a class="code" href="classbdm_1_1datalink__buffered.html#a681745a319728a416486df38aacd579f" title="Get val for vector val_down from val of &quot;Up&quot;.">filldown</a> ( val_up, tmp ); | 
                        |  | 513 | <a name="l00721"></a>00721                 <span class="keywordflow">return</span> tmp; | 
                        |  | 514 | <a name="l00722"></a>00722         } | 
                        |  | 515 | <a name="l00723"></a>00723 | 
                        |  | 516 | <a name="l00724"></a><a class="code" href="classbdm_1_1datalink__buffered.html#a681745a319728a416486df38aacd579f">00724</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__buffered.html#a681745a319728a416486df38aacd579f" title="Get val for vector val_down from val of &quot;Up&quot;.">filldown</a> ( <span class="keyword">const</span> vec &val_up, vec &val_down ) { | 
                        |  | 517 | <a name="l00725"></a>00725                 <a class="code" href="bdmerror_8h.html#a89a0f906b242b79c5d3d342291b2cab4" title="Throw std::runtime_exception if t is not true and NDEBUG is not defined.">bdm_assert_debug</a> ( val_down.length() >= <a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c" title="Remember how long val should be.">downsize</a>, <span class="stringliteral">"short val_down"</span> ); | 
                        |  | 518 | <a name="l00726"></a>00726 | 
                        |  | 519 | <a name="l00727"></a>00727                 set_subvector ( val_down, <a class="code" href="classbdm_1_1datalink__part.html#a64f64e7e6357419240bc2b1b0749c943" title="indeces of values in vector downsize">v2v_down</a>, val_up ( <a class="code" href="classbdm_1_1datalink.html#a240b37d793c6bdc32824ed0a0541b1eb" title="val-to-val link, indices of the upper val">v2v_up</a> ) ); <span class="comment">// copy direct values</span> | 
                        |  | 520 | <a name="l00728"></a>00728                 set_subvector ( val_down, <a class="code" href="classbdm_1_1datalink__buffered.html#aa1ce2032fe5c86fa87d80baccb9aacd7" title="h2v : indeces in down">h2v_down</a>, <a class="code" href="classbdm_1_1datalink__buffered.html#aa7cb8a47b88b95fde0255a041d076988" title="History, ordered as .">history</a> ( <a class="code" href="classbdm_1_1datalink__buffered.html#ada58df16761169992059b8cd91d070c5" title="h2v : indeces in history">h2v_hist</a> ) ); <span class="comment">// copy delayed values</span> | 
                        |  | 521 | <a name="l00729"></a>00729         } | 
                        |  | 522 | <a name="l00730"></a>00730 | 
                        |  | 523 | <a name="l00731"></a><a class="code" href="classbdm_1_1datalink__buffered.html#aadefa427312905425ebab8531da1846a">00731</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__buffered.html#aadefa427312905425ebab8531da1846a" title="set connection, rv must be fully present in rv_up">set_connection</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv_up ) { | 
                        |  | 524 | <a name="l00732"></a>00732                 <span class="comment">// create link between up and down</span> | 
                        |  | 525 | <a name="l00733"></a>00733                 <a class="code" href="classbdm_1_1datalink__buffered.html#aadefa427312905425ebab8531da1846a" title="set connection, rv must be fully present in rv_up">datalink_part::set_connection</a> ( rv, rv_up ); | 
            
                      
                        | 528 |  | <a name="l00735"></a>00735                 <a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c" title="Remember how long val should be.">downsize</a> = <a class="code" href="classbdm_1_1datalink__part.html#a64f64e7e6357419240bc2b1b0749c943" title="indeces of values in vector downsize">v2v_down</a>.length() + <a class="code" href="classbdm_1_1datalink__buffered.html#aa1ce2032fe5c86fa87d80baccb9aacd7" title="h2v : indeces in down">h2v_down</a>.length(); | 
                        | 529 |  | <a name="l00736"></a>00736                 <a class="code" href="classbdm_1_1datalink.html#a0f0d0af6848114d96108d3a6af25a045" title="Remember how long val of &quot;Up&quot; should be.">upsize</a> = <a class="code" href="classbdm_1_1datalink.html#a240b37d793c6bdc32824ed0a0541b1eb" title="val-to-val link, indices of the upper val">v2v_up</a>.length(); | 
                        | 530 |  | <a name="l00737"></a>00737         } | 
                        | 531 |  | <a name="l00738"></a>00738 }; | 
                        | 532 |  | <a name="l00739"></a>00739 | 
                        | 533 |  | <a name="l00741"></a><a class="code" href="classbdm_1_1datalink__2to1__buffered.html">00741</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1datalink__2to1__buffered.html" title="buffered datalink from 2 vectors to 1">datalink_2to1_buffered</a> { | 
                        | 534 |  | <a name="l00742"></a>00742 <span class="keyword">protected</span>: | 
                        | 535 |  | <a name="l00743"></a>00743         <a class="code" href="classbdm_1_1datalink__buffered.html" title="Datalink that buffers delayed values - do not forget to call step().">datalink_buffered</a> dl1; | 
                        | 536 |  | <a name="l00744"></a>00744         <a class="code" href="classbdm_1_1datalink__buffered.html" title="Datalink that buffers delayed values - do not forget to call step().">datalink_buffered</a> dl2; | 
                        | 537 |  | <a name="l00745"></a>00745 <span class="keyword">public</span>: | 
                        | 538 |  | <a name="l00747"></a><a class="code" href="classbdm_1_1datalink__2to1__buffered.html#aef1441b4885ae4d8e95b3ff28e575364">00747</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__2to1__buffered.html#aef1441b4885ae4d8e95b3ff28e575364" title="set connection between RVs">set_connection</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv_up1, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv_up2 ) { | 
                        | 539 |  | <a name="l00748"></a>00748                 dl1.<a class="code" href="classbdm_1_1datalink__buffered.html#aadefa427312905425ebab8531da1846a" title="set connection, rv must be fully present in rv_up">set_connection</a> ( rv, rv_up1 ); | 
                        | 540 |  | <a name="l00749"></a>00749                 dl2.<a class="code" href="classbdm_1_1datalink__buffered.html#aadefa427312905425ebab8531da1846a" title="set connection, rv must be fully present in rv_up">set_connection</a> ( rv, rv_up2 ); | 
                      
                        |  | 527 | <a name="l00735"></a>00735                 <span class="comment">// create rvs of history</span> | 
                        |  | 528 | <a name="l00736"></a>00736                 <span class="comment">// we can store only what we get in rv_up - everything else is removed</span> | 
                        |  | 529 | <a name="l00737"></a>00737                 ivec valid_ids = rv.<a class="code" href="classbdm_1_1RV.html#aa858d36d0264e1f1c89500531162fdf1" title="Find indices of self in another rv, ignore time,.">findself_ids</a> ( rv_up ); | 
                        |  | 530 | <a name="l00738"></a>00738                 <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> rv_hist = rv.<a class="code" href="classbdm_1_1RV.html#ac0c04ab99ded62e1e05bcefb151ebeb9" title="Select only variables at indices ind.">subselect</a> ( find ( valid_ids >= 0 ) ); <span class="comment">// select only rvs that are in rv_up</span> | 
                        |  | 531 | <a name="l00739"></a>00739           <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> rv_hist0 =rv_hist.remove_time();  <span class="comment">// these RVs will form history at time =0</span> | 
                        |  | 532 | <a name="l00740"></a>00740           <a class="code" href="classbdm_1_1datalink__buffered.html#a0b09e10e42212497170ed5642bce7dbc" title="v2h: indeces of up too be pushed to h">v2h_up</a> = rv_hist0.<a class="code" href="classbdm_1_1RV.html#acbebdb5e0d30101a6eb63550ef701c55" title="when this rv is a part of bigger rv, this function returns indices of self in the...">dataind</a>(rv_up); <span class="comment">// indeces of elements of rv_up to be copied</span> | 
                        |  | 533 | <a name="l00741"></a>00741           <span class="comment">// now we need to know what is needed from Up</span> | 
                        |  | 534 | <a name="l00742"></a>00742                 rv_hist = rv_hist.<a class="code" href="classbdm_1_1RV.html#ac5819f71d774649412c10b8e1716be1e" title="return rvs with expanded delayes and sorted in the order of:">expand_delayes</a>(); <span class="comment">// full regressor - including time 0</span> | 
                        |  | 535 | <a name="l00743"></a>00743           <a class="code" href="classbdm_1_1datalink__buffered.html#a211c56b68be3864d535a8b75d735ebdc" title="rv of the history">Hrv</a>=rv_hist.<a class="code" href="classbdm_1_1RV.html#aaec44dabdf0a6d90fbae95e1356eda39" title="Subtract another variable from the current one.">subt</a>(rv_hist0);   <span class="comment">// remove time 0</span> | 
                        |  | 536 | <a name="l00744"></a>00744                 <a class="code" href="classbdm_1_1datalink__buffered.html#aa7cb8a47b88b95fde0255a041d076988" title="History, ordered as .">history</a> = zeros ( <a class="code" href="classbdm_1_1datalink__buffered.html#a211c56b68be3864d535a8b75d735ebdc" title="rv of the history">Hrv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() ); | 
                        |  | 537 | <a name="l00745"></a>00745 | 
                        |  | 538 | <a name="l00746"></a>00746                 <a class="code" href="classbdm_1_1datalink__buffered.html#a211c56b68be3864d535a8b75d735ebdc" title="rv of the history">Hrv</a>.<a class="code" href="classbdm_1_1RV.html#acbebdb5e0d30101a6eb63550ef701c55" title="when this rv is a part of bigger rv, this function returns indices of self in the...">dataind</a> ( rv, <a class="code" href="classbdm_1_1datalink__buffered.html#ada58df16761169992059b8cd91d070c5" title="h2v : indeces in history">h2v_hist</a>, <a class="code" href="classbdm_1_1datalink__buffered.html#aa1ce2032fe5c86fa87d80baccb9aacd7" title="h2v : indeces in down">h2v_down</a> ); | 
                        |  | 539 | <a name="l00747"></a>00747 | 
                        |  | 540 | <a name="l00748"></a>00748                 <a class="code" href="classbdm_1_1datalink.html#abc8ff50395fc1066a1e486dea18d987c" title="Remember how long val should be.">downsize</a> = <a class="code" href="classbdm_1_1datalink__part.html#a64f64e7e6357419240bc2b1b0749c943" title="indeces of values in vector downsize">v2v_down</a>.length() + <a class="code" href="classbdm_1_1datalink__buffered.html#aa1ce2032fe5c86fa87d80baccb9aacd7" title="h2v : indeces in down">h2v_down</a>.length(); | 
                        |  | 541 | <a name="l00749"></a>00749                 <a class="code" href="classbdm_1_1datalink.html#a0f0d0af6848114d96108d3a6af25a045" title="Remember how long val of &quot;Up&quot; should be.">upsize</a> = <a class="code" href="classbdm_1_1datalink.html#a240b37d793c6bdc32824ed0a0541b1eb" title="val-to-val link, indices of the upper val">v2v_up</a>.length(); | 
            
                      
                        | 542 |  | <a name="l00751"></a>00751         <span class="keywordtype">void</span> filldown ( <span class="keyword">const</span> vec &val1, <span class="keyword">const</span> vec &val2, vec &val_down ) { | 
                        | 543 |  | <a name="l00752"></a>00752                 <a class="code" href="bdmerror_8h.html#a89a0f906b242b79c5d3d342291b2cab4" title="Throw std::runtime_exception if t is not true and NDEBUG is not defined.">bdm_assert_debug</a> ( val_down.length() >= dl1.<a class="code" href="classbdm_1_1datalink.html#a8f0cce4477e906f3090bb803e06d8698" title="access functions">_downsize</a>() + dl2.<a class="code" href="classbdm_1_1datalink.html#a8f0cce4477e906f3090bb803e06d8698" title="access functions">_downsize</a>(), <span class="stringliteral">"short val_down"</span> ); | 
                        | 544 |  | <a name="l00753"></a>00753                 dl1.<a class="code" href="classbdm_1_1datalink__buffered.html#a681745a319728a416486df38aacd579f" title="Get val for vector val_down from val of &quot;Up&quot;.">filldown</a> ( val1, val_down ); | 
                        | 545 |  | <a name="l00754"></a>00754                 dl2.<a class="code" href="classbdm_1_1datalink__buffered.html#a681745a319728a416486df38aacd579f" title="Get val for vector val_down from val of &quot;Up&quot;.">filldown</a> ( val2, val_down ); | 
                        | 546 |  | <a name="l00755"></a>00755         } | 
                        | 547 |  | <a name="l00756"></a>00756         <span class="keywordtype">void</span> step ( <span class="keyword">const</span> vec &dt, <span class="keyword">const</span> vec &ut ) { | 
                        | 548 |  | <a name="l00757"></a>00757                 dl1.step ( dt ); | 
                        | 549 |  | <a name="l00758"></a>00758                 dl2.step ( ut ); | 
                        | 550 |  | <a name="l00759"></a>00759         } | 
                        | 551 |  | <a name="l00760"></a>00760 }; | 
                        | 552 |  | <a name="l00761"></a>00761 | 
                        | 553 |  | <a name="l00762"></a>00762 | 
                        | 554 |  | <a name="l00763"></a>00763 | 
                        | 555 |  | <a name="l00765"></a><a class="code" href="classbdm_1_1datalink__m2e.html">00765</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1datalink__m2e.html" title="Data link with a condition.">datalink_m2e</a>: <span class="keyword">public</span> <a class="code" href="classbdm_1_1datalink.html" title="DataLink is a connection between two data vectors Up and Down.">datalink</a> { | 
                        | 556 |  | <a name="l00766"></a>00766 <span class="keyword">protected</span>: | 
                        | 557 |  | <a name="l00768"></a><a class="code" href="classbdm_1_1datalink__m2e.html#a3fb26525e0bfa7932a37c5cd404801f9">00768</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1datalink__m2e.html#a3fb26525e0bfa7932a37c5cd404801f9" title="Remember how long cond should be.">condsize</a>; | 
                        | 558 |  | <a name="l00769"></a>00769 | 
                        | 559 |  | <a name="l00771"></a><a class="code" href="classbdm_1_1datalink__m2e.html#a43fe3e2d7aa04134053ec15793722783">00771</a>         ivec <a class="code" href="classbdm_1_1datalink__m2e.html#a43fe3e2d7aa04134053ec15793722783" title="upper_val-to-local_cond link, indices of the upper val">v2c_up</a>; | 
                        | 560 |  | <a name="l00772"></a>00772 | 
                        | 561 |  | <a name="l00774"></a><a class="code" href="classbdm_1_1datalink__m2e.html#a9e0048d87bda78e9b8d38761440c7abc">00774</a>         ivec <a class="code" href="classbdm_1_1datalink__m2e.html#a9e0048d87bda78e9b8d38761440c7abc" title="upper_val-to-local_cond link, indices of the local cond">v2c_lo</a>; | 
                        | 562 |  | <a name="l00775"></a>00775 | 
                        | 563 |  | <a name="l00776"></a>00776 <span class="keyword">public</span>: | 
                        | 564 |  | <a name="l00778"></a><a class="code" href="classbdm_1_1datalink__m2e.html#a5ad951e9cf850c9bfe4e492e91a50af6">00778</a>         <a class="code" href="classbdm_1_1datalink__m2e.html#a5ad951e9cf850c9bfe4e492e91a50af6" title="Constructor.">datalink_m2e</a>() : <a class="code" href="classbdm_1_1datalink__m2e.html#a3fb26525e0bfa7932a37c5cd404801f9" title="Remember how long cond should be.">condsize</a> ( 0 ) { } | 
                        | 565 |  | <a name="l00779"></a>00779 | 
                        | 566 |  | <a name="l00781"></a>00781         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__m2e.html#aadd918bf877c48714cff51ee4ad989b0" title="Set connection between vectors.">set_connection</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rvc, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv_up ); | 
                      
                        |  | 543 | <a name="l00752"></a><a class="code" href="classbdm_1_1datalink__buffered.html#ac95435dc0781d14529cddde9b2894b6d">00752</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__buffered.html#ac95435dc0781d14529cddde9b2894b6d" title="set history of variable given by rv1 to values of hist.">set_history</a>(<span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a>& rv1, <span class="keyword">const</span> vec &hist0){ | 
                        |  | 544 | <a name="l00753"></a>00753                 <a class="code" href="bdmerror_8h.html#a7a3399d182b8e3065532596e76f84849" title="Throw std::runtime_exception if t is not true.">bdm_assert</a>(rv1.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>()==hist0.length(),<span class="stringliteral">"hist is not compatible with given rv1"</span>); | 
                        |  | 545 | <a name="l00754"></a>00754                 ivec ind_H; | 
                        |  | 546 | <a name="l00755"></a>00755                 ivec ind_h0; | 
                        |  | 547 | <a name="l00756"></a>00756                 <a class="code" href="classbdm_1_1datalink__buffered.html#a211c56b68be3864d535a8b75d735ebdc" title="rv of the history">Hrv</a>.<a class="code" href="classbdm_1_1RV.html#acbebdb5e0d30101a6eb63550ef701c55" title="when this rv is a part of bigger rv, this function returns indices of self in the...">dataind</a>(rv1, ind_H, ind_h0); <span class="comment">// find indeces of rv in </span> | 
                        |  | 548 | <a name="l00757"></a>00757                 set_subvector(<a class="code" href="classbdm_1_1datalink__buffered.html#aa7cb8a47b88b95fde0255a041d076988" title="History, ordered as .">history</a>, ind_H, hist0(ind_h0)); <span class="comment">// copy given hist to appropriate places</span> | 
                        |  | 549 | <a name="l00758"></a>00758         } | 
                        |  | 550 | <a name="l00759"></a>00759 }; | 
                        |  | 551 | <a name="l00760"></a>00760 | 
                        |  | 552 | <a name="l00762"></a><a class="code" href="classbdm_1_1datalink__2to1__buffered.html">00762</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1datalink__2to1__buffered.html" title="buffered datalink from 2 vectors to 1">datalink_2to1_buffered</a> { | 
                        |  | 553 | <a name="l00763"></a>00763 <span class="keyword">protected</span>: | 
                        |  | 554 | <a name="l00764"></a>00764         <a class="code" href="classbdm_1_1datalink__buffered.html" title="Datalink that buffers delayed values - do not forget to call step().">datalink_buffered</a> dl1; | 
                        |  | 555 | <a name="l00765"></a>00765         <a class="code" href="classbdm_1_1datalink__buffered.html" title="Datalink that buffers delayed values - do not forget to call step().">datalink_buffered</a> dl2; | 
                        |  | 556 | <a name="l00766"></a>00766 <span class="keyword">public</span>: | 
                        |  | 557 | <a name="l00768"></a><a class="code" href="classbdm_1_1datalink__2to1__buffered.html#aef1441b4885ae4d8e95b3ff28e575364">00768</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__2to1__buffered.html#aef1441b4885ae4d8e95b3ff28e575364" title="set connection between RVs">set_connection</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv_up1, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv_up2 ) { | 
                        |  | 558 | <a name="l00769"></a>00769                 dl1.<a class="code" href="classbdm_1_1datalink__buffered.html#aadefa427312905425ebab8531da1846a" title="set connection, rv must be fully present in rv_up">set_connection</a> ( rv, rv_up1 ); | 
                        |  | 559 | <a name="l00770"></a>00770                 dl2.<a class="code" href="classbdm_1_1datalink__buffered.html#aadefa427312905425ebab8531da1846a" title="set connection, rv must be fully present in rv_up">set_connection</a> ( rv, rv_up2 ); | 
                        |  | 560 | <a name="l00771"></a>00771         } | 
                        |  | 561 | <a name="l00772"></a>00772         <span class="keywordtype">void</span> filldown ( <span class="keyword">const</span> vec &val1, <span class="keyword">const</span> vec &val2, vec &val_down ) { | 
                        |  | 562 | <a name="l00773"></a>00773                 <a class="code" href="bdmerror_8h.html#a89a0f906b242b79c5d3d342291b2cab4" title="Throw std::runtime_exception if t is not true and NDEBUG is not defined.">bdm_assert_debug</a> ( val_down.length() >= dl1.<a class="code" href="classbdm_1_1datalink.html#a8f0cce4477e906f3090bb803e06d8698" title="access functions">_downsize</a>() + dl2.<a class="code" href="classbdm_1_1datalink.html#a8f0cce4477e906f3090bb803e06d8698" title="access functions">_downsize</a>(), <span class="stringliteral">"short val_down"</span> ); | 
                        |  | 563 | <a name="l00774"></a>00774                 dl1.<a class="code" href="classbdm_1_1datalink__buffered.html#a681745a319728a416486df38aacd579f" title="Get val for vector val_down from val of &quot;Up&quot;.">filldown</a> ( val1, val_down ); | 
                        |  | 564 | <a name="l00775"></a>00775                 dl2.<a class="code" href="classbdm_1_1datalink__buffered.html#a681745a319728a416486df38aacd579f" title="Get val for vector val_down from val of &quot;Up&quot;.">filldown</a> ( val2, val_down ); | 
                        |  | 565 | <a name="l00776"></a>00776         } | 
                        |  | 566 | <a name="l00777"></a>00777         <span class="keywordtype">void</span> step ( <span class="keyword">const</span> vec &dt, <span class="keyword">const</span> vec &ut ) { | 
                        |  | 567 | <a name="l00778"></a>00778                 dl1.step ( dt ); | 
                        |  | 568 | <a name="l00779"></a>00779                 dl2.step ( ut ); | 
                        |  | 569 | <a name="l00780"></a>00780         } | 
                        |  | 570 | <a name="l00781"></a>00781 }; | 
            
                      
                        | 568 |  | <a name="l00784"></a>00784         vec <a class="code" href="classbdm_1_1datalink__m2e.html#a7ba850822e3cf9a4b079afc7e7c01703" title="Construct condition.">get_cond</a> ( <span class="keyword">const</span> vec &val_up ); | 
                        | 569 |  | <a name="l00785"></a>00785 | 
                        | 570 |  | <a name="l00787"></a>00787         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__m2e.html#ab29bc3c7bf2a1d87e77ccaa793d097d5" title="Copy corresponding values to Up.condition.">pushup_cond</a> ( vec &val_up, <span class="keyword">const</span> vec &val, <span class="keyword">const</span> vec &cond ); | 
                        | 571 |  | <a name="l00788"></a>00788 }; | 
                        | 572 |  | <a name="l00789"></a>00789 | 
                        | 573 |  | <a name="l00792"></a><a class="code" href="classbdm_1_1datalink__m2m.html">00792</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1datalink__m2m.html" title="DataLink is a connection between mpdf and its superordinate (Up) This class links...">datalink_m2m</a>: <span class="keyword">public</span> <a class="code" href="classbdm_1_1datalink__m2e.html" title="Data link with a condition.">datalink_m2e</a> { | 
                        | 574 |  | <a name="l00793"></a>00793 <span class="keyword">protected</span>: | 
                        | 575 |  | <a name="l00795"></a><a class="code" href="classbdm_1_1datalink__m2m.html#ad64dda6f92654628276bbcebb7600d0d">00795</a>         ivec <a class="code" href="classbdm_1_1datalink__m2m.html#ad64dda6f92654628276bbcebb7600d0d" title="cond-to-cond link, indices of the upper cond">c2c_up</a>; | 
                        | 576 |  | <a name="l00797"></a><a class="code" href="classbdm_1_1datalink__m2m.html#a0ea05c47de4538b7042ff878e6e309a5">00797</a>         ivec <a class="code" href="classbdm_1_1datalink__m2m.html#a0ea05c47de4538b7042ff878e6e309a5" title="cond-to-cond link, indices of the local cond">c2c_lo</a>; | 
                        | 577 |  | <a name="l00798"></a>00798 | 
                        | 578 |  | <a name="l00799"></a>00799 <span class="keyword">public</span>: | 
                        | 579 |  | <a name="l00801"></a><a class="code" href="classbdm_1_1datalink__m2m.html#a3baed32cb66f0e2f731032cec0a4d287">00801</a>         <a class="code" href="classbdm_1_1datalink__m2m.html#a3baed32cb66f0e2f731032cec0a4d287" title="Constructor.">datalink_m2m</a>() {}; | 
                        | 580 |  | <a name="l00803"></a><a class="code" href="classbdm_1_1datalink__m2m.html#a0ed49a99e8a3be264b952558b6f515d4">00803</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__m2m.html#a0ed49a99e8a3be264b952558b6f515d4" title="Set connection between the vectors.">set_connection</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rvc, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv_up, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rvc_up ) { | 
                        | 581 |  | <a name="l00804"></a>00804                 <a class="code" href="classbdm_1_1datalink__m2m.html#a0ed49a99e8a3be264b952558b6f515d4" title="Set connection between the vectors.">datalink_m2e::set_connection</a> ( rv, rvc, rv_up ); | 
                        | 582 |  | <a name="l00805"></a>00805                 <span class="comment">//establish c2c connection</span> | 
                        | 583 |  | <a name="l00806"></a>00806                 rvc.<a class="code" href="classbdm_1_1RV.html#acbebdb5e0d30101a6eb63550ef701c55" title="when this rv is a part of bigger rv, this function returns indices of self in the...">dataind</a> ( rvc_up, <a class="code" href="classbdm_1_1datalink__m2m.html#a0ea05c47de4538b7042ff878e6e309a5" title="cond-to-cond link, indices of the local cond">c2c_lo</a>, <a class="code" href="classbdm_1_1datalink__m2m.html#ad64dda6f92654628276bbcebb7600d0d" title="cond-to-cond link, indices of the upper cond">c2c_up</a> ); | 
                        | 584 |  | <a name="l00807"></a>00807                 <a class="code" href="bdmerror_8h.html#a89a0f906b242b79c5d3d342291b2cab4" title="Throw std::runtime_exception if t is not true and NDEBUG is not defined.">bdm_assert_debug</a> ( <a class="code" href="classbdm_1_1datalink__m2m.html#a0ea05c47de4538b7042ff878e6e309a5" title="cond-to-cond link, indices of the local cond">c2c_lo</a>.length() + <a class="code" href="classbdm_1_1datalink__m2e.html#a9e0048d87bda78e9b8d38761440c7abc" title="upper_val-to-local_cond link, indices of the local cond">v2c_lo</a>.length() == <a class="code" href="classbdm_1_1datalink__m2e.html#a3fb26525e0bfa7932a37c5cd404801f9" title="Remember how long cond should be.">condsize</a>, <span class="stringliteral">"cond is not fully given"</span> ); | 
                        | 585 |  | <a name="l00808"></a>00808         } | 
                        | 586 |  | <a name="l00809"></a>00809 | 
                        | 587 |  | <a name="l00811"></a><a class="code" href="classbdm_1_1datalink__m2m.html#a911fb7fcfa80d4e31db8e0cc03141a90">00811</a>         vec <a class="code" href="classbdm_1_1datalink__m2m.html#a911fb7fcfa80d4e31db8e0cc03141a90" title="Get cond for myself from val and cond of &quot;Up&quot;.">get_cond</a> ( <span class="keyword">const</span> vec &val_up, <span class="keyword">const</span> vec &cond_up ) { | 
                        | 588 |  | <a name="l00812"></a>00812                 vec tmp ( <a class="code" href="classbdm_1_1datalink__m2e.html#a3fb26525e0bfa7932a37c5cd404801f9" title="Remember how long cond should be.">condsize</a> ); | 
                        | 589 |  | <a name="l00813"></a>00813                 set_subvector ( tmp, <a class="code" href="classbdm_1_1datalink__m2e.html#a9e0048d87bda78e9b8d38761440c7abc" title="upper_val-to-local_cond link, indices of the local cond">v2c_lo</a>, val_up ( <a class="code" href="classbdm_1_1datalink__m2e.html#a43fe3e2d7aa04134053ec15793722783" title="upper_val-to-local_cond link, indices of the upper val">v2c_up</a> ) ); | 
                        | 590 |  | <a name="l00814"></a>00814                 set_subvector ( tmp, <a class="code" href="classbdm_1_1datalink__m2m.html#a0ea05c47de4538b7042ff878e6e309a5" title="cond-to-cond link, indices of the local cond">c2c_lo</a>, cond_up ( <a class="code" href="classbdm_1_1datalink__m2m.html#ad64dda6f92654628276bbcebb7600d0d" title="cond-to-cond link, indices of the upper cond">c2c_up</a> ) ); | 
                        | 591 |  | <a name="l00815"></a>00815                 <span class="keywordflow">return</span> tmp; | 
                        | 592 |  | <a name="l00816"></a>00816         } | 
                        | 593 |  | <a name="l00818"></a>00818 | 
                        | 594 |  | <a name="l00819"></a>00819 }; | 
                        | 595 |  | <a name="l00820"></a>00820 | 
                        | 596 |  | <a name="l00826"></a><a class="code" href="classbdm_1_1logger.html">00826</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1logger.html" title="Class for storing results (and semi-results) of an experiment.">logger</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1root.html" title="Root class of BDM objects.">root</a> { | 
                        | 597 |  | <a name="l00827"></a>00827 <span class="keyword">protected</span>: | 
                        | 598 |  | <a name="l00829"></a><a class="code" href="classbdm_1_1logger.html#ac54566a4554089443a20b2a49ed1a61f">00829</a>         Array<RV> <a class="code" href="classbdm_1_1logger.html#ac54566a4554089443a20b2a49ed1a61f" title="RVs of all logged variables.">entries</a>; | 
                        | 599 |  | <a name="l00831"></a><a class="code" href="classbdm_1_1logger.html#a68ca1f05cf3d414ba0f39211977b8d02">00831</a>         Array<string> <a class="code" href="classbdm_1_1logger.html#a68ca1f05cf3d414ba0f39211977b8d02" title="Names of logged quantities, e.g. names of algorithm variants.">names</a>; | 
                        | 600 |  | <a name="l00832"></a>00832 <span class="keyword">public</span>: | 
                        | 601 |  | <a name="l00834"></a><a class="code" href="classbdm_1_1logger.html#af9c2fe7db5ddbda0098a4a5bd2c29fbf">00834</a>         <a class="code" href="classbdm_1_1logger.html#af9c2fe7db5ddbda0098a4a5bd2c29fbf" title="Default constructor.">logger</a>() : <a class="code" href="classbdm_1_1logger.html#ac54566a4554089443a20b2a49ed1a61f" title="RVs of all logged variables.">entries</a> ( 0 ), <a class="code" href="classbdm_1_1logger.html#a68ca1f05cf3d414ba0f39211977b8d02" title="Names of logged quantities, e.g. names of algorithm variants.">names</a> ( 0 ) {} | 
                        | 602 |  | <a name="l00835"></a>00835 | 
                        | 603 |  | <a name="l00838"></a><a class="code" href="classbdm_1_1logger.html#a47aa3b098a81d02a8ffaea2c9fa09ac7">00838</a>         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1logger.html#a47aa3b098a81d02a8ffaea2c9fa09ac7" title="returns an identifier which will be later needed for calling the logit() function...">add</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv, <span class="keywordtype">string</span> prefix = <span class="stringliteral">""</span> ) { | 
                        | 604 |  | <a name="l00839"></a>00839                 <span class="keywordtype">int</span> id; | 
                        | 605 |  | <a name="l00840"></a>00840                 <span class="keywordflow">if</span> ( rv.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() > 0 ) { | 
                        | 606 |  | <a name="l00841"></a>00841                         <span class="keywordtype">id</span> = <a class="code" href="classbdm_1_1logger.html#ac54566a4554089443a20b2a49ed1a61f" title="RVs of all logged variables.">entries</a>.length(); | 
                        | 607 |  | <a name="l00842"></a>00842                         <a class="code" href="classbdm_1_1logger.html#a68ca1f05cf3d414ba0f39211977b8d02" title="Names of logged quantities, e.g. names of algorithm variants.">names</a> = concat ( <a class="code" href="classbdm_1_1logger.html#a68ca1f05cf3d414ba0f39211977b8d02" title="Names of logged quantities, e.g. names of algorithm variants.">names</a>, prefix ); <span class="comment">// diff</span> | 
                        | 608 |  | <a name="l00843"></a>00843                         <a class="code" href="classbdm_1_1logger.html#ac54566a4554089443a20b2a49ed1a61f" title="RVs of all logged variables.">entries</a>.set_length ( <span class="keywordtype">id</span> + 1, <span class="keyword">true</span> ); | 
                        | 609 |  | <a name="l00844"></a>00844                         <a class="code" href="classbdm_1_1logger.html#ac54566a4554089443a20b2a49ed1a61f" title="RVs of all logged variables.">entries</a> ( <span class="keywordtype">id</span> ) = rv; | 
                        | 610 |  | <a name="l00845"></a>00845                 } <span class="keywordflow">else</span> { | 
                        | 611 |  | <a name="l00846"></a>00846                         <span class="keywordtype">id</span> = -1; | 
                        | 612 |  | <a name="l00847"></a>00847                 } | 
                        | 613 |  | <a name="l00848"></a>00848                 <span class="keywordflow">return</span> id; <span class="comment">// identifier of the last entry</span> | 
                        | 614 |  | <a name="l00849"></a>00849         } | 
                        | 615 |  | <a name="l00850"></a>00850 | 
                        | 616 |  | <a name="l00852"></a><a class="code" href="classbdm_1_1logger.html#ae30f695619931b3c372ab280e452d309">00852</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1logger.html#ae30f695619931b3c372ab280e452d309" title="log this vector">logit</a> ( <span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keyword">const</span> vec &v ) { | 
                        | 617 |  | <a name="l00853"></a>00853                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        | 618 |  | <a name="l00854"></a>00854         }; | 
                        | 619 |  | <a name="l00856"></a><a class="code" href="classbdm_1_1logger.html#aaa1d72cd3d2ff6bbf87340154af02ea6">00856</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1logger.html#aaa1d72cd3d2ff6bbf87340154af02ea6" title="log this double">logit</a> ( <span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keyword">const</span> <span class="keywordtype">double</span> &d ) { | 
                        | 620 |  | <a name="l00857"></a>00857                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        | 621 |  | <a name="l00858"></a>00858         }; | 
                        | 622 |  | <a name="l00859"></a>00859 | 
                        | 623 |  | <a name="l00861"></a><a class="code" href="classbdm_1_1logger.html#af137e9a0c905357c5c3fbb16eac34a99">00861</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1logger.html#af137e9a0c905357c5c3fbb16eac34a99" title="Shifts storage position for another time step.">step</a>() { | 
                        | 624 |  | <a name="l00862"></a>00862                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemneted"</span> ); | 
                        | 625 |  | <a name="l00863"></a>00863         }; | 
                        | 626 |  | <a name="l00864"></a>00864 | 
                        | 627 |  | <a name="l00866"></a><a class="code" href="classbdm_1_1logger.html#a0e3fc7d13e23a8f71fc7c8a5ea68559d">00866</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1logger.html#a0e3fc7d13e23a8f71fc7c8a5ea68559d" title="Finalize storing information.">finalize</a>() {}; | 
                        | 628 |  | <a name="l00867"></a>00867 | 
                        | 629 |  | <a name="l00869"></a><a class="code" href="classbdm_1_1logger.html#acd6291a73491f755dc7bc88d022eb2fc">00869</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1logger.html#acd6291a73491f755dc7bc88d022eb2fc" title="Initialize the storage.">init</a>() {}; | 
                        | 630 |  | <a name="l00870"></a>00870 | 
                        | 631 |  | <a name="l00871"></a>00871 }; | 
                        | 632 |  | <a name="l00872"></a>00872 | 
                        | 633 |  | <a name="l00876"></a><a class="code" href="classbdm_1_1mepdf.html">00876</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1mepdf.html" title="Unconditional mpdf, allows using epdf in the role of mpdf.">mepdf</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1mpdf.html" title="Conditional probability density, e.g. modeling , where  is random variable, rv, and...">mpdf</a> { | 
                        | 634 |  | <a name="l00878"></a>00878         <a class="code" href="classbdm_1_1shared__ptr.html">shared_ptr<epdf></a> iepdf; | 
                        | 635 |  | <a name="l00879"></a>00879 <span class="keyword">public</span>: | 
                        | 636 |  | <a name="l00881"></a><a class="code" href="classbdm_1_1mepdf.html#a4a2b01e7bb510c6b8946757cae6c9155">00881</a>         <a class="code" href="classbdm_1_1mepdf.html#a4a2b01e7bb510c6b8946757cae6c9155" title="Default constructor.">mepdf</a>() { } | 
                        | 637 |  | <a name="l00883"></a><a class="code" href="classbdm_1_1mepdf.html#a1f94e70702ff676f53d95ca7ec38e25c">00883</a>         <a class="code" href="classbdm_1_1mepdf.html#a1f94e70702ff676f53d95ca7ec38e25c" title="Set internal shared pointer.">mepdf</a> ( <a class="code" href="classbdm_1_1shared__ptr.html">shared_ptr<epdf></a> em ) { | 
                        | 638 |  | <a name="l00884"></a>00884                 iepdf = em; | 
                        | 639 |  | <a name="l00885"></a>00885                 <a class="code" href="classbdm_1_1mpdf.html#a147afacb393324bb3f9a7a89e33f835e" title="set internal pointer ep to point to given iepdf ">set_ep</a> ( *iepdf.<a class="code" href="classbdm_1_1shared__ptr.html#a37ebcfb6750dd7b5630f1d2354c07a96">get</a>() ); | 
                        | 640 |  | <a name="l00886"></a>00886                 <a class="code" href="classbdm_1_1mpdf.html#a7c1900976ff13dbc09c9729b3bbff9e6" title="dimension of the condition">dimc</a> = 0; | 
                        | 641 |  | <a name="l00887"></a>00887         } | 
                      
                        |  | 572 | <a name="l00783"></a>00783 | 
                        |  | 573 | <a name="l00784"></a>00784 | 
                        |  | 574 | <a name="l00786"></a><a class="code" href="classbdm_1_1datalink__m2e.html">00786</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1datalink__m2e.html" title="Data link with a condition.">datalink_m2e</a>: <span class="keyword">public</span> <a class="code" href="classbdm_1_1datalink.html" title="DataLink is a connection between two data vectors Up and Down.">datalink</a> { | 
                        |  | 575 | <a name="l00787"></a>00787 <span class="keyword">protected</span>: | 
                        |  | 576 | <a name="l00789"></a><a class="code" href="classbdm_1_1datalink__m2e.html#a3fb26525e0bfa7932a37c5cd404801f9">00789</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1datalink__m2e.html#a3fb26525e0bfa7932a37c5cd404801f9" title="Remember how long cond should be.">condsize</a>; | 
                        |  | 577 | <a name="l00790"></a>00790 | 
                        |  | 578 | <a name="l00792"></a><a class="code" href="classbdm_1_1datalink__m2e.html#a43fe3e2d7aa04134053ec15793722783">00792</a>         ivec <a class="code" href="classbdm_1_1datalink__m2e.html#a43fe3e2d7aa04134053ec15793722783" title="upper_val-to-local_cond link, indices of the upper val">v2c_up</a>; | 
                        |  | 579 | <a name="l00793"></a>00793 | 
                        |  | 580 | <a name="l00795"></a><a class="code" href="classbdm_1_1datalink__m2e.html#a9e0048d87bda78e9b8d38761440c7abc">00795</a>         ivec <a class="code" href="classbdm_1_1datalink__m2e.html#a9e0048d87bda78e9b8d38761440c7abc" title="upper_val-to-local_cond link, indices of the local cond">v2c_lo</a>; | 
                        |  | 581 | <a name="l00796"></a>00796 | 
                        |  | 582 | <a name="l00797"></a>00797 <span class="keyword">public</span>: | 
                        |  | 583 | <a name="l00799"></a><a class="code" href="classbdm_1_1datalink__m2e.html#a5ad951e9cf850c9bfe4e492e91a50af6">00799</a>         <a class="code" href="classbdm_1_1datalink__m2e.html#a5ad951e9cf850c9bfe4e492e91a50af6" title="Constructor.">datalink_m2e</a>() : <a class="code" href="classbdm_1_1datalink__m2e.html#a3fb26525e0bfa7932a37c5cd404801f9" title="Remember how long cond should be.">condsize</a> ( 0 ) { } | 
                        |  | 584 | <a name="l00800"></a>00800 | 
                        |  | 585 | <a name="l00802"></a>00802         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__m2e.html#aadd918bf877c48714cff51ee4ad989b0" title="Set connection between vectors.">set_connection</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rvc, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv_up ); | 
                        |  | 586 | <a name="l00803"></a>00803 | 
                        |  | 587 | <a name="l00805"></a>00805         vec <a class="code" href="classbdm_1_1datalink__m2e.html#a7ba850822e3cf9a4b079afc7e7c01703" title="Construct condition.">get_cond</a> ( <span class="keyword">const</span> vec &val_up ); | 
                        |  | 588 | <a name="l00806"></a>00806 | 
                        |  | 589 | <a name="l00808"></a>00808         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__m2e.html#ab29bc3c7bf2a1d87e77ccaa793d097d5" title="Copy corresponding values to Up.condition.">pushup_cond</a> ( vec &val_up, <span class="keyword">const</span> vec &val, <span class="keyword">const</span> vec &cond ); | 
                        |  | 590 | <a name="l00809"></a>00809 }; | 
                        |  | 591 | <a name="l00810"></a>00810 | 
                        |  | 592 | <a name="l00813"></a><a class="code" href="classbdm_1_1datalink__m2m.html">00813</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1datalink__m2m.html" title="DataLink is a connection between mpdf and its superordinate (Up) This class links...">datalink_m2m</a>: <span class="keyword">public</span> <a class="code" href="classbdm_1_1datalink__m2e.html" title="Data link with a condition.">datalink_m2e</a> { | 
                        |  | 593 | <a name="l00814"></a>00814 <span class="keyword">protected</span>: | 
                        |  | 594 | <a name="l00816"></a><a class="code" href="classbdm_1_1datalink__m2m.html#ad64dda6f92654628276bbcebb7600d0d">00816</a>         ivec <a class="code" href="classbdm_1_1datalink__m2m.html#ad64dda6f92654628276bbcebb7600d0d" title="cond-to-cond link, indices of the upper cond">c2c_up</a>; | 
                        |  | 595 | <a name="l00818"></a><a class="code" href="classbdm_1_1datalink__m2m.html#a0ea05c47de4538b7042ff878e6e309a5">00818</a>         ivec <a class="code" href="classbdm_1_1datalink__m2m.html#a0ea05c47de4538b7042ff878e6e309a5" title="cond-to-cond link, indices of the local cond">c2c_lo</a>; | 
                        |  | 596 | <a name="l00819"></a>00819 | 
                        |  | 597 | <a name="l00820"></a>00820 <span class="keyword">public</span>: | 
                        |  | 598 | <a name="l00822"></a><a class="code" href="classbdm_1_1datalink__m2m.html#a3baed32cb66f0e2f731032cec0a4d287">00822</a>         <a class="code" href="classbdm_1_1datalink__m2m.html#a3baed32cb66f0e2f731032cec0a4d287" title="Constructor.">datalink_m2m</a>() {}; | 
                        |  | 599 | <a name="l00824"></a><a class="code" href="classbdm_1_1datalink__m2m.html#a0ed49a99e8a3be264b952558b6f515d4">00824</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1datalink__m2m.html#a0ed49a99e8a3be264b952558b6f515d4" title="Set connection between the vectors.">set_connection</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rvc, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv_up, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rvc_up ) { | 
                        |  | 600 | <a name="l00825"></a>00825                 <a class="code" href="classbdm_1_1datalink__m2m.html#a0ed49a99e8a3be264b952558b6f515d4" title="Set connection between the vectors.">datalink_m2e::set_connection</a> ( rv, rvc, rv_up ); | 
                        |  | 601 | <a name="l00826"></a>00826                 <span class="comment">//establish c2c connection</span> | 
                        |  | 602 | <a name="l00827"></a>00827                 rvc.<a class="code" href="classbdm_1_1RV.html#acbebdb5e0d30101a6eb63550ef701c55" title="when this rv is a part of bigger rv, this function returns indices of self in the...">dataind</a> ( rvc_up, <a class="code" href="classbdm_1_1datalink__m2m.html#a0ea05c47de4538b7042ff878e6e309a5" title="cond-to-cond link, indices of the local cond">c2c_lo</a>, <a class="code" href="classbdm_1_1datalink__m2m.html#ad64dda6f92654628276bbcebb7600d0d" title="cond-to-cond link, indices of the upper cond">c2c_up</a> ); | 
                        |  | 603 | <a name="l00828"></a>00828                 <a class="code" href="bdmerror_8h.html#a89a0f906b242b79c5d3d342291b2cab4" title="Throw std::runtime_exception if t is not true and NDEBUG is not defined.">bdm_assert_debug</a> ( <a class="code" href="classbdm_1_1datalink__m2m.html#a0ea05c47de4538b7042ff878e6e309a5" title="cond-to-cond link, indices of the local cond">c2c_lo</a>.length() + <a class="code" href="classbdm_1_1datalink__m2e.html#a9e0048d87bda78e9b8d38761440c7abc" title="upper_val-to-local_cond link, indices of the local cond">v2c_lo</a>.length() == <a class="code" href="classbdm_1_1datalink__m2e.html#a3fb26525e0bfa7932a37c5cd404801f9" title="Remember how long cond should be.">condsize</a>, <span class="stringliteral">"cond is not fully given"</span> ); | 
                        |  | 604 | <a name="l00829"></a>00829         } | 
                        |  | 605 | <a name="l00830"></a>00830 | 
                        |  | 606 | <a name="l00832"></a><a class="code" href="classbdm_1_1datalink__m2m.html#a911fb7fcfa80d4e31db8e0cc03141a90">00832</a>         vec <a class="code" href="classbdm_1_1datalink__m2m.html#a911fb7fcfa80d4e31db8e0cc03141a90" title="Get cond for myself from val and cond of &quot;Up&quot;.">get_cond</a> ( <span class="keyword">const</span> vec &val_up, <span class="keyword">const</span> vec &cond_up ) { | 
                        |  | 607 | <a name="l00833"></a>00833                 vec tmp ( <a class="code" href="classbdm_1_1datalink__m2e.html#a3fb26525e0bfa7932a37c5cd404801f9" title="Remember how long cond should be.">condsize</a> ); | 
                        |  | 608 | <a name="l00834"></a>00834                 set_subvector ( tmp, <a class="code" href="classbdm_1_1datalink__m2e.html#a9e0048d87bda78e9b8d38761440c7abc" title="upper_val-to-local_cond link, indices of the local cond">v2c_lo</a>, val_up ( <a class="code" href="classbdm_1_1datalink__m2e.html#a43fe3e2d7aa04134053ec15793722783" title="upper_val-to-local_cond link, indices of the upper val">v2c_up</a> ) ); | 
                        |  | 609 | <a name="l00835"></a>00835                 set_subvector ( tmp, <a class="code" href="classbdm_1_1datalink__m2m.html#a0ea05c47de4538b7042ff878e6e309a5" title="cond-to-cond link, indices of the local cond">c2c_lo</a>, cond_up ( <a class="code" href="classbdm_1_1datalink__m2m.html#ad64dda6f92654628276bbcebb7600d0d" title="cond-to-cond link, indices of the upper cond">c2c_up</a> ) ); | 
                        |  | 610 | <a name="l00836"></a>00836                 <span class="keywordflow">return</span> tmp; | 
                        |  | 611 | <a name="l00837"></a>00837         } | 
                        |  | 612 | <a name="l00839"></a>00839 | 
                        |  | 613 | <a name="l00840"></a>00840 }; | 
                        |  | 614 | <a name="l00841"></a>00841 | 
                        |  | 615 | <a name="l00847"></a><a class="code" href="classbdm_1_1logger.html">00847</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1logger.html" title="Class for storing results (and semi-results) of an experiment.">logger</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1root.html" title="Root class of BDM objects.">root</a> { | 
                        |  | 616 | <a name="l00848"></a>00848 <span class="keyword">protected</span>: | 
                        |  | 617 | <a name="l00850"></a><a class="code" href="classbdm_1_1logger.html#ac54566a4554089443a20b2a49ed1a61f">00850</a>         Array<RV> <a class="code" href="classbdm_1_1logger.html#ac54566a4554089443a20b2a49ed1a61f" title="RVs of all logged variables.">entries</a>; | 
                        |  | 618 | <a name="l00852"></a><a class="code" href="classbdm_1_1logger.html#a68ca1f05cf3d414ba0f39211977b8d02">00852</a>         Array<string> <a class="code" href="classbdm_1_1logger.html#a68ca1f05cf3d414ba0f39211977b8d02" title="Names of logged quantities, e.g. names of algorithm variants.">names</a>; | 
                        |  | 619 | <a name="l00853"></a>00853 <span class="keyword">public</span>: | 
                        |  | 620 | <a name="l00855"></a><a class="code" href="classbdm_1_1logger.html#af9c2fe7db5ddbda0098a4a5bd2c29fbf">00855</a>         <a class="code" href="classbdm_1_1logger.html#af9c2fe7db5ddbda0098a4a5bd2c29fbf" title="Default constructor.">logger</a>() : <a class="code" href="classbdm_1_1logger.html#ac54566a4554089443a20b2a49ed1a61f" title="RVs of all logged variables.">entries</a> ( 0 ), <a class="code" href="classbdm_1_1logger.html#a68ca1f05cf3d414ba0f39211977b8d02" title="Names of logged quantities, e.g. names of algorithm variants.">names</a> ( 0 ) {} | 
                        |  | 621 | <a name="l00856"></a>00856 | 
                        |  | 622 | <a name="l00859"></a><a class="code" href="classbdm_1_1logger.html#a47aa3b098a81d02a8ffaea2c9fa09ac7">00859</a>         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1logger.html#a47aa3b098a81d02a8ffaea2c9fa09ac7" title="returns an identifier which will be later needed for calling the logit() function...">add</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv, <span class="keywordtype">string</span> prefix = <span class="stringliteral">""</span> ) { | 
                        |  | 623 | <a name="l00860"></a>00860                 <span class="keywordtype">int</span> id; | 
                        |  | 624 | <a name="l00861"></a>00861                 <span class="keywordflow">if</span> ( rv.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() > 0 ) { | 
                        |  | 625 | <a name="l00862"></a>00862                         <span class="keywordtype">id</span> = <a class="code" href="classbdm_1_1logger.html#ac54566a4554089443a20b2a49ed1a61f" title="RVs of all logged variables.">entries</a>.length(); | 
                        |  | 626 | <a name="l00863"></a>00863                         <a class="code" href="classbdm_1_1logger.html#a68ca1f05cf3d414ba0f39211977b8d02" title="Names of logged quantities, e.g. names of algorithm variants.">names</a> = concat ( <a class="code" href="classbdm_1_1logger.html#a68ca1f05cf3d414ba0f39211977b8d02" title="Names of logged quantities, e.g. names of algorithm variants.">names</a>, prefix ); <span class="comment">// diff</span> | 
                        |  | 627 | <a name="l00864"></a>00864                         <a class="code" href="classbdm_1_1logger.html#ac54566a4554089443a20b2a49ed1a61f" title="RVs of all logged variables.">entries</a>.set_length ( <span class="keywordtype">id</span> + 1, <span class="keyword">true</span> ); | 
                        |  | 628 | <a name="l00865"></a>00865                         <a class="code" href="classbdm_1_1logger.html#ac54566a4554089443a20b2a49ed1a61f" title="RVs of all logged variables.">entries</a> ( <span class="keywordtype">id</span> ) = rv; | 
                        |  | 629 | <a name="l00866"></a>00866                 } <span class="keywordflow">else</span> { | 
                        |  | 630 | <a name="l00867"></a>00867                         <span class="keywordtype">id</span> = -1; | 
                        |  | 631 | <a name="l00868"></a>00868                 } | 
                        |  | 632 | <a name="l00869"></a>00869                 <span class="keywordflow">return</span> id; <span class="comment">// identifier of the last entry</span> | 
                        |  | 633 | <a name="l00870"></a>00870         } | 
                        |  | 634 | <a name="l00871"></a>00871 | 
                        |  | 635 | <a name="l00873"></a><a class="code" href="classbdm_1_1logger.html#ae30f695619931b3c372ab280e452d309">00873</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1logger.html#ae30f695619931b3c372ab280e452d309" title="log this vector">logit</a> ( <span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keyword">const</span> vec &v ) { | 
                        |  | 636 | <a name="l00874"></a>00874                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        |  | 637 | <a name="l00875"></a>00875         }; | 
                        |  | 638 | <a name="l00877"></a><a class="code" href="classbdm_1_1logger.html#aaa1d72cd3d2ff6bbf87340154af02ea6">00877</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1logger.html#aaa1d72cd3d2ff6bbf87340154af02ea6" title="log this double">logit</a> ( <span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keyword">const</span> <span class="keywordtype">double</span> &d ) { | 
                        |  | 639 | <a name="l00878"></a>00878                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        |  | 640 | <a name="l00879"></a>00879         }; | 
                        |  | 641 | <a name="l00880"></a>00880 | 
                        |  | 642 | <a name="l00882"></a><a class="code" href="classbdm_1_1logger.html#af137e9a0c905357c5c3fbb16eac34a99">00882</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1logger.html#af137e9a0c905357c5c3fbb16eac34a99" title="Shifts storage position for another time step.">step</a>() { | 
                        |  | 643 | <a name="l00883"></a>00883                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemneted"</span> ); | 
                        |  | 644 | <a name="l00884"></a>00884         }; | 
                        |  | 645 | <a name="l00885"></a>00885 | 
                        |  | 646 | <a name="l00887"></a><a class="code" href="classbdm_1_1logger.html#a0e3fc7d13e23a8f71fc7c8a5ea68559d">00887</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1logger.html#a0e3fc7d13e23a8f71fc7c8a5ea68559d" title="Finalize storing information.">finalize</a>() {}; | 
            
                      
                        | 643 |  | <a name="l00890"></a><a class="code" href="classbdm_1_1mepdf.html#ab904a90ef78294040b498717cc13015e">00890</a>         vec <a class="code" href="classbdm_1_1mepdf.html#ab904a90ef78294040b498717cc13015e" title="empty">samplecond</a> ( <span class="keyword">const</span> vec &cond ) { | 
                        | 644 |  | <a name="l00891"></a>00891                 <span class="keywordflow">return</span> iepdf->sample(); | 
                        | 645 |  | <a name="l00892"></a>00892         } | 
                        | 646 |  | <a name="l00893"></a><a class="code" href="classbdm_1_1mepdf.html#a57decd7718f3789e9d1f10f19def935b">00893</a>         <span class="keywordtype">double</span> <a class="code" href="classbdm_1_1mepdf.html#a57decd7718f3789e9d1f10f19def935b" title="Shortcut for conditioning and evaluation of the internal epdf. In some cases, this...">evallogcond</a> ( <span class="keyword">const</span> vec &val, <span class="keyword">const</span> vec &cond ) { | 
                        | 647 |  | <a name="l00894"></a>00894                 <span class="keywordflow">return</span> iepdf->evallog ( val ); | 
                        | 648 |  | <a name="l00895"></a>00895         } | 
                        | 649 |  | <a name="l00896"></a>00896 | 
                        | 650 |  | <a name="l00904"></a>00904         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1mepdf.html#a27ef18a3e3b1b5de02739d1324bf25fb" title="Load from structure with elements:.">from_setting</a> ( <span class="keyword">const</span> Setting &<span class="keyword">set</span> ); | 
                        | 651 |  | <a name="l00905"></a>00905 }; | 
                        | 652 |  | <a name="l00906"></a>00906 <a class="code" href="user__info_8h.html#a4f9de2f17e844047726487b99def99c6" title="Macro for registration of class into map of user-infos, registered class is scriptable...">UIREGISTER</a> ( mepdf ); | 
                        | 653 |  | <a name="l00907"></a>00907 SHAREDPTR ( mepdf ); | 
                        | 654 |  | <a name="l00908"></a>00908 | 
                        | 655 |  | <a name="l00910"></a>00910 RV get_composite_rv ( <span class="keyword">const</span> Array<shared_ptr<mpdf> > &mpdfs, <span class="keywordtype">bool</span> checkoverlap = <span class="keyword">false</span> ); | 
                        | 656 |  | <a name="l00911"></a>00911 | 
                        | 657 |  | <a name="l00927"></a><a class="code" href="classbdm_1_1DS.html">00927</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1DS.html" title="Abstract class for discrete-time sources of data.">DS</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1root.html" title="Root class of BDM objects.">root</a> { | 
                        | 658 |  | <a name="l00928"></a>00928 <span class="keyword">protected</span>: | 
                        | 659 |  | <a name="l00930"></a><a class="code" href="classbdm_1_1DS.html#af96cae44624e79638a91ec4f2c7c81a9">00930</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1DS.html#af96cae44624e79638a91ec4f2c7c81a9" title="size of data returned by getdata() ">dtsize</a>; | 
                        | 660 |  | <a name="l00932"></a><a class="code" href="classbdm_1_1DS.html#ad7467046a0bd05bc992cc5e1bdedb983">00932</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1DS.html#ad7467046a0bd05bc992cc5e1bdedb983" title="size of data">utsize</a>; | 
                        | 661 |  | <a name="l00934"></a><a class="code" href="classbdm_1_1DS.html#a22a4b29aa6e9f3bf17bcc4b28567e8bd">00934</a>                 <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1DS.html#a22a4b29aa6e9f3bf17bcc4b28567e8bd" title="size of output">ytsize</a>; | 
                        | 662 |  | <a name="l00936"></a><a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec">00936</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>; | 
                        | 663 |  | <a name="l00938"></a><a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702">00938</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a>; <span class="comment">//</span> | 
                        | 664 |  | <a name="l00940"></a><a class="code" href="classbdm_1_1DS.html#aeb9de2a85f0d8257d79d9b68c05c4995">00940</a> <span class="comment"></span>                <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1DS.html#aeb9de2a85f0d8257d79d9b68c05c4995" title="Description of output data.">Yrv</a>; <span class="comment">//</span> | 
                        | 665 |  | <a name="l00942"></a><a class="code" href="classbdm_1_1DS.html#ab4b7bdb9d98a11ab587aa0ad803bb867">00942</a> <span class="comment"></span>        <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1DS.html#ab4b7bdb9d98a11ab587aa0ad803bb867" title="Remember its own index in Logger L.">L_dt</a>, L_ut; | 
                        | 666 |  | <a name="l00943"></a>00943 <span class="keyword">public</span>: | 
                        | 667 |  | <a name="l00945"></a><a class="code" href="classbdm_1_1DS.html#abedd82e08ae6686b4b1732a122c2201a">00945</a>                 <a class="code" href="classbdm_1_1DS.html#abedd82e08ae6686b4b1732a122c2201a" title="default constructors">DS</a>() : <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>(), <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a>(),<a class="code" href="classbdm_1_1DS.html#aeb9de2a85f0d8257d79d9b68c05c4995" title="Description of output data.">Yrv</a>() {}; | 
                        | 668 |  | <a name="l00946"></a>00946 | 
                        | 669 |  | <a name="l00948"></a><a class="code" href="classbdm_1_1DS.html#ac1ec862dec7164fee3284c6f9a51b0ba">00948</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1DS.html#ac1ec862dec7164fee3284c6f9a51b0ba" title="Returns full vector of observed data=[output, input].">getdata</a> ( vec &dt ) { | 
                        | 670 |  | <a name="l00949"></a>00949                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"abstract class"</span> ); | 
                        | 671 |  | <a name="l00950"></a>00950         } | 
                        | 672 |  | <a name="l00951"></a>00951 | 
                        | 673 |  | <a name="l00953"></a><a class="code" href="classbdm_1_1DS.html#aa0bf451c7fea73ff4150ff9e83da4832">00953</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1DS.html#aa0bf451c7fea73ff4150ff9e83da4832" title="Returns data records at indeces.">getdata</a> ( vec &dt, <span class="keyword">const</span> ivec &indeces ) { | 
                        | 674 |  | <a name="l00954"></a>00954                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"abstract class"</span> ); | 
                        | 675 |  | <a name="l00955"></a>00955         } | 
                        | 676 |  | <a name="l00956"></a>00956 | 
                        | 677 |  | <a name="l00958"></a><a class="code" href="classbdm_1_1DS.html#af5baeee8528e5e4c5c7a344b2e3f192a">00958</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1DS.html#af5baeee8528e5e4c5c7a344b2e3f192a" title="Accepts action variable and schedule it for application.">write</a> ( vec &ut ) { | 
                        | 678 |  | <a name="l00959"></a>00959                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"abstract class"</span> ); | 
                        | 679 |  | <a name="l00960"></a>00960         } | 
                        | 680 |  | <a name="l00961"></a>00961 | 
                        | 681 |  | <a name="l00963"></a><a class="code" href="classbdm_1_1DS.html#a6bced13f84f6bf04449728817e049e1d">00963</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1DS.html#a6bced13f84f6bf04449728817e049e1d" title="Accepts action variables at specific indeces.">write</a> ( vec &ut, <span class="keyword">const</span> ivec &indeces ) { | 
                        | 682 |  | <a name="l00964"></a>00964                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"abstract class"</span> ); | 
                        | 683 |  | <a name="l00965"></a>00965         } | 
                        | 684 |  | <a name="l00966"></a>00966 | 
                        | 685 |  | <a name="l00968"></a>00968         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1DS.html#a9a14c64d881e838ddc3a5617ee8a973b" title="Moves from  to , i.e. perfroms the actions and reads response of the system.">step</a>() = 0; | 
                        | 686 |  | <a name="l00969"></a>00969 | 
                        | 687 |  | <a name="l00971"></a><a class="code" href="classbdm_1_1DS.html#a3c9e417d85052396fe74c164857ee67e">00971</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1DS.html#a3c9e417d85052396fe74c164857ee67e" title="Register DS for logging into logger L.">log_add</a> ( <a class="code" href="classbdm_1_1logger.html" title="Class for storing results (and semi-results) of an experiment.">logger</a> &L ) { | 
                        | 688 |  | <a name="l00972"></a>00972                 <a class="code" href="bdmerror_8h.html#a89a0f906b242b79c5d3d342291b2cab4" title="Throw std::runtime_exception if t is not true and NDEBUG is not defined.">bdm_assert_debug</a> ( <a class="code" href="classbdm_1_1DS.html#af96cae44624e79638a91ec4f2c7c81a9" title="size of data returned by getdata() ">dtsize</a> == <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>(), <span class="stringliteral">"invalid DS: dtsize ("</span> + num2str ( <a class="code" href="classbdm_1_1DS.html#af96cae44624e79638a91ec4f2c7c81a9" title="size of data returned by getdata() ">dtsize</a> ) + <span class="stringliteral">") different from Drv "</span> + num2str ( <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() ) ); | 
                        | 689 |  | <a name="l00973"></a>00973                 <a class="code" href="bdmerror_8h.html#a89a0f906b242b79c5d3d342291b2cab4" title="Throw std::runtime_exception if t is not true and NDEBUG is not defined.">bdm_assert_debug</a> ( <a class="code" href="classbdm_1_1DS.html#ad7467046a0bd05bc992cc5e1bdedb983" title="size of data">utsize</a> == <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>(), <span class="stringliteral">"invalid DS: utsize ("</span> + num2str ( <a class="code" href="classbdm_1_1DS.html#ad7467046a0bd05bc992cc5e1bdedb983" title="size of data">utsize</a> ) + <span class="stringliteral">") different from Urv "</span> + num2str ( <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() ) ); | 
                        | 690 |  | <a name="l00974"></a>00974 | 
                        | 691 |  | <a name="l00975"></a>00975                 <a class="code" href="classbdm_1_1DS.html#ab4b7bdb9d98a11ab587aa0ad803bb867" title="Remember its own index in Logger L.">L_dt</a> = L.<a class="code" href="classbdm_1_1logger.html#a47aa3b098a81d02a8ffaea2c9fa09ac7" title="returns an identifier which will be later needed for calling the logit() function...">add</a> ( <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>, <span class="stringliteral">""</span> ); | 
                        | 692 |  | <a name="l00976"></a>00976                 L_ut = L.<a class="code" href="classbdm_1_1logger.html#a47aa3b098a81d02a8ffaea2c9fa09ac7" title="returns an identifier which will be later needed for calling the logit() function...">add</a> ( <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a>, <span class="stringliteral">""</span> ); | 
                      
                        |  | 648 | <a name="l00890"></a><a class="code" href="classbdm_1_1logger.html#acd6291a73491f755dc7bc88d022eb2fc">00890</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1logger.html#acd6291a73491f755dc7bc88d022eb2fc" title="Initialize the storage.">init</a>() {}; | 
                        |  | 649 | <a name="l00891"></a>00891 | 
                        |  | 650 | <a name="l00892"></a>00892 }; | 
                        |  | 651 | <a name="l00893"></a>00893 | 
                        |  | 652 | <a name="l00897"></a><a class="code" href="classbdm_1_1mepdf.html">00897</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1mepdf.html" title="Unconditional mpdf, allows using epdf in the role of mpdf.">mepdf</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1mpdf.html" title="Conditional probability density, e.g. modeling , where  is random variable, rv, and...">mpdf</a> { | 
                        |  | 653 | <a name="l00899"></a>00899         <a class="code" href="classbdm_1_1shared__ptr.html">shared_ptr<epdf></a> iepdf; | 
                        |  | 654 | <a name="l00900"></a>00900 <span class="keyword">public</span>: | 
                        |  | 655 | <a name="l00902"></a><a class="code" href="classbdm_1_1mepdf.html#a4a2b01e7bb510c6b8946757cae6c9155">00902</a>         <a class="code" href="classbdm_1_1mepdf.html#a4a2b01e7bb510c6b8946757cae6c9155" title="Default constructor.">mepdf</a>() { } | 
                        |  | 656 | <a name="l00904"></a><a class="code" href="classbdm_1_1mepdf.html#a1f94e70702ff676f53d95ca7ec38e25c">00904</a>         <a class="code" href="classbdm_1_1mepdf.html#a1f94e70702ff676f53d95ca7ec38e25c" title="Set internal shared pointer.">mepdf</a> ( <a class="code" href="classbdm_1_1shared__ptr.html">shared_ptr<epdf></a> em ) { | 
                        |  | 657 | <a name="l00905"></a>00905                 iepdf = em; | 
                        |  | 658 | <a name="l00906"></a>00906                 <a class="code" href="classbdm_1_1mpdf.html#a147afacb393324bb3f9a7a89e33f835e" title="set internal pointer ep to point to given iepdf ">set_ep</a> ( *iepdf.<a class="code" href="classbdm_1_1shared__ptr.html#a37ebcfb6750dd7b5630f1d2354c07a96">get</a>() ); | 
                        |  | 659 | <a name="l00907"></a>00907                 <a class="code" href="classbdm_1_1mpdf.html#a7c1900976ff13dbc09c9729b3bbff9e6" title="dimension of the condition">dimc</a> = 0; | 
                        |  | 660 | <a name="l00908"></a>00908         } | 
                        |  | 661 | <a name="l00909"></a>00909 | 
                        |  | 662 | <a name="l00911"></a><a class="code" href="classbdm_1_1mepdf.html#ab904a90ef78294040b498717cc13015e">00911</a>         vec <a class="code" href="classbdm_1_1mepdf.html#ab904a90ef78294040b498717cc13015e" title="empty">samplecond</a> ( <span class="keyword">const</span> vec &cond ) { | 
                        |  | 663 | <a name="l00912"></a>00912                 <span class="keywordflow">return</span> iepdf->sample(); | 
                        |  | 664 | <a name="l00913"></a>00913         } | 
                        |  | 665 | <a name="l00914"></a><a class="code" href="classbdm_1_1mepdf.html#a57decd7718f3789e9d1f10f19def935b">00914</a>         <span class="keywordtype">double</span> <a class="code" href="classbdm_1_1mepdf.html#a57decd7718f3789e9d1f10f19def935b" title="Shortcut for conditioning and evaluation of the internal epdf. In some cases, this...">evallogcond</a> ( <span class="keyword">const</span> vec &val, <span class="keyword">const</span> vec &cond ) { | 
                        |  | 666 | <a name="l00915"></a>00915                 <span class="keywordflow">return</span> iepdf->evallog ( val ); | 
                        |  | 667 | <a name="l00916"></a>00916         } | 
                        |  | 668 | <a name="l00917"></a>00917 | 
                        |  | 669 | <a name="l00925"></a>00925         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1mepdf.html#a27ef18a3e3b1b5de02739d1324bf25fb" title="Load from structure with elements:.">from_setting</a> ( <span class="keyword">const</span> Setting &<span class="keyword">set</span> ); | 
                        |  | 670 | <a name="l00926"></a>00926 }; | 
                        |  | 671 | <a name="l00927"></a>00927 <a class="code" href="user__info_8h.html#a4f9de2f17e844047726487b99def99c6" title="Macro for registration of class into map of user-infos, registered class is scriptable...">UIREGISTER</a> ( mepdf ); | 
                        |  | 672 | <a name="l00928"></a>00928 SHAREDPTR ( mepdf ); | 
                        |  | 673 | <a name="l00929"></a>00929 | 
                        |  | 674 | <a name="l00931"></a>00931 RV get_composite_rv ( <span class="keyword">const</span> Array<shared_ptr<mpdf> > &mpdfs, <span class="keywordtype">bool</span> checkoverlap = <span class="keyword">false</span> ); | 
                        |  | 675 | <a name="l00932"></a>00932 | 
                        |  | 676 | <a name="l00948"></a><a class="code" href="classbdm_1_1DS.html">00948</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1DS.html" title="Abstract class for discrete-time sources of data.">DS</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1root.html" title="Root class of BDM objects.">root</a> { | 
                        |  | 677 | <a name="l00949"></a>00949 <span class="keyword">protected</span>: | 
                        |  | 678 | <a name="l00951"></a><a class="code" href="classbdm_1_1DS.html#af96cae44624e79638a91ec4f2c7c81a9">00951</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1DS.html#af96cae44624e79638a91ec4f2c7c81a9" title="size of data returned by getdata() ">dtsize</a>; | 
                        |  | 679 | <a name="l00953"></a><a class="code" href="classbdm_1_1DS.html#ad7467046a0bd05bc992cc5e1bdedb983">00953</a>         <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1DS.html#ad7467046a0bd05bc992cc5e1bdedb983" title="size of data">utsize</a>; | 
                        |  | 680 | <a name="l00955"></a><a class="code" href="classbdm_1_1DS.html#a22a4b29aa6e9f3bf17bcc4b28567e8bd">00955</a>                 <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1DS.html#a22a4b29aa6e9f3bf17bcc4b28567e8bd" title="size of output">ytsize</a>; | 
                        |  | 681 | <a name="l00957"></a><a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec">00957</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>; | 
                        |  | 682 | <a name="l00959"></a><a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702">00959</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a>; <span class="comment">//</span> | 
                        |  | 683 | <a name="l00961"></a><a class="code" href="classbdm_1_1DS.html#aeb9de2a85f0d8257d79d9b68c05c4995">00961</a> <span class="comment"></span>                <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1DS.html#aeb9de2a85f0d8257d79d9b68c05c4995" title="Description of output data.">Yrv</a>; <span class="comment">//</span> | 
                        |  | 684 | <a name="l00963"></a><a class="code" href="classbdm_1_1DS.html#ab4b7bdb9d98a11ab587aa0ad803bb867">00963</a> <span class="comment"></span>        <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1DS.html#ab4b7bdb9d98a11ab587aa0ad803bb867" title="Remember its own index in Logger L.">L_dt</a>, L_ut; | 
                        |  | 685 | <a name="l00964"></a>00964 <span class="keyword">public</span>: | 
                        |  | 686 | <a name="l00966"></a><a class="code" href="classbdm_1_1DS.html#abedd82e08ae6686b4b1732a122c2201a">00966</a>                 <a class="code" href="classbdm_1_1DS.html#abedd82e08ae6686b4b1732a122c2201a" title="default constructors">DS</a>() : <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>(), <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a>(),<a class="code" href="classbdm_1_1DS.html#aeb9de2a85f0d8257d79d9b68c05c4995" title="Description of output data.">Yrv</a>() {}; | 
                        |  | 687 | <a name="l00967"></a>00967 | 
                        |  | 688 | <a name="l00969"></a><a class="code" href="classbdm_1_1DS.html#a76d11928675f276f805655ae2a05d773">00969</a>         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classbdm_1_1DS.html#a76d11928675f276f805655ae2a05d773" title="Returns maximum number of provided data, by default it is set to maximum allowed...">max_length</a>() {<span class="keywordflow">return</span> std::numeric_limits< int >::max();} | 
                        |  | 689 | <a name="l00971"></a><a class="code" href="classbdm_1_1DS.html#ac1ec862dec7164fee3284c6f9a51b0ba">00971</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1DS.html#ac1ec862dec7164fee3284c6f9a51b0ba" title="Returns full vector of observed data=[output, input].">getdata</a> ( vec &dt ) { | 
                        |  | 690 | <a name="l00972"></a>00972                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"abstract class"</span> ); | 
                        |  | 691 | <a name="l00973"></a>00973         } | 
                        |  | 692 | <a name="l00975"></a><a class="code" href="classbdm_1_1DS.html#aa0bf451c7fea73ff4150ff9e83da4832">00975</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1DS.html#aa0bf451c7fea73ff4150ff9e83da4832" title="Returns data records at indeces.">getdata</a> ( vec &dt, <span class="keyword">const</span> ivec &indeces ) { | 
                        |  | 693 | <a name="l00976"></a>00976                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"abstract class"</span> ); | 
            
                      
                        | 694 |  | <a name="l00979"></a><a class="code" href="classbdm_1_1DS.html#ae03d2c93cddd5c3a03107ddd3ae999cf">00979</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1DS.html#ae03d2c93cddd5c3a03107ddd3ae999cf" title="Register DS for logging into logger L.">logit</a> ( <a class="code" href="classbdm_1_1logger.html" title="Class for storing results (and semi-results) of an experiment.">logger</a> &L ) { | 
                        | 695 |  | <a name="l00980"></a>00980                 vec tmp ( <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() + <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() ); | 
                        | 696 |  | <a name="l00981"></a>00981                 <a class="code" href="classbdm_1_1DS.html#ac1ec862dec7164fee3284c6f9a51b0ba" title="Returns full vector of observed data=[output, input].">getdata</a> ( tmp ); | 
                        | 697 |  | <a name="l00982"></a>00982                 <span class="comment">// d is first in getdata</span> | 
                        | 698 |  | <a name="l00983"></a>00983                 L.<a class="code" href="classbdm_1_1logger.html#ae30f695619931b3c372ab280e452d309" title="log this vector">logit</a> ( <a class="code" href="classbdm_1_1DS.html#ab4b7bdb9d98a11ab587aa0ad803bb867" title="Remember its own index in Logger L.">L_dt</a>, tmp.left ( <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() ) ); | 
                        | 699 |  | <a name="l00984"></a>00984                 <span class="comment">// u follows after d in getdata</span> | 
                        | 700 |  | <a name="l00985"></a>00985                 L.<a class="code" href="classbdm_1_1logger.html#ae30f695619931b3c372ab280e452d309" title="log this vector">logit</a> ( L_ut, tmp.mid ( <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>(), <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() ) ); | 
                        | 701 |  | <a name="l00986"></a>00986         } | 
                        | 702 |  | <a name="l00988"></a><a class="code" href="classbdm_1_1DS.html#a069497b610296be053d862a2493be0ce">00988</a>         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a>& <a class="code" href="classbdm_1_1DS.html#a069497b610296be053d862a2493be0ce" title="access function">_drv</a>()<span class="keyword"> const </span>{ | 
                        | 703 |  | <a name="l00989"></a>00989                 <span class="comment">//              return concat (Drv, Urv);// why!!!</span> | 
                        | 704 |  | <a name="l00990"></a>00990                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>;<span class="comment">// why!!!</span> | 
                        | 705 |  | <a name="l00991"></a>00991         } | 
                        | 706 |  | <a name="l00993"></a><a class="code" href="classbdm_1_1DS.html#aa6a9a375da64c82fc227bda3418a1f33">00993</a>         <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a>& <a class="code" href="classbdm_1_1DS.html#aa6a9a375da64c82fc227bda3418a1f33" title="access function">_urv</a>()<span class="keyword"> const </span>{ | 
                        | 707 |  | <a name="l00994"></a>00994                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a>; | 
                        | 708 |  | <a name="l00995"></a>00995         } | 
                        | 709 |  | <a name="l00997"></a><a class="code" href="classbdm_1_1DS.html#ac09878f86907329ac631a3df8755c558">00997</a>                 <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a>& <a class="code" href="classbdm_1_1DS.html#ac09878f86907329ac631a3df8755c558" title="access function">_yrv</a>()<span class="keyword"> const </span>{ | 
                        | 710 |  | <a name="l00998"></a>00998                         <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1DS.html#aeb9de2a85f0d8257d79d9b68c05c4995" title="Description of output data.">Yrv</a>; | 
                        | 711 |  | <a name="l00999"></a>00999                 } | 
                        | 712 |  | <a name="l01001"></a><a class="code" href="classbdm_1_1DS.html#a3a92d77fd97fdb6bf1c8edb1e38c6bbc">01001</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1DS.html#a3a92d77fd97fdb6bf1c8edb1e38c6bbc" title="set random variables">set_drv</a> (<span class="keyword">const</span>  <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &yrv, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &urv) { | 
                        | 713 |  | <a name="l01002"></a>01002                     <a class="code" href="classbdm_1_1DS.html#aeb9de2a85f0d8257d79d9b68c05c4995" title="Description of output data.">Yrv</a> = yrv; | 
                        | 714 |  | <a name="l01003"></a>01003                         <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a> = concat(yrv,urv); | 
                        | 715 |  | <a name="l01004"></a>01004                 <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a> = urv; | 
                        | 716 |  | <a name="l01005"></a>01005         } | 
                        | 717 |  | <a name="l01006"></a>01006 }; | 
                        | 718 |  | <a name="l01007"></a>01007 | 
                        | 719 |  | <a name="l01029"></a><a class="code" href="classbdm_1_1BM.html">01029</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1BM.html" title="Bayesian Model of a system, i.e. all uncertainty is modeled by probabilities.">BM</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1root.html" title="Root class of BDM objects.">root</a> { | 
                        | 720 |  | <a name="l01030"></a>01030 <span class="keyword">protected</span>: | 
                        | 721 |  | <a name="l01032"></a><a class="code" href="classbdm_1_1BM.html#ac400357e37d27a4834b2b1d9211009ed">01032</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1BM.html#ac400357e37d27a4834b2b1d9211009ed" title="Random variable of the data (optional).">drv</a>; | 
                        | 722 |  | <a name="l01034"></a><a class="code" href="classbdm_1_1BM.html#a4064b6559d962633e4372b12f4cd204a">01034</a>         <span class="keywordtype">double</span> <a class="code" href="classbdm_1_1BM.html#a4064b6559d962633e4372b12f4cd204a" title="Logarithm of marginalized data likelihood.">ll</a>; | 
                        | 723 |  | <a name="l01036"></a><a class="code" href="classbdm_1_1BM.html#afaff0ad12556fe7dc0e2807d4fd938ee">01036</a>         <span class="keywordtype">bool</span> <a class="code" href="classbdm_1_1BM.html#afaff0ad12556fe7dc0e2807d4fd938ee" title="If true, the filter will compute likelihood of the data record and store it in ll...">evalll</a>; | 
                        | 724 |  | <a name="l01037"></a>01037 <span class="keyword">public</span>: | 
                        | 725 |  | <a name="l01040"></a>01040 | 
                        | 726 |  | <a name="l01041"></a>01041         <a class="code" href="classbdm_1_1BM.html" title="Bayesian Model of a system, i.e. all uncertainty is modeled by probabilities.">BM</a>() : <a class="code" href="classbdm_1_1BM.html#a4064b6559d962633e4372b12f4cd204a" title="Logarithm of marginalized data likelihood.">ll</a> ( 0 ), <a class="code" href="classbdm_1_1BM.html#afaff0ad12556fe7dc0e2807d4fd938ee" title="If true, the filter will compute likelihood of the data record and store it in ll...">evalll</a> ( true ), <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 4 ), <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 4 ) { | 
                        | 727 |  | <a name="l01042"></a>01042                 <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> = -1;<span class="comment">/*empty IDs*/</span> | 
                        | 728 |  | <a name="l01043"></a>01043                 <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> = 0; | 
                        | 729 |  | <a name="l01044"></a>01044                 <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 0 ) = 1;  <span class="comment">/*log only mean*/</span> | 
                        | 730 |  | <a name="l01045"></a>01045         }; | 
                        | 731 |  | <a name="l01046"></a>01046         <a class="code" href="classbdm_1_1BM.html" title="Bayesian Model of a system, i.e. all uncertainty is modeled by probabilities.">BM</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1BM.html" title="Bayesian Model of a system, i.e. all uncertainty is modeled by probabilities.">BM</a> &B ) :  <a class="code" href="classbdm_1_1BM.html#ac400357e37d27a4834b2b1d9211009ed" title="Random variable of the data (optional).">drv</a> ( B.<a class="code" href="classbdm_1_1BM.html#ac400357e37d27a4834b2b1d9211009ed" title="Random variable of the data (optional).">drv</a> ), <a class="code" href="classbdm_1_1BM.html#a4064b6559d962633e4372b12f4cd204a" title="Logarithm of marginalized data likelihood.">ll</a> ( B.<a class="code" href="classbdm_1_1BM.html#a4064b6559d962633e4372b12f4cd204a" title="Logarithm of marginalized data likelihood.">ll</a> ), <a class="code" href="classbdm_1_1BM.html#afaff0ad12556fe7dc0e2807d4fd938ee" title="If true, the filter will compute likelihood of the data record and store it in ll...">evalll</a> ( B.<a class="code" href="classbdm_1_1BM.html#afaff0ad12556fe7dc0e2807d4fd938ee" title="If true, the filter will compute likelihood of the data record and store it in ll...">evalll</a> ) {} | 
                        | 732 |  | <a name="l01049"></a><a class="code" href="classbdm_1_1BM.html#a40f01563651c1e4fe926189e41a6b8ab">01049</a>         <span class="keyword">virtual</span> <a class="code" href="classbdm_1_1BM.html" title="Bayesian Model of a system, i.e. all uncertainty is modeled by probabilities.">BM</a>* <a class="code" href="classbdm_1_1BM.html#a40f01563651c1e4fe926189e41a6b8ab">_copy_</a>()<span class="keyword"> const </span>{ | 
                        | 733 |  | <a name="l01050"></a>01050                 <span class="keywordflow">return</span> NULL; | 
                        | 734 |  | <a name="l01051"></a>01051         }; | 
                        | 735 |  | <a name="l01053"></a>01053 | 
                        | 736 |  | <a name="l01056"></a>01056 | 
                        | 737 |  | <a name="l01060"></a>01060         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1BM.html#a60b1779a577367c369a932cabd3a6188" title="Incremental Bayes rule.">bayes</a> ( <span class="keyword">const</span> vec &dt ) = 0; | 
                        | 738 |  | <a name="l01062"></a>01062         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1BM.html#a1dee3fddaf021e62d925289660a707dc" title="Batch Bayes rule (columns of Dt are observations).">bayesB</a> ( <span class="keyword">const</span> mat &Dt ); | 
                        | 739 |  | <a name="l01065"></a><a class="code" href="classbdm_1_1BM.html#a50257e0c1e5b5c73153ea6e716ad8ae0">01065</a>         <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classbdm_1_1BM.html#a50257e0c1e5b5c73153ea6e716ad8ae0">logpred</a> ( <span class="keyword">const</span> vec &dt )<span class="keyword"> const </span>{ | 
                        | 740 |  | <a name="l01066"></a>01066                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        | 741 |  | <a name="l01067"></a>01067                 <span class="keywordflow">return</span> 0.0; | 
                        | 742 |  | <a name="l01068"></a>01068         } | 
                        | 743 |  | <a name="l01069"></a>01069 | 
                        | 744 |  | <a name="l01071"></a><a class="code" href="classbdm_1_1BM.html#a0e8ebe61fb14990abe1254bd3dda5fae">01071</a>         vec <a class="code" href="classbdm_1_1BM.html#a0e8ebe61fb14990abe1254bd3dda5fae" title="Matrix version of logpred.">logpred_m</a> ( <span class="keyword">const</span> mat &dt )<span class="keyword"> const </span>{ | 
                        | 745 |  | <a name="l01072"></a>01072                 vec tmp ( dt.cols() ); | 
                        | 746 |  | <a name="l01073"></a>01073                 <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i < dt.cols(); i++ ) { | 
                        | 747 |  | <a name="l01074"></a>01074                         tmp ( i ) = <a class="code" href="classbdm_1_1BM.html#a50257e0c1e5b5c73153ea6e716ad8ae0">logpred</a> ( dt.get_col ( i ) ); | 
                        | 748 |  | <a name="l01075"></a>01075                 } | 
                        | 749 |  | <a name="l01076"></a>01076                 <span class="keywordflow">return</span> tmp; | 
                        | 750 |  | <a name="l01077"></a>01077         } | 
                      
                        |  | 695 | <a name="l00978"></a>00978 | 
                        |  | 696 | <a name="l00980"></a><a class="code" href="classbdm_1_1DS.html#af5baeee8528e5e4c5c7a344b2e3f192a">00980</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1DS.html#af5baeee8528e5e4c5c7a344b2e3f192a" title="Accepts action variable and schedule it for application.">write</a> ( vec &ut ) { | 
                        |  | 697 | <a name="l00981"></a>00981                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"abstract class"</span> ); | 
                        |  | 698 | <a name="l00982"></a>00982         } | 
                        |  | 699 | <a name="l00983"></a>00983 | 
                        |  | 700 | <a name="l00985"></a><a class="code" href="classbdm_1_1DS.html#a6bced13f84f6bf04449728817e049e1d">00985</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1DS.html#a6bced13f84f6bf04449728817e049e1d" title="Accepts action variables at specific indeces.">write</a> ( vec &ut, <span class="keyword">const</span> ivec &indeces ) { | 
                        |  | 701 | <a name="l00986"></a>00986                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"abstract class"</span> ); | 
                        |  | 702 | <a name="l00987"></a>00987         } | 
                        |  | 703 | <a name="l00988"></a>00988 | 
                        |  | 704 | <a name="l00990"></a>00990         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1DS.html#a9a14c64d881e838ddc3a5617ee8a973b" title="Moves from  to , i.e. perfroms the actions and reads response of the system.">step</a>() = 0; | 
                        |  | 705 | <a name="l00991"></a>00991 | 
                        |  | 706 | <a name="l00993"></a><a class="code" href="classbdm_1_1DS.html#a3c9e417d85052396fe74c164857ee67e">00993</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1DS.html#a3c9e417d85052396fe74c164857ee67e" title="Register DS for logging into logger L.">log_add</a> ( <a class="code" href="classbdm_1_1logger.html" title="Class for storing results (and semi-results) of an experiment.">logger</a> &L ) { | 
                        |  | 707 | <a name="l00994"></a>00994                 <a class="code" href="bdmerror_8h.html#a89a0f906b242b79c5d3d342291b2cab4" title="Throw std::runtime_exception if t is not true and NDEBUG is not defined.">bdm_assert_debug</a> ( <a class="code" href="classbdm_1_1DS.html#af96cae44624e79638a91ec4f2c7c81a9" title="size of data returned by getdata() ">dtsize</a> == <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>(), <span class="stringliteral">"invalid DS: dtsize ("</span> + num2str ( <a class="code" href="classbdm_1_1DS.html#af96cae44624e79638a91ec4f2c7c81a9" title="size of data returned by getdata() ">dtsize</a> ) + <span class="stringliteral">") different from Drv "</span> + num2str ( <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() ) ); | 
                        |  | 708 | <a name="l00995"></a>00995                 <a class="code" href="bdmerror_8h.html#a89a0f906b242b79c5d3d342291b2cab4" title="Throw std::runtime_exception if t is not true and NDEBUG is not defined.">bdm_assert_debug</a> ( <a class="code" href="classbdm_1_1DS.html#ad7467046a0bd05bc992cc5e1bdedb983" title="size of data">utsize</a> == <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>(), <span class="stringliteral">"invalid DS: utsize ("</span> + num2str ( <a class="code" href="classbdm_1_1DS.html#ad7467046a0bd05bc992cc5e1bdedb983" title="size of data">utsize</a> ) + <span class="stringliteral">") different from Urv "</span> + num2str ( <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() ) ); | 
                        |  | 709 | <a name="l00996"></a>00996 | 
                        |  | 710 | <a name="l00997"></a>00997                 <a class="code" href="classbdm_1_1DS.html#ab4b7bdb9d98a11ab587aa0ad803bb867" title="Remember its own index in Logger L.">L_dt</a> = L.<a class="code" href="classbdm_1_1logger.html#a47aa3b098a81d02a8ffaea2c9fa09ac7" title="returns an identifier which will be later needed for calling the logit() function...">add</a> ( <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>, <span class="stringliteral">""</span> ); | 
                        |  | 711 | <a name="l00998"></a>00998                 L_ut = L.<a class="code" href="classbdm_1_1logger.html#a47aa3b098a81d02a8ffaea2c9fa09ac7" title="returns an identifier which will be later needed for calling the logit() function...">add</a> ( <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a>, <span class="stringliteral">""</span> ); | 
                        |  | 712 | <a name="l00999"></a>00999         } | 
                        |  | 713 | <a name="l01001"></a><a class="code" href="classbdm_1_1DS.html#ae03d2c93cddd5c3a03107ddd3ae999cf">01001</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1DS.html#ae03d2c93cddd5c3a03107ddd3ae999cf" title="Register DS for logging into logger L.">logit</a> ( <a class="code" href="classbdm_1_1logger.html" title="Class for storing results (and semi-results) of an experiment.">logger</a> &L ) { | 
                        |  | 714 | <a name="l01002"></a>01002                 vec tmp ( <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() + <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() ); | 
                        |  | 715 | <a name="l01003"></a>01003                 <a class="code" href="classbdm_1_1DS.html#ac1ec862dec7164fee3284c6f9a51b0ba" title="Returns full vector of observed data=[output, input].">getdata</a> ( tmp ); | 
                        |  | 716 | <a name="l01004"></a>01004                 <span class="comment">// d is first in getdata</span> | 
                        |  | 717 | <a name="l01005"></a>01005                 L.<a class="code" href="classbdm_1_1logger.html#ae30f695619931b3c372ab280e452d309" title="log this vector">logit</a> ( <a class="code" href="classbdm_1_1DS.html#ab4b7bdb9d98a11ab587aa0ad803bb867" title="Remember its own index in Logger L.">L_dt</a>, tmp.left ( <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() ) ); | 
                        |  | 718 | <a name="l01006"></a>01006                 <span class="comment">// u follows after d in getdata</span> | 
                        |  | 719 | <a name="l01007"></a>01007                 L.<a class="code" href="classbdm_1_1logger.html#ae30f695619931b3c372ab280e452d309" title="log this vector">logit</a> ( L_ut, tmp.mid ( <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>(), <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>() ) ); | 
                        |  | 720 | <a name="l01008"></a>01008         } | 
                        |  | 721 | <a name="l01010"></a><a class="code" href="classbdm_1_1DS.html#a069497b610296be053d862a2493be0ce">01010</a>         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a>& <a class="code" href="classbdm_1_1DS.html#a069497b610296be053d862a2493be0ce" title="access function">_drv</a>()<span class="keyword"> const </span>{ | 
                        |  | 722 | <a name="l01011"></a>01011                 <span class="comment">//              return concat (Drv, Urv);// why!!!</span> | 
                        |  | 723 | <a name="l01012"></a>01012                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a>;<span class="comment">// why!!!</span> | 
                        |  | 724 | <a name="l01013"></a>01013         } | 
                        |  | 725 | <a name="l01015"></a><a class="code" href="classbdm_1_1DS.html#aa6a9a375da64c82fc227bda3418a1f33">01015</a>         <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a>& <a class="code" href="classbdm_1_1DS.html#aa6a9a375da64c82fc227bda3418a1f33" title="access function">_urv</a>()<span class="keyword"> const </span>{ | 
                        |  | 726 | <a name="l01016"></a>01016                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a>; | 
                        |  | 727 | <a name="l01017"></a>01017         } | 
                        |  | 728 | <a name="l01019"></a><a class="code" href="classbdm_1_1DS.html#ac09878f86907329ac631a3df8755c558">01019</a>                 <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a>& <a class="code" href="classbdm_1_1DS.html#ac09878f86907329ac631a3df8755c558" title="access function">_yrv</a>()<span class="keyword"> const </span>{ | 
                        |  | 729 | <a name="l01020"></a>01020                         <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1DS.html#aeb9de2a85f0d8257d79d9b68c05c4995" title="Description of output data.">Yrv</a>; | 
                        |  | 730 | <a name="l01021"></a>01021                 } | 
                        |  | 731 | <a name="l01023"></a><a class="code" href="classbdm_1_1DS.html#a3a92d77fd97fdb6bf1c8edb1e38c6bbc">01023</a>                 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1DS.html#a3a92d77fd97fdb6bf1c8edb1e38c6bbc" title="set random variables">set_drv</a> (<span class="keyword">const</span>  <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &yrv, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &urv) { | 
                        |  | 732 | <a name="l01024"></a>01024                     <a class="code" href="classbdm_1_1DS.html#aeb9de2a85f0d8257d79d9b68c05c4995" title="Description of output data.">Yrv</a> = yrv; | 
                        |  | 733 | <a name="l01025"></a>01025                         <a class="code" href="classbdm_1_1DS.html#ad8db125ac35f3b8eeb773fc9a4cb45ec" title="Description of data returned by getdata().">Drv</a> = concat(yrv,urv); | 
                        |  | 734 | <a name="l01026"></a>01026                 <a class="code" href="classbdm_1_1DS.html#a9ac5970128fd39f4f6226723cd1de702" title="Description of data witten by by write().">Urv</a> = urv; | 
                        |  | 735 | <a name="l01027"></a>01027         } | 
                        |  | 736 | <a name="l01028"></a>01028 }; | 
                        |  | 737 | <a name="l01029"></a>01029 | 
                        |  | 738 | <a name="l01051"></a><a class="code" href="classbdm_1_1BM.html">01051</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1BM.html" title="Bayesian Model of a system, i.e. all uncertainty is modeled by probabilities.">BM</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1root.html" title="Root class of BDM objects.">root</a> { | 
                        |  | 739 | <a name="l01052"></a>01052 <span class="keyword">protected</span>: | 
                        |  | 740 | <a name="l01054"></a><a class="code" href="classbdm_1_1BM.html#ac400357e37d27a4834b2b1d9211009ed">01054</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1BM.html#ac400357e37d27a4834b2b1d9211009ed" title="Random variable of the data (optional).">drv</a>; | 
                        |  | 741 | <a name="l01056"></a><a class="code" href="classbdm_1_1BM.html#a4064b6559d962633e4372b12f4cd204a">01056</a>         <span class="keywordtype">double</span> <a class="code" href="classbdm_1_1BM.html#a4064b6559d962633e4372b12f4cd204a" title="Logarithm of marginalized data likelihood.">ll</a>; | 
                        |  | 742 | <a name="l01058"></a><a class="code" href="classbdm_1_1BM.html#afaff0ad12556fe7dc0e2807d4fd938ee">01058</a>         <span class="keywordtype">bool</span> <a class="code" href="classbdm_1_1BM.html#afaff0ad12556fe7dc0e2807d4fd938ee" title="If true, the filter will compute likelihood of the data record and store it in ll...">evalll</a>; | 
                        |  | 743 | <a name="l01059"></a>01059 <span class="keyword">public</span>: | 
                        |  | 744 | <a name="l01062"></a>01062 | 
                        |  | 745 | <a name="l01063"></a>01063         <a class="code" href="classbdm_1_1BM.html" title="Bayesian Model of a system, i.e. all uncertainty is modeled by probabilities.">BM</a>() : <a class="code" href="classbdm_1_1BM.html#a4064b6559d962633e4372b12f4cd204a" title="Logarithm of marginalized data likelihood.">ll</a> ( 0 ), <a class="code" href="classbdm_1_1BM.html#afaff0ad12556fe7dc0e2807d4fd938ee" title="If true, the filter will compute likelihood of the data record and store it in ll...">evalll</a> ( true ), <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 4 ), <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 4 ) { | 
                        |  | 746 | <a name="l01064"></a>01064                 <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> = -1;<span class="comment">/*empty IDs*/</span> | 
                        |  | 747 | <a name="l01065"></a>01065                 <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> = 0; | 
                        |  | 748 | <a name="l01066"></a>01066                 <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 0 ) = 1;  <span class="comment">/*log only mean*/</span> | 
                        |  | 749 | <a name="l01067"></a>01067         }; | 
                        |  | 750 | <a name="l01068"></a>01068         <a class="code" href="classbdm_1_1BM.html" title="Bayesian Model of a system, i.e. all uncertainty is modeled by probabilities.">BM</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1BM.html" title="Bayesian Model of a system, i.e. all uncertainty is modeled by probabilities.">BM</a> &B ) :  <a class="code" href="classbdm_1_1BM.html#ac400357e37d27a4834b2b1d9211009ed" title="Random variable of the data (optional).">drv</a> ( B.<a class="code" href="classbdm_1_1BM.html#ac400357e37d27a4834b2b1d9211009ed" title="Random variable of the data (optional).">drv</a> ), <a class="code" href="classbdm_1_1BM.html#a4064b6559d962633e4372b12f4cd204a" title="Logarithm of marginalized data likelihood.">ll</a> ( B.<a class="code" href="classbdm_1_1BM.html#a4064b6559d962633e4372b12f4cd204a" title="Logarithm of marginalized data likelihood.">ll</a> ), <a class="code" href="classbdm_1_1BM.html#afaff0ad12556fe7dc0e2807d4fd938ee" title="If true, the filter will compute likelihood of the data record and store it in ll...">evalll</a> ( B.<a class="code" href="classbdm_1_1BM.html#afaff0ad12556fe7dc0e2807d4fd938ee" title="If true, the filter will compute likelihood of the data record and store it in ll...">evalll</a> ) {} | 
                        |  | 751 | <a name="l01071"></a><a class="code" href="classbdm_1_1BM.html#a40f01563651c1e4fe926189e41a6b8ab">01071</a>         <span class="keyword">virtual</span> <a class="code" href="classbdm_1_1BM.html" title="Bayesian Model of a system, i.e. all uncertainty is modeled by probabilities.">BM</a>* <a class="code" href="classbdm_1_1BM.html#a40f01563651c1e4fe926189e41a6b8ab">_copy_</a>()<span class="keyword"> const </span>{ | 
                        |  | 752 | <a name="l01072"></a>01072                 <span class="keywordflow">return</span> NULL; | 
                        |  | 753 | <a name="l01073"></a>01073         }; | 
                        |  | 754 | <a name="l01075"></a>01075 | 
            
                      
                        | 752 |  | <a name="l01080"></a><a class="code" href="classbdm_1_1BM.html#a688d7a2aced1e06aa1c468d73a9e5eba">01080</a>         <span class="keyword">virtual</span> <a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a>* <a class="code" href="classbdm_1_1BM.html#a688d7a2aced1e06aa1c468d73a9e5eba" title="Constructs a predictive density .">epredictor</a>()<span class="keyword"> const </span>{ | 
                        | 753 |  | <a name="l01081"></a>01081                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        | 754 |  | <a name="l01082"></a>01082                 <span class="keywordflow">return</span> NULL; | 
                        | 755 |  | <a name="l01083"></a>01083         }; | 
                        | 756 |  | <a name="l01085"></a><a class="code" href="classbdm_1_1BM.html#a598b25e3f3d96a5bc00a5faeb5b3c912">01085</a>         <span class="keyword">virtual</span> <a class="code" href="classbdm_1_1mpdf.html" title="Conditional probability density, e.g. modeling , where  is random variable, rv, and...">mpdf</a>* <a class="code" href="classbdm_1_1BM.html#a598b25e3f3d96a5bc00a5faeb5b3c912" title="Constructs conditional density of 1-step ahead predictor .">predictor</a>()<span class="keyword"> const </span>{ | 
                        | 757 |  | <a name="l01086"></a>01086                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        | 758 |  | <a name="l01087"></a>01087                 <span class="keywordflow">return</span> NULL; | 
                        | 759 |  | <a name="l01088"></a>01088         }; | 
                        | 760 |  | <a name="l01090"></a>01090 | 
                        | 761 |  | <a name="l01095"></a>01095 | 
                        | 762 |  | <a name="l01097"></a><a class="code" href="classbdm_1_1BM.html#ade95c590d650b2db423d53992f0906cb">01097</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1BM.html#ade95c590d650b2db423d53992f0906cb" title="Name of extension variable.">rvc</a>; | 
                        | 763 |  | <a name="l01099"></a><a class="code" href="classbdm_1_1BM.html#ab5e8e016be16e4029c789063cb3f3b33">01099</a>         <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a>& <a class="code" href="classbdm_1_1BM.html#ab5e8e016be16e4029c789063cb3f3b33" title="access function">_rvc</a>()<span class="keyword"> const </span>{ | 
                        | 764 |  | <a name="l01100"></a>01100                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1BM.html#ade95c590d650b2db423d53992f0906cb" title="Name of extension variable.">rvc</a>; | 
                        | 765 |  | <a name="l01101"></a>01101         } | 
                        | 766 |  | <a name="l01102"></a>01102 | 
                        | 767 |  | <a name="l01104"></a><a class="code" href="classbdm_1_1BM.html#a6799f4b16a6a59ed58b1d0d6e17116f4">01104</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1BM.html#a6799f4b16a6a59ed58b1d0d6e17116f4" title="Substitute val for rvc.">condition</a> ( <span class="keyword">const</span> vec &val ) { | 
                        | 768 |  | <a name="l01105"></a>01105                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented!"</span> ); | 
                        | 769 |  | <a name="l01106"></a>01106         } | 
                        | 770 |  | <a name="l01107"></a>01107 | 
                        | 771 |  | <a name="l01109"></a>01109 | 
                        | 772 |  | <a name="l01110"></a>01110 | 
                        | 773 |  | <a name="l01113"></a>01113 | 
                        | 774 |  | <a name="l01114"></a>01114         <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a>& _drv()<span class="keyword"> const </span>{ | 
                        | 775 |  | <a name="l01115"></a>01115                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1BM.html#ac400357e37d27a4834b2b1d9211009ed" title="Random variable of the data (optional).">drv</a>; | 
                        | 776 |  | <a name="l01116"></a>01116         } | 
                        | 777 |  | <a name="l01117"></a>01117         <span class="keywordtype">void</span> set_drv ( <span class="keyword">const</span> RV &rv ) { | 
                        | 778 |  | <a name="l01118"></a>01118                 <a class="code" href="classbdm_1_1BM.html#ac400357e37d27a4834b2b1d9211009ed" title="Random variable of the data (optional).">drv</a> = rv; | 
                        | 779 |  | <a name="l01119"></a>01119         } | 
                        | 780 |  | <a name="l01120"></a>01120         <span class="keywordtype">void</span> set_rv ( <span class="keyword">const</span> RV &rv ) { | 
                        | 781 |  | <a name="l01121"></a>01121                 <span class="keyword">const_cast<</span>epdf&<span class="keyword">></span> ( posterior() ).set_rv ( rv ); | 
                        | 782 |  | <a name="l01122"></a>01122         } | 
                        | 783 |  | <a name="l01123"></a>01123         <span class="keywordtype">double</span> _ll()<span class="keyword"> const </span>{ | 
                        | 784 |  | <a name="l01124"></a>01124                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1BM.html#a4064b6559d962633e4372b12f4cd204a" title="Logarithm of marginalized data likelihood.">ll</a>; | 
                        | 785 |  | <a name="l01125"></a>01125         } | 
                        | 786 |  | <a name="l01126"></a>01126         <span class="keywordtype">void</span> set_evalll ( <span class="keywordtype">bool</span> evl0 ) { | 
                        | 787 |  | <a name="l01127"></a>01127                 <a class="code" href="classbdm_1_1BM.html#afaff0ad12556fe7dc0e2807d4fd938ee" title="If true, the filter will compute likelihood of the data record and store it in ll...">evalll</a> = evl0; | 
                      
                        |  | 756 | <a name="l01082"></a>01082         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1BM.html#a60b1779a577367c369a932cabd3a6188" title="Incremental Bayes rule.">bayes</a> ( <span class="keyword">const</span> vec &dt ) = 0; | 
                        |  | 757 | <a name="l01084"></a>01084         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1BM.html#a1dee3fddaf021e62d925289660a707dc" title="Batch Bayes rule (columns of Dt are observations).">bayesB</a> ( <span class="keyword">const</span> mat &Dt ); | 
                        |  | 758 | <a name="l01087"></a><a class="code" href="classbdm_1_1BM.html#a50257e0c1e5b5c73153ea6e716ad8ae0">01087</a>         <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classbdm_1_1BM.html#a50257e0c1e5b5c73153ea6e716ad8ae0">logpred</a> ( <span class="keyword">const</span> vec &dt )<span class="keyword"> const </span>{ | 
                        |  | 759 | <a name="l01088"></a>01088                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        |  | 760 | <a name="l01089"></a>01089                 <span class="keywordflow">return</span> 0.0; | 
                        |  | 761 | <a name="l01090"></a>01090         } | 
                        |  | 762 | <a name="l01091"></a>01091 | 
                        |  | 763 | <a name="l01093"></a><a class="code" href="classbdm_1_1BM.html#a0e8ebe61fb14990abe1254bd3dda5fae">01093</a>         vec <a class="code" href="classbdm_1_1BM.html#a0e8ebe61fb14990abe1254bd3dda5fae" title="Matrix version of logpred.">logpred_m</a> ( <span class="keyword">const</span> mat &dt )<span class="keyword"> const </span>{ | 
                        |  | 764 | <a name="l01094"></a>01094                 vec tmp ( dt.cols() ); | 
                        |  | 765 | <a name="l01095"></a>01095                 <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i < dt.cols(); i++ ) { | 
                        |  | 766 | <a name="l01096"></a>01096                         tmp ( i ) = <a class="code" href="classbdm_1_1BM.html#a50257e0c1e5b5c73153ea6e716ad8ae0">logpred</a> ( dt.get_col ( i ) ); | 
                        |  | 767 | <a name="l01097"></a>01097                 } | 
                        |  | 768 | <a name="l01098"></a>01098                 <span class="keywordflow">return</span> tmp; | 
                        |  | 769 | <a name="l01099"></a>01099         } | 
                        |  | 770 | <a name="l01100"></a>01100 | 
                        |  | 771 | <a name="l01102"></a><a class="code" href="classbdm_1_1BM.html#a688d7a2aced1e06aa1c468d73a9e5eba">01102</a>         <span class="keyword">virtual</span> <a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a>* <a class="code" href="classbdm_1_1BM.html#a688d7a2aced1e06aa1c468d73a9e5eba" title="Constructs a predictive density .">epredictor</a>()<span class="keyword"> const </span>{ | 
                        |  | 772 | <a name="l01103"></a>01103                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        |  | 773 | <a name="l01104"></a>01104                 <span class="keywordflow">return</span> NULL; | 
                        |  | 774 | <a name="l01105"></a>01105         }; | 
                        |  | 775 | <a name="l01107"></a><a class="code" href="classbdm_1_1BM.html#a598b25e3f3d96a5bc00a5faeb5b3c912">01107</a>         <span class="keyword">virtual</span> <a class="code" href="classbdm_1_1mpdf.html" title="Conditional probability density, e.g. modeling , where  is random variable, rv, and...">mpdf</a>* <a class="code" href="classbdm_1_1BM.html#a598b25e3f3d96a5bc00a5faeb5b3c912" title="Constructs conditional density of 1-step ahead predictor .">predictor</a>()<span class="keyword"> const </span>{ | 
                        |  | 776 | <a name="l01108"></a>01108                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented"</span> ); | 
                        |  | 777 | <a name="l01109"></a>01109                 <span class="keywordflow">return</span> NULL; | 
                        |  | 778 | <a name="l01110"></a>01110         }; | 
                        |  | 779 | <a name="l01112"></a>01112 | 
                        |  | 780 | <a name="l01117"></a>01117 | 
                        |  | 781 | <a name="l01119"></a><a class="code" href="classbdm_1_1BM.html#ade95c590d650b2db423d53992f0906cb">01119</a>         <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> <a class="code" href="classbdm_1_1BM.html#ade95c590d650b2db423d53992f0906cb" title="Name of extension variable.">rvc</a>; | 
                        |  | 782 | <a name="l01121"></a><a class="code" href="classbdm_1_1BM.html#ab5e8e016be16e4029c789063cb3f3b33">01121</a>         <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a>& <a class="code" href="classbdm_1_1BM.html#ab5e8e016be16e4029c789063cb3f3b33" title="access function">_rvc</a>()<span class="keyword"> const </span>{ | 
                        |  | 783 | <a name="l01122"></a>01122                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1BM.html#ade95c590d650b2db423d53992f0906cb" title="Name of extension variable.">rvc</a>; | 
                        |  | 784 | <a name="l01123"></a>01123         } | 
                        |  | 785 | <a name="l01124"></a>01124 | 
                        |  | 786 | <a name="l01126"></a><a class="code" href="classbdm_1_1BM.html#a6799f4b16a6a59ed58b1d0d6e17116f4">01126</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1BM.html#a6799f4b16a6a59ed58b1d0d6e17116f4" title="Substitute val for rvc.">condition</a> ( <span class="keyword">const</span> vec &val ) { | 
                        |  | 787 | <a name="l01127"></a>01127                 <a class="code" href="bdmerror_8h.html#a7c43f3a72afe68ab0c85663a1bb3521a" title="Unconditionally throw std::runtime_error.">bdm_error</a> ( <span class="stringliteral">"Not implemented!"</span> ); | 
            
                      
                        | 791 |  | <a name="l01134"></a>01134 | 
                        | 792 |  | <a name="l01136"></a><a class="code" href="classbdm_1_1BM.html#aadb539fa2585c8a2a91c54e5aebf330e">01136</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1BM.html#aadb539fa2585c8a2a91c54e5aebf330e" title="Set boolean options from a string, recognized are: &quot;logbounds,logll&quot;.">set_options</a> ( <span class="keyword">const</span> <span class="keywordtype">string</span> &opt ) { | 
                        | 793 |  | <a name="l01137"></a>01137                 <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 0 ) = 1; | 
                        | 794 |  | <a name="l01138"></a>01138                 <span class="keywordflow">if</span> ( opt.find ( <span class="stringliteral">"logbounds"</span> ) != string::npos ) { | 
                        | 795 |  | <a name="l01139"></a>01139                         <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 1 ) = 1; | 
                        | 796 |  | <a name="l01140"></a>01140                         <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 2 ) = 1; | 
                        | 797 |  | <a name="l01141"></a>01141                 } | 
                        | 798 |  | <a name="l01142"></a>01142                 <span class="keywordflow">if</span> ( opt.find ( <span class="stringliteral">"logll"</span> ) != string::npos ) { | 
                        | 799 |  | <a name="l01143"></a>01143                         <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 3 ) = 1; | 
                        | 800 |  | <a name="l01144"></a>01144                 } | 
                        | 801 |  | <a name="l01145"></a>01145         } | 
                        | 802 |  | <a name="l01147"></a><a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca">01147</a>         ivec <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a>; | 
                        | 803 |  | <a name="l01148"></a>01148 | 
                        | 804 |  | <a name="l01150"></a><a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207">01150</a>         ivec <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a>; | 
                        | 805 |  | <a name="l01152"></a><a class="code" href="classbdm_1_1BM.html#a2298ca6af9b13a78a4c9e18ab43f1827">01152</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1BM.html#a2298ca6af9b13a78a4c9e18ab43f1827" title="Add all logged variables to a logger.">log_add</a> ( <a class="code" href="classbdm_1_1logger.html" title="Class for storing results (and semi-results) of an experiment.">logger</a> &L, <span class="keyword">const</span> <span class="keywordtype">string</span> &name = <span class="stringliteral">""</span> ) { | 
                        | 806 |  | <a name="l01153"></a>01153                 <span class="comment">// internal</span> | 
                        | 807 |  | <a name="l01154"></a>01154                 <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> r; | 
                        | 808 |  | <a name="l01155"></a>01155                 <span class="keywordflow">if</span> ( posterior().isnamed() ) { | 
                        | 809 |  | <a name="l01156"></a>01156                         r = posterior().<a class="code" href="classbdm_1_1epdf.html#aa4ab378d5e004c3ff3e2d4e64f7bba21" title="Return name (fails when isnamed is false).">_rv</a>(); | 
                        | 810 |  | <a name="l01157"></a>01157                 } <span class="keywordflow">else</span> { | 
                        | 811 |  | <a name="l01158"></a>01158                         r = <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> ( <span class="stringliteral">"est"</span>, posterior().dimension() ); | 
                        | 812 |  | <a name="l01159"></a>01159                 }; | 
                        | 813 |  | <a name="l01160"></a>01160 | 
                        | 814 |  | <a name="l01161"></a>01161                 <span class="comment">// Add mean value</span> | 
                        | 815 |  | <a name="l01162"></a>01162                 <span class="keywordflow">if</span> ( <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 0 ) ) <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 0 ) = L.<a class="code" href="classbdm_1_1logger.html#a47aa3b098a81d02a8ffaea2c9fa09ac7" title="returns an identifier which will be later needed for calling the logit() function...">add</a> ( r, name + <span class="stringliteral">"mean_"</span> ); | 
                        | 816 |  | <a name="l01163"></a>01163                 <span class="keywordflow">if</span> ( <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 1 ) ) <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 1 ) = L.<a class="code" href="classbdm_1_1logger.html#a47aa3b098a81d02a8ffaea2c9fa09ac7" title="returns an identifier which will be later needed for calling the logit() function...">add</a> ( r, name + <span class="stringliteral">"lb_"</span> ); | 
                        | 817 |  | <a name="l01164"></a>01164                 <span class="keywordflow">if</span> ( <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 2 ) ) <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 2 ) = L.<a class="code" href="classbdm_1_1logger.html#a47aa3b098a81d02a8ffaea2c9fa09ac7" title="returns an identifier which will be later needed for calling the logit() function...">add</a> ( r, name + <span class="stringliteral">"ub_"</span> ); | 
                        | 818 |  | <a name="l01165"></a>01165                 <span class="keywordflow">if</span> ( <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 3 ) ) <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 3 ) = L.<a class="code" href="classbdm_1_1logger.html#a47aa3b098a81d02a8ffaea2c9fa09ac7" title="returns an identifier which will be later needed for calling the logit() function...">add</a> ( <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> ( <span class="stringliteral">"ll"</span>, 1 ), name );    <span class="comment">//TODO: "local" RV</span> | 
                        | 819 |  | <a name="l01166"></a>01166         } | 
                        | 820 |  | <a name="l01167"></a>01167         <span class="keyword">virtual</span> <span class="keywordtype">void</span> logit ( <a class="code" href="classbdm_1_1logger.html" title="Class for storing results (and semi-results) of an experiment.">logger</a> &L ) { | 
                        | 821 |  | <a name="l01168"></a>01168                 L.<a class="code" href="classbdm_1_1logger.html#ae30f695619931b3c372ab280e452d309" title="log this vector">logit</a> ( <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 0 ), posterior().mean() ); | 
                        | 822 |  | <a name="l01169"></a>01169                 <span class="keywordflow">if</span> ( <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 1 ) || <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 2 ) ) {  <span class="comment">//if one of them is off, its LID==-1 and will not be stored</span> | 
                        | 823 |  | <a name="l01170"></a>01170                         vec ub, lb; | 
                        | 824 |  | <a name="l01171"></a>01171                         posterior().<a class="code" href="classbdm_1_1epdf.html#a0a7705e80601957f7226d333a0a6d539" title="Lower and upper bounds of percentage % quantile, returns mean-2*sigma as default...">qbounds</a> ( lb, ub ); | 
                        | 825 |  | <a name="l01172"></a>01172                         L.<a class="code" href="classbdm_1_1logger.html#ae30f695619931b3c372ab280e452d309" title="log this vector">logit</a> ( <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 1 ), lb ); | 
                        | 826 |  | <a name="l01173"></a>01173                         L.<a class="code" href="classbdm_1_1logger.html#ae30f695619931b3c372ab280e452d309" title="log this vector">logit</a> ( <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 2 ), ub ); | 
                        | 827 |  | <a name="l01174"></a>01174                 } | 
                        | 828 |  | <a name="l01175"></a>01175                 <span class="keywordflow">if</span> ( <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 3 ) ) L.<a class="code" href="classbdm_1_1logger.html#ae30f695619931b3c372ab280e452d309" title="log this vector">logit</a> ( <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 3 ), <a class="code" href="classbdm_1_1BM.html#a4064b6559d962633e4372b12f4cd204a" title="Logarithm of marginalized data likelihood.">ll</a> ); | 
                        | 829 |  | <a name="l01176"></a>01176         } | 
                        | 830 |  | <a name="l01178"></a><a class="code" href="classbdm_1_1BM.html#a23c6a8f71f922023ab08dcb0487a86de">01178</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1BM.html#a23c6a8f71f922023ab08dcb0487a86de" title="This method arrange instance properties according the data stored in the Setting...">from_setting</a> ( <span class="keyword">const</span> Setting &<span class="keyword">set</span> ) { | 
                        | 831 |  | <a name="l01179"></a>01179                 <a class="code" href="classbdm_1_1shared__ptr.html" title="A naive implementation of roughly a subset of the std::tr1::shared_ptr spec.">shared_ptr<RV></a> r = UI::build<RV> ( <span class="keyword">set</span>, <span class="stringliteral">"drv"</span>, UI::optional ); | 
                        | 832 |  | <a name="l01180"></a>01180                 <span class="keywordflow">if</span> ( r ) { | 
                        | 833 |  | <a name="l01181"></a>01181                         set_drv ( *r ); | 
                        | 834 |  | <a name="l01182"></a>01182                 } | 
                        | 835 |  | <a name="l01183"></a>01183                 <span class="keywordtype">string</span> opt; | 
                        | 836 |  | <a name="l01184"></a>01184                 <span class="keywordflow">if</span> ( !<a class="code" href="classbdm_1_1UI.html#acd1667e6fec99ec64dabcb3ca2ff922d">UI::get</a> ( opt, <span class="keyword">set</span>, <span class="stringliteral">"options"</span>, UI::optional ) ) { | 
                        | 837 |  | <a name="l01185"></a>01185                         <a class="code" href="classbdm_1_1BM.html#aadb539fa2585c8a2a91c54e5aebf330e" title="Set boolean options from a string, recognized are: &quot;logbounds,logll&quot;.">set_options</a> ( opt ); | 
                        | 838 |  | <a name="l01186"></a>01186                 } | 
                        | 839 |  | <a name="l01187"></a>01187         } | 
                        | 840 |  | <a name="l01188"></a>01188 | 
                        | 841 |  | <a name="l01189"></a>01189 }; | 
                        | 842 |  | <a name="l01190"></a>01190 | 
                        | 843 |  | <a name="l01191"></a>01191 <span class="keyword">typedef</span> Array<shared_ptr<epdf> > epdf_array; | 
                        | 844 |  | <a name="l01192"></a>01192 | 
                        | 845 |  | <a name="l01193"></a>01193 <span class="keyword">typedef</span> Array<shared_ptr<mpdf> > mpdf_array; | 
                        | 846 |  | <a name="l01194"></a>01194 | 
                        | 847 |  | <a name="l01195"></a>01195 <span class="keyword">template</span><<span class="keyword">class</span> EPDF> | 
                        | 848 |  | <a name="l01196"></a><a class="code" href="classbdm_1_1mpdf__internal.html#ad8e547695d1cc19219b91164d825c930">01196</a> vec <a class="code" href="classbdm_1_1mpdf__internal.html#ad8e547695d1cc19219b91164d825c930" title="Reimplements samplecond using condition().">mpdf_internal<EPDF>::samplecond</a> ( <span class="keyword">const</span> vec &cond ) { | 
                        | 849 |  | <a name="l01197"></a>01197         <a class="code" href="classbdm_1_1mpdf__internal.html#a1ac61da081667fc54bcd050cc4f6a93e" title="Update iepdf so that it represents this mpdf conditioned on rvc = cond This function...">condition</a> ( cond ); | 
                        | 850 |  | <a name="l01198"></a>01198         vec temp = <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a>.sample(); | 
                        | 851 |  | <a name="l01199"></a>01199         <span class="keywordflow">return</span> temp; | 
                        | 852 |  | <a name="l01200"></a>01200 } | 
                        | 853 |  | <a name="l01201"></a>01201 | 
                        | 854 |  | <a name="l01202"></a>01202 <span class="keyword">template</span><<span class="keyword">class</span> EPDF> | 
                        | 855 |  | <a name="l01203"></a><a class="code" href="classbdm_1_1mpdf__internal.html#a9554c554054da2d22cb8e908ae9c8823">01203</a> mat <a class="code" href="classbdm_1_1mpdf__internal.html#a9554c554054da2d22cb8e908ae9c8823" title="Efficient version of samplecond.">mpdf_internal<EPDF>::samplecond_m</a> ( <span class="keyword">const</span> vec &cond, <span class="keywordtype">int</span> N ) { | 
                        | 856 |  | <a name="l01204"></a>01204         <a class="code" href="classbdm_1_1mpdf__internal.html#a1ac61da081667fc54bcd050cc4f6a93e" title="Update iepdf so that it represents this mpdf conditioned on rvc = cond This function...">condition</a> ( cond ); | 
                        | 857 |  | <a name="l01205"></a>01205         mat temp ( dimension(), N ); | 
                        | 858 |  | <a name="l01206"></a>01206         vec smp ( dimension() ); | 
                        | 859 |  | <a name="l01207"></a>01207         <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i < N; i++ ) { | 
                        | 860 |  | <a name="l01208"></a>01208                 smp = <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a>.sample(); | 
                        | 861 |  | <a name="l01209"></a>01209                 temp.set_col ( i, smp ); | 
                        | 862 |  | <a name="l01210"></a>01210         } | 
                        | 863 |  | <a name="l01211"></a>01211 | 
                        | 864 |  | <a name="l01212"></a>01212         <span class="keywordflow">return</span> temp; | 
                        | 865 |  | <a name="l01213"></a>01213 } | 
                      
                        |  | 791 | <a name="l01132"></a>01132 | 
                        |  | 792 | <a name="l01135"></a>01135 | 
                        |  | 793 | <a name="l01136"></a>01136         <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a>& _drv()<span class="keyword"> const </span>{ | 
                        |  | 794 | <a name="l01137"></a>01137                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1BM.html#ac400357e37d27a4834b2b1d9211009ed" title="Random variable of the data (optional).">drv</a>; | 
                        |  | 795 | <a name="l01138"></a>01138         } | 
                        |  | 796 | <a name="l01139"></a>01139         <span class="keywordtype">void</span> set_drv ( <span class="keyword">const</span> RV &rv ) { | 
                        |  | 797 | <a name="l01140"></a>01140                 <a class="code" href="classbdm_1_1BM.html#ac400357e37d27a4834b2b1d9211009ed" title="Random variable of the data (optional).">drv</a> = rv; | 
                        |  | 798 | <a name="l01141"></a>01141         } | 
                        |  | 799 | <a name="l01142"></a>01142         <span class="keywordtype">void</span> set_rv ( <span class="keyword">const</span> RV &rv ) { | 
                        |  | 800 | <a name="l01143"></a>01143                 <span class="keyword">const_cast<</span>epdf&<span class="keyword">></span> ( posterior() ).set_rv ( rv ); | 
                        |  | 801 | <a name="l01144"></a>01144         } | 
                        |  | 802 | <a name="l01145"></a>01145         <span class="keywordtype">double</span> _ll()<span class="keyword"> const </span>{ | 
                        |  | 803 | <a name="l01146"></a>01146                 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1BM.html#a4064b6559d962633e4372b12f4cd204a" title="Logarithm of marginalized data likelihood.">ll</a>; | 
                        |  | 804 | <a name="l01147"></a>01147         } | 
                        |  | 805 | <a name="l01148"></a>01148         <span class="keywordtype">void</span> set_evalll ( <span class="keywordtype">bool</span> evl0 ) { | 
                        |  | 806 | <a name="l01149"></a>01149                 <a class="code" href="classbdm_1_1BM.html#afaff0ad12556fe7dc0e2807d4fd938ee" title="If true, the filter will compute likelihood of the data record and store it in ll...">evalll</a> = evl0; | 
                        |  | 807 | <a name="l01150"></a>01150         } | 
                        |  | 808 | <a name="l01151"></a>01151         <span class="keyword">virtual</span> <span class="keyword">const</span> epdf& posterior() <span class="keyword">const</span> = 0; | 
                        |  | 809 | <a name="l01153"></a>01153 | 
                        |  | 810 | <a name="l01156"></a>01156 | 
                        |  | 811 | <a name="l01158"></a><a class="code" href="classbdm_1_1BM.html#aadb539fa2585c8a2a91c54e5aebf330e">01158</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1BM.html#aadb539fa2585c8a2a91c54e5aebf330e" title="Set boolean options from a string, recognized are: &quot;logbounds,logll&quot;.">set_options</a> ( <span class="keyword">const</span> <span class="keywordtype">string</span> &opt ) { | 
                        |  | 812 | <a name="l01159"></a>01159                 <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 0 ) = 1; | 
                        |  | 813 | <a name="l01160"></a>01160                 <span class="keywordflow">if</span> ( opt.find ( <span class="stringliteral">"logbounds"</span> ) != string::npos ) { | 
                        |  | 814 | <a name="l01161"></a>01161                         <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 1 ) = 1; | 
                        |  | 815 | <a name="l01162"></a>01162                         <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 2 ) = 1; | 
                        |  | 816 | <a name="l01163"></a>01163                 } | 
                        |  | 817 | <a name="l01164"></a>01164                 <span class="keywordflow">if</span> ( opt.find ( <span class="stringliteral">"logll"</span> ) != string::npos ) { | 
                        |  | 818 | <a name="l01165"></a>01165                         <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 3 ) = 1; | 
                        |  | 819 | <a name="l01166"></a>01166                 } | 
                        |  | 820 | <a name="l01167"></a>01167         } | 
                        |  | 821 | <a name="l01169"></a><a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca">01169</a>         ivec <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a>; | 
                        |  | 822 | <a name="l01170"></a>01170 | 
                        |  | 823 | <a name="l01172"></a><a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207">01172</a>         ivec <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a>; | 
                        |  | 824 | <a name="l01174"></a><a class="code" href="classbdm_1_1BM.html#a2298ca6af9b13a78a4c9e18ab43f1827">01174</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1BM.html#a2298ca6af9b13a78a4c9e18ab43f1827" title="Add all logged variables to a logger.">log_add</a> ( <a class="code" href="classbdm_1_1logger.html" title="Class for storing results (and semi-results) of an experiment.">logger</a> &L, <span class="keyword">const</span> <span class="keywordtype">string</span> &name = <span class="stringliteral">""</span> ) { | 
                        |  | 825 | <a name="l01175"></a>01175                 <span class="comment">// internal</span> | 
                        |  | 826 | <a name="l01176"></a>01176                 <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> r; | 
                        |  | 827 | <a name="l01177"></a>01177                 <span class="keywordflow">if</span> ( posterior().isnamed() ) { | 
                        |  | 828 | <a name="l01178"></a>01178                         r = posterior().<a class="code" href="classbdm_1_1epdf.html#aa4ab378d5e004c3ff3e2d4e64f7bba21" title="Return name (fails when isnamed is false).">_rv</a>(); | 
                        |  | 829 | <a name="l01179"></a>01179                 } <span class="keywordflow">else</span> { | 
                        |  | 830 | <a name="l01180"></a>01180                         r = <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> ( <span class="stringliteral">"est"</span>, posterior().dimension() ); | 
                        |  | 831 | <a name="l01181"></a>01181                 }; | 
                        |  | 832 | <a name="l01182"></a>01182 | 
                        |  | 833 | <a name="l01183"></a>01183                 <span class="comment">// Add mean value</span> | 
                        |  | 834 | <a name="l01184"></a>01184                 <span class="keywordflow">if</span> ( <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 0 ) ) <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 0 ) = L.<a class="code" href="classbdm_1_1logger.html#a47aa3b098a81d02a8ffaea2c9fa09ac7" title="returns an identifier which will be later needed for calling the logit() function...">add</a> ( r, name + <span class="stringliteral">"mean_"</span> ); | 
                        |  | 835 | <a name="l01185"></a>01185                 <span class="keywordflow">if</span> ( <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 1 ) ) <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 1 ) = L.<a class="code" href="classbdm_1_1logger.html#a47aa3b098a81d02a8ffaea2c9fa09ac7" title="returns an identifier which will be later needed for calling the logit() function...">add</a> ( r, name + <span class="stringliteral">"lb_"</span> ); | 
                        |  | 836 | <a name="l01186"></a>01186                 <span class="keywordflow">if</span> ( <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 2 ) ) <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 2 ) = L.<a class="code" href="classbdm_1_1logger.html#a47aa3b098a81d02a8ffaea2c9fa09ac7" title="returns an identifier which will be later needed for calling the logit() function...">add</a> ( r, name + <span class="stringliteral">"ub_"</span> ); | 
                        |  | 837 | <a name="l01187"></a>01187                 <span class="keywordflow">if</span> ( <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 3 ) ) <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 3 ) = L.<a class="code" href="classbdm_1_1logger.html#a47aa3b098a81d02a8ffaea2c9fa09ac7" title="returns an identifier which will be later needed for calling the logit() function...">add</a> ( <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> ( <span class="stringliteral">"ll"</span>, 1 ), name );    <span class="comment">//TODO: "local" RV</span> | 
                        |  | 838 | <a name="l01188"></a>01188         } | 
                        |  | 839 | <a name="l01189"></a>01189         <span class="keyword">virtual</span> <span class="keywordtype">void</span> logit ( <a class="code" href="classbdm_1_1logger.html" title="Class for storing results (and semi-results) of an experiment.">logger</a> &L ) { | 
                        |  | 840 | <a name="l01190"></a>01190                 L.<a class="code" href="classbdm_1_1logger.html#ae30f695619931b3c372ab280e452d309" title="log this vector">logit</a> ( <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 0 ), posterior().mean() ); | 
                        |  | 841 | <a name="l01191"></a>01191                 <span class="keywordflow">if</span> ( <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 1 ) || <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 2 ) ) {  <span class="comment">//if one of them is off, its LID==-1 and will not be stored</span> | 
                        |  | 842 | <a name="l01192"></a>01192                         vec ub, lb; | 
                        |  | 843 | <a name="l01193"></a>01193                         posterior().<a class="code" href="classbdm_1_1epdf.html#a0a7705e80601957f7226d333a0a6d539" title="Lower and upper bounds of percentage % quantile, returns mean-2*sigma as default...">qbounds</a> ( lb, ub ); | 
                        |  | 844 | <a name="l01194"></a>01194                         L.<a class="code" href="classbdm_1_1logger.html#ae30f695619931b3c372ab280e452d309" title="log this vector">logit</a> ( <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 1 ), lb ); | 
                        |  | 845 | <a name="l01195"></a>01195                         L.<a class="code" href="classbdm_1_1logger.html#ae30f695619931b3c372ab280e452d309" title="log this vector">logit</a> ( <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 2 ), ub ); | 
                        |  | 846 | <a name="l01196"></a>01196                 } | 
                        |  | 847 | <a name="l01197"></a>01197                 <span class="keywordflow">if</span> ( <a class="code" href="classbdm_1_1BM.html#a398b7e7a162cf37d0022d6126495f207" title="Flags for logging - same size as LIDs, each entry correspond to the same in LIDs...">LFlags</a> ( 3 ) ) L.<a class="code" href="classbdm_1_1logger.html#ae30f695619931b3c372ab280e452d309" title="log this vector">logit</a> ( <a class="code" href="classbdm_1_1BM.html#a109c1a626a69031658e3a44e9e500cca" title="IDs of storages in loggers 4:[1=mean,2=lb,3=ub,4=ll].">LIDs</a> ( 3 ), <a class="code" href="classbdm_1_1BM.html#a4064b6559d962633e4372b12f4cd204a" title="Logarithm of marginalized data likelihood.">ll</a> ); | 
                        |  | 848 | <a name="l01198"></a>01198         } | 
                        |  | 849 | <a name="l01200"></a><a class="code" href="classbdm_1_1BM.html#a23c6a8f71f922023ab08dcb0487a86de">01200</a>         <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1BM.html#a23c6a8f71f922023ab08dcb0487a86de" title="This method arrange instance properties according the data stored in the Setting...">from_setting</a> ( <span class="keyword">const</span> Setting &<span class="keyword">set</span> ) { | 
                        |  | 850 | <a name="l01201"></a>01201                 <a class="code" href="classbdm_1_1shared__ptr.html" title="A naive implementation of roughly a subset of the std::tr1::shared_ptr spec.">shared_ptr<RV></a> r = UI::build<RV> ( <span class="keyword">set</span>, <span class="stringliteral">"drv"</span>, UI::optional ); | 
                        |  | 851 | <a name="l01202"></a>01202                 <span class="keywordflow">if</span> ( r ) { | 
                        |  | 852 | <a name="l01203"></a>01203                         set_drv ( *r ); | 
                        |  | 853 | <a name="l01204"></a>01204                 } | 
                        |  | 854 | <a name="l01205"></a>01205                 <span class="keywordtype">string</span> opt; | 
                        |  | 855 | <a name="l01206"></a>01206                 <span class="keywordflow">if</span> ( !<a class="code" href="classbdm_1_1UI.html#acd1667e6fec99ec64dabcb3ca2ff922d">UI::get</a> ( opt, <span class="keyword">set</span>, <span class="stringliteral">"options"</span>, UI::optional ) ) { | 
                        |  | 856 | <a name="l01207"></a>01207                         <a class="code" href="classbdm_1_1BM.html#aadb539fa2585c8a2a91c54e5aebf330e" title="Set boolean options from a string, recognized are: &quot;logbounds,logll&quot;.">set_options</a> ( opt ); | 
                        |  | 857 | <a name="l01208"></a>01208                 } | 
                        |  | 858 | <a name="l01209"></a>01209         } | 
                        |  | 859 | <a name="l01210"></a>01210 | 
                        |  | 860 | <a name="l01211"></a>01211 }; | 
                        |  | 861 | <a name="l01212"></a>01212 | 
                        |  | 862 | <a name="l01213"></a>01213 <span class="keyword">typedef</span> Array<shared_ptr<epdf> > epdf_array; | 
            
                      
                        | 867 |  | <a name="l01215"></a>01215 <span class="keyword">template</span><<span class="keyword">class</span> EPDF> | 
                        | 868 |  | <a name="l01216"></a><a class="code" href="classbdm_1_1mpdf__internal.html#a89076e62b8d7df7616bad68c94591948">01216</a> <span class="keywordtype">double</span> <a class="code" href="classbdm_1_1mpdf__internal.html#a89076e62b8d7df7616bad68c94591948" title="Reimplements evallogcond using condition().">mpdf_internal<EPDF>::evallogcond</a> ( <span class="keyword">const</span> vec &dt, <span class="keyword">const</span> vec &cond ) { | 
                        | 869 |  | <a name="l01217"></a>01217         <span class="keywordtype">double</span> tmp; | 
                        | 870 |  | <a name="l01218"></a>01218         <a class="code" href="classbdm_1_1mpdf__internal.html#a1ac61da081667fc54bcd050cc4f6a93e" title="Update iepdf so that it represents this mpdf conditioned on rvc = cond This function...">condition</a> ( cond ); | 
                        | 871 |  | <a name="l01219"></a>01219         tmp = <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a>.evallog ( dt ); | 
                        | 872 |  | <a name="l01220"></a>01220         <span class="keywordflow">return</span> tmp; | 
                        | 873 |  | <a name="l01221"></a>01221 } | 
                        | 874 |  | <a name="l01222"></a>01222 | 
                        | 875 |  | <a name="l01223"></a>01223 <span class="keyword">template</span><<span class="keyword">class</span> EPDF> | 
                        | 876 |  | <a name="l01224"></a><a class="code" href="classbdm_1_1mpdf__internal.html#ae28c214e3063733a6e4d17738941c61c">01224</a> vec <a class="code" href="classbdm_1_1mpdf__internal.html#ae28c214e3063733a6e4d17738941c61c" title="Efficient version of evallogcond for matrices.">mpdf_internal<EPDF>::evallogcond_m</a> ( <span class="keyword">const</span> mat &Dt, <span class="keyword">const</span> vec &cond ) { | 
                        | 877 |  | <a name="l01225"></a>01225         <a class="code" href="classbdm_1_1mpdf__internal.html#a1ac61da081667fc54bcd050cc4f6a93e" title="Update iepdf so that it represents this mpdf conditioned on rvc = cond This function...">condition</a> ( cond ); | 
                        | 878 |  | <a name="l01226"></a>01226         <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a>.evallog_m ( Dt ); | 
                        | 879 |  | <a name="l01227"></a>01227 } | 
                        | 880 |  | <a name="l01228"></a>01228 | 
                        | 881 |  | <a name="l01229"></a>01229 <span class="keyword">template</span><<span class="keyword">class</span> EPDF> | 
                        | 882 |  | <a name="l01230"></a><a class="code" href="classbdm_1_1mpdf__internal.html#ae82db07ce8af02f29cfd81e014edb3db">01230</a> vec <a class="code" href="classbdm_1_1mpdf__internal.html#ae28c214e3063733a6e4d17738941c61c" title="Efficient version of evallogcond for matrices.">mpdf_internal<EPDF>::evallogcond_m</a> ( <span class="keyword">const</span> Array<vec> &Dt, <span class="keyword">const</span> vec &cond ) { | 
                        | 883 |  | <a name="l01231"></a>01231         <a class="code" href="classbdm_1_1mpdf__internal.html#a1ac61da081667fc54bcd050cc4f6a93e" title="Update iepdf so that it represents this mpdf conditioned on rvc = cond This function...">condition</a> ( cond ); | 
                        | 884 |  | <a name="l01232"></a>01232         <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a>.evallog_m ( Dt ); | 
                        | 885 |  | <a name="l01233"></a>01233 } | 
                        | 886 |  | <a name="l01234"></a>01234 | 
                        | 887 |  | <a name="l01235"></a>01235 }; <span class="comment">//namespace</span> | 
                        | 888 |  | <a name="l01236"></a>01236 <span class="preprocessor">#endif // BDMBASE_H</span> | 
                      
                        |  | 864 | <a name="l01215"></a>01215 <span class="keyword">typedef</span> Array<shared_ptr<mpdf> > mpdf_array; | 
                        |  | 865 | <a name="l01216"></a>01216 | 
                        |  | 866 | <a name="l01217"></a>01217 <span class="keyword">template</span><<span class="keyword">class</span> EPDF> | 
                        |  | 867 | <a name="l01218"></a><a class="code" href="classbdm_1_1mpdf__internal.html#ad8e547695d1cc19219b91164d825c930">01218</a> vec <a class="code" href="classbdm_1_1mpdf__internal.html#ad8e547695d1cc19219b91164d825c930" title="Reimplements samplecond using condition().">mpdf_internal<EPDF>::samplecond</a> ( <span class="keyword">const</span> vec &cond ) { | 
                        |  | 868 | <a name="l01219"></a>01219         <a class="code" href="classbdm_1_1mpdf__internal.html#a1ac61da081667fc54bcd050cc4f6a93e" title="Update iepdf so that it represents this mpdf conditioned on rvc = cond This function...">condition</a> ( cond ); | 
                        |  | 869 | <a name="l01220"></a>01220         vec temp = <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a>.sample(); | 
                        |  | 870 | <a name="l01221"></a>01221         <span class="keywordflow">return</span> temp; | 
                        |  | 871 | <a name="l01222"></a>01222 } | 
                        |  | 872 | <a name="l01223"></a>01223 | 
                        |  | 873 | <a name="l01224"></a>01224 <span class="keyword">template</span><<span class="keyword">class</span> EPDF> | 
                        |  | 874 | <a name="l01225"></a><a class="code" href="classbdm_1_1mpdf__internal.html#a9554c554054da2d22cb8e908ae9c8823">01225</a> mat <a class="code" href="classbdm_1_1mpdf__internal.html#a9554c554054da2d22cb8e908ae9c8823" title="Efficient version of samplecond.">mpdf_internal<EPDF>::samplecond_m</a> ( <span class="keyword">const</span> vec &cond, <span class="keywordtype">int</span> N ) { | 
                        |  | 875 | <a name="l01226"></a>01226         <a class="code" href="classbdm_1_1mpdf__internal.html#a1ac61da081667fc54bcd050cc4f6a93e" title="Update iepdf so that it represents this mpdf conditioned on rvc = cond This function...">condition</a> ( cond ); | 
                        |  | 876 | <a name="l01227"></a>01227         mat temp ( dimension(), N ); | 
                        |  | 877 | <a name="l01228"></a>01228         vec smp ( dimension() ); | 
                        |  | 878 | <a name="l01229"></a>01229         <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i < N; i++ ) { | 
                        |  | 879 | <a name="l01230"></a>01230                 smp = <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a>.sample(); | 
                        |  | 880 | <a name="l01231"></a>01231                 temp.set_col ( i, smp ); | 
                        |  | 881 | <a name="l01232"></a>01232         } | 
                        |  | 882 | <a name="l01233"></a>01233 | 
                        |  | 883 | <a name="l01234"></a>01234         <span class="keywordflow">return</span> temp; | 
                        |  | 884 | <a name="l01235"></a>01235 } | 
                        |  | 885 | <a name="l01236"></a>01236 | 
                        |  | 886 | <a name="l01237"></a>01237 <span class="keyword">template</span><<span class="keyword">class</span> EPDF> | 
                        |  | 887 | <a name="l01238"></a><a class="code" href="classbdm_1_1mpdf__internal.html#a89076e62b8d7df7616bad68c94591948">01238</a> <span class="keywordtype">double</span> <a class="code" href="classbdm_1_1mpdf__internal.html#a89076e62b8d7df7616bad68c94591948" title="Reimplements evallogcond using condition().">mpdf_internal<EPDF>::evallogcond</a> ( <span class="keyword">const</span> vec &dt, <span class="keyword">const</span> vec &cond ) { | 
                        |  | 888 | <a name="l01239"></a>01239         <span class="keywordtype">double</span> tmp; | 
                        |  | 889 | <a name="l01240"></a>01240         <a class="code" href="classbdm_1_1mpdf__internal.html#a1ac61da081667fc54bcd050cc4f6a93e" title="Update iepdf so that it represents this mpdf conditioned on rvc = cond This function...">condition</a> ( cond ); | 
                        |  | 890 | <a name="l01241"></a>01241         tmp = <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a>.evallog ( dt ); | 
                        |  | 891 | <a name="l01242"></a>01242         <span class="keywordflow">return</span> tmp; | 
                        |  | 892 | <a name="l01243"></a>01243 } | 
                        |  | 893 | <a name="l01244"></a>01244 | 
                        |  | 894 | <a name="l01245"></a>01245 <span class="keyword">template</span><<span class="keyword">class</span> EPDF> | 
                        |  | 895 | <a name="l01246"></a><a class="code" href="classbdm_1_1mpdf__internal.html#ae28c214e3063733a6e4d17738941c61c">01246</a> vec <a class="code" href="classbdm_1_1mpdf__internal.html#ae28c214e3063733a6e4d17738941c61c" title="Efficient version of evallogcond for matrices.">mpdf_internal<EPDF>::evallogcond_m</a> ( <span class="keyword">const</span> mat &Dt, <span class="keyword">const</span> vec &cond ) { | 
                        |  | 896 | <a name="l01247"></a>01247         <a class="code" href="classbdm_1_1mpdf__internal.html#a1ac61da081667fc54bcd050cc4f6a93e" title="Update iepdf so that it represents this mpdf conditioned on rvc = cond This function...">condition</a> ( cond ); | 
                        |  | 897 | <a name="l01248"></a>01248         <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a>.evallog_m ( Dt ); | 
                        |  | 898 | <a name="l01249"></a>01249 } | 
                        |  | 899 | <a name="l01250"></a>01250 | 
                        |  | 900 | <a name="l01251"></a>01251 <span class="keyword">template</span><<span class="keyword">class</span> EPDF> | 
                        |  | 901 | <a name="l01252"></a><a class="code" href="classbdm_1_1mpdf__internal.html#ae82db07ce8af02f29cfd81e014edb3db">01252</a> vec <a class="code" href="classbdm_1_1mpdf__internal.html#ae28c214e3063733a6e4d17738941c61c" title="Efficient version of evallogcond for matrices.">mpdf_internal<EPDF>::evallogcond_m</a> ( <span class="keyword">const</span> Array<vec> &Dt, <span class="keyword">const</span> vec &cond ) { | 
                        |  | 902 | <a name="l01253"></a>01253         <a class="code" href="classbdm_1_1mpdf__internal.html#a1ac61da081667fc54bcd050cc4f6a93e" title="Update iepdf so that it represents this mpdf conditioned on rvc = cond This function...">condition</a> ( cond ); | 
                        |  | 903 | <a name="l01254"></a>01254         <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1mpdf__internal.html#a47bab632af15120c88aad647ae129468" title="Internal epdf used for sampling.">iepdf</a>.evallog_m ( Dt ); | 
                        |  | 904 | <a name="l01255"></a>01255 } | 
                        |  | 905 | <a name="l01256"></a>01256 | 
                        |  | 906 | <a name="l01257"></a>01257 }; <span class="comment">//namespace</span> | 
                        |  | 907 | <a name="l01258"></a>01258 <span class="preprocessor">#endif // BDMBASE_H</span> |