Changeset 766 for library/bdm/estim
- Timestamp:
- 01/11/10 22:55:57 (14 years ago)
- Location:
- library/bdm/estim
- Files:
-
- 8 modified
Legend:
- Unmodified
- Added
- Removed
-
library/bdm/estim/arx.cpp
r741 r766 78 78 } 79 79 80 ARX* ARX::_copy _( ) const {80 ARX* ARX::_copy ( ) const { 81 81 ARX* Tmp = new ARX ( *this ); 82 82 return Tmp; -
library/bdm/estim/arx.h
r746 r766 56 56 ARX ( const double frg0 = 1.0 ) : BMEF ( frg0 ), have_constant ( true ), dyad(), est(), alter_est() {}; 57 57 ARX ( const ARX &A0 ) : BMEF ( A0 ), have_constant ( A0.have_constant ), dyad ( A0.dyad ), est ( A0.est ), alter_est ( A0.alter_est ) { }; 58 ARX* _copy_() const; 58 59 ARX* _copy() const; 60 59 61 void set_parameters ( double frg0 ) { 60 62 frg = frg0; … … 174 176 //! copy constructor 175 177 ARXfrg ( const ARXfrg &A0 ) : ARX ( A0 ) {}; 176 ARXfrg* _copy_() const {178 virtual ARXfrg* _copy() const { 177 179 ARXfrg *A = new ARXfrg ( *this ); 178 180 return A; -
library/bdm/estim/ekf_template.h
r744 r766 30 30 class EKFCh_dQ : public EKFCh { 31 31 public: 32 BM* _copy_() const {return new EKFCh_dQ(*this);} 32 root* _copy_() const { 33 return new EKFCh_dQ(*this); 34 } 35 33 36 //! new bayes, expects cond = [ut, Qt] 34 37 void bayes( const vec &yt , const vec &cond) { -
library/bdm/estim/kalman.h
r744 r766 154 154 bdm_assert ( est.dimension(), "Statistics and model parameters mismatch" ); 155 155 } 156 157 virtual double logpred ( const vec &yt ) const NOT_IMPLEMENTED(0); 158 159 virtual epdf* epredictor() const NOT_IMPLEMENTED(NULL); 160 161 virtual pdf* predictor() const NOT_IMPLEMENTED(NULL); 156 162 }; 157 163 /*! … … 165 171 //! Here dt = [yt;ut] of appropriate dimensions 166 172 void bayes ( const vec &yt, const vec &cond = empty_vec ); 167 BM* _copy_() const { 173 174 virtual KalmanFull* _copy() const { 168 175 KalmanFull* K = new KalmanFull; 169 176 K->set_parameters ( A, B, C, D, Q, R ); … … 192 199 public: 193 200 //! copy constructor 194 BM* _copy_() const {201 virtual KalmanCh* _copy() const { 195 202 KalmanCh* K = new KalmanCh; 196 203 K->set_parameters ( A, B, C, D, Q, R ); … … 335 342 public: 336 343 //! copy constructor duplicated - calls different set_parameters 337 BM* _copy_() const {344 EKFCh* _copy() const { 338 345 return new EKFCh(*this); 339 346 } … … 422 429 // TODO dodelat void to_setting( Setting &set ) const; 423 430 431 virtual double logpred ( const vec &yt ) const NOT_IMPLEMENTED(0); 432 433 virtual epdf* epredictor() const NOT_IMPLEMENTED(NULL); 434 435 virtual pdf* predictor() const NOT_IMPLEMENTED(NULL); 424 436 }; 425 437 -
library/bdm/estim/mixtures.cpp
r750 r766 15 15 int ndat = Data.cols(); 16 16 //Estimate Com0 from all data 17 Coms ( 0 ) = Com0->_copy_();17 Coms ( 0 ) = (BMEF*) Com0->_copy(); 18 18 // Coms(0)->set_evalll(false); 19 19 Coms ( 0 )->bayes_batch ( Data ); … … 24 24 for ( i = 1; i < n; i++ ) { 25 25 //copy Com0 and create new rvs for them 26 Coms ( i ) = Coms ( 0 )->_copy_( );26 Coms ( i ) = (BMEF*) Coms ( 0 )->_copy ( ); 27 27 } 28 28 //Pick some data for each component and update it 29 29 for ( i = 0; i < n; i++ ) { 30 30 //pick one datum 31 int ind = floor ( ndat * UniRNG.sample() );31 int ind = (int) floor ( ndat * UniRNG.sample() ); 32 32 Coms ( i )->bayes ( Data.get_col ( ind ), empty_vec ); 33 33 //flatten back to oringinal … … 49 49 Array<BMEF*> Coms0 ( n ); 50 50 for ( i = 0; i < n; i++ ) { 51 Coms0 ( i ) = ( BMEF* ) Coms ( i )->_copy _();51 Coms0 ( i ) = ( BMEF* ) Coms ( i )->_copy(); 52 52 } 53 53 … … 147 147 emix* tmp; 148 148 tmp = new emix( ); 149 tmp->set_parameters ( weights.posterior().mean(), pC ); 149 tmp->_w() = weights.posterior().mean(); 150 tmp->_Coms() = pC; 150 151 tmp->validate(); 151 152 return tmp; -
library/bdm/estim/mixtures.h
r746 r766 75 75 weights (), method ( QB ) { 76 76 for ( int i = 0; i < n; i++ ) { 77 Coms ( i ) = ( BMEF* ) Coms0 ( i )->_copy _();77 Coms ( i ) = ( BMEF* ) Coms0 ( i )->_copy(); 78 78 } 79 79 weights.set_parameters(alpha0); … … 92 92 weights ( M2.weights ), method ( M2.method ) { 93 93 for ( int i = 0; i < n; i++ ) { 94 Coms ( i ) = M2.Coms ( i )->_copy_();94 Coms ( i ) = (BMEF*) M2.Coms ( i )->_copy(); 95 95 } 96 96 build_est(); … … 144 144 } 145 145 #endif // MIXTURES_H 146 147 -
library/bdm/estim/particles.cpp
r739 r766 168 168 if ( ind ( i ) != i ) {//replace the current Bm by a new one 169 169 delete BMs ( i ); 170 BMs ( i ) = BMs ( ind ( i ) )->_copy_(); //copy constructor170 BMs ( i ) = (BM*) BMs ( ind ( i ) )->_copy(); //copy constructor 171 171 } 172 172 }; -
library/bdm/estim/particles.h
r744 r766 203 203 return _samples; 204 204 } 205 206 virtual double logpred ( const vec &yt ) const NOT_IMPLEMENTED(0); 207 208 virtual epdf* epredictor() const NOT_IMPLEMENTED(NULL); 209 210 virtual pdf* predictor() const NOT_IMPLEMENTED(NULL); 205 211 }; 206 212 UIREGISTER ( PF ); … … 242 248 void qbounds ( vec &lb, vec &ub, double perc = 0.95 ) const; 243 249 244 vec sample() const { 245 bdm_error ( "Not implemented" ); 246 return vec(); 247 } 248 249 double evallog ( const vec &val ) const { 250 bdm_error ( "not implemented" ); 251 return 0.0; 252 } 250 vec sample() const NOT_IMPLEMENTED(0); 251 252 double evallog ( const vec &val ) const NOT_IMPLEMENTED(0); 253 253 }; 254 254 … … 282 282 //BMcond0 .condition ( pf->posterior()._sample ( 0 ) ); 283 283 for ( int i = 0; i < n; i++ ) { 284 BMs ( i ) = BMcond0._copy_();284 BMs ( i ) = (BM*) BMcond0._copy(); 285 285 } 286 286 }; 287 287 288 288 void bayes ( const vec &yt, const vec &cond ); 289 289 290 const epdf& posterior() const { 290 291 return jest; … … 301 302 } 302 303 PF& _pf() {return *pf;} 304 305 306 virtual double logpred ( const vec &yt ) const NOT_IMPLEMENTED(0); 307 308 virtual epdf* epredictor() const NOT_IMPLEMENTED(NULL); 309 310 virtual pdf* predictor() const NOT_IMPLEMENTED(NULL); 311 303 312 304 313 /*! configuration structure for basic PF … … 315 324 void from_setting ( const Setting &set ) { 316 325 shared_ptr<pdf> par = UI::build<pdf> ( set, "parameter_pdf", UI::compulsory ); 317 shared_ptr<pdf> obs = new pdf(); // not used!!318 326 319 327 pf = new PF; … … 321 329 pf->prior_from_set ( set ); 322 330 pf->resmethod_from_set ( set ); 323 pf->set_model ( par, obs );331 pf->set_model ( par, par ); // too hackish! 324 332 325 333 shared_ptr<BM> BM0 = UI::build<BM> ( set, "BM", UI::compulsory ); … … 340 348 validate(); 341 349 } 350 342 351 void validate() { 343 352 try { 344 353 pf->validate(); 345 } catch ( std::exception &e) {354 } catch ( std::exception ) { 346 355 throw UIException ( "Error in PF part of MPF:" ); 347 356 } … … 351 360 pf2bm.set_connection ( BMs ( 0 )->_rvc(), pf->posterior()._rv() ); 352 361 } 353 354 362 }; 355 363 UIREGISTER ( MPF );