8 #ifndef SIG_UTIL_MINKOWSKI_DISTANCE_HPP
9 #define SIG_UTIL_MINKOWSKI_DISTANCE_HPP
31 template <
class C1,
class C2>
39 std::inner_product(
std::begin(vec1),
std::end(vec1),
std::begin(vec2), 0.0, std::plus<double>(), [&](T v1, T v2){
return std::pow(std::abs(v1 - v2), P); }),
const EuclideanDistance euclidean_distance
ユークリッド距離を求める関数(関数オブジェクト)
double operator()(C1 const &vec1, C2 const &vec2) const
const ManhattanDistance manhattan_distance
マンハッタン距離を求める関数(関数オブジェクト)
auto end(C &&c) -> std::move_iterator< typename RC::iterator >
bool is_comparable(C1 const &v1, C2 const &v2, impl::NumericVectorTag)
2つのベクトルが比較可能か確認
auto begin(C &&c) -> std::move_iterator< typename RC::iterator >