Changeset 378 for bdm/stat/emix.h

Show
Ignore:
Timestamp:
06/17/09 23:53:08 (15 years ago)
Author:
smidl
Message:

details and compositepdf changes

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • bdm/stat/emix.h

    r361 r378  
    234234        /*!\brief Constructor from list of mFacs, 
    235235        */ 
    236         mprod ( Array<mpdf*> mFacs ) : compositepdf ( mFacs ), mpdf (), epdfs ( n ), dls ( n ) { 
     236        mprod (){}; 
     237        mprod (Array<mpdf*> mFacs ){set_elements( mFacs );}; 
     238        void set_elements(Array<mpdf*> mFacs ) { 
     239                 
     240                set_elements(mFacs); 
     241                 
    237242                ep=&dummy; 
    238243                RV rv=getrv ( true ); 
     
    240245                setrvc ( ep->_rv(),rvc ); 
    241246                // rv and rvc established = > we can link them with mpdfs 
    242                 for ( int i = 0;i < n;i++ ) { 
     247                for ( int i = 0;i < mpdfs.length(); i++ ) { 
    243248                        dls ( i ) = new datalink_m2m; 
    244249                        dls(i)->set_connection( mpdfs ( i )->_rv(), mpdfs ( i )->_rvc(), _rv(), _rvc() ); 
    245250                } 
    246251 
    247                 for ( int i=0;i<n;i++ ) { 
     252                for ( int i=0; i<mpdfs.length(); i++ ) { 
    248253                        epdfs ( i ) =& ( mpdfs ( i )->_epdf() ); 
    249254                } 
     
    253258                int i; 
    254259                double res = 0.0; 
    255                 for ( i = n - 1;i >= 0;i-- ) { 
     260                for ( i = mpdfs.length() - 1;i >= 0;i-- ) { 
    256261                        /*                      if ( mpdfs(i)->_rvc().count() >0) { 
    257262                                                        mpdfs ( i )->condition ( dls ( i )->get_cond ( val,cond ) ); 
     
    272277                vec smpi; 
    273278                // 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-- ) { 
     279                for ( int i = ( mpdfs.length() - 1 );i >= 0;i-- ) { 
    275280                        if ( mpdfs ( i )->dimensionc() ) { 
    276281                                mpdfs ( i )->condition ( dls ( i )->get_cond ( smp ,cond ) ); // smp is val here!!