5 #ifndef BPP_SEQ_ALPHABETINDEX_ALPHABETINDEX2_H
6 #define BPP_SEQ_ALPHABETINDEX_ALPHABETINDEX2_H
11 #include "../Alphabet/Alphabet.h"
12 #include "../Alphabet/AlphabetTools.h"
13 #include "../Alphabet/ProteicAlphabet.h"
41 virtual double getIndex(
int state1,
int state2)
const = 0;
50 virtual double getIndex(
const std::string& state1,
const std::string& state2)
const = 0;
57 virtual std::shared_ptr<const Alphabet>
getAlphabet()
const = 0;
84 std::shared_ptr<const ProteicAlphabet>
alpha_;
Two dimensionnal alphabet index interface.
virtual const Matrix< double > & getIndexMatrix() const =0
virtual const Alphabet & alphabet() const =0
Get the alphabet associated to this index.
virtual double getIndex(const std::string &state1, const std::string &state2) const =0
Get the index associated to a pair of states.
virtual bool isSymmetric() const =0
virtual double getIndex(int state1, int state2) const =0
Get the index associated to a pair of states.
virtual std::shared_ptr< const Alphabet > getAlphabet() const =0
Get the alphabet associated to this index.
virtual AlphabetIndex2 * clone() const =0
virtual ~AlphabetIndex2()
Virtual AlphabetIndex2 for proteic alphabet.
ProteicAlphabetIndex2(const ProteicAlphabetIndex2 &pt)
virtual ~ProteicAlphabetIndex2()
std::shared_ptr< const Alphabet > getAlphabet() const override
Get the alphabet associated to this index.
std::shared_ptr< const ProteicAlphabet > alpha_
virtual ProteicAlphabetIndex2 * clone() const override=0
const Alphabet & alphabet() const override
Get the alphabet associated to this index.
ProteicAlphabetIndex2 & operator=(const ProteicAlphabetIndex2 &pt)
This alphabet is used to deal NumericAlphabet.