Changeset 685 for applications/bdmtoolbox/mex/estimator.cpp
- Timestamp:
- 10/29/09 23:23:56 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
applications/bdmtoolbox/mex/estimator.cpp
r676 r685 145 145 Setting &S=Cfg; 146 146 for ( int i=0; i<Es.length(); i++ ) { 147 try { 148 UI::get ( Ename, S["estimators"][i], "name" ); 149 } catch ( UIException e ) { 147 if (!UI::get ( Ename, S["estimators"][i], "name" ,UI::optional)){ 150 148 Ename="Est"+num2str ( i ); 151 149 } … … 157 155 vec dt=zeros ( Ds->_drv()._dsize() ); //data variable 158 156 Array<datalink*> Dls ( Es.length() ); 157 Array<datalink*> Dlsc ( Es.length() ); 159 158 Array<datalink_buffered*> Dls_buf (0); 160 159 for ( int i=0; i<Es.length(); i++ ) { 161 if (Es ( i )->_drv().mint()<0){ 160 //connect actual data 161 Dls ( i ) = new datalink ( Es ( i )->_yrv(),Ds->_drv() ); //datalink between a datasource and estimator 162 //connect data in condition 163 if (Es ( i )->_rvc().mint()<0){ 162 164 //delayed values are required 163 165 … … 167 169 Dls_buf(ith_buf) = new datalink_buffered(); 168 170 //add dl to list of buffered DS 169 Dls (i) = Dls_buf(ith_buf);170 Dls (i)->set_connection ( Es ( i )->_drv(),Ds->_drv() ); //datalink between a datasource and estimator171 Dlsc(i) = Dls_buf(ith_buf); 172 Dlsc(i)->set_connection ( Es ( i )->_rvc(),Ds->_drv() ); //datalink between a datasource and estimator 171 173 172 174 } else { 173 Dls ( i ) = new datalink ( Es ( i )->_drv(),Ds->_drv() ); //datalink between a datasource and estimator175 Dlsc ( i ) = new datalink ( Es ( i )->_rvc(),Ds->_drv() ); //datalink between a datasource and estimator 174 176 } 175 177 } … … 180 182 181 183 for ( int i=0; i<Es.length(); i++ ) { 182 Es ( i )->bayes ( Dls ( i )->pushdown ( dt ) ); // update estimates184 Es ( i )->bayes ( Dls ( i )->pushdown ( dt ), Dlsc(i) ->pushdown(dt) ); // update estimates 183 185 Es ( i )->log_write (); 184 186 } … … 204 206 } 205 207 #endif 206 for (int i=0;i<Dls.length(); i++){delete Dls(i); }208 for (int i=0;i<Dls.length(); i++){delete Dls(i); delete Dlsc(i);} 207 209 }