Changeset 176 for bdm/stat/libEF.h
- Timestamp:
- 10/09/08 11:32:12 (16 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
bdm/stat/libEF.h
r173 r176 91 91 void bayes ( const vec &dt ); 92 92 //!Flatten the posterior 93 virtual void flatten ( BMEF * B ) {it_error ( "Not implemented" );}93 virtual void flatten ( BMEF * B ) {it_error ( "Not implemented" );} 94 94 }; 95 95 … … 206 206 vec sample() const {it_error ( "Not implemented" );return vec_1 ( 0.0 );}; 207 207 vec mean() const {return beta/sum ( beta );}; 208 //! In this instance, val = [theta, r]. For multivariate instances, it is stored columnwise val = [theta_1 theta_2 ... r_1 r_2 ]208 //! In this instance, val is ... 209 209 double evalpdflog_nn ( const vec &val ) const {return ( beta-1 ) *log ( val );}; 210 210 double lognc () const { … … 216 216 //!access function 217 217 vec& _beta() {return beta;} 218 //!Set internal parameters 219 void set_parameters(const vec &beta0){ 220 if(beta0.length()!=beta.length()){ 221 it_assert_debug(rv.length()==1,"Undefined"); 222 rv.set_size(0,beta0.length()); 223 } 224 beta= beta0; 225 } 218 226 }; 219 227 … … 239 247 eDirich pred ( est ); 240 248 vec &beta = pred._beta(); 241 249 242 250 double lll; 243 251 if ( frg<1.0 ) … … 250 258 return pred.lognc()-lll; 251 259 } 252 void flatten ( BMEF* B ) {253 eDirich* E=dynamic_cast<eDirich*> (B);260 void flatten ( BMEF* B ) { 261 eDirich* E=dynamic_cast<eDirich*> ( B ); 254 262 // sum(beta) should be equal to sum(B.beta) 255 263 const vec &Eb=E->_beta(); 256 est.pow ( sum(beta)/sum(Eb) ); 264 est.pow ( sum ( beta ) /sum ( Eb ) ); 265 if ( evalll ) {last_lognc=est.lognc();} 266 } 267 const epdf& _epdf() const {return est;}; 268 void set_parameters ( const vec &beta0 ) { 269 est.set_parameters(beta0); 270 rv = est._rv(); 257 271 if(evalll){last_lognc=est.lognc();} 258 272 } 259 const epdf& _epdf() const {return est;};260 //!access funct261 273 }; 262 274