bpp-phyl3 3.0.0
L95.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_NUCLEOTIDE_L95_H
6#define BPP_PHYL_MODEL_NUCLEOTIDE_L95_H
7
9
10#include "../AbstractSubstitutionModel.h"
12
13// From bpp-seq:
15
16namespace bpp
17{
57class L95 :
59{
60private:
62
63public:
64 L95(
65 std::shared_ptr<const NucleicAlphabet> alphabet,
66 double alpha = 0.5,
67 double beta = 0.5,
68 double gamma = 0.5,
69 double kappa = 1.,
70 double theta = 0.5);
71
72 virtual ~L95() {}
73
74 L95* clone() const override { return new L95(*this); }
75
76public:
77 std::string getName() const override { return "L95"; }
78
82 void setFreq(std::map<int, double>&) override;
83
84protected:
85 void updateMatrices_() override;
86};
87} // end of namespace bpp.
88#endif // BPP_PHYL_MODEL_NUCLEOTIDE_L95_H
Specialisation abstract class for nucleotide substitution model.
const Alphabet & alphabet() const override
The no-strand bias substitution model for nucleotides, from Lobry 1995. The point of this model is th...
Definition: L95.h:59
double kappa_
Definition: L95.h:61
double beta_
Definition: L95.h:61
L95 * clone() const override
Definition: L95.h:74
double alpha_
Definition: L95.h:61
void setFreq(std::map< int, double > &) override
This method is redefined to actualize the corresponding parameters theta too.
Definition: L95.cpp:78
double gamma_
Definition: L95.h:61
double theta_
Definition: L95.h:61
virtual ~L95()
Definition: L95.h:72
std::string getName() const override
Get the name of the model.
Definition: L95.h:77
void updateMatrices_() override
Diagonalize the matrix, and fill the eigenValues_, iEigenValues_, leftEigenVectors_ and rightEigenVe...
Definition: L95.cpp:40
L95(std::shared_ptr< const NucleicAlphabet > alphabet, double alpha=0.5, double beta=0.5, double gamma=0.5, double kappa=1., double theta=0.5)
Definition: L95.cpp:18
Defines the basic types of data flow nodes.