bpp-phyl  2.2.0
TreeLikelihoodData.h
Go to the documentation of this file.
1 //
2 // File: TreeLikelihoodData.h
3 // Created by: Julien Dutheil
4 // Created on: Sat Dec 30 12:48 2006
5 // From file AbstractTreeLikelihood.h
6 //
7 
8 /*
9 Copyright or © or Copr. Bio++ Development Team, (November 16, 2004)
10 
11 This software is a computer program whose purpose is to provide classes
12 for phylogenetic data analysis.
13 
14 This software is governed by the CeCILL license under French law and
15 abiding by the rules of distribution of free software. You can use,
16 modify and/ or redistribute the software under the terms of the CeCILL
17 license as circulated by CEA, CNRS and INRIA at the following URL
18 "http://www.cecill.info".
19 
20 As a counterpart to the access to the source code and rights to copy,
21 modify and redistribute granted by the license, users are provided only
22 with a limited warranty and the software's author, the holder of the
23 economic rights, and the successive licensors have only limited
24 liability.
25 
26 In this respect, the user's attention is drawn to the risks associated
27 with loading, using, modifying and/or developing or reproducing the
28 software by the user in light of its specific status of free software,
29 that may mean that it is complicated to manipulate, and that also
30 therefore means that it is reserved for developers and experienced
31 professionals having in-depth computer knowledge. Users are therefore
32 encouraged to load and test the software's suitability as regards their
33 requirements in conditions enabling the security of their systems and/or
34 data to be ensured and, more generally, to use and operate it in the
35 same conditions as regards security.
36 
37 The fact that you are presently reading this means that you have had
38 knowledge of the CeCILL license and that you accept its terms.
39 */
40 
41 #ifndef _TREELIKELIHOODDATA_H_
42 #define _TREELIKELIHOODDATA_H_
43 
44 #include "../Node.h"
45 #include "../TreeTemplate.h"
46 
47 //From SeqLib:
48 #include <Bpp/Seq/Alphabet/Alphabet.h>
49 #include <Bpp/Seq/Container/SiteContainer.h>
50 
51 namespace bpp
52 {
53 
62  public virtual Clonable
63 {
64  public:
67 
68 #ifndef NO_VIRTUAL_COV
70 #else
71  Clonable*
72 #endif
73  clone() const = 0;
74 
75  public:
81  virtual const Node* getNode() const = 0;
82 
90  virtual void setNode(const Node* node) = 0;
91 };
92 
103  public virtual Clonable
104 {
105  public:
107  virtual ~TreeLikelihoodData() {}
108 
109 #ifndef NO_VIRTUAL_COV
110  TreeLikelihoodData* clone() const = 0;
111 #endif
112 
113  public:
114  virtual const Alphabet* getAlphabet() const = 0;
115  virtual const TreeTemplate<Node>* getTree() const = 0;
116  virtual size_t getArrayPosition(int parentId, int sonId, size_t currentPosition) const = 0;
117  virtual size_t getRootArrayPosition(size_t site) const = 0;
118  virtual TreeLikelihoodNodeData& getNodeData(int nodeId) = 0;
119  virtual const TreeLikelihoodNodeData& getNodeData(int nodeId) const = 0;
120 
124  virtual size_t getNumberOfDistinctSites() const = 0;
125 
129  virtual size_t getNumberOfSites() const = 0;
130 
134  virtual size_t getNumberOfStates() const = 0;
135 
139  virtual unsigned int getWeight(size_t pos) const = 0;
140 
144  virtual const std::vector<unsigned int>& getWeights() const = 0;
145 
146 };
147 
148 } //end of namespace bpp.
149 
150 #endif //_TREELIKELIHOODDATA_H_
151 
TreeLikelihoodData * clone() const =0
virtual void setNode(const Node *node)=0
Set the node associated to this data.
virtual TreeLikelihoodNodeData & getNodeData(int nodeId)=0
virtual size_t getRootArrayPosition(size_t site) const =0
virtual size_t getNumberOfStates() const =0
TreeLikelihood data structure.
virtual const std::vector< unsigned int > & getWeights() const =0
The phylogenetic tree class.
virtual const TreeTemplate< Node > * getTree() const =0
virtual const Node * getNode() const =0
Get the node associated to this data structure.
virtual unsigned int getWeight(size_t pos) const =0
TreeLikelihoodNodeData * clone() const =0
virtual size_t getNumberOfDistinctSites() const =0
The phylogenetic node class.
Definition: Node.h:90
virtual size_t getNumberOfSites() const =0
TreeLikelihood partial data structure.
virtual size_t getArrayPosition(int parentId, int sonId, size_t currentPosition) const =0
virtual const Alphabet * getAlphabet() const =0