| 84 | | <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="578e02458e2a0d17f3864826b6ebd564"></a><!-- doxytag: member="bdm::mgnorm::set_parameters" ref="578e02458e2a0d17f3864826b6ebd564" args="(fnc *g0, const sq_T &R0)" --> |
| 85 | | void </td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1mgnorm.html#578e02458e2a0d17f3864826b6ebd564">set_parameters</a> (<a class="el" href="classbdm_1_1fnc.html">fnc</a> *g0, const sq_T &R0)</td></tr> |
| | 84 | <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b736332d20e418bf50d45836e129f339"></a><!-- doxytag: member="bdm::mgnorm::set_parameters" ref="b736332d20e418bf50d45836e129f339" args="(const shared_ptr< fnc > &g0, const sq_T &R0)" --> |
| | 85 | void </td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1mgnorm.html#b736332d20e418bf50d45836e129f339">set_parameters</a> (const <a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr</a>< <a class="el" href="classbdm_1_1fnc.html">fnc</a> > &g0, const sq_T &R0)</td></tr> |
| | 92 | <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6b4d1cb8d7e230e313b4f0c905874d5a"></a><!-- doxytag: member="bdm::mgnorm::e" ref="6b4d1cb8d7e230e313b4f0c905874d5a" args="()" --> |
| | 93 | <a class="el" href="classbdm_1_1enorm.html">enorm</a>< sq_T > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1mpdf__internal.html#6b4d1cb8d7e230e313b4f0c905874d5a">e</a> ()</td></tr> |
| | 94 | |
| | 95 | <tr><td class="mdescLeft"> </td><td class="mdescRight">access function to iepdf <br></td></tr> |
| | 96 | <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d8e547695d1cc19219b91164d825c930"></a><!-- doxytag: member="bdm::mgnorm::samplecond" ref="d8e547695d1cc19219b91164d825c930" args="(const vec &cond)" --> |
| | 97 | vec </td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1mpdf__internal.html#d8e547695d1cc19219b91164d825c930">samplecond</a> (const vec &cond)</td></tr> |
| | 98 | |
| | 99 | <tr><td class="mdescLeft"> </td><td class="mdescRight">Reimplements samplecond using <code>condition()</code>. <br></td></tr> |
| | 100 | <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="89076e62b8d7df7616bad68c94591948"></a><!-- doxytag: member="bdm::mgnorm::evallogcond" ref="89076e62b8d7df7616bad68c94591948" args="(const vec &val, const vec &cond)" --> |
| | 101 | double </td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1mpdf__internal.html#89076e62b8d7df7616bad68c94591948">evallogcond</a> (const vec &val, const vec &cond)</td></tr> |
| | 102 | |
| | 103 | <tr><td class="mdescLeft"> </td><td class="mdescRight">Reimplements evallogcond using <code>condition()</code>. <br></td></tr> |
| | 104 | <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e28c214e3063733a6e4d17738941c61c"></a><!-- doxytag: member="bdm::mgnorm::evallogcond_m" ref="e28c214e3063733a6e4d17738941c61c" args="(const mat &Dt, const vec &cond)" --> |
| | 105 | virtual vec </td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1mpdf__internal.html#e28c214e3063733a6e4d17738941c61c">evallogcond_m</a> (const mat &Dt, const vec &cond)</td></tr> |
| | 106 | |
| | 107 | <tr><td class="mdescLeft"> </td><td class="mdescRight">Efficient version of evallogcond for matrices. <br></td></tr> |
| | 108 | <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e82db07ce8af02f29cfd81e014edb3db"></a><!-- doxytag: member="bdm::mgnorm::evallogcond_m" ref="e82db07ce8af02f29cfd81e014edb3db" args="(const Array< vec > &Dt, const vec &cond)" --> |
| | 109 | virtual vec </td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1mpdf__internal.html#e82db07ce8af02f29cfd81e014edb3db">evallogcond_m</a> (const Array< vec > &Dt, const vec &cond)</td></tr> |
| | 110 | |
| | 111 | <tr><td class="mdescLeft"> </td><td class="mdescRight">Efficient version of evallogcond for Array<vec>. <br></td></tr> |
| | 112 | <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9554c554054da2d22cb8e908ae9c8823"></a><!-- doxytag: member="bdm::mgnorm::samplecond_m" ref="9554c554054da2d22cb8e908ae9c8823" args="(const vec &cond, int N)" --> |
| | 113 | virtual mat </td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1mpdf__internal.html#9554c554054da2d22cb8e908ae9c8823">samplecond_m</a> (const vec &cond, int N)</td></tr> |
| | 114 | |
| | 115 | <tr><td class="mdescLeft"> </td><td class="mdescRight">Efficient version of samplecond. <br></td></tr> |
| 106 | | <tr><td colspan="2"><div class="groupHeader">Matematical operations</div></td></tr> |
| 107 | | <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual vec </td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1mpdf.html#b024f2e636e5507c755de4a6df1f1e99">samplecond</a> (const vec &cond)</td></tr> |
| 108 | | |
| 109 | | <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a sample from the density conditioned on <code>cond</code>, <img class="formulaInl" alt="$x \sim epdf(rv|cond)$" src="form_11.png">. <a href="#b024f2e636e5507c755de4a6df1f1e99"></a><br></td></tr> |
| 110 | | <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual mat </td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1mpdf.html#6e497d501331057309d2fddf63259d1a">samplecond_m</a> (const vec &cond, int N)</td></tr> |
| 111 | | |
| 112 | | <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns. <a href="#6e497d501331057309d2fddf63259d1a"></a><br></td></tr> |
| 113 | | <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cfcbb897bf42015a7979b17d891fd9b5"></a><!-- doxytag: member="bdm::mgnorm::evallogcond" ref="cfcbb897bf42015a7979b17d891fd9b5" args="(const vec &dt, const vec &cond)" --> |
| 114 | | virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1mpdf.html#cfcbb897bf42015a7979b17d891fd9b5">evallogcond</a> (const vec &dt, const vec &cond)</td></tr> |
| 115 | | |
| 116 | | <tr><td class="mdescLeft"> </td><td class="mdescRight">Shortcut for conditioning and evaluation of the internal <a class="el" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a>. In some cases, this operation can be implemented efficiently. <br></td></tr> |
| 117 | | <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f97c61ecfb1f44ef6f08dee7bc15eab3"></a><!-- doxytag: member="bdm::mgnorm::evallogcond_m" ref="f97c61ecfb1f44ef6f08dee7bc15eab3" args="(const mat &Dt, const vec &cond)" --> |
| 118 | | virtual vec </td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1mpdf.html#f97c61ecfb1f44ef6f08dee7bc15eab3">evallogcond_m</a> (const mat &Dt, const vec &cond)</td></tr> |
| 119 | | |
| 120 | | <tr><td class="mdescLeft"> </td><td class="mdescRight">Matrix version of evallogcond. <br></td></tr> |
| 121 | | <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2d7d3c23e3273e97c12c396dcc06b606"></a><!-- doxytag: member="bdm::mgnorm::evallogcond_m" ref="2d7d3c23e3273e97c12c396dcc06b606" args="(const Array< vec > &Dt, const vec &cond)" --> |
| 122 | | virtual vec </td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1mpdf.html#2d7d3c23e3273e97c12c396dcc06b606">evallogcond_m</a> (const Array< vec > &Dt, const vec &cond)</td></tr> |
| 123 | | |
| 124 | | <tr><td class="mdescLeft"> </td><td class="mdescRight">Array<vec> version of evallogcond. <br></td></tr> |
| | 151 | <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr> |
| | 152 | <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="147afacb393324bb3f9a7a89e33f835e"></a><!-- doxytag: member="bdm::mgnorm::set_ep" ref="147afacb393324bb3f9a7a89e33f835e" args="(epdf &iepdf)" --> |
| | 153 | void </td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1mpdf.html#147afacb393324bb3f9a7a89e33f835e">set_ep</a> (<a class="el" href="classbdm_1_1epdf.html">epdf</a> &<a class="el" href="classbdm_1_1mpdf__internal.html#47bab632af15120c88aad647ae129468">iepdf</a>)</td></tr> |
| | 154 | |
| | 155 | <tr><td class="mdescLeft"> </td><td class="mdescRight">set internal pointer <code>ep</code> to point to given <code>iepdf</code> <br></td></tr> |
| | 156 | <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7555b377f8b5895c9b759c9628ee3e20"></a><!-- doxytag: member="bdm::mgnorm::set_ep" ref="7555b377f8b5895c9b759c9628ee3e20" args="(epdf *iepdfp)" --> |
| | 157 | void </td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1mpdf.html#7555b377f8b5895c9b759c9628ee3e20">set_ep</a> (<a class="el" href="classbdm_1_1epdf.html">epdf</a> *iepdfp)</td></tr> |
| | 158 | |
| | 159 | <tr><td class="mdescLeft"> </td><td class="mdescRight">set internal pointer <code>ep</code> to point to given <code>iepdf</code> <br></td></tr> |
| 155 | | <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e63ba612a75f761c03025d22463219cb"></a><!-- doxytag: member="bdm::mgnorm::iepdf" ref="e63ba612a75f761c03025d22463219cb" args="" --> |
| 156 | | <a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr</a>< <a class="el" href="classbdm_1_1enorm.html">enorm</a>< sq_T > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1mgnorm.html#e63ba612a75f761c03025d22463219cb">iepdf</a></td></tr> |
| 157 | | |
| 158 | | <tr><td class="mdescLeft"> </td><td class="mdescRight">Internal <a class="el" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a> that arise by conditioning on <code>rvc</code>. <br></td></tr> |
| 159 | | <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6a6350ddc38f2ee7a17cae6eb4312109"></a><!-- doxytag: member="bdm::mgnorm::mu" ref="6a6350ddc38f2ee7a17cae6eb4312109" args="" --> |
| 160 | | vec & </td><td class="memItemRight" valign="bottom"><b>mu</b></td></tr> |
| 161 | | |
| 162 | | <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fc0bb535367400d049f530f402754c33"></a><!-- doxytag: member="bdm::mgnorm::g" ref="fc0bb535367400d049f530f402754c33" args="" --> |
| 163 | | <a class="el" href="classbdm_1_1fnc.html">fnc</a> * </td><td class="memItemRight" valign="bottom"><b>g</b></td></tr> |
| 164 | | |
| | 161 | <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="47bab632af15120c88aad647ae129468"></a><!-- doxytag: member="bdm::mgnorm::iepdf" ref="47bab632af15120c88aad647ae129468" args="" --> |
| | 162 | <a class="el" href="classbdm_1_1enorm.html">enorm</a>< sq_T > </td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1mpdf__internal.html#47bab632af15120c88aad647ae129468">iepdf</a></td></tr> |
| | 163 | |
| | 164 | <tr><td class="mdescLeft"> </td><td class="mdescRight">Internal epdf used for sampling. <br></td></tr> |
| | 179 | <a class="anchor" name="b31d63472cf6a1030cd8dbd8094c1f6d"></a><!-- doxytag: member="bdm::mgnorm::condition" ref="b31d63472cf6a1030cd8dbd8094c1f6d" args="(const vec &cond)" --> |
| | 180 | <div class="memitem"> |
| | 181 | <div class="memproto"> |
| | 182 | <div class="memtemplate"> |
| | 183 | template<class sq_T > </div> |
| | 184 | <table class="memname"> |
| | 185 | <tr> |
| | 186 | <td class="memname">void <a class="el" href="classbdm_1_1mgnorm.html">bdm::mgnorm</a>< sq_T >::condition </td> |
| | 187 | <td>(</td> |
| | 188 | <td class="paramtype">const vec & </td> |
| | 189 | <td class="paramname"> <em>cond</em> </td> |
| | 190 | <td> ) </td> |
| | 191 | <td><code> [inline, virtual]</code></td> |
| | 192 | </tr> |
| | 193 | </table> |
| | 194 | </div> |
| | 195 | <div class="memdoc"> |
| | 196 | |
| | 197 | <p> |
| | 198 | Update <code>iepdf</code> so that it represents this <a class="el" href="classbdm_1_1mpdf.html" title="Conditional probability density, e.g. modeling , where is random variable, rv, and...">mpdf</a> conditioned on <code>rvc</code> = cond This function provides convenient reimplementation in offsprings |
| | 199 | <p>Reimplemented from <a class="el" href="classbdm_1_1mpdf__internal.html#1ac61da081667fc54bcd050cc4f6a93e">bdm::mpdf_internal< enorm< sq_T > ></a>.</p> |
| | 200 | |
| | 201 | <p>References <a class="el" href="bdmbase_8h-source.html#l00495">bdm::mpdf_internal< enorm< sq_T > >::iepdf</a>.</p> |
| | 202 | |
| | 203 | </div> |
| | 204 | </div><p> |
| 199 | | The <a class="el" href="classbdm_1_1mgnorm.html" title="Mpdf with general function for mean value.">mgnorm</a> is constructed from a structure with fields: <div class="fragment"><pre class="fragment"> system = { |
| 200 | | type = <span class="stringliteral">"mgnorm"</span>; |
| 201 | | <span class="comment">// function for mean value evolution</span> |
| 202 | | g = {type=<span class="stringliteral">"fnc"</span>; ... } |
| 203 | | |
| 204 | | <span class="comment">// variance</span> |
| 205 | | R = [1, 0, |
| 206 | | 0, 1]; |
| 207 | | <span class="comment">// --OR --</span> |
| 208 | | dR = [1, 1]; |
| 209 | | |
| 210 | | <span class="comment">// == OPTIONAL ==</span> |
| 211 | | |
| 212 | | <span class="comment">// description of y variables</span> |
| 213 | | y = {type=<span class="stringliteral">"rv"</span>; names=[<span class="stringliteral">"y"</span>, <span class="stringliteral">"u"</span>];}; |
| 214 | | <span class="comment">// description of u variable</span> |
| 215 | | u = {type=<span class="stringliteral">"rv"</span>; names=[];} |
| 216 | | }; |
| | 225 | The <a class="el" href="classbdm_1_1mgnorm.html" title="Mpdf with general function for mean value.">mgnorm</a> is constructed from a structure with fields: <div class="fragment"><pre class="fragment"> system = { |
| | 226 | type = <span class="stringliteral">"mgnorm"</span>; |
| | 227 | <span class="comment">// function for mean value evolution</span> |
| | 228 | g = {type=<span class="stringliteral">"fnc"</span>; ... } |
| | 229 | |
| | 230 | <span class="comment">// variance</span> |
| | 231 | R = [1, 0, |
| | 232 | 0, 1]; |
| | 233 | <span class="comment">// --OR --</span> |
| | 234 | dR = [1, 1]; |
| | 235 | |
| | 236 | <span class="comment">// == OPTIONAL ==</span> |
| | 237 | |
| | 238 | <span class="comment">// description of y variables</span> |
| | 239 | y = {type=<span class="stringliteral">"rv"</span>; names=[<span class="stringliteral">"y"</span>, <span class="stringliteral">"u"</span>];}; |
| | 240 | <span class="comment">// description of u variable</span> |
| | 241 | u = {type=<span class="stringliteral">"rv"</span>; names=[];} |
| | 242 | }; |
| 221 | | <p>References <a class="el" href="user__info_8h_source.html#l00387">bdm::UI::get()</a>, and <a class="el" href="exp__family_8h_source.html#l00592">bdm::mgnorm< sq_T >::set_parameters()</a>.</p> |
| 222 | | |
| 223 | | </div> |
| 224 | | </div><p> |
| 225 | | <a class="anchor" name="b024f2e636e5507c755de4a6df1f1e99"></a><!-- doxytag: member="bdm::mgnorm::samplecond" ref="b024f2e636e5507c755de4a6df1f1e99" args="(const vec &cond)" --> |
| 226 | | <div class="memitem"> |
| 227 | | <div class="memproto"> |
| 228 | | <table class="memname"> |
| 229 | | <tr> |
| 230 | | <td class="memname">vec bdm::mpdf::samplecond </td> |
| 231 | | <td>(</td> |
| 232 | | <td class="paramtype">const vec & </td> |
| 233 | | <td class="paramname"> <em>cond</em> </td> |
| 234 | | <td> ) </td> |
| 235 | | <td><code> [virtual, inherited]</code></td> |
| 236 | | </tr> |
| 237 | | </table> |
| 238 | | </div> |
| 239 | | <div class="memdoc"> |
| 240 | | |
| 241 | | <p> |
| 242 | | Returns a sample from the density conditioned on <code>cond</code>, <img class="formulaInl" alt="$x \sim epdf(rv|cond)$" src="form_11.png">. |
| 243 | | <p> |
| 244 | | <dl compact><dt><b>Parameters:</b></dt><dd> |
| 245 | | <table border="0" cellspacing="2" cellpadding="0"> |
| 246 | | <tr><td valign="top"></td><td valign="top"><em>cond</em> </td><td>is numeric value of <code>rv</code> </td></tr> |
| 247 | | </table> |
| 248 | | </dl> |
| 249 | | |
| 250 | | <p>Reimplemented in <a class="el" href="classbdm_1_1mprod.html#ee715a8013acf9892f6cb489db595555">bdm::mprod</a>.</p> |
| 251 | | |
| 252 | | <p>References <a class="el" href="bdmbase_8h_source.html#l00376">bdm::mpdf::condition()</a>.</p> |
| 253 | | |
| 254 | | <p>Referenced by <a class="el" href="particles_8h_source.html#l00207">bdm::MPF< BM_T >::bayes()</a>, <a class="el" href="particles_8cpp_source.html#l00007">bdm::PF::bayes()</a>, and <a class="el" href="datasources_8cpp_source.html#l00043">bdm::ArxDS::step()</a>.</p> |
| 255 | | |
| 256 | | </div> |
| 257 | | </div><p> |
| 258 | | <a class="anchor" name="6e497d501331057309d2fddf63259d1a"></a><!-- doxytag: member="bdm::mgnorm::samplecond_m" ref="6e497d501331057309d2fddf63259d1a" args="(const vec &cond, int N)" --> |
| 259 | | <div class="memitem"> |
| 260 | | <div class="memproto"> |
| 261 | | <table class="memname"> |
| 262 | | <tr> |
| 263 | | <td class="memname">mat bdm::mpdf::samplecond_m </td> |
| 264 | | <td>(</td> |
| 265 | | <td class="paramtype">const vec & </td> |
| 266 | | <td class="paramname"> <em>cond</em>, </td> |
| 267 | | </tr> |
| 268 | | <tr> |
| 269 | | <td class="paramkey"></td> |
| 270 | | <td></td> |
| 271 | | <td class="paramtype">int </td> |
| 272 | | <td class="paramname"> <em>N</em></td><td> </td> |
| 273 | | </tr> |
| 274 | | <tr> |
| 275 | | <td></td> |
| 276 | | <td>)</td> |
| 277 | | <td></td><td></td><td><code> [virtual, inherited]</code></td> |
| 278 | | </tr> |
| 279 | | </table> |
| 280 | | </div> |
| 281 | | <div class="memdoc"> |
| 282 | | |
| 283 | | <p> |
| 284 | | Returns. |
| 285 | | <p> |
| 286 | | <dl compact><dt><b>Parameters:</b></dt><dd> |
| 287 | | <table border="0" cellspacing="2" cellpadding="0"> |
| 288 | | <tr><td valign="top"></td><td valign="top"><em>N</em> </td><td>samples from the density conditioned on <code>cond</code>, <img class="formulaInl" alt="$x \sim epdf(rv|cond)$" src="form_11.png">. </td></tr> |
| 289 | | <tr><td valign="top"></td><td valign="top"><em>cond</em> </td><td>is numeric value of <code>rv</code> </td></tr> |
| 290 | | </table> |
| 291 | | </dl> |
| 292 | | |
| 293 | | <p>References <a class="el" href="bdmbase_8h_source.html#l00376">bdm::mpdf::condition()</a>.</p> |
| | 247 | <p>References <a class="el" href="user__info_8h-source.html#l00410">bdm::UI::get()</a>, and <a class="el" href="exp__family_8h-source.html#l01337">bdm::mgnorm< sq_T >::set_parameters()</a>.</p> |