Changeset 395 for library/bdm/stat/emix.h
- Timestamp:
- 06/22/09 13:17:49 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
library/bdm/stat/emix.h
r394 r395 235 235 mprod (){}; 236 236 mprod (Array<mpdf*> mFacs ){set_elements( mFacs );}; 237 void set_elements(Array<mpdf*> mFacs ) {237 void set_elements(Array<mpdf*> mFacs , bool own=false) { 238 238 239 set_elements(mFacs); 240 239 compositepdf::set_elements(mFacs,own); 240 dls.set_size(mFacs.length()); 241 epdfs.set_size(mFacs.length()); 242 241 243 ep=&dummy; 242 244 RV rv=getrv ( true ); 243 set_rv ( rv );dummy.set_parameters ( rv._dsize() ); 245 set_rv ( rv ); 246 dummy.set_parameters ( rv._dsize() ); 244 247 setrvc ( ep->_rv(),rvc ); 245 248 // rv and rvc established = > we can link them with mpdfs … … 270 273 return res; 271 274 } 275 vec evallogcond_m(const mat &Dt, const vec &cond) { 276 vec tmp(Dt.cols()); 277 for(int i=0;i<Dt.cols(); i++){ 278 tmp(i) = evallogcond(Dt.get_col(i),cond); 279 } 280 return tmp; 281 }; 282 vec evallogcond_m(const Array<vec> &Dt, const vec &cond) { 283 vec tmp(Dt.length()); 284 for(int i=0;i<Dt.length(); i++){ 285 tmp(i) = evallogcond(Dt(i),cond); 286 } 287 return tmp; 288 }; 289 290 272 291 //TODO smarter... 273 292 vec samplecond ( const vec &cond ) { … … 294 313 295 314 ~mprod() {}; 296 }; 315 //! Load from structure with elements: 316 //! \code 317 //! { class='mprod'; 318 //! mpdfs = (..., ...); // list of mpdfs in the order of chain rule 319 //! } 320 //! \endcode 321 //!@} 322 void from_setting(const Setting &set){ 323 Array<mpdf*> Atmp; //temporary Array 324 UI::get(Atmp,set, "mpdfs"); 325 set_elements(Atmp,true); 326 } 327 328 }; 329 UIREGISTER(mprod); 297 330 298 331 //! Product of independent epdfs. For dependent pdfs, use mprod.