Changeset 283 for bdm/stat/libDS.h

Show
Ignore:
Timestamp:
02/24/09 14:14:01 (15 years ago)
Author:
smidl
Message:

get rid of BMcond + adaptation in doprava/

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • bdm/stat/libDS.h

    r271 r283  
    2828*/ 
    2929class MemDS : public DS { 
     30        protected: 
    3031        //! internal matrix of data 
    3132        mat Data; 
     
    4546        void step(); 
    4647        //!Default constructor 
     48        MemDS () {}; 
    4749        MemDS ( mat &Dat, ivec &rowid, ivec &delays ); 
     50}; 
     51 
     52/*! Read Data Matrix from an IT file 
     53 
     54*/ 
     55class FileDS: public MemDS { 
     56 
     57public: 
     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();} 
    4877}; 
    4978 
     
    96125        { model.set_parameters ( Th0, mu0, sqR0 );}; 
    97126        //! Set 
    98         void set_drv(RV &yrv, RV &urv, RV &rrv){ 
     127        void set_drv ( RV &yrv, RV &urv, RV &rrv ) { 
    99128                Rrv = rrv; 
    100129                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 ); 
    104133                Drv = drv; 
    105134                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 u1 
     135                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 
    111140                } 
    112                 rgrlnk.set_connection(rrv,Drv); 
    113                  
     141                rgrlnk.set_connection ( rrv,Drv ); 
     142 
    114143                dtsize = Drv._dsize(); 
    115144                utsize = Urv._dsize(); 
     
    121150        virtual void log_add ( logger &L ) { 
    122151                //DS::log_add ( L ); too long!! 
    123                 L_dt=L.add ( Drv(0,dt_size),"" ); 
     152                L_dt=L.add ( Drv ( 0,dt_size ),"" ); 
    124153                L_ut=L.add ( Urv,"" ); 
    125154 
     
    131160        virtual void logit ( logger &L ) { 
    132161                //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 
    136165                mat &A =model._A(); 
    137166                mat R =model._R();