A toolkit for working with phylogenetic data.
v0.24.0
distance.hpp File Reference
#include "genesis/utils/core/algorithm.hpp"
#include "genesis/utils/containers/matrix.hpp"
#include "genesis/utils/math/common.hpp"
#include "genesis/utils/math/ranking.hpp"
#include <algorithm>
#include <cassert>
#include <cmath>
#include <cstddef>
#include <functional>
#include <limits>
#include <stdexcept>
#include <utility>
#include <vector>

Go to the source code of this file.

Namespaces

 genesis
 Container namespace for all symbols of genesis in order to keep them separate when used as a library.
 
 genesis::utils
 

Functions

template<class ForwardIterator >
double aitchison_norm (ForwardIterator first, ForwardIterator last)
 Calculate the Aitchison norm of a range of positive numbers. More...
 
double aitchison_norm (std::vector< double > const &vec)
 Calculate the Aitchison norm of a std::vector of double elements. More...
 
template<class ForwardIteratorA , class ForwardIteratorB >
double euclidean_distance (ForwardIteratorA first_a, ForwardIteratorA last_a, ForwardIteratorB first_b, ForwardIteratorB last_b)
 Calculate the Euclidean norm (L2 norm) distance between two (mathematical) vectors. More...
 
double euclidean_distance (std::vector< double > const &vec_a, std::vector< double > const &vec_b)
 Calculate the Euclidean norm (L2 norm) distance between two vectors of double elements. More...
 
Matrix< double > euclidean_distance_matrix (Matrix< double > const &data)
 Calculate the pairwise euclidean distance matrix between the rows of a given matrix. More...
 
template<class ForwardIterator >
double euclidean_norm (ForwardIterator first, ForwardIterator last)
 Calculate the Euclidean norm (L2 norm) of a range of numbers. More...
 
double euclidean_norm (std::vector< double > const &vec)
 Calculate the Euclidean norm (L2 norm) of a std::vector of double elements. More...
 
template<class ForwardIteratorA , class ForwardIteratorB >
double manhattan_distance (ForwardIteratorA first_a, ForwardIteratorA last_a, ForwardIteratorB first_b, ForwardIteratorB last_b)
 Calculate the Manhattan norm (L1 norm) distance between two (mathematical) vectors. More...
 
double manhattan_distance (std::vector< double > const &vec_a, std::vector< double > const &vec_b)
 Calculate the Manhattan norm (L1 norm) distance between two vectors of double elements. More...
 
Matrix< double > manhattan_distance_matrix (Matrix< double > const &data)
 Calculate the pairwise manhatten distance matrix between the rows of a given matrix. More...
 
template<class ForwardIterator >
double manhattan_norm (ForwardIterator first, ForwardIterator last)
 Calculate the Manhattan norm (L1 norm) of a range of numbers. More...
 
double manhattan_norm (std::vector< double > const &vec)
 Calculate the Manhattan norm (L1 norm) of a std::vector of double elements. More...
 
template<class ForwardIteratorA , class ForwardIteratorB >
double maximum_distance (ForwardIteratorA first_a, ForwardIteratorA last_a, ForwardIteratorB first_b, ForwardIteratorB last_b)
 Calculate the Maximum norm (infinity norm) distance between two (mathematical) vectors. More...
 
double maximum_distance (std::vector< double > const &vec_a, std::vector< double > const &vec_b)
 Calculate the Maximum norm (infinity norm) distance between two vectors of double elements. More...
 
Matrix< double > maximum_distance_matrix (Matrix< double > const &data)
 Calculate the pairwise maximum distance matrix between the rows of a given matrix. More...
 
template<class ForwardIterator >
double maximum_norm (ForwardIterator first, ForwardIterator last)
 Calculate the Maximum norm (infinity norm) of a range of numbers. More...
 
double maximum_norm (std::vector< double > const &vec)
 Calculate the Maximum norm (infinity norm) of a std::vector of double elements. More...
 
template<class ForwardIterator >
double p_norm (ForwardIterator first, ForwardIterator last, double p=2.0)
 Calculate the p-norm of a range of numbers. More...
 
double p_norm (std::vector< double > const &vec, double p=2.0)
 Calculate the p-norm of a std::vector of double elements. More...
 
template<class ForwardIteratorA , class ForwardIteratorB >
double p_norm_distance (ForwardIteratorA first_a, ForwardIteratorA last_a, ForwardIteratorB first_b, ForwardIteratorB last_b, double p=2.0)
 Calculate the p-norm distance between two (mathematical) vectors. More...
 
double p_norm_distance (std::vector< double > const &vec_a, std::vector< double > const &vec_b, double p=2.0)
 Calculate the p-norm distance between two vectors of double elements. More...
 
Matrix< double > p_norm_distance_matrix (Matrix< double > const &data, double p=2.0)
 Calculate the pairwise distance matrix between the rows of a given matrix. More...