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
15namespace bpp
16{
27{
28public:
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
99protected:
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
110public:
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.