Changeset 201

Show
Ignore:
Timestamp:
11/10/08 15:40:25 (15 years ago)
Author:
smidl
Message:

oprava ARX a prejmenovani sampleN na sample_m

Files:
1 added
7 modified

Legend:

Unmodified
Added
Removed
  • bdm/estim/arx.cpp

    r199 r201  
    3333                lll = pred.lognc(); 
    3434        } 
    35         else 
     35        else//should be save: last_lognc is changed only by bayes; 
    3636                if ( evalll ) {lll=last_lognc;} 
    3737                else{lll=pred.lognc();} 
     
    3939        V.opupdt ( dt,1.0 ); 
    4040        nu+=1.0; 
    41  
    42         return pred.lognc()-lll; 
     41        // log(sqrt(2*pi)) = 0.91893853320467 
     42        return pred.lognc()-lll - 0.91893853320467; 
    4343} 
    4444 
  • bdm/stat/libBM.cpp

    r192 r201  
    111111} 
    112112 
    113 mat epdf::sampleN ( int N ) const { 
     113mat epdf::sample_m ( int N ) const { 
    114114        mat X = zeros ( rv.count(), N ); 
    115115        for ( int i = 0;i < N;i++ ) X.set_col ( i, this->sample() ); 
  • bdm/stat/libBM.h

    r200 r201  
    169169        virtual vec sample () const =0; 
    170170        //! Returns N samples from density \f$epdf(rv)\f$ 
    171         virtual mat sampleN ( int N ) const; 
    172         //! Compute probability of argument \c val 
    173         virtual double eval ( const vec &val ) const {return exp ( this->evalpdflog ( val ) );}; 
    174  
     171        virtual mat sample_m ( int N ) const; 
     172         
    175173        //! Compute log-probability of argument \c val 
    176174        virtual double evalpdflog ( const vec &val ) const =0; 
     
    232230 
    233231        //! Shortcut for conditioning and evaluation of the internal epdf. In some cases,  this operation can be implemented efficiently. 
    234         virtual double evalcond ( const vec &dt, const vec &cond ) {this->condition ( cond );return ep->eval ( dt );}; 
     232        virtual double evalcond ( const vec &dt, const vec &cond ) {this->condition ( cond );return exp(ep->evalpdflog ( dt ));}; 
     233 
     234        virtual vec evalcond_m ( const mat &Dt, const vec &cond ) {this->condition ( cond );return exp(ep->evalpdflog_m ( Dt ));}; 
    235235 
    236236        //! Destructor for future use; 
  • tests/CMakeLists.txt

    r193 r201  
    4040# ESTIM TESTS 
    4141TEST(arx_test) 
     42TEST(arx_elem_test) 
    4243TEST(merger_test) 
    4344TEST(merger_iter_test) 
  • tests/emix_test.cpp

    r193 r201  
    7777        vec ll ( N ); 
    7878        vec ll2 ( N ); 
    79         mat Smp=M2.sampleN ( N ); 
     79        mat Smp=M2.sample_m ( N ); 
    8080        ll = M2.evalpdflog_m(Smp); 
    8181         
  • tests/mixef_test.cpp

    r191 r201  
    6363        // Sample parameters 
    6464        int ndat = 100; 
    65         mat Smp =Simul.sampleN ( ndat ); 
     65        mat Smp =Simul.sample_m ( ndat ); 
    6666 
    6767        cout << "Simulated means: " << m1 <<" and " << m2 <<endl; 
  • tests/testSmp.cpp

    r179 r201  
    5353        eG.set_parameters(a,b); 
    5454         
    55         cout << eG.eval(a)<<endl; 
    56         Smp = eG.sampleN(N); 
     55        cout << eG.evalpdflog(a)<<endl; 
     56        Smp = eG.sample_m(N); 
    5757 
    5858        vec g_mu = elem_div(a,b); 
     
    7676        eMix.set_parameters(vec_2(0.5,0.5), Coms); 
    7777        vec smp = eMix.sample(); 
    78         Smp = eMix.sampleN(N); 
     78        Smp = eMix.sample_m(N); 
    7979        disp(eMix.mean(),zeros(2),Smp); 
    8080