5 #ifndef BPP_PHYL_LEGACY_MODEL_MIXEDSUBSTITUTIONMODELSET_H
6 #define BPP_PHYL_LEGACY_MODEL_MIXEDSUBSTITUTIONMODELSET_H
11 #include "../../Model/AbstractSubstitutionModel.h"
87 public std::enable_shared_from_this<MixedSubstitutionModelSet>
162 HyperNode(std::shared_ptr<const MixedSubstitutionModelSet> );
Node & operator=(const Node &n)
bool intersects(const Node &) const
checks if this Node intersects another one.
bool operator<=(const Node &) const
checks if this Node is included in another one.
void insertN(const Vuint &vn)
Node & operator=(const Vuint &n)
bool operator>=(const Node &) const
checks if this HyperNode includes another one.
Node & operator+=(const Node &)
Cumulates the elements of the given Node into this one.
Vuint vNumb_
A vector<int> where all elements are different and in increasing order.
uint operator[](size_t i) const
HyperNode & operator+=(const HyperNode &)
Cumulates the Nodes of the given HyperNode into this one.
void addToModel(size_t nM, const Vuint &vnS)
adds submodel numbers to the nMth mixed model. Checks if all the numbers are valid.
bool operator>=(const HyperNode &) const
checks if this HyperNode includes another one.
HyperNode & operator=(const HyperNode &)
void setProbability(double x)
sets the probability
bool isComplete() const
checks if this HyperNode includes at least a submodel of each mixed model
std::vector< Node > vNumbers_
HyperNode(std::shared_ptr< const MixedSubstitutionModelSet >)
bool operator<=(const HyperNode &) const
checks if this HyperNode is included in another one.
bool intersects(const HyperNode &) const
checks if this HyperNode intersects another one.
double getProbability() const
returns the probability
void setModel(size_t nM, const Vuint &vnS)
sets submodel numbers in the nMth mixed model. Checks if all the numbers are valid.
const Node & getNode(size_t i) const
Vuint vUnused_
the coordinates of the Nodes that are not used.
double proba_
probability of this HyperNode.
Substitution models manager for Mixed Substitution Models. This class inherits from SubstitutionModel...
~MixedSubstitutionModelSet()
void fireParameterChanged(const ParameterList ¶meters)
MixedSubstitutionModelSet(std::shared_ptr< const Alphabet > alpha)
Create a model set according to the specified alphabet.
const HyperNode & getHyperNode(size_t i) const
double getHyperNodeProbability(const HyperNode &hn) const
void computeHyperNodesProbabilities()
void addToHyperNode(size_t nM, const Vuint &vnS, int nH=-1)
size_t getNumberOfHyperNodes() const
MixedSubstitutionModelSet * clone() const
void clear()
Resets the list of the HyperNodes.
std::vector< HyperNode * > vpHyperNodes_
bool hasExclusivePaths() const
HyperNode & getHyperNode(size_t i)
MixedSubstitutionModelSet & operator=(const MixedSubstitutionModelSet &set)
void addHyperNode(const HyperNode &hn)
Substitution models manager for non-homogeneous / non-reversible models of evolution.
Defines the basic types of data flow nodes.
std::vector< unsigned int > Vuint