Changeset 280 for bdm/stat

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

progress...

Location:
bdm/stat
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • bdm/stat/libBM.cpp

    r278 r280  
    1616        //Refer 
    1717        int id; 
    18         RVmap::const_iterator iter = RV_MAP.find ( name ); 
     18        RVmap::const_iterator iter = RV_MAP.begin(); 
     19        iter=RV_MAP.find ( name ); 
    1920        if ( iter == RV_MAP.end() ) { 
    2021                id=RV_MAP.size() +1; 
     22                //debug 
     23/*              { 
     24                        cout << endl; 
     25                        RVmap::const_iterator iter = RV_MAP.begin(); 
     26                        for(RVmap::const_iterator iter=RV_MAP.begin(); iter!=RV_MAP.end(); iter++){ 
     27                                cout << "key: " << iter->first << " val: " << iter->second <<endl; 
     28                        } 
     29                }*/ 
     30                 
    2131                RV_MAP.insert ( make_pair ( name,id ) ); //add new rv 
    2232                if ( id>=RV_NAMES.length() ) { 
     
    128138        int pos = 0; 
    129139        for ( i = 0;i < len;i++ ) { 
    130                 idlist.set_subvector ( pos, pos + size ( ids ( i ) ) - 1, ids ( i ) ); 
    131                 tmlist.set_subvector ( pos, pos + size ( ids ( i ) ) - 1, times ( i ) ); 
    132                 pos += size ( ids ( i ) ); 
     140                idlist.set_subvector ( pos, pos + size ( i ) - 1, ids ( i ) ); 
     141                tmlist.set_subvector ( pos, pos + size ( i ) - 1, times ( i ) ); 
     142                pos += size ( i ); 
    133143        } 
    134144        return str ( idlist, tmlist ); 
  • bdm/stat/libDS_ui.h

    r278 r280  
    8585        IM = { type = "mpdf"; //<-- valid offspring! e.g. "mlnorm" 
    8686                rv = { //description of x_t  
    87                         names=("name1",...); 
     87                        names=["name1",...]; 
    8888                        sizes=[2,1]; // optional default=[1,1...]; 
    8989                        times=[0,0]; // optional default=[0,0...]; 
  • bdm/stat/libEF.h

    r271 r280  
    116116        //!@{ 
    117117 
    118         enorm ( ):eEF ( ), mu ( ),R ( ) {}; 
     118        enorm ( ) :eEF ( ), mu ( ),R ( ) {}; 
    119119        enorm ( const vec &mu,const sq_T &R ) {set_parameters ( mu,R );} 
    120120        void set_parameters ( const vec &mu,const sq_T &R ); 
     
    366366        //!@{ 
    367367        eigamma ( ) :eEF ( ), eg(),alpha ( eg._alpha() ), beta ( eg._beta() ) {}; 
    368         eigamma ( const vec &a, const vec &b ):eEF ( ), eg(),alpha ( eg._alpha() ), beta ( eg._beta() ) {eg.set_parameters ( a,b );}; 
     368        eigamma ( const vec &a, const vec &b ) :eEF ( ), eg(),alpha ( eg._alpha() ), beta ( eg._beta() ) {eg.set_parameters ( a,b );}; 
    369369        void set_parameters ( const vec &a, const vec &b ) {eg.set_parameters ( a,b );}; 
    370370        //!@} 
     
    476476        template<class sq_M> 
    477477        friend std::ostream &operator<< ( std::ostream &os,  mlnorm<sq_M> &ml ); 
     478}; 
     479 
     480//! Mpdf with general function for mean value 
     481template<class sq_T> 
     482class mgnorm : public mEF { 
     483protected: 
     484        //! Internal epdf that arise by conditioning on \c rvc 
     485        enorm<sq_T> epdf; 
     486        vec &mu; 
     487        fnc* g; 
     488public: 
     489        //!default constructor 
     490        mgnorm() :mu ( epdf._mu() ) {ep=&epdf;} 
     491        //!set mean function 
     492        void set_parameters ( fnc* g0, const sq_T &R0 ) {g=g0; epdf.set_parameters ( zeros ( g->_dimy() ), R0 );} 
     493        void condition ( const vec &cond ) {mu=g->eval ( cond );}; 
    478494}; 
    479495 
     
    663679        Array<vec> samples; 
    664680public: 
    665         //! \name Constructors  
    666         //!@{ 
    667         eEmp ( ) :epdf ( ),w (  ),samples ( ) {}; 
    668         eEmp (const eEmp &e ): epdf(e), w(e.w), samples(e.samples) {}; 
    669         //!@} 
    670          
     681        //! \name Constructors 
     682        //!@{ 
     683        eEmp ( ) :epdf ( ),w ( ),samples ( ) {}; 
     684        eEmp ( const eEmp &e ) : epdf ( e ), w ( e.w ), samples ( e.samples ) {}; 
     685        //!@} 
     686 
    671687        //! Set samples and weights 
    672688        void set_parameters ( const vec &w0, const epdf* pdf0 ); 
     
    817833template<class sq_T> 
    818834epdf* enorm<sq_T>::marginal ( const RV &rvn ) const { 
    819         it_assert_debug(isnamed(), "rv description is not assigned"); 
     835        it_assert_debug ( isnamed(), "rv description is not assigned" ); 
    820836        ivec irvn = rvn.dataind ( rv ); 
    821837 
    822838        sq_T Rn ( R,irvn ); //select rows and columns of R 
    823          
     839 
    824840        enorm<sq_T>* tmp = new enorm<sq_T>; 
    825841        tmp->set_rv ( rvn ); 
     
    856872 
    857873        mlnorm<sq_T>* tmp=new mlnorm<sq_T> ( ); 
    858         tmp->set_rv(rvn); tmp->set_rvc(rvc); 
     874        tmp->set_rv ( rvn ); tmp->set_rvc ( rvc ); 
    859875        tmp->set_parameters ( A,mu1-A*mu2,R_n ); 
    860876        return tmp; 
  • bdm/stat/loggers.h

    r271 r280  
    4848        void logit ( int id, const vec &v ) { 
    4949                it_assert_debug(id<vectors.length(),"Logger was not initialized, run init()."); 
    50                 if(id>0){ vectors ( id ).set_row ( ind,v );} 
     50                if(id>=0){ vectors ( id ).set_row ( ind,v );} 
    5151        } 
    5252        //! Save values into an itfile named after \c fname.