Changeset 270 for tests

Show
Ignore:
Timestamp:
02/16/09 10:02:08 (16 years ago)
Author:
smidl
Message:

Changes in the very root classes!
* rv and rvc are no longer compulsory,
* samplecond does not return ll
* BM has drv

Location:
tests
Files:
18 modified

Legend:

Unmodified
Added
Removed
  • tests/UI/UIArxDS_test.cpp

    r268 r270  
    3737        L->init(); 
    3838 
    39         vec dt=zeros ( DS->_drv().count() );   //data variable 
    40         datalink_e2e dl ( E->_drv(),DS->_drv() ); //datalink between a datasource and estimator 
     39        vec dt=zeros ( DS->_drv()._dsize() );   //data variable 
     40        datalink dl ( E->_drv(),DS->_drv() ); //datalink between a datasource and estimator 
    4141 
    4242        for ( int tK=1;tK<Ndat;tK++ ) { 
    4343                DS->step();                                                     // simulator step 
    4444                DS->getdata ( dt );                                     // read data 
    45                 E->bayes ( dl.get_val ( dt ) );         // update estimates 
     45                E->bayes ( dl.pushdown ( dt ) );                // update estimates 
    4646 
    4747                DS->logit ( *L ); 
  • tests/arx_elem_test.cpp

    r254 r270  
    11#include <estim/arx.h> 
    2 #include <stat/libEF.h> 
    32using namespace bdm; 
    4  
    5 //These lines are needed for use of cout and endl 
    6 using std::cout; 
    7 using std::endl; 
    83 
    94int main() { 
     
    116        //Test constructor 
    127        mat V0 = 0.00001*eye(2); V0(0,0)= 0.1; // 
    13         RV thr("{th r }"); 
    14         ARX Ar(thr, V0, -1.0); 
     8        ARX Ar; Ar.set_statistics(1, V0, -1.0); 
    159                                 
    1610        mat mu(1,1); 
     
    3933        X2.set_row(0,x); 
    4034         
    41         mlstudent* Ap = Ar.predictor_student(RV("{y }"),RV("{1 }")); 
     35        mlstudent* Ap = Ar.predictor_student(); 
    4236        vec Ap_x=Ap->evallogcond_m(X,vec_1(1.0)); 
    4337        vec ll_x = Ar.logpred_m(X2); 
    4438         
    45         cout << "normalize : " << xstep*sum(Ap_x) << endl; 
     39        cout << "normalize : " << xstep*sum(exp(Ap_x)) << endl; 
    4640        cout << "normalize : " << xstep*sum(exp(ll_x)) << endl; 
    4741         
  • tests/arx_test.cpp

    r263 r270  
    2424        double nu0 = ord+5.0; 
    2525 
    26         RV thr ( "{theta_and_r }",vec_1 ( ord+1 ) );   // Descriptive random variable 
    27         ARX Ar ( thr, V0, nu0 );                 // Estimator 
     26        ARX Ar; 
     27        Ar.set_statistics(1, V0, nu0 );                 // Estimator 
    2828        const epdf& f_thr = Ar._epdf();          // refrence to posterior of the estimator 
    2929 
     
    5050 
    5151                // Build predictor 
    52                 mlstudent*      Pr = Ar.predictor_student ( RV ( "{y }" ),RV ( "{y1 y2 y3 y4 }" ) ); 
     52                mlstudent*      Pr = Ar.predictor_student ( ); 
    5353                // Test similarity of likelihoods from the Bayes rule and the predictor 
    5454                cout << "BR log-lik: " << Ar._ll(); 
     
    6363         
    6464        cout << "Structure estimation: " <<endl; 
    65         cout <<Ar.structure_est ( egiw ( thr,V0,nu0 ) ) <<endl; 
     65        cout <<Ar.structure_est ( egiw ( 1,V0,nu0 ) ) <<endl; 
    6666} 
  • tests/datalink_test.cpp

    r262 r270  
    1  
    2 #include "../bdm/stat/libBM.h" 
    3 #include "../bdm/math/libDC.h" 
    4 #include "../bdm/math/chmat.h" 
    5  
     1#include "../bdm/stat/libEF.h" 
    62using namespace bdm; 
    7  
    8 //These lines are needed for use of cout and endl 
    9 using std::cout; 
    10 using std::endl; 
    113 
    124int main() { 
     
    157        RV c = RV ( "{c }" ); 
    168 
    17         mpdf M1 ( concat ( a,b ),c ); 
    18         mpdf M2 ( a, concat ( b,c ) ); 
    19  
    20         datalink_m2m dl ( a,M2._rvc(),M1._rv(), M1._rvc() ); 
     9        datalink_m2m dl ( a,concat(b,c),concat(a,b), c ); 
    2110 
    2211        vec val ( "1 1.5 2" ); 
     
    2615        cout << "cond: " << cond  << endl; 
    2716 
    28         cout << "lo val: " << dl.get_val ( val ) <<endl; 
     17        cout << "lo val: " << dl.pushdown ( val ) <<endl; 
    2918        cout << "lo cond: " << dl.get_cond ( val,cond ) <<endl; 
    3019 
  • tests/egiw_test.cpp

    r254 r270  
    2525                double nu=10; 
    2626 
    27                 RV thr ( "{thr }", "2" ); 
    28                 egiw E ( thr,nu*V,nu ); 
     27                egiw E ( 1,nu*V,nu ); 
    2928                cout << "egiw mean value:" << E.mean() <<endl; 
    3029                cout << "egiw normalizing constant:" << E.lognc() <<endl; 
     
    7978                double nu=20; 
    8079 
    81                 RV thr ( "{thr }", "3" ); 
    82                 egiw E ( thr,nu*V,nu ); 
     80                egiw E ( 1,nu*V,nu ); 
    8381                cout << "egiw mean value:" << E.mean() <<endl; 
    8482                cout << "egiw normalizing constant:" << E.lognc() <<endl; 
  • tests/emix_test.cpp

    r254 r270  
    3232        RV xy=concat(x,y); 
    3333         
    34         enorm<ldmat> E1 ( xy ); 
     34        enorm<ldmat> E1; E1.set_rv ( xy ); 
    3535                 
    3636        it_file iti("xxx"); 
     
    4141        cout << mu << R <<endl; 
    4242        E1.set_parameters( mu, R);//"1.00054 1.0455" , mat ( "0.740142 -0.259015; -0.259015 1.0302" )); 
    43         enorm<ldmat> E2 ( xy ); 
     43        enorm<ldmat> E2;E2.set_rv ( xy ); 
    4444        E2.set_parameters( "-1.2 -0.1" , mat ( "1 0.4; 0.4 0.5" )); 
    4545 
     
    4747        A1(0) = &E1; 
    4848         
    49         emix M1(xy); 
     49        emix M1; M1.set_rv(xy); 
    5050        M1.set_parameters(vec("1"), A1, false); 
    5151        cout << "======== test if ARX and emix with one ARX are the same ==="<<endl; 
     
    6868        A2(1) = &E2; 
    6969         
    70         emix M2(xy); 
     70        emix M2; M2.set_rv(xy); 
    7171        M2.set_parameters(vec("1"), A2, false); 
    7272         
  • tests/enorm_test.cpp

    r254 r270  
    3636        RV y ( "{y }" ); 
    3737 
    38         enorm<ldmat> E ( concat ( x,y ) ); 
     38        enorm<ldmat> E; 
     39        E.set_rv(concat(x,y)); 
    3940        E.set_parameters ( mu,R ); 
    4041        cout << "enorm mean value:" << E.mean() <<endl; 
     
    6566        mprod mEp ( A ); 
    6667 
    67         Smp=mEp.samplecond ( vec ( 0 ),ll,1000 ); 
     68        Smp=mEp.samplecond ( vec ( 0 ),1000 ); 
    6869        Emu = sum ( Smp,2 ) /N; 
    6970        Er = ( Smp*Smp.transpose() ) /N - outer_product ( Emu,Emu ); 
     
    7374         
    7475        cout << endl << " test of pdflog at zero "<<endl; 
    75         cout << "original: " << exp(E.evallog(vec("0 0"))) <<endl; 
     76        cout << "original: " << E.evallog(vec("0 0")) <<endl; 
    7677        cout << "composite: " << mEp.evallogcond(vec("0 0"),vec(0)) << endl; 
    7778} 
  • tests/merger_2d_test.cpp

    r262 r270  
    1818        RV xy=x; xy.add(y); 
    1919         
    20         enorm<fsqmat> f1 ( xy ); 
    21         enorm<fsqmat> f2 ( xy ); 
     20        enorm<fsqmat> f1; f1.set_rv ( xy ); 
     21        enorm<fsqmat> f2; f1.set_rv ( xy ); 
    2222                 
    2323        mat R1 ( "0.5 0.48; 0.48 0.5" ); 
     
    4343         
    4444        merger M ( A ); 
    45         enorm<fsqmat> g0(xy); 
     45        enorm<fsqmat> g0; g0.set_rv(xy); 
    4646        g0.set_parameters(vec("1 1"),mat("10 0; 0 10")); 
    4747         
     
    5050         
    5151        MixEF &MM = M._Mix(); 
    52         emix* MP = MM.predictor(xy); 
     52        emix* MP = MM.epredictor(); //xy 
    5353         
    5454        vec Res1 = M.evallog_m(Grid); 
  • tests/merger_iter_test.cpp

    r262 r270  
    1818        RV xy=x; xy.add(y); 
    1919         
    20         enorm<fsqmat> f1 ( xy ); 
    21         enorm<fsqmat> f2 ( xy ); 
    22         enorm<fsqmat> f3(y); 
     20        enorm<fsqmat> f1;f1.set_rv ( xy ); 
     21        enorm<fsqmat> f2;f2.set_rv ( xy ); 
     22        enorm<fsqmat> f3;f3.set_rv(y); 
    2323                 
    2424        f1.set_parameters ( "4 3",mat ( "0.4 0.3; 0.3 0.4" ) ); 
     
    4545         
    4646        merger M ( A ); 
    47         enorm<fsqmat> g0(xy); 
     47        enorm<fsqmat> g0; g0.set_rv(xy); 
    4848        g0.set_parameters(vec("4 4"),mat("1 0; 0 1")); 
    4949         
     
    5252         
    5353        MixEF &MM = M._Mix(); 
    54         epdf* MP = MM.predictor(xy); 
     54        epdf* MP = MM.epredictor();//xy 
    5555         
    5656        vec Res1 = M.evallog_m(Grid); 
  • tests/merger_test.cpp

    r262 r270  
    1212 
    1313        RNG_randomize(); 
    14          
     14 
    1515        RV x ( "{x }","1" ); 
    1616 
    17         RV z(x); 
    18          
    19         enorm<fsqmat> f1 ( x ); 
    20         enorm<fsqmat> f2 ( x ); 
     17        RV z ( x ); 
     18 
     19        enorm<fsqmat> f1; f1.set_rv ( x ); 
     20        enorm<fsqmat> f2; f2.set_rv ( x ); 
    2121 
    2222        f1.set_parameters ( "-5",mat ( "2" ) ); 
     
    2424 
    2525        Array<mpdf* > A ( 2 ); 
    26         mepdf A1(&f1); 
    27         mepdf A2(&f2); 
     26        mepdf A1 ( &f1 ); 
     27        mepdf A2 ( &f2 ); 
    2828        A ( 0 ) =&A1; 
    2929        A ( 1 ) =&A2; 
    30          
     30 
    3131        int Npoints=100; 
    3232        mat x_grid ( 1,Npoints ); 
     
    3636 
    3737        vec l_f2=f2.evallog_m ( x_grid ); 
    38         mat lW(2,Npoints); 
    39         lW.set_row(0, l_f1); 
    40         lW.set_row(1, l_f2 ); 
     38        mat lW ( 2,Npoints ); 
     39        lW.set_row ( 0, l_f1 ); 
     40        lW.set_row ( 1, l_f2 ); 
    4141 
    4242        merger M ( A ); 
    43         enorm<fsqmat> g0(x); 
    44         g0.set_parameters(vec("0.0"),mat("100.0")); 
    45          
    46         M.set_parameters(1.2,200,3); 
    47         M.merge(&g0); 
    48          
    49         vec m2 = M.lognorm_merge(lW); 
    50         vec mm2 = M.evallog_m(x_grid); 
    51          
    52         it_file it("merger_test.it"); 
    53         it << Name("x_grid") << x_grid; 
    54         it << Name("lf1") << l_f1; 
    55         it << Name("lf2") << l_f2; 
    56         it << Name("m2") << m2; 
    57         it << Name("mm2") << mm2; 
     43        enorm<fsqmat> g0; g0.set_rv ( x ); 
     44        g0.set_parameters ( vec ( "0.0" ),mat ( "100.0" ) ); 
     45 
     46        M.set_parameters ( 1.2,200,3 ); 
     47        M.merge ( &g0 ); 
     48 
     49        vec m2 = M.lognorm_merge ( lW ); 
     50        vec mm2 = M.evallog_m ( x_grid ); 
     51 
     52        it_file it ( "merger_test.it" ); 
     53        it << Name ( "x_grid" ) << x_grid; 
     54        it << Name ( "lf1" ) << l_f1; 
     55        it << Name ( "lf2" ) << l_f2; 
     56        it << Name ( "m2" ) << m2; 
     57        it << Name ( "mm2" ) << mm2; 
    5858} 
  • tests/mixef_test.cpp

    r254 r270  
    5252        fsqmat V2 ( mat ( "2 -0.1; -0.1 2" ) ); 
    5353 
    54         enorm<fsqmat> C1 ( x ); 
     54        enorm<fsqmat> C1; C1.set_rv ( x ); 
    5555        C1.set_parameters ( m1,V1 ); 
    56         enorm<fsqmat> C2 ( x ); 
     56        enorm<fsqmat> C2; C2.set_rv ( x ); 
    5757        C2.set_parameters ( m2,V2 ); 
    5858 
    5959        Array<epdf*> Sim ( 2 ); Sim ( 0 ) =&C1;Sim ( 1 ) =&C2; 
    60         emix Simul ( x ); 
     60        emix Simul;Simul.set_rv ( x ); 
    6161        Simul.set_parameters ( "0.5 0.6", Sim, false ); 
    6262 
     
    7676        Vp*=5*1e-5; 
    7777 
    78         ARX M1 ( RV ( "{Th1 }","6" ),V0 - Vp,8 ); 
    79         ARX M2 ( RV ( "{Th2 }","6" ),V0 + Vp,8 ); 
     78        ARX M1;M1.set_statistics(2,V0 - Vp,8 ); 
     79        ARX M2;M2.set_statistics (2, V0 + Vp,8 ); 
    8080         
    8181        // Build mixture model 
     
    9494        //TEST random initialization 
    9595        RNG_randomize(); 
    96         ARX Aflat=ARX(RV("{Th3 }",vec_1(6)),V0,7); 
     96        ARX Aflat; 
     97        Aflat.set_statistics(2,V0,7); 
    9798        MixEF RND; 
    9899        RND.init(&Aflat,Data,10); // already initialized! 
  • tests/testEpdf.cpp

    r262 r270  
    2020 
    2121        cout << "====== ENorm ====== " <<endl; 
    22         enorm<fsqmat> eN ( rv ); 
     22        enorm<fsqmat> eN;eN.set_rv ( rv ); 
    2323        eN.set_parameters ( mu0,R ); 
    2424        vec pdf = zeros ( x.length() ); 
  • tests/testKF.cpp

    r262 r270  
    5454 
    5555        //Chol 
    56         KalmanCh KF(rx,ry,ru); 
     56        KalmanCh KF; 
    5757        KF.set_parameters(A,B,C,D,chmat(R),chmat(Q)); 
    5858        KF.set_est(mu0,chmat(P0) ); //prediction! 
     
    6363        //       
    6464        // FSQMAT 
    65         Kalman<ldmat> KFf(rx,ry,ru); 
     65        Kalman<ldmat> KFf; 
    6666        KFf.set_parameters(A,B,C,D,ldmat(R),ldmat(Q)); 
    6767        KFf.set_est(mu0,ldmat(P0) ); 
     
    7777         
    7878        // EKF 
    79         bilinfn fxu(rx,ru,A,B); 
    80         bilinfn hxu(rx,ru,C,D); 
    81         EKFCh KFE(rx,ry,ru); 
     79        bilinfn fxu(A,B); 
     80        bilinfn hxu(C,D); 
     81        EKFCh KFE; 
    8282        KFE.set_parameters(&fxu,&hxu,Q,R); 
    8383        KFE.set_est(mu0,chmat(P0)); 
  • tests/testKF_QR.cpp

    r262 r270  
    4848        RV rQR("{Q,R }","3"); 
    4949        // 
    50         KFcondQR KF(rx,ry,ru,rQR); 
     50        KFcondQR KF; 
    5151        // KF with R unknown 
    5252        KF.set_parameters(A,B,C,D,ldmat(R),ldmat(Q)); 
    5353        KF.set_est(mu0,ldmat(P0) ); 
    5454        // 
    55         Kalman<ldmat> KFtr(rx,ry,ru); 
     55        Kalman<ldmat> KFtr; 
    5656        // KF with R unknown 
    5757        KFtr.set_parameters(A,B,C,D,ldmat(R),ldmat(Q)); 
    5858        KFtr.set_est(mu0,ldmat(P0) ); 
    5959                 
    60         mgamma evolQR(rQR,rQR); 
    61         evolQR.set_parameters(10.0); //sigma = 1/10 mu 
     60        mgamma evolQR; 
     61        evolQR.set_parameters(10.0,"1 1 1"); //sigma = 1/10 mu 
    6262         
    63         MPF<KFcondQR > KF_QR(rx,rQR,evolQR,evolQR,100,KF); 
     63        MPF<KFcondQR > KF_QR(&evolQR,&evolQR,100,KF); 
    6464        evolQR.condition("1 1 1"); 
    6565        epdf& pfinit=evolQR._epdf(); 
  • tests/testKF_QRexh.cpp

    r262 r270  
    5353        // 
    5454        // 
    55         Kalman<ldmat> KFtr ( rx,ry,ru ); 
     55        Kalman<ldmat> KFtr; 
    5656 
    5757        for ( int i =0; i<vQ1.length();i++ ) { 
  • tests/testPF.cpp

    r262 r270  
    2020        ldmat R(vR); 
    2121                 
    22         eEmp emp(x,10); 
    23         euni eun(x); 
     22        eEmp emp; 
     23        euni eun; 
    2424        eun.set_parameters("0","1"); 
    2525        emp.set_parameters(ones(10),&eun); 
  • tests/testResample.cpp

    r262 r270  
    2020        ldmat R(vR); 
    2121                 
    22         eEmp emp(x,10); 
    23         euni eun(x); 
     22        eEmp emp; 
     23        euni eun; 
    2424        eun.set_parameters("0","1"); 
    2525        emp.set_parameters(ones(10),&eun); 
  • tests/testSmp.cpp

    r262 r270  
    3232         
    3333        cout << "====== ENorm ====== " <<endl; 
    34         enorm<ldmat> eN(x); 
     34        enorm<ldmat> eN; 
    3535        eN.set_parameters(mu0,R); 
    3636        mat Smp = eN.sample(N); 
     
    4040        cout << "====== MlNorm ====== " <<endl; 
    4141        mat I = eye(2); 
    42         vec lik(N); 
    43         mlnorm<ldmat> ML(x,x); 
     42        mlnorm<ldmat> ML; 
    4443        ML.set_parameters(I,zeros(2),R); 
    45         Smp = ML.samplecond_m(mu0,lik,N); 
     44        Smp = ML.samplecond_m(mu0,N); 
    4645         
    4746        disp(mu0,R.to_mat(),Smp); 
     
    5049        vec a = "100000,10000"; 
    5150        vec b = a/10.0; 
    52         egamma eG(x); 
     51        egamma eG; 
    5352        eG.set_parameters(a,b); 
    5453         
     
    6160 
    6261        cout << "====== MGamma ====== " <<endl;  
    63         mgamma mG(x,x); 
     62        mgamma mG; 
    6463        double k = 10.0; 
    65         mG.set_parameters(k); 
     64        mG.set_parameters(k,mu0); 
    6665 
    67         Smp=mG.samplecond_m(mu0,lik,N); 
     66        Smp=mG.samplecond_m(mu0,N); 
    6867        disp(mu0,pow(mu0,2.0)/k,Smp); 
    6968         
    7069        cout << "======= EMix ======== " << endl; 
    71         emix eMix(x); 
     70        emix eMix; 
    7271        Array<epdf*> Coms(2); 
    7372        Coms(0) = &eG; 
     
    8281        mepdf meMix(&eMix); 
    8382         
    84         Smp = meMix.samplecond_m(mu0,lik,N); 
     83        Smp = meMix.samplecond_m(mu0,N); 
    8584        disp(eMix.mean(),zeros(2),Smp); 
    8685 
    8786        cout << "======= MMix ======== " << endl; 
    88         mmix mMix(x,x); 
     87        mmix mMix; 
    8988        Array<mpdf*> mComs(2); 
    9089        mComs(0) = &mG; 
     
    9493        mMix.set_parameters(vec_2(0.5,0.5),mComs); 
    9594         
    96         Smp = mMix.samplecond_m(mu0,lik,N); 
     95        Smp = mMix.samplecond_m(mu0,N); 
    9796        disp(mMix._epdf().mean(),zeros(2),Smp); 
    9897 
    9998        cout << "======= EProd ======== " << endl; 
    10099        // we have to change eG.rv to y 
    101         egamma eGy(x); 
    102         eGy.set_parameters(a,b); 
     100        eN.set_rv(x); 
     101        eG.set_rv(y); 
    103102        //create array  
    104103        Array<mpdf*> A(2); 
    105104        mepdf meN(&eN); 
    106         mepdf meG(&eGy); 
     105        mepdf meG(&eG); 
    107106        A(0) = &meN; 
    108107        A(1) = &meG; 
     
    114113         
    115114        vec v0=vec(0); 
    116         Smp = eP.samplecond(v0,lik,N); 
    117         disp(concat(eN.mean(),eGy.mean()), epV,Smp); 
     115        Smp = eP.samplecond(v0,N); 
     116        disp(concat(eN.mean(),eG.mean()), epV,Smp); 
    118117         
    119118        //Exit program: