Changeset 693 for library/bdm/stat/merger.cpp
- Timestamp:
- 11/02/09 17:27:29 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
library/bdm/stat/merger.cpp
r682 r693 5 5 namespace bdm { 6 6 7 merger_base::merger_base ( const Array<shared_ptr< mpdf> > &S ):7 merger_base::merger_base ( const Array<shared_ptr<pdf> > &S ): 8 8 Npoints(0), DBG(false), dbg_file(0) { 9 9 set_sources ( S ); … … 134 134 135 135 136 sprintf ( dbg_str, " Mpdf%d", niter );136 sprintf ( dbg_str, "pdf%d", niter ); 137 137 for ( int i = 0; i < Npoints; i++ ) { 138 138 Mix_pdf ( i ) = Mix.logpred ( Smp_ex.get_col ( i ) ); … … 145 145 } 146 146 //Importace weighting 147 for ( int i = 0; i < mpdfs.length(); i++ ) {147 for ( int i = 0; i < pdfs.length(); i++ ) { 148 148 lw_src = 0.0; 149 149 //======== Same RVs =========== 150 150 //Split according to dependency in rvs 151 if ( mpdfs ( i )->dimension() == dim ) {151 if ( pdfs ( i )->dimension() == dim ) { 152 152 // no need for conditioning or marginalization 153 lw_src = mpdfs ( i )->evallogcond_m ( Smp , vec(0));153 lw_src = pdfs ( i )->evallogcond_m ( Smp , vec(0)); 154 154 } else { 155 155 // compute likelihood of marginal on the conditional variable 156 if ( mpdfs ( i )->dimensionc() > 0 ) {156 if ( pdfs ( i )->dimensionc() > 0 ) { 157 157 // Make marginal on rvc_i 158 shared_ptr<epdf> tmp_marg = Mpred->marginal ( mpdfs ( i )->_rvc() );158 shared_ptr<epdf> tmp_marg = Mpred->marginal ( pdfs ( i )->_rvc() ); 159 159 //compute vector of lw_src 160 160 for ( int k = 0; k < Npoints; k++ ) { 161 // Here val of tmp_marg = cond of mpdfs(i) ==> calling dls->get_cond161 // Here val of tmp_marg = cond of pdfs(i) ==> calling dls->get_cond 162 162 lw_src ( k ) += tmp_marg->evallog ( dls ( i )->get_cond ( Smp ( k ) ) ); 163 163 } … … 168 168 } 169 169 // Compute likelihood of the missing variable 170 if ( dim > ( mpdfs ( i )->dimension() + mpdfs ( i )->dimensionc() ) ) {170 if ( dim > ( pdfs ( i )->dimension() + pdfs ( i )->dimensionc() ) ) { 171 171 /////////////// 172 // There are variales unknown to mpdfs(i) : rvzs173 shared_ptr< mpdf> tmp_cond = Mpred->condition ( rvzs ( i ) );172 // There are variales unknown to pdfs(i) : rvzs 173 shared_ptr<pdf> tmp_cond = Mpred->condition ( rvzs ( i ) ); 174 174 // Compute likelihood 175 175 vec lw_dbg = lw_src; … … 187 187 // Compute likelihood of the partial source 188 188 for ( int k = 0; k < Npoints; k++ ) { 189 lw_src ( k ) += mpdfs ( i )->evallogcond ( dls ( i )->pushdown ( Smp ( k ) ),189 lw_src ( k ) += pdfs ( i )->evallogcond ( dls ( i )->pushdown ( Smp ( k ) ), 190 190 dls ( i )->get_cond ( Smp ( k ) )); 191 191 }