Changeset 504 for library/tests/emix_test.cpp
- Timestamp:
- 08/12/09 09:27:40 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
library/tests/emix_test.cpp
r501 r504 15 15 RV xy = concat ( x, y ); 16 16 17 enorm<ldmat> E1; 18 E1.set_rv ( xy ); 17 shared_ptr<enorm<ldmat> > E1 = new enorm<ldmat>(); 18 E1->set_rv ( xy ); 19 E1->set_parameters ( "1.00054 1.0455" , mat ( "0.740142 -0.259015; -0.259015 1.0302" ) ); 19 20 20 E1.set_parameters ( "1.00054 1.0455" , mat ( "0.740142 -0.259015; -0.259015 1.0302" ) ); 21 enorm<ldmat> E2; 22 E2.set_rv ( xy ); 23 E2.set_parameters ( "-1.2 -0.1" , mat ( "1 0.4; 0.4 0.5" ) ); 21 shared_ptr<enorm<ldmat> > E2 = new enorm<ldmat>(); 22 E2->set_rv ( xy ); 23 E2->set_parameters ( "-1.2 -0.1" , mat ( "1 0.4; 0.4 0.5" ) ); 24 24 25 Array< epdf*> A1 ( 1 );26 A1 ( 0 ) = &E1;25 Array<shared_ptr<epdf> > A1 ( 1 ); 26 A1 ( 0 ) = E1; 27 27 28 28 emix M1; 29 29 M1.set_rv ( xy ); 30 M1.set_parameters ( vec ( "1" ), A1 , false);30 M1.set_parameters ( vec ( "1" ), A1 ); 31 31 32 32 // test if ARX and emix with one ARX are the same 33 epdf*Mm = M1.marginal ( y );34 epdf* Am = E1.marginal ( y );35 mpdf*Mc = M1.condition ( y );36 mpdf* Ac = E1.condition ( y );33 shared_ptr<epdf> Mm = M1.marginal ( y ); 34 shared_ptr<epdf> Am = E1->marginal ( y ); 35 shared_ptr<mpdf> Mc = M1.condition ( y ); 36 shared_ptr<mpdf> Ac = E1->condition ( y ); 37 37 38 mlnorm<ldmat> *wacnd = dynamic_cast<mlnorm<ldmat> *>( Ac);38 mlnorm<ldmat> *wacnd = dynamic_cast<mlnorm<ldmat> *>( Ac.get() ); 39 39 CHECK(wacnd); 40 40 if ( wacnd ) { … … 51 51 52 52 // mixture with two components 53 Array< epdf*> A2 ( 2 );54 A2 ( 0 ) = &E1;55 A2 ( 1 ) = &E2;53 Array<shared_ptr<epdf> > A2 ( 2 ); 54 A2 ( 0 ) = E1; 55 A2 ( 1 ) = E2; 56 56 57 57 emix M2; 58 58 M2.set_rv ( xy ); 59 M2.set_parameters ( vec ( "1" ), A2 , false);59 M2.set_parameters ( vec ( "1" ), A2 ); 60 60 61 61 … … 74 74 CHECK_CLOSE ( mat ( "0.740142 -0.259015; -0.259015 1.0302" ), Er, 2.0 ); 75 75 76 epdf *nm2mrg = M2.marginal ( y ); 77 CHECK ( nm2mrg ); 78 shared_ptr<epdf> Mg ( nm2mrg ); 79 mpdf *Cn = M2.condition ( x ); 80 CHECK ( Cn ); 81 82 #if false 83 it_file it ( "emix_test.it" ); 84 it << Name ( "Smp" ) << Smp; 85 #endif 76 shared_ptr<epdf> Mg = M2.marginal ( y ); 77 CHECK ( Mg.get() ); 78 shared_ptr<mpdf> Cn = M2.condition ( x ); 79 CHECK ( Cn.get() ); 86 80 87 81 // marginal mean 88 82 CHECK_CLOSE ( vec ( "1.0" ), Mg->mean(), 0.1 ); 89 90 #if false91 // putting them back together92 mepdf mMg ( Mg );93 Array<mpdf*> AA ( 2 );94 AA ( 0 ) = Cn;95 AA ( 1 ) = &mMg;96 mprod mEp ( AA );97 98 for ( int j = 0; j < N; j++ ) {99 ll2 ( j ) = mEp.evallogcond ( Smp.get_col ( j ), vec ( 0 ) );100 }101 it << Name ( "ll" ) << ll;102 it << Name ( "ll2" ) << ll2;103 #endif104 83 }