Changeset 165 for bdm/stat/emix.cpp

Show
Ignore:
Timestamp:
09/16/08 10:46:21 (16 years ago)
Author:
smidl
Message:

Switch from eprod to mprod, merger devel

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • bdm/stat/emix.cpp

    r145 r165  
    2222        return Coms ( i )->sample(); 
    2323} 
     24 
     25mprod::mprod ( Array<mpdf*> mFacs, bool overlap) : mpdf ( RV(), RV() ), n ( mFacs.length() ), epdfs ( n ), mpdfs ( mFacs ), rvinds ( n ), rvcinrv ( n ), rvcinds ( n ) { 
     26                int i; 
     27                bool rvaddok; 
     28                // Create rv 
     29                for ( i = 0;i < n;i++ ) { 
     30                        rvaddok=rv.add ( mpdfs ( i )->_rv() ); //add rv to common rvs. 
     31                        // If rvaddok==false, mpdfs overlap => assert error. 
     32                        it_assert_debug(rvaddok||overlap,"mprod::mprod() input mpdfs overlap in rv!"); 
     33                        epdfs ( i ) = & ( mpdfs ( i )->_epdf() ); // add pointer to epdf 
     34                }; 
     35                // Create rvc 
     36                for ( i = 0;i < n;i++ ) { 
     37                        rvc.add ( mpdfs ( i )->_rvc().subt ( rv ) ); //add rv to common rvs. 
     38                }; 
     39                 
     40                independent = true; 
     41                //test rvc of mpdfs and fill rvinds 
     42                for ( i = 0;i < n;i++ ) { 
     43                        // find ith rv in common rv 
     44                        rvinds ( i ) = mpdfs ( i )->_rv().dataind ( rv ); 
     45                        // find ith rvc in common rv 
     46                        rvcinrv ( i ) = mpdfs ( i )->_rvc().dataind ( rv ); 
     47                        // find ith rvc in common rv 
     48                        rvcinds ( i ) = mpdfs ( i )->_rvc().dataind ( rvc ); 
     49                        // 
     50                        if ( rvcinds ( i ).length() >0 ) {independent = false;} 
     51                        if ( rvcinds ( i ).length() >0 ) {independent = false;} 
     52                } 
     53        };