39 #ifndef _MIXEDSUBSTITUTIONMODEL_H_ 40 #define _MIXEDSUBSTITUTIONMODEL_H_ 98 virtual const std::vector<double>&
getVRates()
const = 0;
104 virtual double getNRate(
size_t i)
const = 0;
116 virtual void setVRates(
const Vdouble& vd) = 0;
137 #endif // _MIXEDSUBSTITUTIONMODEL_H_ Interface for all substitution models.
virtual Vint getSubmodelNumbers(std::string &desc) const =0
virtual double getNProbability(size_t i) const =0
Returns the probability of a specific model from the mixture.
virtual ~MixedSubstitutionModel()
virtual const std::vector< double > & getVRates() const =0
Returns the rates of the submodels.
virtual void normalizeVRates()=0
Normalizes the rates of the submodels so that the mean rate of the mixture equals rate_...
virtual void setNProbability(size_t i, double prob)=0
Sets the probability of a specific model from the mixture.
virtual const std::vector< double > & getProbabilities() const =0
virtual void setVRates(const Vdouble &vd)=0
Sets the rates of the submodels to be proportional to a given vector, and normalizes them so that the...
virtual double getNRate(size_t i) const =0
Returns the rate of a specific submodel.
virtual size_t getNumberOfModels() const =0
virtual const SubstitutionModel * getNModel(size_t i) const =0
Returns a specific model from the mixture.
virtual MixedSubstitutionModel * clone() const =0
Interface for Substitution models, defined as a mixture of "simple" substitution models.