bpp-phyl3  3.0.0
KroneckerWordSubstitutionModel.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_KRONECKERWORDSUBSTITUTIONMODEL_H
6 #define BPP_PHYL_MODEL_KRONECKERWORDSUBSTITUTIONMODEL_H
7 
8 
10 
11 // From bpp-core
13 #include <Bpp/BppVector.h>
14 
15 namespace bpp
16 {
27 {
28 public:
40  KroneckerWordSubstitutionModel(ModelList& modelList, const std::string& prefix = "");
41 
56  const std::vector<std::set< size_t>>& vPos,
57  const std::string& prefix = "");
58 
70  std::unique_ptr<SubstitutionModelInterface> pmodel,
71  unsigned int num,
72  const std::string& prefix = "");
73 
87  std::unique_ptr<SubstitutionModelInterface> pmodel,
88  unsigned int num,
89  const std::vector<std::set< size_t>>& vPos,
90  const std::string& prefix = "");
91 
93 
95  {
96  return new KroneckerWordSubstitutionModel(*this);
97  }
98 
99 protected:
104  std::shared_ptr<const Alphabet> alph,
105  std::shared_ptr<const StateMapInterface> stateMap,
106  const std::string& prefix = "");
107 
108  void completeMatrices_() override {}
109 
110 public:
111  virtual std::string getName() const override;
112 };
113 } // end of namespace bpp.
114 #endif // BPP_PHYL_MODEL_KRONECKERWORDSUBSTITUTIONMODEL_H
const StateMapInterface & stateMap() const override
Basal class for words of substitution models with multiple substitutions.
KroneckerWordSubstitutionModel(ModelList &modelList, const std::string &prefix="")
Build a new KroneckerWordSubstitutionModel object from a Vector of pointers to SubstitutionModels.
void completeMatrices_() override
Called by updateMatrices to handle specific modifications for inheriting classes.
virtual std::string getName() const override
Get the name of the model.
KroneckerWordSubstitutionModel * clone() const override
A list of models, for building a WordSubstitutionModel.
Defines the basic types of data flow nodes.