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> |