Changeset 283 for bdm/stat/libDS.h
- Timestamp:
- 02/24/09 14:14:01 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
bdm/stat/libDS.h
r271 r283 28 28 */ 29 29 class MemDS : public DS { 30 protected: 30 31 //! internal matrix of data 31 32 mat Data; … … 45 46 void step(); 46 47 //!Default constructor 48 MemDS () {}; 47 49 MemDS ( mat &Dat, ivec &rowid, ivec &delays ); 50 }; 51 52 /*! Read Data Matrix from an IT file 53 54 */ 55 class FileDS: public MemDS { 56 57 public: 58 FileDS ( const string &fname, const string &varname ) :MemDS() { 59 it_file it ( fname ); 60 it << Name ( varname ); 61 it >> Data; 62 time =0; 63 //rowid and delays are ignored 64 } 65 void getdata ( vec &dt ) { 66 it_assert_debug ( dt.length() ==Data.rows(),"" ); 67 dt = Data.get_col(time); 68 }; 69 void getdata ( vec &dt, const ivec &indeces ){ 70 it_assert_debug ( dt.length() ==indeces.length(),"" ); 71 vec tmp(indeces.length()); 72 tmp = Data.get_col(time); 73 dt = tmp(indeces); 74 }; 75 //! returns number of data in the file; 76 int ndat(){return Data.cols();} 48 77 }; 49 78 … … 96 125 { model.set_parameters ( Th0, mu0, sqR0 );}; 97 126 //! Set 98 void set_drv (RV &yrv, RV &urv, RV &rrv){127 void set_drv ( RV &yrv, RV &urv, RV &rrv ) { 99 128 Rrv = rrv; 100 129 Urv = urv; 101 dt_size = yrv._dsize() +urv._dsize();102 103 RV drv = concat (yrv,urv);130 dt_size = yrv._dsize() +urv._dsize(); 131 132 RV drv = concat ( yrv,urv ); 104 133 Drv = drv; 105 134 int td = rrv.mint(); 106 H.set_size (drv._dsize()*(-td+1));107 U.set_size (Urv._dsize());108 for ( int i=-1;i>=td;i--){109 drv.t (-1);110 Drv.add (drv); //shift u1135 H.set_size ( drv._dsize() * ( -td+1 ) ); 136 U.set_size ( Urv._dsize() ); 137 for ( int i=-1;i>=td;i-- ) { 138 drv.t ( -1 ); 139 Drv.add ( drv ); //shift u1 111 140 } 112 rgrlnk.set_connection (rrv,Drv);113 141 rgrlnk.set_connection ( rrv,Drv ); 142 114 143 dtsize = Drv._dsize(); 115 144 utsize = Urv._dsize(); … … 121 150 virtual void log_add ( logger &L ) { 122 151 //DS::log_add ( L ); too long!! 123 L_dt=L.add ( Drv (0,dt_size),"" );152 L_dt=L.add ( Drv ( 0,dt_size ),"" ); 124 153 L_ut=L.add ( Urv,"" ); 125 154 … … 131 160 virtual void logit ( logger &L ) { 132 161 //DS::logit ( L ); 133 L.logit ( L_dt, H.left(dt_size));134 L.logit (L_ut, U);135 162 L.logit ( L_dt, H.left ( dt_size ) ); 163 L.logit ( L_ut, U ); 164 136 165 mat &A =model._A(); 137 166 mat R =model._R();