bpp-phyl3 3.0.0
AbstractFromSubstitutionModelTransitionModel.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: The Bio++ Development Group
2//
3// SPDX-License-Identifier: CECILL-2.1
4
5#ifndef BPP_PHYL_MODEL_ABSTRACTFROMSUBSTITUTIONMODELTRANSITIONMODEL_H
6#define BPP_PHYL_MODEL_ABSTRACTFROMSUBSTITUTIONMODELTRANSITIONMODEL_H
7
8
10
11namespace bpp
12{
21{
22protected:
26 std::unique_ptr<SubstitutionModelInterface> subModel_;
27
31 size_t size_;
32
39
40 std::string nestedPrefix_;
41
42public:
44 std::unique_ptr<SubstitutionModelInterface> subModel,
45 const std::string& prefix);
46
48
50
52
53public:
55 {
56 return *subModel_;
57 }
58
60 {
61 return *subModel_;
62 }
63
64 const BranchModelInterface& model() const override
65 {
66 return *subModel_;
67 }
68
69 bool computeFrequencies() const override
70 {
71 return subModel_->computeFrequencies();
72 }
73
78 void computeFrequencies(bool yn) override
79 {
80 subModel_->computeFrequencies(yn);
81 }
82
83protected:
85 {
86 return subModel_->getFrequencies_();
87 }
88
90 {
91 return *subModel_;
92 }
93
94
96 {
97 return *subModel_;
98 }
99
101 {
102 return *subModel_;
103 }
104
105public:
106 virtual void addRateParameter() override
107 {
110 }
111
112 virtual void fireParameterChanged(const ParameterList& parameters) override
113 {
115 model_().matchParametersValues(parameters);
116 }
117
118 virtual void setNamespace(const std::string& prefix) override
119 {
122 }
123};
124} // end of namespace bpp.
125#endif // BPP_PHYL_MODEL_ABSTRACTFROMSUBSTITUTIONMODELTRANSITIONMODEL_H
Virtual class of a Transition Model related to a given SubstitutionModel.
void computeFrequencies(bool yn) override
Set if equilibrium frequencies should be computed from the generator.
virtual void fireParameterChanged(const ParameterList &parameters) override
const TransitionModelInterface & transitionModel() const override
std::unique_ptr< SubstitutionModelInterface > subModel_
The related model.
AbstractFromSubstitutionModelTransitionModel & operator=(const AbstractFromSubstitutionModelTransitionModel &fmsm)
void addParameter_(Parameter *parameter)
void setNamespace(const std::string &prefix)
virtual void fireParameterChanged(const ParameterList &parameters)
std::string getNamespace() const override
Interface for all Branch models.
virtual double getRate() const =0
Get the rate.
virtual void addRateParameter()=0
static const std::shared_ptr< IntervalConstraint > R_PLUS_STAR
virtual bool matchParametersValues(const ParameterList &parameters)=0
virtual void setNamespace(const std::string &prefix)=0
Interface for all substitution models.
Interface for all transition models.
Defines the basic types of data flow nodes.
std::vector< double > Vdouble