Show
Ignore:
Timestamp:
10/23/09 00:05:25 (15 years ago)
Author:
smidl
Message:

Major changes in BM -- OK is only test suite and tests/tutorial -- the rest is broken!!!

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • library/bdm/stat/exp_family.h

    r678 r679  
    9696 
    9797                //! Weighted update of sufficient statistics (Bayes rule) 
    98                 virtual void bayes (const vec &data, const double w) {}; 
     98                virtual void bayes_weighted (const vec &data, const vec &cond=empty_vec, const double w=1.0) {}; 
    9999                //original Bayes 
    100                 void bayes (const vec &dt); 
     100                void bayes (const vec &yt, const vec &cond=empty_vec); 
    101101 
    102102                //!Flatten the posterior according to the given BMEF (of the same type!) 
     
    436436                //! Sets sufficient statistics to match that of givefrom mB0 
    437437                void set_statistics (const BM* mB0) {const multiBM* mB = dynamic_cast<const multiBM*> (mB0); beta = mB->beta;} 
    438                 void bayes (const vec &dt) { 
     438                void bayes (const vec &yt, const vec &cond=empty_vec) { 
    439439                        if (frg < 1.0) {beta *= frg;last_lognc = est.lognc();} 
    440                         beta += dt; 
     440                        beta += yt; 
    441441                        if (evalll) {ll = est.lognc() - last_lognc;} 
    442442                } 
    443                 double logpred (const vec &dt) const { 
     443                double logpred (const vec &yt) const { 
    444444                        eDirich pred (est); 
    445445                        vec &beta = pred._beta(); 
     
    452452                                else{lll = pred.lognc();} 
    453453 
    454                         beta += dt; 
     454                        beta += yt; 
    455455                        return pred.lognc() - lll; 
    456456                } 
     
    832832                } 
    833833                void condition (const vec &cond) { 
    834                         iepdf._mu() = A * cond + mu_const; 
     834                        if (cond.length()>0) { 
     835                                iepdf._mu() = A * cond + mu_const; 
     836                        } else { 
     837                                iepdf._mu() =  mu_const; 
     838                        } 
    835839                        double zeta; 
    836840                        //ugly hack!