Changeset 996 for library/bdm/stat/exp_family.h
- Timestamp:
- 05/26/10 23:33:28 (14 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
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