A library for working with phylogenetic and population genetic data.
v0.32.0
placement/function/emd.hpp
Go to the documentation of this file.
1
#ifndef GENESIS_PLACEMENT_FUNCTION_EMD_H_
2
#define GENESIS_PLACEMENT_FUNCTION_EMD_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
#include <utility>
35
#include <vector>
36
37
namespace
genesis
{
38
39
// =================================================================================================
40
// Forward Declarations
41
// =================================================================================================
42
43
namespace
placement {
44
45
class
Sample;
46
class
SampleSet;
47
48
}
49
50
namespace
utils {
51
52
template
<
typename
T>
53
class
Matrix
;
54
55
}
56
57
namespace
placement {
58
59
// =================================================================================================
60
// Earth Movers Distance
61
// =================================================================================================
62
97
double
earth_movers_distance
(
98
Sample
const
& lhs,
99
Sample
const
& rhs,
100
double
const
p = 1.0,
101
bool
const
with_pendant_length =
false
102
);
103
116
utils::Matrix<double>
earth_movers_distance
(
117
SampleSet
const
& sample_set,
118
double
const
p = 1.0,
119
bool
const
with_pendant_length =
false
120
);
121
122
}
// namespace placement
123
}
// namespace genesis
124
125
#endif // include guard
genesis::placement::earth_movers_distance
double earth_movers_distance(Sample const &lhs, Sample const &rhs, double const p, bool const with_pendant_length)
Calculate the earth mover's distance between two Samples.
Definition:
placement/function/emd.cpp:67
genesis::utils::Matrix
Definition:
placement/function/emd.hpp:53
genesis
Container namespace for all symbols of genesis in order to keep them separate when used as a library.
Definition:
placement/formats/edge_color.cpp:42
lib
genesis
placement
function
emd.hpp
Generated on Mon Aug 5 2024 16:57:51 for genesis by
1.8.17