// $Id: findRateOfGene.cpp 962 2006-11-07 15:13:34Z privmane $ #include "definitions.h" #include "findRateOfGene.h" #include "computeUpAlg.h" //#define VERBOS class findRateOfGene{ public: explicit findRateOfGene(const tree &t, const sequenceContainer& sc, stochasticProcess& sp, const Vdouble * weights): _t(t), _sc(sc), _sp(sp),_weights(weights){}; private: const tree& _t; const sequenceContainer& _sc; stochasticProcess& _sp; const Vdouble * _weights; public: MDOUBLE operator() (const MDOUBLE fac) { #ifdef VERBOS LOG(5,<<"factor = "< & spVec){ MDOUBLE sumGlobalRates=0.0; for (int k=0; k < spVec.size(); ++k) { sumGlobalRates+=spVec[k].getGlobalRate(); } for (int j=0; j < spVec.size(); ++j) { MDOUBLE newGlobalRate = spVec[j].getGlobalRate(); newGlobalRate*=(spVec.size()/sumGlobalRates); spVec[j].setGlobalRate(newGlobalRate); } et.multipleAllBranchesByFactor(sumGlobalRates/spVec.size()); }