template struct cvflann::L1

Overview

#include <dist.h>

template <class T>
struct L1
{
    // typedefs

    typedef T ElementType;
    typedef True is_kdtree_distance;
    typedef True is_vector_space_distance;
    typedef Accumulator<T>::Type ResultType;

    // methods

    template <
        typename U,
        typename V
        >
    ResultType
    accum_dist(
        const U& a,
        const V& b,
        int
        ) const;

    template <
        typename Iterator1,
        typename Iterator2
        >
    ResultType
    operator()(
        Iterator1 a,
        Iterator2 b,
        size_t size,
        ResultType worst_dist = -1
        ) const;
};

Detailed Documentation

Methods

template <
    typename U,
    typename V
    >
ResultType
accum_dist(
    const U& a,
    const V& b,
    int
    ) const

Partial distance, used by the kd-tree.

template <
    typename Iterator1,
    typename Iterator2
    >
ResultType
operator()(
    Iterator1 a,
    Iterator2 b,
    size_t size,
    ResultType worst_dist = -1
    ) const

Compute the Manhattan (L_1) distance between two vectors.

This is highly optimised, with loop unrolling, as it is one of the most expensive inner loops.