Changeset 996 for library/bdm/stat
- Timestamp:
- 05/26/10 23:33:28 (14 years ago)
- Location:
- library/bdm/stat
- Files:
-
- 2 modified
Legend:
- Unmodified
- Added
- Removed
-
library/bdm/stat/exp_family.cpp
r992 r996 404 404 } 405 405 406 // mat egamma::sample ( int N ) const {407 // mat Smp ( rv.count(),N );408 // int i,j;409 //410 // for ( i=0; i<rv.count(); i++ ) {411 // GamRNG.setup ( alpha ( i ),beta ( i ) );412 //413 // for ( j=0; j<N; j++ ) {414 // Smp ( i,j ) = GamRNG();415 // }416 // }417 //418 // return Smp;419 // }420 406 421 407 double egamma::evallog ( const vec &val ) const { -
library/bdm/stat/exp_family.h
r992 r996 81 81 //! cached value of lognc() in the previous step (used in evaluation of \c ll ) 82 82 double last_lognc; 83 //! factor k = [0..1] for scheduling of forgetting factor: \f$ frg_t = (1-k) * frg_{t-1} + k \f$, default 0 84 double frg_sched_factor; 83 85 public: 84 86 //! Default constructor (=empty constructor) 85 BMEF ( double frg0 = 1.0 ) : BM (), frg ( frg0 ) {}87 BMEF ( double frg0 = 1.0 ) : BM (), frg ( frg0 ), last_lognc(0.0),frg_sched_factor(0.0) {} 86 88 //! Copy constructor 87 BMEF ( const BMEF &B ) : BM ( B ), frg ( B.frg ), last_lognc ( B.last_lognc ) {}89 BMEF ( const BMEF &B ) : BM ( B ), frg ( B.frg ), last_lognc ( B.last_lognc ),frg_sched_factor(B.frg_sched_factor) {} 88 90 //!get statistics from another model 89 91 virtual void set_statistics ( const BMEF* BM0 ) NOT_IMPLEMENTED_VOID; 90 92 91 93 //! Weighted update of sufficient statistics (Bayes rule) 92 virtual void bayes_weighted ( const vec &data, const vec &cond = empty_vec, const double w = 1.0 ) {}; 94 virtual void bayes_weighted ( const vec &data, const vec &cond = empty_vec, const double w = 1.0 ) { 95 if (frg_sched_factor>0) {frg = frg*(1-frg_sched_factor)+frg_sched_factor;} 96 }; 93 97 //original Bayes 94 98 void bayes ( const vec &yt, const vec &cond = empty_vec ); … … 102 106 BM::to_setting( set ); 103 107 UI::save(frg, set, "frg"); 108 UI::save( frg_sched_factor, set, "frg_sched_factor" ); 104 109 } 105 110 … … 108 113 if ( !UI::get ( frg, set, "frg" ) ) 109 114 frg = 1.0; 115 UI::get ( frg_sched_factor, set, "frg_sched_factor",UI::optional ); 110 116 } 111 117