emix.cpp emix.h #include"emix.h" usingnamespaceitpp; voidemix::set_parameters(constvec&w0,constArray<epdf*>&Coms0){ w=w0; inti; for(i=0;i<w.length();i++){ it_assert_debug(rv.equal(Coms0(i)->_rv()),"RVsdonotmatch!"); } Coms=Coms0; } vecemix::sample()const{ //Samplewhichcomponent veccumDist=cumsum(w); doubleu0=UniRNG.sample(); inti=0; while((cumDist(i)<u0)&&(i<(w.length()-1))){i++;} returnComs(i)->sample(); }