Changeset 504 for library/tests/testSmp.cpp
- Timestamp:
- 08/12/09 09:27:40 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
library/tests/testSmp.cpp
r488 r504 32 32 33 33 cout << "====== ENorm ====== " << endl; 34 enorm<ldmat> eN;35 eN .set_parameters ( mu0, R );36 mat Smp = eN .sample_m ( N );34 shared_ptr<enorm<ldmat> > eN = new enorm<ldmat>(); 35 eN->set_parameters ( mu0, R ); 36 mat Smp = eN->sample_m ( N ); 37 37 38 38 disp ( mu0, R.to_mat(), Smp ); … … 49 49 vec a = "100000,10000"; 50 50 vec b = a / 10.0; 51 egamma eG;52 eG .set_parameters ( a, b );51 shared_ptr<egamma> eG = new egamma(); 52 eG->set_parameters ( a, b ); 53 53 54 cout << eG .evallog ( a ) << endl;55 Smp = eG .sample_m ( N );54 cout << eG->evallog ( a ) << endl; 55 Smp = eG->sample_m ( N ); 56 56 57 57 vec g_mu = elem_div ( a, b ); … … 60 60 61 61 cout << "====== MGamma ====== " << endl; 62 mgamma mG;62 shared_ptr<mgamma> mG = new mgamma(); 63 63 double k = 10.0; 64 mG .set_parameters ( k, mu0 );64 mG->set_parameters ( k, mu0 ); 65 65 66 Smp = mG .samplecond_m ( mu0, N );66 Smp = mG->samplecond_m ( mu0, N ); 67 67 disp ( mu0, pow ( mu0, 2.0 ) / k, Smp ); 68 68 69 69 cout << "======= EMix ======== " << endl; 70 emix eMix;71 Array< epdf*> Coms ( 2 );72 Coms ( 0 ) = &eG;73 Coms ( 1 ) = &eN;70 shared_ptr<emix> eMix = new emix(); 71 Array<shared_ptr<epdf> > Coms ( 2 ); 72 Coms ( 0 ) = eG; 73 Coms ( 1 ) = eN; 74 74 75 eMix .set_parameters ( vec_2 ( 0.5, 0.5 ), Coms );76 vec smp = eMix .sample();77 Smp = eMix .sample_m ( N );78 disp ( eMix .mean(), zeros ( 2 ), Smp );75 eMix->set_parameters ( vec_2 ( 0.5, 0.5 ), Coms ); 76 vec smp = eMix->sample(); 77 Smp = eMix->sample_m ( N ); 78 disp ( eMix->mean(), zeros ( 2 ), Smp ); 79 79 80 80 cout << "======= MEpdf ======== " << endl; 81 mepdf meMix ( &eMix );81 mepdf meMix ( eMix ); 82 82 83 83 Smp = meMix.samplecond_m ( mu0, N ); 84 disp ( eMix .mean(), zeros ( 2 ), Smp );84 disp ( eMix->mean(), zeros ( 2 ), Smp ); 85 85 86 86 cout << "======= MMix ======== " << endl; 87 87 mmix mMix; 88 88 Array<shared_ptr<mpdf> > mComs ( 2 ); 89 mComs ( 0 ) = &mG; 90 eN.set_mu ( vec_2 ( 0.0, 0.0 ) ); 91 mepdf mEnorm ( &eN ); 92 mComs ( 1 ) = &mEnorm; 89 90 // emix::set_parameters requires the first mpdf to be named 91 mG->set_rv(x); 92 mG->set_rvc(y); 93 mComs ( 0 ) = mG; 94 95 eN->set_mu ( vec_2 ( 0.0, 0.0 ) ); 96 shared_ptr<mepdf> mEnorm = new mepdf ( eN ); 97 mComs ( 1 ) = mEnorm; 93 98 mMix.set_parameters ( vec_2 ( 0.5, 0.5 ), mComs ); 94 99 95 100 Smp = mMix.samplecond_m ( mu0, N ); 96 disp ( 0.5 *eN.mean()+0.4*eG.mean(), zeros ( 2 ), Smp );101 disp ( 0.5 * eN->mean() + 0.4 * eG->mean(), zeros ( 2 ), Smp ); 97 102 98 103 cout << "======= EProd ======== " << endl; 99 // we have to change eG .rv to y100 eN .set_rv ( x );101 eG .set_rv ( y );104 // we have to change eG->rv to y 105 eN->set_rv ( x ); 106 eG->set_rv ( y ); 102 107 //create array 103 108 Array<mpdf*> A ( 2 ); 104 mepdf meN ( &eN);105 mepdf meG ( &eG);109 mepdf meN ( eN.get() ); 110 mepdf meG ( eG.get() ); 106 111 A ( 0 ) = &meN; 107 112 A ( 1 ) = &meG; … … 114 119 vec v0 = vec ( 0 ); 115 120 Smp = eP.samplecond ( v0, N ); 116 disp ( concat ( eN .mean(), eG.mean() ), epV, Smp );121 disp ( concat ( eN->mean(), eG->mean() ), epV, Smp ); 117 122 118 123 cout << "======= eWishart ======== " << endl;