Changeset 384 for library/bdm/stat/mixtures.h
- Timestamp:
- 06/19/09 10:17:25 (15 years ago)
- Location:
- library/bdm
- Files:
-
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
library/bdm/stat/mixtures.h
r361 r384 11 11 */ 12 12 13 #ifndef MX_H14 #define MX_H13 #ifndef STAT_MIXTURES_H 14 #define STAT_MIXTURES_H 15 15 16 16 #define LOG2 0.69314718055995 17 17 18 #include "libEF.h" 19 //#include <std> 18 #include "exp_family.h" 20 19 21 20 namespace bdm { … … 234 233 /*!\brief Constructor from list of mFacs, 235 234 */ 236 mprod ( Array<mpdf*> mFacs ) : compositepdf ( mFacs ), mpdf (), epdfs ( n ), dls ( n ) { 235 mprod (){}; 236 mprod (Array<mpdf*> mFacs ){set_elements( mFacs );}; 237 void set_elements(Array<mpdf*> mFacs ) { 238 239 set_elements(mFacs); 240 237 241 ep=&dummy; 238 242 RV rv=getrv ( true ); … … 240 244 setrvc ( ep->_rv(),rvc ); 241 245 // rv and rvc established = > we can link them with mpdfs 242 for ( int i = 0;i < n;i++ ) {246 for ( int i = 0;i < mpdfs.length(); i++ ) { 243 247 dls ( i ) = new datalink_m2m; 244 248 dls(i)->set_connection( mpdfs ( i )->_rv(), mpdfs ( i )->_rvc(), _rv(), _rvc() ); 245 249 } 246 250 247 for ( int i=0; i<n;i++ ) {251 for ( int i=0; i<mpdfs.length(); i++ ) { 248 252 epdfs ( i ) =& ( mpdfs ( i )->_epdf() ); 249 253 } … … 253 257 int i; 254 258 double res = 0.0; 255 for ( i = n- 1;i >= 0;i-- ) {259 for ( i = mpdfs.length() - 1;i >= 0;i-- ) { 256 260 /* if ( mpdfs(i)->_rvc().count() >0) { 257 261 mpdfs ( i )->condition ( dls ( i )->get_cond ( val,cond ) ); … … 272 276 vec smpi; 273 277 // Hard assumption here!!! We are going backwards, to assure that samples that are needed from smp are already generated! 274 for ( int i = ( n- 1 );i >= 0;i-- ) {278 for ( int i = ( mpdfs.length() - 1 );i >= 0;i-- ) { 275 279 if ( mpdfs ( i )->dimensionc() ) { 276 280 mpdfs ( i )->condition ( dls ( i )->get_cond ( smp ,cond ) ); // smp is val here!!