137 | | <a name="l00126"></a>00126 <span class="keyword">const</span> <a class="code" href="classbdm_1_1egiw.html" title="Gauss-inverse-Wishart density stored in LD form.">egiw</a>& posterior()<span class="keyword"> const </span>{ |
138 | | <a name="l00127"></a>00127 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1ARX.html#a11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>; |
139 | | <a name="l00128"></a>00128 } |
140 | | <a name="l00130"></a>00130 |
141 | | <a name="l00133"></a>00133 <span class="keywordtype">void</span> set_rv ( <span class="keyword">const</span> RV &yrv0 , <span class="keyword">const</span> RV &rgrrv0 ) { |
142 | | <a name="l00134"></a>00134 <a class="code" href="classbdm_1_1ARX.html#a363aaa55b2ab3eec602510cdf53e84ef">_yrv</a> = yrv0; |
143 | | <a name="l00135"></a>00135 <a class="code" href="classbdm_1_1ARX.html#a320ac7b3b511bc4b26e8f8823026a453" title="rv of regressor">rgrrv</a>=rgrrv0; |
144 | | <a name="l00136"></a>00136 set_drv(concat(yrv0, <a class="code" href="classbdm_1_1ARX.html#a320ac7b3b511bc4b26e8f8823026a453" title="rv of regressor">rgrrv</a>)); |
145 | | <a name="l00137"></a>00137 } |
146 | | <a name="l00138"></a>00138 |
147 | | <a name="l00139"></a>00139 RV& get_yrv() { |
148 | | <a name="l00140"></a>00140 <span class="comment">//if yrv is not ready create it</span> |
149 | | <a name="l00141"></a>00141 <span class="keywordflow">if</span> ( <a class="code" href="classbdm_1_1ARX.html#a363aaa55b2ab3eec602510cdf53e84ef">_yrv</a>._dsize() != <a class="code" href="classbdm_1_1ARX.html#a8e68db2a218d54b09304cad6c0a897d9" title="size of output variable (needed in regressors)">dimx</a> ) { |
150 | | <a name="l00142"></a>00142 <span class="keywordtype">int</span> i = 0; |
151 | | <a name="l00143"></a>00143 <span class="keywordflow">while</span> ( <a class="code" href="classbdm_1_1ARX.html#a363aaa55b2ab3eec602510cdf53e84ef">_yrv</a>._dsize() < <a class="code" href="classbdm_1_1ARX.html#a8e68db2a218d54b09304cad6c0a897d9" title="size of output variable (needed in regressors)">dimx</a> ) { |
152 | | <a name="l00144"></a>00144 <a class="code" href="classbdm_1_1ARX.html#a363aaa55b2ab3eec602510cdf53e84ef">_yrv</a>.add ( <a class="code" href="classbdm_1_1BM.html#ac400357e37d27a4834b2b1d9211009ed" title="Random variable of the data (optional).">drv</a> ( vec_1 ( i ) ) ); |
153 | | <a name="l00145"></a>00145 i++; |
154 | | <a name="l00146"></a>00146 } |
155 | | <a name="l00147"></a>00147 } |
156 | | <a name="l00148"></a>00148 <span class="comment">//yrv should be ready by now</span> |
157 | | <a name="l00149"></a>00149 <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_1ARX.html#a363aaa55b2ab3eec602510cdf53e84ef">_yrv</a>._dsize() == <a class="code" href="classbdm_1_1ARX.html#a8e68db2a218d54b09304cad6c0a897d9" title="size of output variable (needed in regressors)">dimx</a>, <span class="stringliteral">"incompatible drv"</span> ); |
158 | | <a name="l00150"></a>00150 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1ARX.html#a363aaa55b2ab3eec602510cdf53e84ef">_yrv</a>; |
159 | | <a name="l00151"></a>00151 } |
160 | | <a name="l00153"></a>00153 |
161 | | <a name="l00174"></a>00174 <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARX.html#a9637412df898048bafaefee9dc7e9f6c">from_setting</a> ( <span class="keyword">const</span> Setting &<span class="keyword">set</span> ); |
162 | | <a name="l00175"></a>00175 |
163 | | <a name="l00176"></a><a class="code" href="classbdm_1_1ARX.html#a5b4ae27fa320a1b6e09777239210566d">00176</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARX.html#a5b4ae27fa320a1b6e09777239210566d" title="This method TODO.">validate</a>() { |
164 | | <a name="l00177"></a>00177 <a class="code" href="bdmerror_8h.html#a7a3399d182b8e3065532596e76f84849" title="Throw std::runtime_exception if t is not true.">bdm_assert</a>(<a class="code" href="classbdm_1_1ARX.html#a8e68db2a218d54b09304cad6c0a897d9" title="size of output variable (needed in regressors)">dimx</a> == <a class="code" href="classbdm_1_1ARX.html#a363aaa55b2ab3eec602510cdf53e84ef">_yrv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>(), <span class="stringliteral">"RVs of parameters and regressor do not match"</span>); |
165 | | <a name="l00178"></a>00178 |
166 | | <a name="l00179"></a>00179 } |
167 | | <a name="l00180"></a>00180 }; |
168 | | <a name="l00181"></a>00181 |
169 | | <a name="l00182"></a>00182 <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> ( ARX ); |
170 | | <a name="l00183"></a>00183 SHAREDPTR ( ARX ); |
171 | | <a name="l00184"></a>00184 |
172 | | <a name="l00188"></a><a class="code" href="classbdm_1_1ARXfrg.html">00188</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1ARXfrg.html">ARXfrg</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1ARX.html" title="Linear Autoregressive model with Gaussian noise.">ARX</a>{ |
173 | | <a name="l00189"></a>00189 <span class="keyword">public</span>: |
174 | | <a name="l00190"></a>00190 <a class="code" href="classbdm_1_1ARXfrg.html">ARXfrg</a>():<a class="code" href="classbdm_1_1ARX.html" title="Linear Autoregressive model with Gaussian noise.">ARX</a>(){}; |
175 | | <a name="l00191"></a>00191 <a class="code" href="classbdm_1_1ARXfrg.html">ARXfrg</a>(<span class="keyword">const</span> <a class="code" href="classbdm_1_1ARXfrg.html">ARXfrg</a> &A0):<a class="code" href="classbdm_1_1ARX.html" title="Linear Autoregressive model with Gaussian noise.">ARX</a>(A0){}; |
176 | | <a name="l00192"></a><a class="code" href="classbdm_1_1ARXfrg.html#a420f3f195d231723f2f2329ec900de60">00192</a> <a class="code" href="classbdm_1_1ARXfrg.html">ARXfrg</a>* <a class="code" href="classbdm_1_1ARXfrg.html#a420f3f195d231723f2f2329ec900de60" title="Copy function required in vectors, Arrays of BM etc. Have to be DELETED manually!...">_copy_</a>()<span class="keyword"> const </span>{<a class="code" href="classbdm_1_1ARXfrg.html">ARXfrg</a> *A = <span class="keyword">new</span> <a class="code" href="classbdm_1_1ARXfrg.html">ARXfrg</a>(*<span class="keyword">this</span>); <span class="keywordflow">return</span> A;} |
177 | | <a name="l00193"></a><a class="code" href="classbdm_1_1ARXfrg.html#a2baaf50640620cbd4c089a608e0c41bb">00193</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARXfrg.html#a2baaf50640620cbd4c089a608e0c41bb" title="Substitute val for rvc.">condition</a>(<span class="keyword">const</span> vec &val){ |
178 | | <a name="l00194"></a>00194 <a class="code" href="classbdm_1_1BMEF.html#a1331865e10fb1ccef65bb4c47fa3be64" title="forgetting factor">frg</a> = val(0); |
179 | | <a name="l00195"></a>00195 } |
180 | | <a name="l00196"></a>00196 }; |
181 | | <a name="l00197"></a>00197 <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>(ARXfrg); |
| 137 | <a name="l00127"></a><a class="code" href="classbdm_1_1ARX.html#a5a96a50d212648f049122a31d9553618">00127</a> <span class="keyword">const</span> <a class="code" href="classbdm_1_1egiw.html" title="Gauss-inverse-Wishart density stored in LD form.">egiw</a>& <a class="code" href="classbdm_1_1ARX.html#a5a96a50d212648f049122a31d9553618" title="return correctly typed posterior (covariant return)">posterior</a>()<span class="keyword"> const </span>{ |
| 138 | <a name="l00128"></a>00128 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1ARX.html#a11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>; |
| 139 | <a name="l00129"></a>00129 } |
| 140 | <a name="l00131"></a>00131 |
| 141 | <a name="l00134"></a>00134 <span class="keywordtype">void</span> set_rv ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &yrv0 , <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rgrrv0 ) { |
| 142 | <a name="l00135"></a>00135 <a class="code" href="classbdm_1_1ARX.html#a363aaa55b2ab3eec602510cdf53e84ef">_yrv</a> = yrv0; |
| 143 | <a name="l00136"></a>00136 <a class="code" href="classbdm_1_1ARX.html#a320ac7b3b511bc4b26e8f8823026a453" title="rv of regressor">rgrrv</a>=rgrrv0; |
| 144 | <a name="l00137"></a>00137 <a class="code" href="classbdm_1_1BM.html#af135ae6dce7e9f30c9f88229c7930b96" title="access function">set_drv</a>(concat(yrv0, <a class="code" href="classbdm_1_1ARX.html#a320ac7b3b511bc4b26e8f8823026a453" title="rv of regressor">rgrrv</a>)); |
| 145 | <a name="l00138"></a>00138 } |
| 146 | <a name="l00139"></a>00139 |
| 147 | <a name="l00140"></a>00140 RV& get_yrv() { |
| 148 | <a name="l00141"></a>00141 <span class="comment">//if yrv is not ready create it</span> |
| 149 | <a name="l00142"></a>00142 <span class="keywordflow">if</span> ( <a class="code" href="classbdm_1_1ARX.html#a363aaa55b2ab3eec602510cdf53e84ef">_yrv</a>._dsize() != <a class="code" href="classbdm_1_1ARX.html#a8e68db2a218d54b09304cad6c0a897d9" title="size of output variable (needed in regressors)">dimx</a> ) { |
| 150 | <a name="l00143"></a>00143 <span class="keywordtype">int</span> i = 0; |
| 151 | <a name="l00144"></a>00144 <span class="keywordflow">while</span> ( <a class="code" href="classbdm_1_1ARX.html#a363aaa55b2ab3eec602510cdf53e84ef">_yrv</a>._dsize() < <a class="code" href="classbdm_1_1ARX.html#a8e68db2a218d54b09304cad6c0a897d9" title="size of output variable (needed in regressors)">dimx</a> ) { |
| 152 | <a name="l00145"></a>00145 <a class="code" href="classbdm_1_1ARX.html#a363aaa55b2ab3eec602510cdf53e84ef">_yrv</a>.add ( <a class="code" href="classbdm_1_1BM.html#ac400357e37d27a4834b2b1d9211009ed" title="Random variable of the data (optional).">drv</a> ( vec_1 ( i ) ) ); |
| 153 | <a name="l00146"></a>00146 i++; |
| 154 | <a name="l00147"></a>00147 } |
| 155 | <a name="l00148"></a>00148 } |
| 156 | <a name="l00149"></a>00149 <span class="comment">//yrv should be ready by now</span> |
| 157 | <a name="l00150"></a>00150 <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_1ARX.html#a363aaa55b2ab3eec602510cdf53e84ef">_yrv</a>._dsize() == <a class="code" href="classbdm_1_1ARX.html#a8e68db2a218d54b09304cad6c0a897d9" title="size of output variable (needed in regressors)">dimx</a>, <span class="stringliteral">"incompatible drv"</span> ); |
| 158 | <a name="l00151"></a>00151 <span class="keywordflow">return</span> <a class="code" href="classbdm_1_1ARX.html#a363aaa55b2ab3eec602510cdf53e84ef">_yrv</a>; |
| 159 | <a name="l00152"></a>00152 } |
| 160 | <a name="l00154"></a>00154 |
| 161 | <a name="l00175"></a>00175 <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARX.html#a9637412df898048bafaefee9dc7e9f6c">from_setting</a> ( <span class="keyword">const</span> Setting &<span class="keyword">set</span> ); |
| 162 | <a name="l00176"></a>00176 |
| 163 | <a name="l00177"></a><a class="code" href="classbdm_1_1ARX.html#a5b4ae27fa320a1b6e09777239210566d">00177</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARX.html#a5b4ae27fa320a1b6e09777239210566d" title="This method TODO.">validate</a>() { |
| 164 | <a name="l00178"></a>00178 <a class="code" href="bdmerror_8h.html#a7a3399d182b8e3065532596e76f84849" title="Throw std::runtime_exception if t is not true.">bdm_assert</a>(<a class="code" href="classbdm_1_1ARX.html#a8e68db2a218d54b09304cad6c0a897d9" title="size of output variable (needed in regressors)">dimx</a> == <a class="code" href="classbdm_1_1ARX.html#a363aaa55b2ab3eec602510cdf53e84ef">_yrv</a>.<a class="code" href="classbdm_1_1RV.html#ade30156104f61d86c94f758861418089" title="total size of a random variable">_dsize</a>(), <span class="stringliteral">"RVs of parameters and regressor do not match"</span>); |
| 165 | <a name="l00179"></a>00179 |
| 166 | <a name="l00180"></a>00180 } |
| 167 | <a name="l00181"></a>00181 }; |
| 168 | <a name="l00182"></a>00182 |
| 169 | <a name="l00183"></a>00183 <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> ( ARX ); |
| 170 | <a name="l00184"></a>00184 SHAREDPTR ( ARX ); |
| 171 | <a name="l00185"></a>00185 |
| 172 | <a name="l00189"></a><a class="code" href="classbdm_1_1ARXfrg.html">00189</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1ARXfrg.html">ARXfrg</a> : <span class="keyword">public</span> <a class="code" href="classbdm_1_1ARX.html" title="Linear Autoregressive model with Gaussian noise.">ARX</a>{ |
| 173 | <a name="l00190"></a>00190 <span class="keyword">public</span>: |
| 174 | <a name="l00191"></a>00191 <a class="code" href="classbdm_1_1ARXfrg.html">ARXfrg</a>():<a class="code" href="classbdm_1_1ARX.html" title="Linear Autoregressive model with Gaussian noise.">ARX</a>(){}; |
| 175 | <a name="l00193"></a><a class="code" href="classbdm_1_1ARXfrg.html#ac82a973ffbeff15346c4b16d75f7cd00">00193</a> <a class="code" href="classbdm_1_1ARXfrg.html#ac82a973ffbeff15346c4b16d75f7cd00" title="copy constructor">ARXfrg</a>(<span class="keyword">const</span> <a class="code" href="classbdm_1_1ARXfrg.html">ARXfrg</a> &A0):<a class="code" href="classbdm_1_1ARX.html" title="Linear Autoregressive model with Gaussian noise.">ARX</a>(A0){}; |
| 176 | <a name="l00194"></a><a class="code" href="classbdm_1_1ARXfrg.html#a420f3f195d231723f2f2329ec900de60">00194</a> <a class="code" href="classbdm_1_1ARXfrg.html">ARXfrg</a>* <a class="code" href="classbdm_1_1ARXfrg.html#a420f3f195d231723f2f2329ec900de60" title="Copy function required in vectors, Arrays of BM etc. Have to be DELETED manually!...">_copy_</a>()<span class="keyword"> const </span>{<a class="code" href="classbdm_1_1ARXfrg.html">ARXfrg</a> *A = <span class="keyword">new</span> <a class="code" href="classbdm_1_1ARXfrg.html">ARXfrg</a>(*<span class="keyword">this</span>); <span class="keywordflow">return</span> A;} |
| 177 | <a name="l00195"></a><a class="code" href="classbdm_1_1ARXfrg.html#a2baaf50640620cbd4c089a608e0c41bb">00195</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARXfrg.html#a2baaf50640620cbd4c089a608e0c41bb" title="Substitute val for rvc.">condition</a>(<span class="keyword">const</span> vec &val){ |
| 178 | <a name="l00196"></a>00196 <a class="code" href="classbdm_1_1BMEF.html#a1331865e10fb1ccef65bb4c47fa3be64" title="forgetting factor">frg</a> = val(0); |
| 179 | <a name="l00197"></a>00197 } |