testSmp.cpp itpp/itbase.h stat/libEF.h stat/emix.h void void disp (const vec &tmu, const mat &tR, const mat &Smp) disp const vec & tmu const mat & tR const mat & Smp int int main () main #include<itpp/itbase.h> #include<stat/libEF.h> #include<stat/emix.h> usingnamespaceitpp; //Theselinesareneededforuseofcoutandendl usingstd::cout; usingstd::endl; voiddisp(constvec&tmu,constmat&tR,constmat&Smp){ intN=Smp.cols(); vecEmu=Smp*ones(N)/N; matEr=(Smp*Smp.transpose())/N-outer_product(Emu,Emu); cout<<"Truemu:"<<tmu<<endl; cout<<"Empmu:"<<Emu<<endl; cout<<"TrueR:"<<tR<<endl; cout<<"EmpR:"<<Er<<endl; } intmain(){ RNG_randomize(); RVx("{x}","2"); RVy("{y}","2"); intN=10000;//numberofsamples vecmu0="1.51.7"; matV0("1.20.3;0.35"); ldmatR=ldmat(V0); cout<<"======ENorm======"<<endl; enorm<ldmat>eN(x); eN.set_parameters(mu0,R); matSmp=eN.sample(N); disp(mu0,R.to_mat(),Smp); cout<<"======MlNorm======"<<endl; matI=eye(2); veclik(N); mlnorm<ldmat>ML(x,x); ML.set_parameters(I,R); Smp=ML.samplecond(mu0,lik,N); disp(mu0,R.to_mat(),Smp); cout<<"======EGamma======"<<endl; veca="100000,10000"; vecb=a/10.0; egammaeG(x); eG.set_parameters(a,b); cout<<eG.eval(a)<<endl; Smp=eG.sampleN(N); vecg_mu=elem_div(a,b); vecg_var=elem_div(a,pow(b,2.0)); disp(g_mu,diag(g_var),Smp); cout<<"======MGamma======"<<endl; mgammamG(x,x); doublek=10.0; mG.set_parameters(k); Smp=mG.samplecond(mu0,lik,N); disp(mu0,pow(mu0,2.0)/k,Smp); cout<<"=======EMix========"<<endl; emixeMix(x); Array<epdf*>Coms(2); Coms(0)=&eG; Coms(1)=&eN; eMix.set_parameters(vec_2(0.5,0.5),Coms); vecsmp=eMix.sample(); Smp=eMix.sampleN(N); disp(eMix.mean(),zeros(2),Smp); cout<<"=======MEpdf========"<<endl; mepdfmeMix(eMix); Smp=meMix.samplecond(mu0,lik,N); disp(eMix.mean(),zeros(2),Smp); cout<<"=======MMix========"<<endl; mmixmMix(x,x); Array<mpdf*>mComs(2); mComs(0)=&mG; eN.set_mu(vec_2(0.0,0.0)); mepdfmEnorm(eN); mComs(1)=&mEnorm; mMix.set_parameters(vec_2(0.5,0.5),mComs); Smp=mMix.samplecond(mu0,lik,N); disp(mMix._epdf().mean(),zeros(2),Smp); cout<<"=======EProd========"<<endl; //wehavetochangeeG.rvtoy eG._rv()=y; //createarray Array<mpdf*>A(2); mepdfmeN(eN); mepdfmeG(eG); A(0)=&meN; A(1)=&meG; mprodeP(A); matepV=zeros(4,4); epV.set_submatrix(0,0,V0); epV.set_submatrix(2,2,diag(g_var)); Smp=eP.samplecond(vec(0),lik,N); disp(eP.mean(),epV,Smp); //Exitprogram: return0; }