8 #ifndef SIG_UTIL_MAHALANOBIS_DISTANCE_HPP
9 #define SIG_UTIL_MAHALANOBIS_DISTANCE_HPP
12 #include "../calculation/ublas.hpp"
13 #include "../calculation/binary_operation.hpp"
25 return std::sqrt(ublas::inner_prod(v, ublas::prod(*
invert_matrix(cov), v)));
31 template <
class T1,
class T2>
double operator()(vector_u< T1 > const &vec1, vector_u< T2 > const &vec2) const
double mahalanobis_impl(matrix_u< T > const &cov, vector_u< T > const &v)
boost::numeric::ublas::matrix< T > matrix_u
auto minus(T1 &&v1, T2 &&v2) -> decltype(binary_operation(minus_t(), std::forward< T1 >(v1), std::forward< T2 >(v2)))
auto invert_matrix(matrix_u< T > &&mat) -> Maybe< matrix_u< RT >>
逆行列を求める
boost::numeric::ublas::vector< T > vector_u