Changeset 964 for library/bdm/estim/arx.cpp
- Timestamp:
- 05/21/10 00:44:04 (14 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
library/bdm/estim/arx.cpp
r896 r964 4 4 void ARX::bayes_weighted ( const vec &yt, const vec &cond, const double w ) { 5 5 6 bdm_assert_debug ( yt.length() >= dimy, "ARX::bayes yt is smaller then dimc" );7 bdm_assert_debug ( cond.length() >= dimc, "ARX::bayes cond is smaller then dimc" );6 bdm_assert_debug ( yt.length() == dimy, "ARX::bayes yt is smaller then dimensiony()" ); 7 bdm_assert_debug ( (cond.length() == rgrlen - int(have_constant==true)) , "ARX::bayes dimension of cond is not rgrlen" ); 8 8 double lnc; 9 9 //cache … … 217 217 BMEF::from_setting(set); 218 218 219 shared_ptr<RV> yrv_ = UI::build<RV> ( set, "rv", UI::compulsory ); 220 shared_ptr<RV> rrv = UI::build<RV> ( set, "rgr", UI::compulsory ); 221 dimy = yrv_->_dsize(); 219 RV rrv; 220 UI::get (rrv, set, "rgr", UI::compulsory ); 221 222 dimy = yrv._dsize(); 223 bdm_assert(dimy>0,"ARX::yrv should not be empty"); 222 224 // rgrlen - including constant!!! 223 dimc = rrv->_dsize(); 224 225 yrv = *yrv_; 226 rvc = *rrv; 225 rgrlen = rrv._dsize(); 227 226 228 227 int constant; … … 232 231 have_constant = constant > 0; 233 232 } 234 int rgrlen = dimc + int ( have_constant == true ); 233 dimc = rgrlen; 234 rvc = rrv; 235 rgrlen += int ( have_constant == true ); 235 236 236 237 //init … … 259 260 // frg handled by BMEF 260 261 261 //name results (for logging) 262 shared_ptr<RV> rv_par = UI::build<RV> ( set, "rv_param", UI::optional ); 263 if ( !rv_par ) { 264 est.set_rv ( RV ( "{theta r }", vec_2 ( dimy*rgrlen, dimy*dimy ) ) ); 265 } else { 266 est.set_rv ( *rv_par ); 267 } 268 } 269 270 } 271 262 } 263 264 } 265