5 #ifndef BPP_PHYL_MODEL_TRANSITIONFROMTRANSITIONMODEL_H
6 #define BPP_PHYL_MODEL_TRANSITIONFROMTRANSITIONMODEL_H
28 std::shared_ptr<TransitionModelInterface>
subModel_;
114 const Eigen::VectorXd&
Lik_t (
const Eigen::VectorXd& from,
double t)
const override;
115 const Eigen::VectorXd&
dLik_dt (
const Eigen::VectorXd& from,
double t)
const override;
116 const Eigen::VectorXd&
d2Lik_dt2(
const Eigen::VectorXd& from,
double t)
const override;
123 virtual void setFreq(std::map<int, double>& m)
139 return "TransitionFrom";
void addParameters_(const ParameterList ¶meters)
void addParameter_(Parameter *parameter)
AbstractParameterAliasable & operator=(const AbstractParameterAliasable &ap)
virtual void fireParameterChanged(const ParameterList ¶meters)
bool matchParametersValues(const ParameterList ¶meters) override
std::string getNamespace() const override
Abstract class of Wrapping model class, where all methods are redirected from model().
size_t getNumberOfStates() const override
Get the number of states.
Interface for all Branch models.
virtual void setRate(double rate)=0
Set the rate of the model (must be positive).
virtual double getRate() const =0
Get the rate.
virtual double getInitValue(size_t i, int state) const =0
virtual void addRateParameter()=0
static const std::shared_ptr< IntervalConstraint > R_PLUS_STAR
From a transition model, compute the transition function probabilities.
double tref_
Reference time to avoid recomuputation of transition matrix when time has not changed....
const TransitionModelInterface & transitionModel() const
double getInitValue(size_t i, int state) const override
const Matrix< double > * dPij_dt
const Eigen::VectorXd & d2Lik_dt2(const Eigen::VectorXd &from, double t) const override
std::string getName() const override
Get the name of the model.
void setFreqFromData(const SequenceDataInterface &data, double pseudoCount)
TransitionFromTransitionModel(const TransitionFromTransitionModel &fmsm)
const Eigen::VectorXd & dLik_dt(const Eigen::VectorXd &from, double t) const override
BranchModelInterface & model_()
void addRateParameter() override
double getRate() const override
Get the rate.
TransitionFromTransitionModel(std::shared_ptr< TransitionModelInterface > originalModel)
const BranchModelInterface & model() const override
TransitionFromTransitionModel & operator=(const TransitionFromTransitionModel &fmsm)
virtual ~TransitionFromTransitionModel()
const Matrix< double > * Pij_t
Transition Matrices owned by the submodel.
Eigen::VectorXd Pi_
Used return vectors.
TransitionFromTransitionModel * clone() const override
const Matrix< double > * d2Pij_dt2
const Eigen::VectorXd & Lik_t(const Eigen::VectorXd &from, double t) const override
void fireParameterChanged(const ParameterList ¶meters) override
std::shared_ptr< TransitionModelInterface > subModel_
The related model.
void setRate(double rate) override
Set the rate of the model (must be positive).
virtual void setFreq(std::map< int, double > &m)
TransitionModelInterface & transitionModel_()
Interface for all transition models.
virtual void setFreq(std::map< int, double > &frequencies)=0
Set equilibrium frequencies.
virtual void setFreqFromData(const SequenceDataInterface &data, double pseudoCount=0)=0
Set equilibrium frequencies equal to the frequencies estimated from the data.
Defines the basic types of data flow nodes.