Changeset 603 for library/bdm/base/datasources.h
- Timestamp:
- 09/04/09 00:45:40 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
library/bdm/base/datasources.h
r598 r603 103 103 shared_ptr<mpdf> impdf; 104 104 //! internal storage of data sample 105 vec dt;105 vec yt; 106 106 //! input vector 107 107 vec ut; 108 //! datalink between dt and ut and regressor 109 datalink_2to1_buffered rgrlink; 108 //! datalink between ut and regressor 109 datalink_buffered ut2rgr; 110 //! datalink between yt and regressor 111 datalink_buffered yt2rgr; 110 112 //! numeric values of regressor 111 113 vec rgr; … … 113 115 public: 114 116 void step() { 115 rgrlink.filldown ( dt,ut,rgr ); 116 rgrlink.step(dt,ut);//whist history 117 dt=impdf->samplecond ( rgr ); 117 yt2rgr.step(yt); // y is now history 118 ut2rgr.filldown ( ut,rgr ); 119 yt2rgr.filldown ( yt,rgr ); 120 yt=impdf->samplecond ( rgr ); 121 ut2rgr.step(ut); //u is now history 118 122 } 119 123 void getdata ( vec &dt_out ) { 120 dt_out = dt; 121 } 122 void getdata ( vec &dt_out, const ivec &ids ) { 123 dt_out = dt ( ids ); 124 } 125 const RV& _drv() const { 126 return impdf->_rv(); 124 bdm_assert_debug(dt_out.length()>=utsize+ytsize,"Short output vector"); 125 dt_out.set_subvector(0, yt); 126 dt_out.set_subvector(ytsize, ut); 127 127 } 128 128 void write(const vec &ut0){ut=ut0;} … … 131 131 \code 132 132 class = "MpdfDS"; 133 mpdf = {class=" epdf_offspring", ...}// list of points133 mpdf = {class="mpdf_offspring", ...}// mpdf to simulate 134 134 \endcode 135 135 … … 138 138 impdf=UI::build<mpdf> ( set,"mpdf",UI::compulsory ); 139 139 140 Yrv = impdf->_rv(); 140 141 // get unique rvs form rvc 141 142 RV rgrv0=impdf->_rvc().remove_time(); 142 // input is what in not in _rv()143 RV urv=rgrv0.subt(impdf->_rv());144 set_drv( impdf->_rv(), urv);143 // input is what in not in Yrv 144 Urv=rgrv0.subt(Yrv); 145 set_drv(Yrv, Urv); 145 146 // connect input and output to rvc 146 rgrlink.set_connection(impdf->_rvc(), Drv,Urv); 147 148 dt = zeros ( impdf->dimension() ); 147 ut2rgr.set_connection(impdf->_rvc(), Urv); 148 yt2rgr.set_connection(impdf->_rvc(), Yrv); 149 150 yt = zeros ( impdf->dimension() ); 149 151 rgr = zeros ( impdf->dimensionc() ); 150 ut = zeros(urv._dsize()); 152 ut = zeros(Urv._dsize()); 153 154 ytsize=yt.length(); 155 utsize=ut.length(); 156 dtsize = ytsize+utsize; 151 157 } 152 158 };