mlpack  1.0.12
mahalanobis_distance.hpp
Go to the documentation of this file.
1 /***
2  * @file mahalanobis_dstance.h
3  * @author Ryan Curtin
4  *
5  * The Mahalanobis distance.
6  *
7  * This file is part of mlpack 1.0.12.
8  *
9  * mlpack is free software; you may redstribute it and/or modify it under the
10  * terms of the 3-clause BSD license. You should have received a copy of the
11  * 3-clause BSD license along with mlpack. If not, see
12  * http://www.opensource.org/licenses/BSD-3-Clause for more information.
13  */
14 #ifndef __MLPACK_CORE_METRICS_MAHALANOBIS_DISTANCE_HPP
15 #define __MLPACK_CORE_METRICS_MAHALANOBIS_DISTANCE_HPP
16 
17 #include <mlpack/core.hpp>
18 
19 namespace mlpack {
20 namespace metric {
21 
54 template<bool TakeRoot = true>
56 {
57  public:
63 
70  MahalanobisDistance(const size_t dimensionality) :
71  covariance(arma::eye<arma::mat>(dimensionality, dimensionality)) { }
72 
79  MahalanobisDistance(const arma::mat& covariance) : covariance(covariance) { }
80 
91  // Return String of Object
92  std::string ToString() const;
93  template<typename VecType1, typename VecType2>
94  double Evaluate(const VecType1& a, const VecType2& b);
95 
101  const arma::mat& Covariance() const { return covariance; }
102 
108  arma::mat& Covariance() { return covariance; }
109  private:
111  arma::mat covariance;
112 };
113 
114 }; // namespace distance
115 }; // namespace mlpack
116 
117 #include "mahalanobis_distance_impl.hpp"
118 
119 #endif
MahalanobisDistance(const size_t dimensionality)
Initialize the Mahalanobis distance with the identity matrix of the given dimensionality.
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: load.hpp:23
std::string ToString() const
Evaluate the distance between the two given points using this Mahalanobis distance.
MahalanobisDistance()
Initialize the Mahalanobis distance with the empty matrix as covariance.
arma::mat covariance
The covariance matrix associated with this distance.
double Evaluate(const VecType1 &a, const VecType2 &b)
const arma::mat & Covariance() const
Access the covariance matrix.
MahalanobisDistance(const arma::mat &covariance)
Initialize the Mahalanobis distance with the given covariance matrix.
arma::mat & Covariance()
Modify the covariance matrix.
The Mahalanobis distance, which is essentially a stretched Euclidean distance.