void show_frequencies(std::ostream& o,const substitution::MultiModel& MModel) { const alphabet& a = MModel.Alphabet(); if (MModel.n_base_models() == 1) { const valarray<double>& f = MModel.base_model(0).frequencies(); for(int i=0;i<a.size();i++) o<<"f"<<a.lookup(i)<<" = "<<f[i]<<"\n"; } else { for(int i=0;i<a.size();i++) { double total = 0; for(int m=0;m<MModel.n_base_models();m++) { const valarray<double>& f = MModel.base_model(m).frequencies(); o<<"f"<<a.lookup(i)<<m+1<<" = "<<f[i]<<" "; total += MModel.distribution()[m] * f[i]; } o<<"f"<<a.lookup(i)<<" = "<<total<<"\n"; } } }