A toolkit for working with phylogenetic data.
v0.18.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
placement/pquery/distances.hpp
Go to the documentation of this file.
1 #ifndef GENESIS_PLACEMENT_PQUERY_DISTANCES_H_
2 #define GENESIS_PLACEMENT_PQUERY_DISTANCES_H_
3 
4 /*
5  Genesis - A toolkit for working with phylogenetic data.
6  Copyright (C) 2014-2017 Lucas Czech
7 
8  This program is free software: you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation, either version 3 of the License, or
11  (at your option) any later version.
12 
13  This program is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with this program. If not, see <http://www.gnu.org/licenses/>.
20 
21  Contact:
22  Lucas Czech <lucas.czech@h-its.org>
23  Exelixis Lab, Heidelberg Institute for Theoretical Studies
24  Schloss-Wolfsbrunnenweg 35, D-69118 Heidelberg, Germany
25 */
26 
34 namespace genesis {
35 
36 // =================================================================================================
37 // Forward Declarations
38 // =================================================================================================
39 
40 namespace tree {
41 
42  class TreeNode;
43  class TreeEdge;
44 
45 }
46 
47 namespace placement {
48 
49  class Pquery;
50  class PqueryPlacement;
51  struct PqueryPlain;
52 
53  class PlacementEdgeData;
54  class PlacementNodeData;
55 
56 }
57 
58 namespace utils {
59  template <typename T>
60  class Matrix;
61 }
62 
63 // =================================================================================================
64 // Distance Measuring
65 // =================================================================================================
66 
67 namespace placement {
68 /*
69 // double distance (
70 // const PqueryPlacement& placement_a,
71 // const PqueryPlacement& placement_b
72 // );
73 
74 double distance (
75  const PqueryPlacement& placement_a,
76  const PqueryPlacement& placement_b,
77  const utils::Matrix<double>& node_distance_matrix
78 );
79 
80 double distance (
81  const PqueryPlacement& placement,
82  const Pquery& pquery,
83  const utils::Matrix<double>& node_distance_matrix
84 );
85 
86 // double distance (
87 // const PqueryPlain& pqry_a,
88 // const PqueryPlain& pqry_b
89 // );
90 
91 double distance (
92  const PqueryPlain& pqry_a,
93  const PqueryPlain& pqry_b,
94  const utils::Matrix<double>& node_distance_matrix
95 );
96 
97 // double distance (
98 // const Pquery& pqry_a,
99 // const Pquery& pqry_b
100 // );
101 
102 double distance (
103  const Pquery& pqry_a,
104  const Pquery& pqry_b,
105  const utils::Matrix<double>& node_distance_matrix
106 );
107 
108 double distance (
109  const PqueryPlacement& placement,
110  const PlacementTreeNode& node,
111  const utils::Matrix<double>& node_distance_matrix
112 );
113 
114 double distance (
115  const Pquery& pquery,
116  const PlacementTreeNode& node,
117  const utils::Matrix<double>& node_distance_matrix
118 );
119 */
120 
121 } // namespace placement
122 } // namespace genesis
123 
124 #endif // include guard