Changeset 193 for bdm/estim/merger.cpp
- Timestamp:
- 10/22/08 10:46:42 (16 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
bdm/estim/merger.cpp
r192 r193 60 60 //Re-Initialize Mixture model 61 61 Mix.init ( &A0, Smp_ex, Nc ); 62 Mix.bayesB ( Smp_ex, ones ( Ns ) );//w*Ns );62 Mix.bayesB ( Smp_ex, w*Ns ); 63 63 Mpred = Mix.predictor ( rv ); // Allocation => must be deleted at the end!! 64 64 65 // Generate new samples 66 eSmp.set_samples ( Mpred ); 67 for ( int i=0;i<Ns;i++ ) { set_col_part ( Smp_ex,i,Smp ( i ) );} 65 if ( 1 ) { 66 // Generate new samples 67 eSmp.set_samples ( Mpred ); 68 for ( int i=0;i<Ns;i++ ) { set_col_part ( Smp_ex,i,Smp ( i ) );} 69 } 70 else { 71 for ( int ii=0;ii<10;ii++ ) { 72 for ( int jj=0; jj<10; jj++ ) { 73 Smp ( ii+jj*10 ) =vec_2 ( -1.0+6*ii/10.0, -1.0+6*jj/10.0 ); 74 } 75 } 76 for ( int i=0;i<Ns;i++ ) { set_col_part ( Smp_ex,i,Smp ( i ) );} 77 } 68 78 69 79 sprintf ( str,"Mpdf%d",niter ); … … 98 108 // Compute likelihood of the missing variable 99 109 if ( rv.count() > ( mpdfs ( i )->_rv().count() + mpdfs ( i )->_rvc().count() ) ) { 110 /////////////// 111 cout << Mpred->mean() <<endl; 100 112 // There are variales unknown to mpdfs(i) : rvzs 101 113 mpdf* tmp_cond = Mpred->condition ( rvzs ( i ) ); 102 114 // Compute likelihood 115 vec lw_dbg=lw_src; 103 116 for ( int k= 0; k<Ns; k++ ) { 104 117 lw_src ( k ) += log ( … … 111 124 // Compute likelihood of the partial source 112 125 for ( int k= 0; k<Ns; k++ ) { 113 mpdfs ( i )->condition ( dls ( i )->get_cond ( Smp (k) ) );114 lw_src ( k ) += mpdfs ( i )->_epdf().evalpdflog ( dls ( i )->get_val ( Smp (k) ) );126 mpdfs ( i )->condition ( dls ( i )->get_cond ( Smp ( k ) ) ); 127 lw_src ( k ) += mpdfs ( i )->_epdf().evalpdflog ( dls ( i )->get_val ( Smp ( k ) ) ); 115 128 } 129 116 130 } 117 131 lW.set_row ( i, lw_src ); // do not divide by mix … … 139 153 dbg << Name ( str ) << w; 140 154 141 eSmp.resample(); // So that it can be used in bayes142 for ( int i=0;i<Ns;i++ ) { set_col_part ( Smp_ex,i,Smp ( i ) );}155 // eSmp.resample(); // So that it can be used in bayes 156 // for ( int i=0;i<Ns;i++ ) { set_col_part ( Smp_ex,i,Smp ( i ) );} 143 157 144 158 sprintf ( str,"Smp_res%d",niter ); … … 147 161 // ==== stopping rule === 148 162 niter++; 149 converged = ( niter> 20);163 converged = ( niter>4 ); 150 164 } 151 165