Changeset 175 for bdm/stat/libBM.cpp

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

mprod is now based on compositepdf

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • bdm/stat/libBM.cpp

    r170 r175  
    183183void RV::newids(){ids=linspace ( RVcounter+1, RVcounter+len ),RVcounter+=len;} 
    184184 
     185RV compositepdf::getrv(bool checkoverlap){ 
     186        RV rv; //empty rv 
     187        bool rvaddok; 
     188        for (int i = 0;i < n;i++ ) { 
     189                rvaddok=rv.add ( mpdfs ( i )->_rv() ); //add rv to common rvs. 
     190                        // If rvaddok==false, mpdfs overlap => assert error. 
     191                it_assert_debug(rvaddok||(!checkoverlap),"mprod::mprod() input mpdfs overlap in rv!"); 
     192        }; 
     193        return rv; 
     194} 
     195 
     196void compositepdf::setrvc(const RV &rv, RV &rvc){ 
     197        for (int i = 0;i < n;i++ ) { 
     198                rvc.add ( mpdfs ( i )->_rvc().subt ( rv ) ); //add rv to common rvc 
     199        }; 
     200} 
     201 
     202void compositepdf::setindices(const RV &rv){ 
     203        for (int i = 0;i < n;i++ ) { 
     204                        // find ith rv in common rv 
     205                rvsinrv ( i ) = mpdfs ( i )->_rv().dataind ( rv ); 
     206                rvcsinrv ( i ) = mpdfs ( i )->_rvc().dataind ( rv ); 
     207        } 
     208} 
     209 
     210void compositepdf::setrvcinrv(const RV &rvc, Array<ivec> &rvinds){ 
     211        for (int i = 0;i < n;i++ ) { 
     212                        // find ith rv in common rv 
     213                rvinds ( i ) = mpdfs ( i )->_rvc().dataind ( rvc ); 
     214        } 
     215} 
     216 
     217 
    185218void BM::bayesB(const mat &Data){ 
    186219        for(int t=0;t<Data.cols();t++){bayes(Data.get_col(t));}